On 06.09.2006 20:39, Andrei Zmievski wrote:
We really need to settle on whether we want unicode.semantics to be changeable at runtime or not. During early development it was ZEND_INI_PERDIR, meaning that it could be changed in .htaccess and VirtualHost blocks. However, the infrastructure to support this flexibility was deemed too complicated at the Paris PDM. Basically, we need to maintain two sets of symbol tables and convert between them on the fly as well as two copies of each class entry. The latter was especially problematic instead of just mentioning class entry pointer, you had to access it like U_CLASS_ENTRY(ce). So it was decided that unicode.semantics switch would be only ZEND_INI_SYSTEM and that is how the development proceeded since then. However, there have come up concerns that keeping it this way will make PHP 6 adoption infeasible by the majority of hosting companies and users since they would have to run two copies of Apache to support both modes.

I think making it INI_PERDIR would mean a lot of headache and overcomplicated 
code in the engine and the extensions that modify its behaviour (like APC).

AFAIK lot of shared hosters provide PHP4 as Apache module and PHP5 as CGI atm.
This is also possible with PHP5 and PHP6, in which case the INI_SYSTEM 
limitations do not really matter, since it's only per request.

We can go back to the PERDIR version, but that requires a lot of work and not just in the engine, but also in a lot of extensions. I will let Dmitry provide the technical details, but we need to decide which way to go:

1. ZEND_INI_SYSTEM and make people run two copies of Apache if they want both modes. This is architecturally more simple and more robust, I believe.

2. ZEND_INI_PERDIR and let people switch modes as described above. This is a lot of work and will probably result in quite a few edge cases where we used to rely on stability of one mode (such as APC or serialization, for example).


--
Wbr, Antony Dovgal

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

Reply via email to