Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92455 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 53788 invoked from network); 19 Apr 2016 13:22:37 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 19 Apr 2016 13:22:37 -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 40.107.65.122 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 40.107.65.122 mail-eopbgr650122.outbound.protection.outlook.com Received: from [40.107.65.122] ([40.107.65.122:3164] helo=na01-by2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 13/C1-43496-B1136175 for ; Tue, 19 Apr 2016 09:22:36 -0400 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=yDB1ClFi5m76DcGUWXmQJDqeTfrU0B/vZvKaBv6Lo0M=; b=rdhQ3l1Gir+3L0N4R+ksLmOddSUhVbdMa+7eJkqBdGS8UeVuyIvmjTzCBl0ppwGsjD63EyKHl3pBVMATrTL5YIqnEmK3SDDjJgNPKEMdbbhuHm8j4s3pwBjxpRFMQdcF5Xb3xGyY9eFZ5byQx1rDcgDFtuBfd+UMyW9Qckg4E/Q= Authentication-Results: lists.php.net; dkim=none (message not signed) header.d=none;lists.php.net; dmarc=none action=none header.from=zend.com; Received: from tpl2.home (92.62.57.172) by SN1PR0201MB1792.namprd02.prod.outlook.com (10.162.228.24) with Microsoft SMTP Server (TLS) id 15.1.466.19; Tue, 19 Apr 2016 13:22:31 +0000 To: Joe Watkins References: CC: PHP internals Message-ID: <5716310B.4060104@zend.com> Date: Tue, 19 Apr 2016 16:22:19 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------050303050007090703070908" X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: AM2PR03CA0022.eurprd03.prod.outlook.com (10.160.207.32) To SN1PR0201MB1792.namprd02.prod.outlook.com (10.162.228.24) X-MS-Office365-Filtering-Correlation-Id: be6f13c1-cbb1-43bb-ba06-08d36855a9b4 X-Microsoft-Exchange-Diagnostics: 1;SN1PR0201MB1792;2:siLzaE5jqZCNYsGP6OS3MxPBVm93X4MOZGYzGiQAI50aT5+zTP0qZzwov08XZpNXafhrWBOWKj4st4JbReGXAUAdhKdjr9FTtGWg6O8i3StNR8EImmV3tzOifTJx96GRey/xBUnpaX8b49WUFkRpwTDjJvpBOLX5D1p/PB7OHm+jgu6Zuw/cQgPPbB2K7hkL;3:mybrMBhhRblO6G945Q+fPPI9lgp3fq3cI11t/opqSUfWnmQo4ZyWAMsmTQM8fvEQSekmQ8i/TKZdcqj8srut43dohuU7a8j4nJnHQlM2QM4EeVWHVG7IXr4CXp/Y+HML;25:7zcWqf2SJUVuDm0/adbAGyca8NdegjleMzUh81wJACWV3BbP44HMiZwZN6t1ZS1c01ENqzCY2/mTmypMG6EOs/gMBAdNcWVJ7tvdy7EMb8OPvVse4juIQQ1sIozup2KrQmEdJ5rwCYgZ5BA8ztfa1klOqSgsndJlwSt/jX+T7rxEaB1TYO7NoN+/fyL6AVz46My3MNImcU2KdoI6DewkbdgB1sNK1QHQdZUh3rxBxYNwBJBJ1DWranup3CN8EwekBtKyhhTRUq7YAexStQ2OKBZWp7TmhJZpejGkPqAAb3E4Cn75Ey8q2BZKj2Px6Rvk7QegBNiXG7JenqAOfKtFvg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0201MB1792; X-Microsoft-Exchange-Diagnostics: 1;SN1PR0201MB1792;20:Vuc2n/Ut1YfIFPX/MGJTeZiPTjFBowZSaEareimVNzMex227shZBePhouXKUfSuHXJCCF39u2LwD0R8AEAAhOWkl4tmqDHI0j+ts6v1J7h5arZGALzZahafsOYQqA1pA94Uz3sbTe+/kZJaG89bD0V178+hob1a7wn+iglfaxuf7caim+67giPkxazgqAruNNd7GUusFgeG4YPGxERiY1/xvnv6pLiVSlwHjpJWo1c64aosTTaB1jodh2yvIVzETZf/W0I7JZilAWRL5IyVpdh/Rw94MXB+bMhddhuZ3pzKDGPtd0EGWXQ9Ascmri8CuwJqIRfWtVwV2evYXg/GTjheMJYrGSf0lLJ4vIYfhrSf8wi6pJ9yzuDJE2NYO17a+umX+/jcL+GXilDUpk6gx4RA42U5OMA+895KOMIQIO029rRJVrYJMQnZdRhiJQvplUKNhQvmtpu/ShpJu2BBXlrrdRC3OGYz9bNcMknK4UFu1XTRAoXfYzUMosdzdkyna;4:OF1BkzMhVeBYtJ4o2F1uX5Jyj8PXjBwuVeLOwDFl+2SfOTQ8n6GvLp/O1QMYZB5mpD/eevCBJWsfhZPB4CT8eX3KKMOpEwNDFAYyUgfY2ArebFnE/iGaeI0KLYL+k37sI1n/5IeHmqgzRoAQ2B35MJIeH8aKAofR9z0OZX7VqdOvZOC4n2rD5o4ZbRoXtZKKvaAEqHk/DrOKEYDOpS3d3ul8Bd/rfTUztvrqHc3GRVq2nQK87PwuCbe3SKlmuwkHZAUJdRfJG0DH//jHu9maRvaPsGXU0T3gcw3matKlsmmxGIEhG0QBFwanUAtbPr+D1yQFwMF0bEUJMc0WDCqMBecgFDIrndUwL8t25WRJBdLt7ukJIyEBkjywjzvvI2Gou4DU+qFjhOQpPBKsMYZtZw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101521026)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:SN1PR0201MB1792;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0201MB1792; X-Forefront-PRVS: 0917DFAC67 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(24454002)(377454003)(1096002)(16236675004)(2950100001)(586003)(189998001)(66066001)(65956001)(3846002)(15975445007)(77096005)(86362001)(64126003)(42186005)(92566002)(6116002)(87266999)(93886004)(19617315012)(36756003)(512874002)(19580405001)(80316001)(19580395003)(84326002)(33656002)(59896002)(5008740100001)(99136001)(54356999)(65816999)(50986999)(76176999)(561944003)(5004730100002)(4326007)(110136002)(2906002)(270700001)(83506001)(81166005);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR0201MB1792;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN1PR0201MB1792;23:+IuRzudRlDn9mnkGLno+L+mfk5fBr98Gc+y0xI0?= =?us-ascii?Q?VASu+XrwF7zEH5hfw1HzJVcQl0jl4k+PDNR50by14hL2XnBvn+cUo6Oa63N0?= =?us-ascii?Q?vaE5CnkgmAx5b3XlhmSW8tvVQstzZDfotSb7vl16ylPbAwitwtAWqSFYEkvd?= =?us-ascii?Q?cpV0aO+2vCHFsJDy38QmQV7wzKbZPLDsVKIDxOxVpYvhEPo+fSvlq3XsQZOK?= =?us-ascii?Q?B9h/OiQ8ckHz/kBqe5/2mE2yMc7VB39z/qUgqZdbIaWmdELLigCzJcpFyrEs?= =?us-ascii?Q?tqIAD1HOQjnmu7hnRSQOy64EwAZtIkZAT5aHRslf4c49gS15R6RHkDALmQgV?= =?us-ascii?Q?roHjT1HDiBeVfVsr1ZG/5oFtpMhWzy2cvN9JF8l3Ab9MGZzn067v/MdGhYhF?= =?us-ascii?Q?z5Sg6JwxRf1pTsIW3WdcFewSXhoInFXnFAKFHIy1r2w3aMAWzpb8DJrvVn4g?= =?us-ascii?Q?oXQnwDURRQv7Vhh0rBd/qY+yqAhf3/FyN9hnddnKnqYc557YwuulttaIjIP2?= =?us-ascii?Q?x7dcaMf+ri8tfr3ntSYHLaMS+Gi4efE9nCMrZBLhsFK6OveVgzwF8nynGZYG?= =?us-ascii?Q?T8JzQFSSsxV3Z877CuERlHyWRHN4kisex4awtUNzX4Zq3FMUcrDwT2cyV7q7?= =?us-ascii?Q?0Ksiymbz4C4AFfAvVhGr+VZlSrLB9XpUZIlIzqEk3sMh4sEwEqQF+LoqmojI?= =?us-ascii?Q?61zZB7BvQefPyBr5qodHgHcGn1z5/Rolv8Va7Kd9wUhtuCyRVS5BVKo65UU6?= =?us-ascii?Q?N4yS3nSypbVp/w7j2gNNB/YQHA5o9MW1Rz9RxDnkGfVemNH69VKn2GQ5301m?= =?us-ascii?Q?YdPfgIQ6ldhBbjWTe4AqpTHJXma1yDGBVCDoH3e4A2JXHqsDkwyZb/ZcZDaC?= =?us-ascii?Q?C8BkaiLc9AMF6vhbDQOHaTAjqiCLjO0BLQU+EszlirM3VdQXjf3zkHughcpC?= =?us-ascii?Q?FWxfSXcTW82cS/05B0fcn8AkiCBSuf4DcPqCSxZhRulISRtrpQg1uedcMa38?= =?us-ascii?Q?fylr/CM0JPCnLe6ttPinwArvMKN18iHWbClOCADkL22PnhUfCwds0y7BKMXy?= =?us-ascii?Q?PUz8znWDGDnP+qpO1v4YV7c97Wfutj3sZqvKVuAdfWG7EKs3BNcqYHo7Yqtj?= =?us-ascii?Q?VZcrxy72MDM4iyQbkE9QGVDSN5mznb+Dr?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR0201MB1792;5:iZuSFUV8GUQ/TXNYK1/qJmt6P9638x3nDuUsXZm9l8vJlEZMAlULL60fSCp0UHxYKPr8tOOl+sbCEOsP4M8OLGFWX0WezNs+f4RT1KgPgO0fB4h2QjQEWUwTPUvUdZPZk7rb2NGe+qy+1f6Fx15RZN9Q+HwHvjnawvgMPhtBm98JKPA4+keO+2jISZlKMA+M;24:olXzhXDlWPq3yXIX2XGqfEwTEZc20jKQgJsECA+1VZmdJLYm3wtVjQgtzDlJw+9Y1lhK/i3IhjvjC96Gv+VxvmT6hs9IoUXD/jE0rQBpS2Y=;7:hfZdvNAubhxAxvh9ErQ9X0jEm3AdJ1/EENkeRO73hmHMuDyMEt8MPSqiKUcgbfe/sljBqJjwXNvef8v9PrDvu/qJ5PbqImEjTyh054AOGT2I7BMq5NxL8N1+dB/RNIWxV3Q5EdWybe28qBd25NnMYIxwzO3q/HOMPw2Srq9r1Z3ZESi1nUSbUnGe9dsFEPANHrH2yvmPKWx4iGr+/LoJW9YSR6gxQij+SMOzeu40QOo= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2016 13:22:31.1199 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR0201MB1792 Subject: Re: [PHP-DEV] RFC: Functional Interfaces From: dmitry@zend.com (Dmitry Stogov) --------------050303050007090703070908 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit On 04/19/2016 03:52 PM, Joe Watkins wrote: > Oh, it's confusing text in the RFC, using the word "Interface" ... > that's meant as a placeholder for InterfaceName. > > Cheers > Joe > > On Tue, Apr 19, 2016 at 1:50 PM, Joe Watkins > wrote: > > Morning Dmitry, > > In your example, they will do the same thing. > > Anon classes don't have lexical scope, I have a patch for that, > and an RFC, I'm just tidying it. > OK. so this is not just a syntax sugar, but if you implement lexical scope for anonymous classes it's going to be sugar. Right? May be it's better to start from classes first? > > Even when anon classes do have lexical scope, there is value in > being able to implement these kinds of interfaces using only a > function. > What value? just shorter syntax? or anything else? > > The changes to the vm are restricted to a few lines, that's not > seriously a problem, is it !? > I hope no. I didn't understand all details of proposal and I didn't take a deep look into the code. > > I don't see where I extend closure with an interface ... > I meant new field zend_execute_data *interface in zend_closure structure. I thought the same might be implemented through anonymous classes. Thanks. Dmitry. > > > zend_do_inheritance_ex(type, zend_ce_closure, 1); > > zend_class_implements(type, 1, interface); > > Cheers > Joe > > On Tue, Apr 19, 2016 at 1:01 PM, Dmitry Stogov > wrote: > > interface IFoo { > public function method() : int; > } > > $cb1 = function () implements IFoo : int { > return 42; > }; > > $cb2 = new class implements IFoo { > function method() : int { > return 42; > } > }; > ?> > > Are $cb1 and $cb2 going to be the same (do the same)? > Is this just a new syntax sugar, or a really new feature? > > According to implementation, I think, you shouldn't extend > "zend_closure" with "interface". > If this is a sugar, lets implement it as a sugar (without VM > changes). > > But may be I didn't understand the idea at all :) > > Thanks. Dmitry. > > > ________________________________________ > From: Joe Watkins > > Sent: Monday, April 18, 2016 13:22 > To: PHP internals > Subject: [PHP-DEV] RFC: Functional Interfaces > > Morning Internals, > > Please review the following RFC: > > https://wiki.php.net/rfc/functional-interfaces > > An implementation is provided, and is testable on 3v4l. > > Review of the implementation from those of you that do > that would be > good :) > > Cheers > Joe > > > --------------050303050007090703070908--