Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:34854 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 79244 invoked by uid 1010); 21 Jan 2008 19:40:26 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 79229 invoked from network); 21 Jan 2008 19:40:26 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Jan 2008 19:40:26 -0000 Authentication-Results: pb1.pair.com smtp.mail=tokul@users.sourceforge.net; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=tokul@users.sourceforge.net; sender-id=unknown Received-SPF: error (pb1.pair.com: domain users.sourceforge.net from 213.197.162.99 cause and error) X-PHP-List-Original-Sender: tokul@users.sourceforge.net X-Host-Fingerprint: 213.197.162.99 avilys.eik.lt Linux 2.6 Received: from [213.197.162.99] ([213.197.162.99:43267] helo=avilys.eik.lt) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 68/65-42899-825F4974 for ; Mon, 21 Jan 2008 14:40:25 -0500 Received: from avilys.eik.lt (avilys.local [127.0.0.1]) by avilys.eik.lt (Postfix) with ESMTP id 1FFC02488EC for ; Mon, 21 Jan 2008 21:38:19 +0200 (EET) Received: from avilys.eik.lt (avilys.local [127.0.0.1]) by avilys.eik.lt (Postfix) with ESMTP id 06DD52488EA for ; Mon, 21 Jan 2008 21:38:19 +0200 (EET) Received: from 78.61.224.253 (NaSMail authenticated user tomas@topolis.lt) by avilys.eik.lt with HTTP; Mon, 21 Jan 2008 21:38:19 +0200 (EET) Message-ID: <37694.78.61.224.253.1200944299.nsm@avilys.eik.lt> In-Reply-To: <9810532581.20080121195543@marcus-boerger.de> References: <4794AE48.20005@daylessday.org> <676382454.20080121181423@marcus-boerger.de> <45032.78.61.224.253.1200936152.nsm@avilys.eik.lt> <9810532581.20080121195543@marcus-boerger.de> Date: Mon, 21 Jan 2008 21:38:19 +0200 (EET) To: internals@lists.php.net User-Agent: NaSMail/1.4 MIME-Version: 1.0 Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Virus-Scanned: ClamAV using ClamSMTP Subject: Re: [PHP-DEV] why we must get rid of unicode.semantics switch ASAP From: tokul@users.sourceforge.net ("Tomas Kuliavas") >>>> 5) this is yet another reincarnation of ze1_compatibility switch. >>> Which is the worst mistake ever imo - If you wanted PHP 4 you would >>> simply >>> use PHP 4. Now if you want PHP 5 just damn use PHP 5. > >> And if you don't control PHP version used by end user? Only bad in-house >> apps are written for one specific PHP version and setup. > > you're point being? Without the requested change here you would have one > more version, resulting in PHP 5.*, PHP 6.*-unicode, PHP6.*-native. there is only a little difference between php5 and php6 with unicode.semantics off. php6 with unicode.semantics on design is broken. It replaces standard functions that worked same way through all PHP4-5 versions and forces use of code that is totally backwards incompatible. binary and unicode typecasting triggers E_PARSE errors in older PHP versions. I can't mix PHP6 and older PHP code in one script or library or function. PHP introduced changes similar to unicode.semantics=on with mbstring function overloading. When I learned about it, I've stopped trusting ereg and string functions. With mbstring overloading I still have options to disable broken design. With unicode semantics I am forced to use features provided by interpreter instead doing things the way I want and having better controls over script. PHP with unicode.semantics on is more suitable for novice developers who are not familiar with character sets and lazy developers, who want their PHP4-5 code to become Unicode aware without any changes on their side. If PHP4-5 code works with multiple charsets and 8bit data, it will break in PHP6. I don't care if you remove this setting. I'll find the way to make my code work. but don't expect me to remain silent if you say that it is a good thing. It is good for PHP codebase. It is not good for portable PHP script developers. Removal of setting forces developers to drop 5.2.0 and older versions or to maintain two library versions. If setting remains, developers can ask to turn it off. PHP_INI_SYSTEM is php.ini and httpd.conf. -- Tomas