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

Reply via email to