Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:61201 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 71661 invoked from network); 13 Jul 2012 15:33:29 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 13 Jul 2012 15:33:29 -0000 Authentication-Results: pb1.pair.com header.from=ircmaxell@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=ircmaxell@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.216.170 as permitted sender) X-PHP-List-Original-Sender: ircmaxell@gmail.com X-Host-Fingerprint: 209.85.216.170 mail-qc0-f170.google.com Received: from [209.85.216.170] ([209.85.216.170:54124] helo=mail-qc0-f170.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 13/C7-17670-8CF30005 for ; Fri, 13 Jul 2012 11:33:29 -0400 Received: by qcmt36 with SMTP id t36so2514768qcm.29 for ; Fri, 13 Jul 2012 08:33:25 -0700 (PDT) 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=66bixBC5MQr0+YOZuZHyqQWmdj+Km6NRMV8ZscKshsg=; b=HBBPHyAIhTYKycNLvLtbX2bUokPkk9fHqU+O/zt+1csQtuBupO09RMpkbcS6k3jQjE Go0LK332uWuvvQIFx48ugFI3IGXvNcKlQkZox3smqRmO9NPTPEXix42gFFYUW8JCVGJe Ej85Ic3ItpE1dU2uWFYb08W123AcbFR09oKGVRRPnALNuVDmtWG8Kygy1ru6OuVkNz5B 2QmCJHsb99A2zpivVYOEj/DXbuTJDYCGctLsbYV5PR0xo91rUTfSnonqYb6I4afoaczs k4VkBfDw0VxAUPpThnbe4JPDsdW0vw/Bf1Of2Ei/oMEXAgvumkUI36Qek2/WVwCtb/rs dhug== MIME-Version: 1.0 Received: by 10.224.59.212 with SMTP id m20mr3650891qah.35.1342193605078; Fri, 13 Jul 2012 08:33:25 -0700 (PDT) Received: by 10.229.232.11 with HTTP; Fri, 13 Jul 2012 08:33:25 -0700 (PDT) Date: Fri, 13 Jul 2012 11:33:25 -0400 Message-ID: To: internals@lists.php.net Content-Type: multipart/alternative; boundary=20cf3074d5b80cee4304c4b7cd89 Subject: 6.0 And Moving Forward From: ircmaxell@gmail.com (Anthony Ferrara) --20cf3074d5b80cee4304c4b7cd89 Content-Type: text/plain; charset=ISO-8859-1 Hey all, I know that 6.0 was originally supposed to be the unicode conversion of the engine. However it appears that all progress on that has stopped for quite some time. So, I was curious if we could start a conversation around what 6.0 would look like if we didn't go the unicode route. What would be the major changes that we'd base it on. Here are a few of the ideas that have been floating around in my head. 1. Change the error handling system from the current E_* system to typed exceptions for everything but advisory errors (E_STRICT, E_NOTICE, E_DEPRECATED). Why? Because the current error system encourages ignoring or not checking what the error was, and it makes defensive programming quite difficult. This is arguable and preference for sure, but it's a major change that could have large benefits. 2. Make namespaces first-class meta-objects. That way, you could have namespace private and protected classes, functions, variables, etc. This would allow for better scoping of modules... 3. Make all zval types pseudo-objects. Basically enabling something akin to auto-boxing allowing a significant amount of the standard library to be eventually deprecated in favor of acting on methods (not initially, but opens the door). 4. Rewrite the entire parser completely. I keep hearing about how bad PHP's parser is, and how it's growing out of control. Perhaps this is a good time to rewrite it (perhaps changing semantics slightly) to be better adapted towards future changes... I'm not saying all of them are solid. I'm not saying any of them are solid. But hopefully this can spark a discussion around it... Thoughts? Anthony --20cf3074d5b80cee4304c4b7cd89--