Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:72661 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 92174 invoked from network); 17 Feb 2014 18:19:57 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 17 Feb 2014 18:19:57 -0000 Authentication-Results: pb1.pair.com smtp.mail=kalle.php@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=kalle.php@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.215.171 as permitted sender) X-PHP-List-Original-Sender: kalle.php@gmail.com X-Host-Fingerprint: 209.85.215.171 mail-ea0-f171.google.com Received: from [209.85.215.171] ([209.85.215.171:33240] helo=mail-ea0-f171.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 57/E5-64799-CC252035 for ; Mon, 17 Feb 2014 13:19:56 -0500 Received: by mail-ea0-f171.google.com with SMTP id f15so7336782eak.2 for ; Mon, 17 Feb 2014 10:19:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=references:mime-version:in-reply-to:content-type :content-transfer-encoding:message-id:cc:from:subject:date:to; bh=rHWariZyEm/YUnD3ALwLXthgWqparnWv4UchMYQIuuw=; b=gwYI1jOAdlgSD51a8S7MU8yyZmcjfkKO0hxkfZnxjAkTcDFpPiXylaDka97WqOuZfL 9MI45aXA1vfimNsRIZqBXSkrNZZ3WJtoI1M5WAGtoTjiuBy++spNcHaxzpiIr5D27W0a UN+DSyXUo2Kad+A7hm1XR/3XjLbyfSjxoDpVSVmqAIl7CAuzHmx6iP81gGuksym467mu 7bneKo3n22XmeKYfRnDXAGif9epEyI7PRGrE4gql9Ds/Nnjxmuw0C/ZXoSaUh9lVbqEs pW9yhVWGVWrEdOKjboN3cj8Mol0u3uHH1ST9/tYx29EWtiZ9HPJjvcPnylm7rOG89fPH KZsw== X-Received: by 10.15.48.1 with SMTP id g1mr3840678eew.51.1392661193369; Mon, 17 Feb 2014 10:19:53 -0800 (PST) Received: from [192.168.0.102] (cm-84.210.46.128.getinternet.no. [84.210.46.128]) by mx.google.com with ESMTPSA id i43sm60271786eeu.13.2014.02.17.10.19.52 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 17 Feb 2014 10:19:52 -0800 (PST) References: Mime-Version: 1.0 (1.0) In-Reply-To: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Message-ID: <64B69E1C-52D3-4408-AC2D-47078466928F@gmail.com> Cc: Amaury Bouchard , Pierre Joye , PHP internals X-Mailer: iPhone Mail (11B554a) Date: Mon, 17 Feb 2014 19:19:48 +0100 To: "guilhermeblanco@gmail.com" Subject: Re: [PHP-DEV] my take on PHP 6, part 2 From: kalle.php@gmail.com (Kalle Sommer Nielsen) Q 0 Sendt fra min iPhone > Den 17/02/2014 kl. 18.08 skrev "guilhermeblanco@gmail.com" : >=20 > We could all look of what users are willing for too... there was a thread > on Reddit about it. > Here was my comment: > http://www.reddit.com/r/PHP/comments/1iw0cj/what_would_you_change_about_ph= p_if_you_could/cb9rzw4 >=20 > Here is the comment for lazy readers. >=20 >=20 > My suggestion back in 2011 was to rewrite Zend Engine to accommodate a few= > things that people are considering as must-haves nowadays. Based on > history, each ZE is rewritten after every 5 years (1996 - 2001 for ZE1, > 2001 - 2005 for ZE2), which hints we may be in a need to reevaluate curren= t > code and plan support for next 5 years. >=20 > A couple of things to motivate: >=20 > - Native Unicode support > - Make opcode cache native > - Better garbage collector > - Add basic support for interceptors (preConstruct, postDestroy, > aroundInvoke) > - Operator overloading, allowing things like Comparable interface > - Attempt to simplify language operators/keywords/symbols > - Native ctype support (no, not the current supported one. Look for its > support in Python) > - With better opcache and ctype, also add better dl(), completely > removing the need to have so many extensions in core > - Remove "global" support > - Errors to exceptions > - Consistent exception messages > - Scalar type hinting > - Named Parameters > - Annotations > - Default class resolution/loading (aka. Native PSR-0 support) > - Remove error suppression (@ operator) > - C# style mutators and accessors > - Comparable interface > - Collection, Map, Set, List, Bag > - Namespace visibility > - Namespace Variables > - Namespace Reflection API > - Drop optional property/method visibility support (make them required) > - Polymorphism (aka. method overloading) > - Virtual methods > - pecl_http into core (considering better dl() item isn't accepted) > - Previous item would lead to complete removal of superglobals > - Normalize overall current/future design for the language (why > __toString, __wakeup, __sleep vs. Jsonable or Serializable interfaces?) > - Primitive types (enhance SplInt et al. and make them native, with > actual _* required methods and discard nice to have ones) > - Add valuable to these primitive types (oh, and make the default > parameter ordering. Not everyone would love to keep using named paramete= rs > over and over) > - Make native functions support Spl* instances (ie.: substr(new > SplString('foobar'), 0, 3)) as a beginning to remove overall functions > support > - "Strict" variable types (relies on previous 2: type hinting, type > inference, type casting, return types. Quotes were added because they wo= uld > be inferred, not declared. That would force assignments to validate type= s, > such as $a =3D1; $a=3Dfalse; would throw an exception because you're cha= nging > variable type) > - Remove functions from global namespace > - Threads support (no, don't tell me about pthreads extension) > - Shorthand functions declaration somehow > - Get rid of aliased functions > - Basically apply Poka-Yoke principle to the language. There should be > only one way of doing a given action >=20 > Hm... I think that's enough for now! =3D) >=20 > Cheers, >=20 >=20 >=20 >> On Mon, Feb 17, 2014 at 5:39 AM, Amaury Bouchard wrot= e: >>=20 >> Before opening a new thread about JIT, I have one simple question. >> The wiki page created by Pierre talks about LibJIT. This library has an >> integrated interpreter (for platforms where JIT is not available). I don'= t >> know anything about the speed of this interpreter, but maybe it could be >> interresting to evaluate it as the lone interpreter in the PHP engine. Is= >> anyone thinked about that? >>=20 >>=20 >> 2014-02-17 7:28 GMT+01:00 Pierre Joye : >>=20 >>> hi, >>>=20 >>> I put my thoughts and summary of the recent discussions about what >>> could be PHP 6 here: >>>=20 >>> https://wiki.php.net/ideas/php6 >>>=20 >>> Things like "we should name it php7" has not been covered, for one >>> obvious reasons. >>>=20 >>> It is not a TODO list but a list of proposals I would like to see us >>> discuss, work on, push harder. They are features, changes, etc. I have >>> been hearing for years and things we should really give more >>> attention. >>>=20 >>> Please do not mass reply to this thread but prefer to create one new >>> thread per topic. Who knows, we may get enough input to create one >>> wiki page per topic. And if you are lucky enough, we may even have >>> some working groups for each of them? >>>=20 >>> Happy reading, comments, feedback and the likes welcome! >>>=20 >>>=20 >>> Cheers, >>> -- >>> Pierre >>>=20 >>> @pierrejoye | http://www.libgd.org >>>=20 >>> -- >>> PHP Internals - PHP Runtime Development Mailing List >>> To unsubscribe, visit: http://www.php.net/unsub.php >=20 >=20 >=20 > --=20 > Guilherme Blanco > MSN: guilhermeblanco@hotmail.com > GTalk: guilhermeblanco > Toronto - ON/Canada