Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:38660 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 10749 invoked from network); 27 Jun 2008 18:00:29 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 27 Jun 2008 18:00:29 -0000 Authentication-Results: pb1.pair.com header.from=andi@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=andi@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 212.25.124.162 as permitted sender) X-PHP-List-Original-Sender: andi@zend.com X-Host-Fingerprint: 212.25.124.162 mail.zend.com Windows 2000 SP4, XP SP1 Received: from [212.25.124.162] ([212.25.124.162:9240] helo=mx1.zend.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 3A/13-33826-ABA25684 for ; Fri, 27 Jun 2008 14:00:29 -0400 Received: from us-ex1.zend.com ([192.168.16.5]) by mx1.zend.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 27 Jun 2008 21:00:39 +0300 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Fri, 27 Jun 2008 11:00:18 -0700 Message-ID: <698DE66518E7CA45812BD18E807866CE01BD0FA5@us-ex1.zend.net> In-Reply-To: <48651D20.6050301@zend.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PHP-DEV] [PATCH] [RFC] Closures and lambda functions in PHP Thread-Index: AcjYd59vwROGWJ/mQkO+vBDaIrWktwAB8cZw References: <4856A547.3080801@gmx.net> <485A35A0.9050602@zend.com> <485AF253.2070400@gmx.net> <485B908D.7000106@zend.com> <4863C299.1080002@gmx.net> <48651D20.6050301@zend.com> To: "Dmitry Stogov" , "Christian Seiler" Cc: "php-dev List" , "Stas Malyshev" X-OriginalArrivalTime: 27 Jun 2008 18:00:39.0004 (UTC) FILETIME=[B50D19C0:01C8D87F] Subject: RE: [PHP-DEV] [PATCH] [RFC] Closures and lambda functions in PHP From: andi@zend.com ("Andi Gutmans") SSBhbSBub3Qgc3VyZSBJIGxpa2UgdGhlIGlkZWEgb2YgZXhwbGljaXQgJHRoaXMuDQpGcmFua2x5 LCBJIHJlYWxseSBkb3VidCB3ZSB3aWxsIGhhdmUgc2VyaW91cyByZXNvdXJjZSBpc3N1ZXMgYXMg YSByZXN1bHQgb2YgaG9sZGluZyBhIHJlZmVyZW5jZSB0byAkdGhpcyBmb3IgdG9vIGxvbmcuIEkg dGhpbmsgd2UncmUgbG9va2luZyB0byBzb2x2ZSBhIG5vbi1pc3N1ZS4NCg0KSSdkIHByZWZlciB0 byB0YWtlIHRoZSBhcHByb2FjaCB3aGljaCBpcyBlYXNpZXIgdG8gdXNlIGFuZCBjbGVhbmVyIGZy b20gYSB1c2VyIHBlcnNwZWN0aXZlLiBJZiB3ZSBldmVyIGRpc2NvdmVyIHRoaXMgaXMgYSBodWdl IGlzc3VlIHRoZW4gd2UgY2FuIGFsd2F5cyBhZGQgc3VwcG9ydCBmb3Igc29tZXRoaW5nIGxpa2Ug InN0YXRpYyBmdW5jdGlvbigpIHt9IiB3aGljaCBkb2VzIG5vdCBob2xkIGEgJHRoaXMgcmVmZXJl bmNlLg0KDQpBbmRpDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRG1p dHJ5IFN0b2dvdg0KPiBTZW50OiBGcmlkYXksIEp1bmUgMjcsIDIwMDggMTA6MDIgQU0NCj4gVG86 IENocmlzdGlhbiBTZWlsZXINCj4gQ2M6IHBocC1kZXYgTGlzdDsgQW5kaSBHdXRtYW5zOyBTdGFz IE1hbHlzaGV2DQo+IFN1YmplY3Q6IFJlOiBbUEhQLURFVl0gW1BBVENIXSBbUkZDXSBDbG9zdXJl cyBhbmQgbGFtYmRhIGZ1bmN0aW9ucyBpbiBQSFANCj4gDQo+IEhpIENocmlzdGlhbiwNCj4gDQo+ IEkgcmV3b3JrZWQgeW91ciBwYXRjaCBhIGxpdHRsZSBiaXQuDQo+IA0KPiAxKSBGaXhlZCByZWYv bm9yZWYgaXNzdWVzDQo+IA0KPiAyKSBFeHBsaWNpdCAkdGhpcyBwYXNzaW5nDQo+IA0KPiAkYSA9 IGZ1bmN0aW9uIGZvbygpIHVzZSAoJHRoaXMpIHt9DQo+IA0KPiAzKSBTb21lIGNvZGUgcmVvcmdh bml6YXRpb24gdG8gZW5jYXBzdWxhdGUgY2xvc3VyZSBpbXBsZW1lbnRhdGlvbi4NCj4gDQo+IFRo YW5rcy4gRG1pdHJ5Lg0KPiANCj4gQ2hyaXN0aWFuIFNlaWxlciB3cm90ZToNCj4gPiBIaSBEbWl0 cnksDQo+ID4NCj4gPj4gSSdtIGZpbmUgaWYgeW91J2xsIGltcHJvdmUgbXkgcGF0Y2ggKEl0J3Mg bWFpbmx5IHlvdXJzIDopDQo+ID4NCj4gPiBJIHVwZGF0ZWQgbXkgY2xvc3VyZXMgUkZDOiBodHRw Oi8vd2lraS5waHAubmV0L3JmYy9jbG9zdXJlcw0KPiA+DQo+ID4gSSBoYXZlIGJhc2VkIG15IG5l dyB2ZXJzaW9uIG9mIHRoZSBwYXRjaCBvbiB5b3VycyAoRG1pdHJ5KSwgYnV0IEkgbWFkZQ0KPiA+ IHNvbWUgY2hhbmdlcyB0byB0aGF0Og0KPiA+DQo+ID4gICogT2JqZWN0cyBpbnN0ZWFkIG9mIHJl c291cmNlcyBhcmUgdXNlZCwgdHdvIG5ldyBmaWxlcw0KPiA+ICAgIHplbmRfY2xvc3VyZXMuW2No XSBhcmUgYWRkZWQgd2hlcmUgdGhlIG5ldyBDbG9zdXJlIGNsYXNzDQo+ID4gICAgaXMgZGVmaW5l ZC4gQ3VycmVudGx5LCBpdCBjb250YWlucyBhIGR1bW15IF9fdG9TdHJpbmcgbWV0aG9kDQo+ID4g ICAgdGhhdCBpbiBmdXR1cmUgbWF5IGJlIGV4dGVuZGVkIHRvIHByb3ZpZGUgZW5oYW5jZWQgZGVi dWdnaW5nIGluZm8sDQo+ID4gICAgYWxzbyBmdXJ0aGVyIGFkZGl0aW9uYWwgY29vbCBzdHVmZiBj b3VsZCBiZSBhZGRlZCB0byBzdWNoIGENCj4gPiAgICBjbGFzcyBsYXRlciBvbi4gQnV0IEkgcHJl ZmVyIHRvIG9ubHkgYWRkIHRoZSBiYXNpYyBjbG9zdXJlDQo+ID4gICAgZnVuY3Rpb25hbGl0eSBh dCBmaXJzdCAtIHlvdSBjYW4gYWx3YXlzIGV4dGVuZCBpdCBvbmNlIGl0J3MgdGhlcmUuDQo+ID4N Cj4gPiAgKiBJIGhhdmUgKm5vdCogYWRkZWQgYW55IF9faW52b2tlKCkgbWFnaWMgdG8gbm9ybWFs IG9iamVjdHMuIFRoaXMgaXMNCj4gPiAgICBtYWlubHkgZHVlIHRvIHRoZSBzaW1wbGUgcmVhc29u IHRoYXQgYWRkaW5nIHRoYXQgd291bGQgbm90IGhlbHANCj4gPiAgICBhIGNsb3N1cmUgaW1wbGVt ZW50YXRpb24gYXQgYWxsLiBDbG9zdXJlcyBuZWVkIHNvbWUgZW5naW5lIGludGVybmFsDQo+ID4g ICAgbWFnaWMgKHVzZSBhIGR5bmFtaWNhbGx5IGNyZWF0ZWQgb3BfYXJyYXkgaW5zdGVhZCBvZiBs b29raW5nIG9uZSB1cCwNCj4gPiAgICBzZXR0aW5nIHRoZSBjb3JyZWN0IGNsYXNzIHNjb3BlIGFu ZCBzZXR0aW5nIHRoZSBjb3JyZWN0IEVHKHRoaXMpLiBBbmQNCj4gPiAgICBhcyBJIHNhaWQ6IEkg d2FudCB0byBzdGljayB3aXRoIHRoZSBjbG9zdXJlIGJhc2ljcyBmb3Igbm93Lg0KPiA+DQo+ID4g ICAgVGhhdCBzYWlkLCBJIGRvIGxpa2UgdGhlIHBvc3NpYmlsaXR5IG9mIGludm9raW5nIG9iamVj dHMgZGlyZWN0bHksIHNvDQo+ID4gICAgSSBzdWdnZXN0IHNvbWVvbmUgY3JlYXRlZCBhbiBhZGRp dGlvbmFsIHByb3Bvc2FsIGZvciB0aGF0Pw0KPiA+DQo+ID4gICogSSd2ZSBhZGRlZCBhIHBhdGNo IGZvciBQSFAgSEVBRCAoUEhQIDYuMCkuIFRoaXMgaXMgZHVlIHRvIHRoZSBmYWN0DQo+ID4gICAg dGhhdCBEbWl0cnkncyB2YXJpYW50IG9mIG15IHBhdGNoIGhhcyBmYXIgbGVzcyBpbnRlcnNlY3Rp b25zIHdpdGgNCj4gPiAgICB0aGUgdW5pY29kZSBmdW5jdGlvbmFsaXR5IHRoYW4gbXkgb3JpZ2lu YWwgcGF0Y2gsIHNvIGl0IHdhcyBxdWl0ZQ0KPiA+ICAgIHN0cmFpZ2h0LWZvcndhcmQgdG8gZG8g c28uDQo+ID4NCj4gPiAgKiBMZXhpY2FsIHZhcnMgYXJlIG5vdyBjb3BpZWQgaW5zdGVhZCBvZiBy ZWZlcmVuY2VkIGJ5IGRlZmF1bHQuIFVzaW5nDQo+ID4gICAgJiBpbiBmcm9udCBvZiB0aGUgdmFy LCB0aGUgYmVoYXZpb3VyIG1heSBiZSBjaGFuZ2VkLiBJIGFkZGVkIHRoYXQgaW4NCj4gPiAgICBv cmRlciB0byBkZW1vbnN0cmF0ZSB0aGF0IGJvdGggd2FzIHBvc3NpYmxlIGFuZCB0aGF0IGEgc2lt cGx5IGNoYW5nZQ0KPiA+ICAgIG9mIGdyYW1tYXIgc3VmZmljZXMuIEluIG15IGV5ZXMgdGhpcyBp cyB0aGUgbWFpbiBpc3N1ZSB3aGVyZSBhDQo+ID4gICAgZGlzY3Vzc2lvbiBoYXMgdG8gdGFrZSBw bGFjZSAoaS5lLiBjb3B5IG9yIHJlZmVyZW5jZSBieSBkZWZhdWx0Pw0KPiA+ICAgIHBvc3NpYmls aXR5IHRvIGNoYW5nZSBkZWZhdWx0IHZpYSBzeW50YXg/IHdoaWNoIGxleGljYWwgc3ludGF4PykN Cj4gPiAgICBiZWZvcmUgdGhlIHByb3Bvc2FsIGNhbiBiZSBhY2NlcHRlZC4NCj4gPg0KPiA+ICAq IEkgcHJvdmlkZWQgcGF0Y2hlcyBmb3IgYm90aCBsZXhpY2FsICR2YXIgYW5kIHVzZSAoJHZhcikg c3ludGF4ZXMuDQo+ID4NCj4gPiAgKiBJIHByb3ZpZGVkIGEgcGF0Y2ggdmFyaWFudCB0aGF0IG9u bHkgc3RvcmVzICR0aGlzIGlmICR0aGlzIGlzDQo+ID4gICAgZXhwbGljaXRlbHkgdXNlZCBpbnNp ZGUgYSBjbG9zdXJlIChvciBhIG5lc3RlZCBjbG9zdXJlIG9mIHRoYXQNCj4gPiAgICBjbG9zdXJl KS4gVGhpcyB3b3JrcyBzaW5jZSBpdCBpcyBwb3NzaWJsZSB0byBkZXRlY3Qgd2hldGhlciAkdGhp cw0KPiA+ICAgIGlzIHVzZWQgYXQgY29tcGlsZSB0aW1lLiBGb3IgdGhpcywgSSBoYXZlIGFkZGVk IGEgdGhpc191c2VkIGZsYWcNCj4gPiAgICB0byB0aGUgb3BfYXJyYXkgc3RydWN0dXJlLg0KPiA+ DQo+ID4gICogSSBhZGRlZCB0ZXN0cyAoWmVuZC90ZXN0cy9jbG9zdXJlc18qLnBocHQpIHRoYXQg ZW5zdXJlIHRoZSBjb3JyZWN0DQo+ID4gICAgYmVoYXZpb3VyIG9mIGNsb3N1cmVzLg0KPiA+DQo+ ID4gW05vdGUgdGhhdCBJIGNyZWF0ZWQgbXkgb3duIGxvY2FsIFNWTiByZXBvcyBmb3IgZGV2ZWxv cGluZyB0aGVzZQ0KPiA+IHBhdGNoZXMgYmVjYXVzZSBJIHdhcyBmZWQgdXAgd2l0aCBDVlMncyBp bmFiaWxpdHkgdG8gbG9jYWwgZGlmZnMgYW5kDQo+ID4gbG9jYWxseSBtYXJrIGZpbGVzIGFzIGFk ZGVkIHRvIGluY2x1ZGUgdGhlbSBpbiB0aGUgZGlmZnMuIEp1c3QgdG8NCj4gPiBleHBsYWluIHRo ZSBmb3JtYXQgb2YgdGhlIHBhdGNoLl0NCj4gPg0KPiA+IEFueXdheSwgZmVlbCBmcmVlIHRvIGRp c2N1c3MuDQo+ID4NCj4gPiBJbiBteSBleWVzLCB0aGUgZm9sbG93aW5nIHF1ZXN0aW9ucyBzaG91 bGQgYmUgYW5zd2VyZWQ6DQo+ID4NCj4gPiAgKiBEbyB5b3Ugd2FudCBjbG9zdXJlcyBpbiBQSFA/ DQo+ID4NCj4gPiAgICBJIGhhdmUgbm90IHNlZW4gYSBzaW5nbGUgbmVnYXRpdmUgcmVhY3Rpb24g dG8gbXkgcHJvcG9zYWwsIHNvIEkNCj4gPiAgICBhc3N1bWUgdGhlIGFuc3dlciB0byB0aGF0IGlz IHllcy4gOy0pDQo+ID4NCj4gPiAgKiBXaGljaCBzeW50YXggc2hvdWxkIGJlIHVzZWQgZm9yIGxl eGljYWwgdmFyaWFibGVzPyBTaG91bGQgcmVmZXJlbmNlcw0KPiA+ICAgIG9yIGNvcGllcyBiZSBj cmVhdGVkIGJ5IGRlZmF1bHQ/DQo+ID4NCj4gPiAgICBUaGlzIGlzIGZhciB0cmlja2llci4NCj4g Pg0KPiA+ICAgIEZpcnN0IG9mIGFsbDogVGhlcmUgbXVzdCAqYWx3YXlzKiBiZSB0aGUgX3Bvc3Np YmxpdHlfIHRvIGNyZWF0ZQ0KPiA+ICAgIHJlZmVyZW5jZXMsIGVsc2UgeW91IGNhbid0IGNhbGwg aXQgY2xvc3VyZXMuDQo+ID4NCj4gPiAgICBTZWNvbmQ6IEkgcHJlZmVyIHRoZSAnbGV4aWNhbCcg a2V5d29yZCwgYnV0IEkgY291bGQgbGl2ZSB3aXRoIHRoZQ0KPiA+ICAgIHVzZSBzb2x1dGlvbiBb ZnVuY3Rpb24gKCkgdXNlICgkLi4uKV0uDQo+ID4NCj4gPiAgICBUaGlyZDogVGhlcmUgYXJlIHNl dmVyYWwgYXJndW1lbnRzIGFnYWluc3QgZGVmYXVsdCByZWZlcmVuY2luZzoNCj4gPg0KPiA+ICAg ICAgKiAodXNlIHN5bnRheCkgQXMgdGhleSBsb29rIHNpbWlsYXIgdG8gcGFyYW1ldGVycyBhbmQg bm9ybWFsDQo+ID4gICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzIGFyZW4ndCBwYXNzZWQg YnkgcmVmLCB0aGlzIGNvdWxkIGJlIHF1aXRlDQo+ID4gICAgICAgICAgICAgICAgICAgICBvZGQu DQo+ID4gICAgICAqIExvb3AgaW5kZXggV1RGcyAoc2VlIHByb3Bvc2FsKQ0KPiA+ICAgICAgKiBT cGVlZD8gKFlvdSBhbHdheXMgcmVhZCB0aGF0IHJlZnMgYXJlIHNsb3dlciBpbiBQSFAgdGhhbiBu b3JtYWwNCj4gPiAgICAgICAgdmFyaWFibGUgY29waWVzLiBJcyB0aGF0IGFjdHVhbGx5IHRydWU/ KQ0KPiA+ICAgICAgKiBXaGlsZSBpdCBpcyBwb3NzaWJsZSB0byBzaW1wbHkgYWRkIGFuICYgaW4g ZnJvbnQgb2YgdGhlIHZhcmlhYmxlDQo+ID4gICAgICAgIG5hbWUgdG8gc3dpdGNoIHRvIHJlZnMg aW4gIm5vIHJlZnMgZGVmYXVsdCIgbW9kZSwgdGhlcmUgaXMgbm8NCj4gPiAgICAgICAgb2J2aW91 cyBzeW50YXggdG8gdXNlIGNvcGllcyBpbiAicmVmcyBkZWZhdWx0IiBtb2RlIG90aGVyIHRoYW4N Cj4gPiAgICAgICAgdW5zZXR0aW5nIHRoZSB2YXJpYWJsZSBpbiB0aGUgcGFyZW50IHNjb3BlIGlt bWVkaWF0ZWx5IGFmdGVyDQo+ID4gICAgICAgIGNsb3N1cmUgY3JlYXRpb24uDQo+ID4NCj4gPiAg ICBGb3VydGg6IFRoZXJlIGFyZSBzZXZlcmFsIGFyZ3VtZW50cyBmb3IgZGVmYXVsdCByZWZlcmVu Y2luZzoNCj4gPg0KPiA+ICAgICAgKiAobGV4aWNhbCBzeW50YXgpIGdsb2JhbCBhbHNvIGNyZWF0 ZXMgYSByZWZlcmVuY2UsIHdoeSBzaG91bGRuJ3QNCj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICBsZXhpY2FsPw0KPiA+ICAgICAgKiBPdGhlciBsYW5ndWFnZXMgKmFwcGVhciogdG8gZXhoaWJp dCBhIHZlcnkgc2ltaWxhciBiZWhhdmlvdXIgdG8NCj4gPiAgICAgICAgUEhQIGlmIFBIUCBjcmVh dGVkIHJlZmVyZW5jZXMuIFRoaXMgaXMgZHVlIHRvIHRoZSBmYWN0IHRoYXQNCj4gPiAgICAgICAg b3RoZXIgbGFuZ3VhZ2VzIGhhdmUgYSBkaWZmZXJlbnQgY29uY2VwdCBvZiBzY29wZSBhcyBQSFAN Cj4gPiAgICAgICAgZG9lcy4NCj4gPg0KPiA+ICAgIEFsdGhvdWdoIHRoZSBsaXN0IG9mIGFnYWlu c3QgYXJndW1lbnRzIGFwcGVhcnMgdG8gYmUgbG9uZ2VyLCBJIGRvDQo+ID4gICAgcHJlZmVyIHVz aW5nIHJlZmVyZW5jZXMgYnkgZGVmYXVsdCBuZXZlcnRoZWxlc3MuIEJ1dCB0aGF0J3MganVzdA0K PiA+ICAgIG15IHBlcnNvbmFsIG9waW5pb24uDQo+ID4NCj4gPiAgKiBBcmUgeW91IE9LIHdpdGgg dGhlIGNoYW5nZSB0aGF0ICR0aGlzIGlzIG9ubHkgc3RvcmVkIHdoZW4gbmVlZGVkPw0KPiA+DQo+ ID4gICAgSSBkb24ndCBzZWUgYSBwcm9ibGVtLiBEbWl0cnkgc2VlbXMgdG8gYmUgdmVyeSB0b3Vj aHkgKDstKSkgYWJvdXQNCj4gPiAgICBjaGFuZ2luZyBvcF9hcnJheXMgYnV0IGluIHRoaXMgY2Fz ZSBpdCdzIG9ubHkgYSBmbGFnIHNvIEkgZG9uJ3QNCj4gPiAgICBzZWUgYSBwcm9ibGVtIGZvciBv cGNvZGUgY2FjaGVzIChpbiBjb250cmFzdCB0byBhIEhhc2hUYWJsZSB3aGVyZQ0KPiA+ICAgIHRo ZSBvcGNvZGUgY2FjaGUgbXVzdCBhY3R1YWxseSBhZGQgY29kZSB0byBkdXBsaWNhdGUgdGhhdCB0 YWJsZSkuDQo+ID4NCj4gPiAgKiBEbyB5b3Ugd2FudCBjbG9zdXJlcyBpbiBQSFAgNS4zPw0KPiA+ DQo+ID4gICAgU2luY2UgdGhlIG1ham9yaXR5IG9mIGNvcmUgZGV2ZWxvcGVycyBhcHBlYXIgdG8g YmUgYWdhaW5zdCBpdCwgSQ0KPiA+ICAgIHByZXN1bWUgdGhlIGFuc3dlciBpcyBuby4NCj4gPg0K PiA+IEkgd2lsbCBwcm92aWRlIGEgcmV2aXNlZCBwYXRjaCB0aGF0IGluY29ycG9yYXRlcyB0aGUg cmVzdWx0cyBvZiB0aGUNCj4gPiBmb2xsb3dpbmcgZGlzY3Vzc2lvbiBmb3IgNV8zIGFuZCBIRUFE IG9uY2UgY29uc2Vuc3VzIG9yIGF0IGxlYXN0IGENCj4gPiBtYWpvcml0eSByZWdhcmRpbmcgdGhl IHJlbWFpbmluZyBpc3N1ZXMgaXMgcmVhY2hlZC4gSSB3aWxsIGFsc28NCj4gPiByZXdyaXRlIHRo ZSBwcm9wb3NhbCB0byByZWZsZWN0IHRoZSBkaXNjdXNzaW9uIHJlc3VsdHMgYW5kIGFkanVzdCB0 aGUgdGVzdHMuDQo+ID4gQWZ0ZXIgdGhhdCwgSSBob3BlIHRoYXQgc29tZW9uZSB3aWxsIGNvbW1p dCBhdCBsZWFzdCB0aGUgSEVBRCB2ZXJzaW9uLg0KPiA+DQo+ID4gUmVnYXJkcywNCj4gPiBDaHJp c3RpYW4NCg==