On 14.01.2009, at 23:22, Stanislav Malyshev wrote:
Hi!
As many of you know, one can build PHP engine in a number of ways
which are binary-incompatible - debug/no debug, thread-safe/not
thread safe, etc. Also, for windows we have now anther dimension -
we could build with VC6, VC8, VC9, etc. Loading modules built with
another, binary incompatible version, could lead to crashes and
malfunctions, thus Zend extension and PHP extension loaders check
these options, stored in special structure, to match module ones
with engine ones.
Now the problem is that when we need to add dimensions, we will have
to change structures and maybe even edit some extensions, and as we
have more dimensions it becomes less manageable and more "hackish".
I think that it would be better if we adopted more clean and
scalable solution for that. I propose having one string build ID,
which would look something like: "API20071006,NTS,Debug,VC8" and
would be rquired to match exactly in the engine and the module. This
should be relatively easy to generate when compiling.
Pro:
1. Easy, robust and scalable way to match current and any future
build flavors
2. You can easily create "private" build flavors when testing binary-
incompatible changes
3. Build data is in readable form even inside binary, so binaries
could be automatically checked by Unix tools.
Contra:
1. Well, it's change :)
seems to me like we need this and since its quickly doable, lets do it
for beta1, right now ..
freeze seems to be happening next monday
regards,
Lukas
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php