Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:61363 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 66142 invoked from network); 17 Jul 2012 16:00:20 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 17 Jul 2012 16:00:20 -0000 Authentication-Results: pb1.pair.com smtp.mail=ajfweb@googlemail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=ajfweb@googlemail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain googlemail.com designates 74.125.82.170 as permitted sender) X-PHP-List-Original-Sender: ajfweb@googlemail.com X-Host-Fingerprint: 74.125.82.170 mail-we0-f170.google.com Received: from [74.125.82.170] ([74.125.82.170:60350] helo=mail-we0-f170.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 1F/12-54353-21C85005 for ; Tue, 17 Jul 2012 12:00:19 -0400 Received: by weyr1 with SMTP id r1so430830wey.29 for ; Tue, 17 Jul 2012 09:00:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Cq0tI7JQ7a9+RaL0zHWGi/Nqf/cgGHf7j9OXSNkjGZQ=; b=YfBULKU220t/BMJugJ1hSHltqX4cB533rwjO0MclJp7u6hftF+RZ2l6lSdLNi6yHno H6ngKLs62cDrqBGpYyfw/8NJSCwbydKUBSfSOKX0CfF+t+/V3pWLyGCY5H9UFBrk0Yyr RySCNBFtolnkanWD01XAbEx/iugOBwOfDKR9VIGB/lW8C+YB0WsG91x+i6eVJ+R3J14x MPRRi8Q3Z67YkB09KBO3uupHw1Db+0Uoq7LTj9JpWaDzRpu19IcABp+PVBRKX5luX/Wt awptjHpiGRbBNcYlmSMhHEEmoNOgIzHjibAwVCOJF23mRb0rzww6sevjA1mm1eGHB5VT KVbg== MIME-Version: 1.0 Received: by 10.216.240.196 with SMTP id e46mr194715wer.224.1342540815637; Tue, 17 Jul 2012 09:00:15 -0700 (PDT) Received: by 10.216.160.16 with HTTP; Tue, 17 Jul 2012 09:00:15 -0700 (PDT) Received: by 10.216.160.16 with HTTP; Tue, 17 Jul 2012 09:00:15 -0700 (PDT) In-Reply-To: References: Date: Tue, 17 Jul 2012 17:00:15 +0100 Message-ID: To: Dan Cryer Cc: internals@lists.php.net, Anthony Ferrara , Christoph Hochstrasser Content-Type: multipart/alternative; boundary=e0cb4e43cff1699d9304c508a4f9 Subject: Re: [PHP-DEV] 6.0 And Moving Forward From: ajfweb@googlemail.com (Andrew Faulds) --e0cb4e43cff1699d9304c508a4f9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I thought list() was a syntax, not standard lib, feature? Like array() (or am I thinking of isset()?) On Jul 17, 2012 4:48 PM, "Dan Cryer" wrote: > The problem, of course, is changing and removing things can break BC. I'd >> love to remove list() too, but that would break code relying on it. > > > Isn't that kind of the point of the whole discussion? This is talking > about completely rewriting the standard library for PHP 6, but providing = a > legacy extension/compile time option, which would bring with it almost > complete backwards compatibility with PHP 5. > > > *Dan Cryer* > +Dan > @dancryer > > > > On 17 July 2012 16:32, Andrew Faulds wrote: > >> >> On Jul 17, 2012 4:23 PM, "Christoph Hochstrasser" < >> christoph.hochstrasser@gmail.com> wrote: >> >> > Hi, >> > >> > Some of the things I want to see in PHP 6: >> > >> > New designed Standard Library: >> > >> > * Clearly defined conventions for organization, naming and error >> handling. >> > * Use Namespaces and groups functions by their purpose ("net", >> "strings", >> > "arrays",=E2=80=A6) >> > * Promote SPL functionality ("spl_autoload_register", Data structures) >> to >> > proper >> > Core APIs by dropping the "SPL" prefix. >> > * Converts all resource based APIs (file, stream,=E2=80=A6) to Object = Oriented >> APIs >> > * Maybe find a way to share the standard library between multiple >> > implementations >> > of PHP (HipHop, Quercus, Phalanger). >> > >> > A better parser which is more maintainable and makes it easier to >> implement >> > language features every modern programming language has. >> > >> > * Slicing operators for Arrays (and Strings?) >> > * Splice Operator: splits an array into arguments for a function call. >> > Then we can finally remove call_user_func_array(). >> > * Optional Semicolons? I recently started doing some programming in Go >> and >> > I >> > really like this. >> > >> > Clean up the language: >> > >> > * Remove the old array() declaration syntax. >> > * Replace some keywords with syntax constructs. For example remove >> list() >> > and >> > use multi assignment syntax like $var1, $var2 =3D foo(); or remove the >> > array() >> > syntax. Makes names like "List" and "Array" usable as Userspace class >> names >> > again. >> > >> > Remove features which were made obsolete by the SPL: >> > >> > * __autoload() =E2=80=94 was made obsolete by spl_autoload_register() >> > * dir() =E2=80=94 DirectoryIterator, probably make dir() just return a >> > DirectoryIterator. >> > * probably more. >> > >> > Make some runtime features more consistent: >> > >> > * Autoloading for all kind of missing constants (function names, >> namespace >> > constants) >> > * Function importing just like Class importing >> > * Language Specification which makes it easier to maintain competing >> > implementations. >> > >> > There's probably a lot more we could do, but these are some things fro= m >> > right the >> > top of my head. >> > >> > >> > >> > -- >> > Christoph Hochstrasser >> > http://twitter.com/hochchristoph | http://christophh.net | >> > https://github.com/CHH >> > >> > >> > >> > Am Freitag, 13. Juli 2012 um 17:33 schrieb Anthony Ferrara: >> > >> > > 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 hea= d. >> > > >> > > 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 majo= r >> > > change that could have large benefits. >> > > >> > > 2. Make namespaces first-class meta-objects. That way, you could hav= e >> > > 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 ba= d >> > PHP's >> > > parser is, and how it's growing out of control. Perhaps this is a go= od >> > 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 >> > >> > >> > >> > -- >> > PHP Internals - PHP Runtime Development Mailing List >> > To unsubscribe, visit: http://www.php.net/unsub.php >> > >> > >> > > --e0cb4e43cff1699d9304c508a4f9--