Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:90834 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 16674 invoked from network); 22 Jan 2016 14:44:08 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Jan 2016 14:44:08 -0000 Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 207.46.100.148 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 207.46.100.148 mail-by2on0148.outbound.protection.outlook.com Received: from [207.46.100.148] ([207.46.100.148:32400] helo=na01-by2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 62/95-12955-63042A65 for ; Fri, 22 Jan 2016 09:44:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=OatQN2d/MoMxpzsLLo8kDRQUjWy2QCZKHKZWeE+NnfI=; b=48Pc7a/xaj00fBR6V2ZVg8E9oi2GtzTmsoFFVWkVL+TuMnSYYIGw8qJiLkngZppb8pz8rHOXQYby8cOuo+oODrBxEy4jopDpLt3byL3tO73yAmT5e6qqgUAGcT9xjU1zt8izYisE59KsWVr661E1YOAUby8rnvXth+CEcMT+hxI= Received: from BY2PR0201MB1784.namprd02.prod.outlook.com (10.163.72.26) by BY2PR0201MB1782.namprd02.prod.outlook.com (10.163.72.24) with Microsoft SMTP Server (TLS) id 15.1.365.19; Fri, 22 Jan 2016 14:43:57 +0000 Received: from BY2PR0201MB1784.namprd02.prod.outlook.com ([10.163.72.26]) by BY2PR0201MB1784.namprd02.prod.outlook.com ([10.163.72.26]) with mapi id 15.01.0365.024; Fri, 22 Jan 2016 14:43:56 +0000 To: Nikita Popov , Bob Weinand CC: PHP internals list Thread-Topic: Reusing main VM stack for generators Thread-Index: AQHRVSI3vIL1Hv0JdU6EUgk0rlxR+A== Date: Fri, 22 Jan 2016 14:43:56 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=dmitry@zend.com; x-originating-ip: [92.62.57.172] x-microsoft-exchange-diagnostics: 1;BY2PR0201MB1782;5:BCHxQ6JJRF7VWAK6iEOYJgtJ9vsfxYpLQ95Wn4ZsXG67Dt4rX2qXqQJgvDDmUbQ5rzkQ0Kaxkw0XT46hssyTrJWnbd2uETUkfiaAfKn58zLh9ohFbaRSIao7TgiG/xHZRYnWNqTZkDHoTUXzNlf1OA==;24:emOHa8p9zuWhQciYuE1xIiBda6289eEv5Ru/IKuB/f0+BigR7Bby7Zuz2NZWZZLM2kgrd/rQKfs1yvXJUotJLnKQQjjYXX8l/zHA+KiA75M= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1782; x-ms-office365-filtering-correlation-id: e2c1266d-fb94-4aa4-fb9e-08d3233a751c x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(10201501046);SRVR:BY2PR0201MB1782;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1782; x-forefront-prvs: 08296C9B35 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(189002)(199003)(74316001)(106356001)(122556002)(50986999)(40100003)(86362001)(106116001)(105586002)(87936001)(92566002)(5004730100002)(54356999)(10400500002)(66066001)(99286002)(97736004)(102836003)(15975445007)(6116002)(2900100001)(229853001)(586003)(19627405001)(4326007)(3846002)(101416001)(1096002)(5008740100001)(19580395003)(16236675004)(33656002)(5001960100002)(5002640100001)(81156007)(19617315012)(76576001)(19625215002)(5003600100002)(189998001)(2906002)(5001770100001)(1220700001)(77096005);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0201MB1782;H:BY2PR0201MB1784.namprd02.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; received-spf: None (protection.outlook.com: zend.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: multipart/alternative; boundary="_000_BY2PR0201MB1784BD53764ED5DDD21D1DABBFC40BY2PR0201MB1784_" MIME-Version: 1.0 X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2016 14:43:56.5374 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 32210298-c08b-4829-8097-6b12c025a892 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB1782 Subject: Reusing main VM stack for generators From: dmitry@zend.com (Dmitry Stogov) --_000_BY2PR0201MB1784BD53764ED5DDD21D1DABBFC40BY2PR0201MB1784_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, Could you please, take a look into the PoC. It's incomplete, but may be you get ideas how to fix this. https://gist.github.com/dstogov/285024375d15cacf2a9b Few tests are failed, because YIELD may be used as expression in nested cal= ls (between INIT_FCALL/DO_FCALL), and the caller function restores EG(vm_st= ack_top), loosing and overwriting that active frame. valid(); $gen->send(0)) { var_dump($gen->current()); } ?> Thanks. Dmitry. --_000_BY2PR0201MB1784BD53764ED5DDD21D1DABBFC40BY2PR0201MB1784_--