Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92617 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 28569 invoked from network); 21 Apr 2016 22:52:20 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Apr 2016 22:52:20 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 157.56.111.113 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 157.56.111.113 mail-bn1bon0113.outbound.protection.outlook.com Received: from [157.56.111.113] ([157.56.111.113:39076] helo=na01-bn1-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B9/99-14036-2A959175 for ; Thu, 21 Apr 2016 18:52:18 -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=wm3ulbDNRB7nw4u4djvwu+L5Z0jyNUFSucSA5dAn3VQ=; b=sWI41yTXN17PIpJl9S1tJZZr7n2SUX23h6otNvTM8gZyjg+lr4otQmmdR/Iqg9DpYYJdMz9uWN1mSbIswygh9UbfKYKP3uElb9J9TudSXYtxpAeEUfnecLLWpelMQSsB3Xihpyehahm+xNrV6BYbMrczXvvU/+dvIGBi3FuwG4Y= 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 CY1PR0201MB1788.namprd02.prod.outlook.com (10.163.55.21) with Microsoft SMTP Server (TLS) id 15.1.466.19; Thu, 21 Apr 2016 22:52:13 +0000 To: Benjamin Eberlei , PHP internals list References: Message-ID: <5719598E.4000006@zend.com> Date: Fri, 22 Apr 2016 01:51:58 +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="------------050801040402000502010507" X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: AM4PR01CA0038.eurprd01.prod.exchangelabs.com (10.164.74.176) To CY1PR0201MB1788.namprd02.prod.outlook.com (10.163.55.21) X-MS-Office365-Filtering-Correlation-Id: a92d3dc2-e7b4-4d44-c411-08d36a379522 X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1788;2:PupRRV9bXC2uZELGBQ8NzcSGFfy78k1hngeLkN9ce8Mg1G/qxa9NcRVt/oaJfu9i+t9vbQzTPoM5QCkpH+t+X5vZBoJzD2aADQSklrGP0Q2dM0aNdbs/1OdqlNrFQ3SGKZ04fmlV6Xi448G5WlzWeb7EQhio/AhyXVn+0xq6OUS0DsmqTOhuSF/9aDUo2hTv;3:m1butTF1SkRBvzwERpOL0ER4dwy4PJ99pYYw86a+LFwiPsTnlGeXgeypU73dP0+hCRgkjqI5t99mcLq3yj+Nt8yT+FGSWjh/70GAvqgMOuaYTjQ7hjFIN28r2KqI+ZeB;25:Lcuxs8S7vM7ICTlNH7K7jPf+Z8qioKJjjDIKlMaEIyObjyO8kSEZZUNT7RVP00tRxffLj72zZAIUNLXJ282kfk9m+qRImrJciUkOB6vLmIajOc2Ugx8EJH7O1YNhJim1HRJ1oYVMQM8O0zvy35AmBQ5z5vU9ZPao0Ua0Yv7OjO0igETsYvtWzOookjs36uDY92dqK3KfjC/3cuX2qyvxPhj5oF0rH8DQ/LOxoKtWoatC/m2khoBcGy0awbNpFL9PHWfcfTHNqDwxfGFs557TOMA4qlE1/+xcIfAr2AbTaL5LSJ7pFi27GP3N8zaC0TkYATNjmXyB6qu1R6Z8i+J1Og== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0201MB1788; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1788;20:J2PAGa3xg4y2fCdCkFEH+bwf6cY3KC4lBEWLrMtbCTkPEXX2fCiaLfq3Pm7AkQzLDutnDs24t0+EtkFylttLk5ALYT2VMfo4vnH1AM9lMG7bd3N6kfOZQzCbJa/k4P7Bb50vAS+oja+tCXPPvjNKoVvOIzRj7MimkbA/aCNWwNYfXzKX/z1rtWi1dGXqsNKZ/AbI71/DHFiOmrx2SDiHfbTK+45Z8UIgeFrdPu0Z1Q4UP9+8MSQ5XHQr+P/Sni8r/GHehqMzWbtH1BkfscIQmzeCdv+xCk/QYd4JQJxi5pbF8nVQUuxSOWtEYnQZm/0n36gpQnWGhj1F8HR6Z2Du4WhXyAJbyQD8OazMM+vjVyFbevwY7pKDn/xbFt2UQp+TmPChlnmPUTTYV8mHC2+26LXpB9HfAnUVRRrcCt83cQMBHMDYE4UK1VK+HyeiPdKtxzTe49clWMCUXq2ZoJGm2IVBg/GQ8xvVlPe4V8PfrqY9byPlFFDJafANEZm7LNIp;4:aJ9daw8176LWxd8o/9ACiBZ60lKj2HvR/h4Xy1n0JtX1izHCCkuodhYt/aK/52kzjooIOuhEYGuJwyCumuhiwQJ944nQF40KD8Tvs0ITjEyxbrrxeLh8SUbPW+s09FA1OnKczhzeT1U9YtAVXo+8HufIjsUbAHAeWybU4Y2iHErAXT03N5ts5OGgL/S/jQCo6d13VL7z8Hcn2zxwm283GvbdOtoP7MyUqDYCVxjgj1l6u5XwYlgASFaZTTQjIp3ZE/B/lNXZiiUu/Aa+hiZKtimFnrboYKhg22p5a9MANwT1qrQ3bTnr844d5A4zGGSrdGR1Bl8BEY8jzKNfziVMUIBl4pAqTtRjWb/6Gt3vAflId9MMuXkCokhqogW84z56mr4OhCA9zVp/dR8uCyTHWA== 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)(10201501046)(3002001);SRVR:CY1PR0201MB1788;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0201MB1788; X-Forefront-PRVS: 091949432C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(24454002)(377454003)(36756003)(107886002)(5004730100002)(4001350100001)(65816999)(99136001)(54356999)(87266999)(50986999)(86362001)(6116002)(76176999)(42186005)(586003)(5008740100001)(92566002)(19580405001)(19617315012)(19580395003)(64126003)(5001770100001)(81166005)(83506001)(189998001)(77096005)(33656002)(15975445007)(65956001)(270700001)(66066001)(16236675004)(2950100001)(512874002);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR0201MB1788;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0201MB1788;23:VTslRIhN8sKkx4a0C9bQudveaLv3uAcu2ybZr3t?= =?us-ascii?Q?b638yIRoWJdqluwVoQQNyr7r0Ubn7lWV0V8GJW8d6s7fDZKCdxdKfj3xT56A?= =?us-ascii?Q?ap8f0w+yxj1bvvcwf0KwDHpJOOdbMCjWLk51M3Q7nMM8dzBpX+N3tKOlN274?= =?us-ascii?Q?+CLZkkdQ1y1XHvRkXcCph+fQAClXg1Up28o3WxtDepLDeAsagQ1bc66e/AtY?= =?us-ascii?Q?NrWQsHGIw8JpK6oqQJVqw1tiUA+EDbZrcPHXAolFxWkrZNwPCFIT1d7GgpTj?= =?us-ascii?Q?gbMERiX6zO+uHKahMN/RuSl0Fw4P6b97ZAQFyQUNYwuFaJ5sZ+zdp6OLZoAh?= =?us-ascii?Q?bx26pA0166rb3Q7zh2nkGAZc6e5x5ukFdD9UidUDTILbBJTIrst9vf7uTrU2?= =?us-ascii?Q?voNn/lQi43hDM7QW77gfwe/BKFh4mLABl1YPDWsLpShIGAUU966oXlKaZ8GR?= =?us-ascii?Q?XSCYOjHlDI/Tso+UzvG1jdb9RQ+XQsRPyHztq1Gt5afdsyWhTBZHoe9gSwif?= =?us-ascii?Q?IoKDTWh1k9iA4hDvh7smTy6wtl59m3eVa1p0tNGvR4TZFi38P+XIMZmhDg8Z?= =?us-ascii?Q?Lor11RMk9xvOFbVpT1O15yL9tO3ER38FYchLlse/4i+/qkpa4LTNJwGpvMxz?= =?us-ascii?Q?FgHtJR7b6N4Z4LmKuSHBTMJJMFt1ypMNX6Pz68yRQ75Zp8OBQD+FwKaoUAbh?= =?us-ascii?Q?Ul47EoKGx2YDG68KS4jEAAX0MXQJZaG97zgbjUapHU+NFTEKODzeYUVKe0WF?= =?us-ascii?Q?u+UZqwe4KL8Q8EdhfYHbc9YQ2Wg5wqWfQ5cBc9Ui/VMaVIts5frWtEzu0kDW?= =?us-ascii?Q?hLzMzcp2tAuacaAwonRltu4vuMLHTla9ER96jFxhtXqMliPej0clbjPO4XO7?= =?us-ascii?Q?9T/qqX+GPPdWnBZammwGUXEl5TRbPT3NtphI6yC6eWF14UCtuZJ/VkW+topb?= =?us-ascii?Q?jPw0LzvUEl4lGkZUjm/hYycfQDfSSciqWs2nYcVhaa3WZRH7QX5xkybJM/gh?= =?us-ascii?Q?ufT6GYn/BYYGULrRhvtLfatInMIg4VoO0/MtKMWkTAHz0Rg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1788;5:7sS96K7/Esm/p+eHWsBssZ08dPoM5L12GY8k+onkLejXr2eHv4nWNH6z/96VxKheNIrUoMnUT/U1Ah+grnFtZZHXIwK1nZ5bM6FG1en68RyiddBkC4ca9ACtJjfMG9PAFe3+mHF841R79QQBDouWccSigGtn1t29sFdNS9RF3H0yHFl0n7hZolyEF5BmQFky;24:AilZzzbbJgOxiiFx3dDvl14Zjn0bWWwzPoiCvx5Oz2HYsJM6V/E2LDO6bcPrhXdQ+MAmNL94Orb4NS+sRnsQOLNgCQeXDgqlbwb0R4nif0E=;7:bm/3u4pAyQGHrWRXn/H5PJSmR6uLZCfx9DlMloyeNZmdMuokoJvBKlwPw5rE23w2KqmVlkzwAyWX7I/r5jOxNUS4KzQPS7mo3QVrJ7eORbGvSa89UQ7w4LWD5XTxnaLhIt1WcScSR+5sfY/d/aXunFaXDeLmpc39MjI4fStmNi/h/M1fe+dk2W9GQpX8wNGMbNpfI+ZmldkYqaOUZxQJ1X1w/SVWYrOhQAXhF0ndhas= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2016 22:52:13.3919 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0201MB1788 Subject: Re: [PHP-DEV] [RFC] PHP Attributes From: dmitry@zend.com (Dmitry Stogov) --------------050801040402000502010507 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit On 04/22/2016 01:03 AM, Benjamin Eberlei wrote: > > On Thu, Apr 21, 2016 at 11:13 PM, Dmitry Stogov > wrote: > > Hi, > > > I would like to present an RFC proposing support for native > annotation. > > The naming, syntax and behavior are mostly influenced by HHVM > Hack, but not exactly the same. > > The most interesting difference is an ability to use arbitrary PHP > expressions as attribute values. > > These expressions are not evaluated, but stored as Abstract Syntax > Trees, and later may be accessed (node by node) in PHP extensions, > preprocessors and PHP scripts their selves. I think this ability > may be useful for "Design By Contract", other formal verification > systems, Aspect Oriented Programming, etc > > > https://wiki.php.net/rfc/attributes > > > Note that this approach is going to be native, in contrast to > doc-comment approach that uses not well defined syntax, and even > not parsed by PHP itself. > > > Additional ideas, endorsement and criticism are welcome. > > > I love it! > > Syntax is good, and i like that it just returns plain arrays. > Everything else (more formal) can be added on top by Doctrine > Annotations for example. thanks for support :) > > About expressions, isn't there an ambigoutiy? <> is a "plain" > name, value based attribute. But it could also be an ast\node of a > function call to "test(1)" even in AST scalars are scalars. so <> would return: ast\node "+" with two children int(1) and int(2). > I am wondering if they shouldn't get their own start/end signs to > clear that up, <<> vs <>. no need for extra complication. Thanks. Dmitry. --------------050801040402000502010507--