On Wed, Jan 14, 2009 at 11:22 PM, Stanislav Malyshev <s...@zend.com> 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 :)
>
> What do you think?

As said this morning during our little chat about that, I'm all for
it, the sooner (now) the better.

Another cons:
- if we don't do that, I'll have to add a new element the struct to
indentify which compiler/crt was used to build an ext. That was the
reasons why this proposal comes in now :)


Cheers,
-- 
Pierre

http://blog.thepimp.net | http://www.libgd.org

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to