Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:64071 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 26350 invoked from network); 28 Nov 2012 10:58:03 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 28 Nov 2012 10:58:03 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=unknown; sender-id=unknown Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=unknown Received-SPF: unknown (pb1.pair.com: domain zend.com does not designate 209.85.216.49 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 209.85.216.49 mail-qa0-f49.google.com Received: from [209.85.216.49] ([209.85.216.49:44001] helo=mail-qa0-f49.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 60/60-23752-93EE5B05 for ; Wed, 28 Nov 2012 05:58:02 -0500 Received: by mail-qa0-f49.google.com with SMTP id c3so5301114qae.8 for ; Wed, 28 Nov 2012 02:57:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :x-gm-message-state; bh=gy869TYDgtSD8EEUhTpEgOXJTHpmgT58gi/LbikttC4=; b=DCbJwC3368OqXyjexM65L2YlEz788mx412NBo3UE29jNYrTKGDa6sqdNVT/uzVQWc1 dn2fTdFEOs3a0EttFRFzz3Vo9nvpr7DnJre6dWWHgapFbab05ttaG02ua8/gYO8UMCXc c2Vv1cSNQr1Mk3UKsKMRjcIK/KiosniG58YcOwgAWDq9NFNm1X95piv1JSFSzfkzl887 b7SDXKGgR1d2nVKMJP+YWFczYggALrtaTA//pl6BrQ0wJUmVf2Frc0ptQNaKJylYbxE0 rATPbzNgI6MOvnhtLeAVDmJSVm8Dt+t92JBOgiAmz1DcjdYJMdAkdNwPGeLNZnZ8p1j4 tNtA== MIME-Version: 1.0 Received: by 10.49.48.45 with SMTP id i13mr15911749qen.48.1354100278985; Wed, 28 Nov 2012 02:57:58 -0800 (PST) Received: by 10.49.74.133 with HTTP; Wed, 28 Nov 2012 02:57:58 -0800 (PST) Date: Wed, 28 Nov 2012 13:57:58 +0300 Message-ID: To: "nikita.ppv" , Xinchen Hui , derek , Yoram Bar Haim , PHP Internals , Zeev Suraski , Andi Gutmans Content-Type: multipart/alternative; boundary=047d7b6789641e860c04cf8c0ae1 X-Gm-Message-State: ALoCoQkKpDgu1vcHxhfew+5SQc5G007DB3ZFUnxVgZ7pGPUTRNSrBGFkZxOW0j7xeTnMb270S0sNeVxmexjTaX3pdUSxZOxsTjzHE6FoowoZ3bNzk/KQPTmxwVK/UhpvRC9ntv7vXT3f Subject: Generators Revisited From: dmitry@zend.com (Dmitry Stogov) --047d7b6789641e860c04cf8c0ae1 Content-Type: text/plain; charset=UTF-8 Hi I've tried to review the generators related changes made in PHP-5.5 and improve them from both consistency and performance points of view. The patch also makes a small performance improvement to PHP-5.5 in general, however, it changes some ZE internals that can be used by some extension (e.g. XDebug). You can find the list of changes in the UPGRADING file. http://pastebin.com/AT0SQhAH Please, review the patch and test it with your custom extensions. I would like to commit it on Friday morning. Objections? I also have some additional proposals: 1) EX(Ts) access optimization. With this patch it must be possible to access temporary variables using "execute_data" as the base pointer. "execute_data.Ts" might be removed at all. In general the same optimization might be done for EX(CVs) as well. 2) May be it makes sense to forbid return/yield usage in "finally" blocks using compile time error. Their behaviour is really unclear. Any thoughts? Thanks. Dmitry. --047d7b6789641e860c04cf8c0ae1--