Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:83640 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 25906 invoked from network); 24 Feb 2015 07:48:49 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 Feb 2015 07:48:49 -0000 Authentication-Results: pb1.pair.com smtp.mail=lisachenko.it@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=lisachenko.it@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.49 as permitted sender) X-PHP-List-Original-Sender: lisachenko.it@gmail.com X-Host-Fingerprint: 74.125.82.49 mail-wg0-f49.google.com Received: from [74.125.82.49] ([74.125.82.49:35665] helo=mail-wg0-f49.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 61/73-09240-0EC2CE45 for ; Tue, 24 Feb 2015 02:48:48 -0500 Received: by wggz12 with SMTP id z12so3489194wgg.2 for ; Mon, 23 Feb 2015 23:48:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=0uNvkYfSNo2ZmT+PUOW8tH1VYX6XYMxurAdsM4V+FCk=; b=AjYGN5vZS4XYG6bWFA3cll1SCZqM94IH3lS5fBmj1k4MCszMkjSC8tlB5kuTCaQ1UO ItBqmudeEPel1wCE1qJ7ooMCyLF1M2DnuE50Ov+/zZTGVx9tiWxEoz1zQjKAsWjY43Si tvhjnFIM460/WYu4TdGzttdIDZEQU5lm4U2EPMV0xexwqe/0BpT9R1CA1b6e6HTom0pO yDlj4v39TLrYy4q6FfMUoi53HTOKcidAsYMB0eBEkMh5WO/59+TKylGuxigVSYph2T5k PHClBqlaJISwsm92oD2Yye6TLJsP9vTYCbEYgNtX7mLfLjoul5T3rqhinwCz1KlvA0+l NTAQ== MIME-Version: 1.0 X-Received: by 10.194.200.68 with SMTP id jq4mr30199149wjc.58.1424764125087; Mon, 23 Feb 2015 23:48:45 -0800 (PST) Received: by 10.194.154.229 with HTTP; Mon, 23 Feb 2015 23:48:45 -0800 (PST) Date: Tue, 24 Feb 2015 10:48:45 +0300 Message-ID: To: PHP internals list Content-Type: multipart/alternative; boundary=047d7b86ea96908f36050fd0bf79 Subject: [Discussion] Last chance for case-sensitive engine From: lisachenko.it@gmail.com (Alexander Lisachenko) --047d7b86ea96908f36050fd0bf79 Content-Type: text/plain; charset=UTF-8 Morning! I want to ask this question one more time before PHP7 feature freeze: can we the engine case sensitive from PHP>=7.0? There is a draft for that: https://wiki.php.net/rfc/case-sensitivity (mostly empty), so I decided to ask this question in the internals mail list. Pros: more simple O(1) hash table checks for properties, functions, methods, classes without strtolower normalization on the engine/parser level. Consistency with unicode class names (yes, they are case sensitive, check http://3v4l.org/ia0pc), consistency with exisiting PSR0,4 standards (case sensitive mapping of class names to the file names) From my experience, all modern PHP framework don't use case-insensitive code, so chance to break anything for them is really low. Cons: on the extension level things aren't so good and can be some BC breaks (like with phpng) Possible ways: 1) Keep PHP engine case-insensitive for PHP7 2) Make PHP engine case-sensitive since PHP7 with possible minor BC breaks in the extensions (this breaks can be easily fixed) 3) Add a compile-time switch, eg. --with-case-sensitivity to the configuration to have an ability to build PHP with sensitivity and make this option enabled by default since next major version (PHP>=8.0). Add deprecation notices in 7.x Thoughts? --047d7b86ea96908f36050fd0bf79--