Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92786 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 74828 invoked from network); 26 Apr 2016 14:31:01 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 26 Apr 2016 14:31:01 -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.116 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 157.56.111.116 mail-bn1bon0116.outbound.protection.outlook.com Received: from [157.56.111.116] ([157.56.111.116:45412] helo=na01-bn1-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 3D/71-02401-2AB7F175 for ; Tue, 26 Apr 2016 10:30:59 -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=PbMWMxwL1h51EOtq/6RxQSXcAunF/cjPiIo2SW9PI9U=; b=oeIRH67ilFRgqMzq9JyB6nVico5g5Q9kjcnGR4FZcquG8aUQzzvVO+ULHTNTP4wqHCc6a08CYnww7a6vWCWaRC7y1lr2MRx9ofzDlHKvvSNG9m9wycDoOhKDyLg+ilNd50zjXXLU16T66fOFnJodl+Z8mx2yGPP4gSSuFKSJJcM= Authentication-Results: pthreads.org; dkim=none (message not signed) header.d=none;pthreads.org; dmarc=none action=none header.from=zend.com; Received: from tpl2.home (92.62.57.172) by CY1PR0201MB1785.namprd02.prod.outlook.com (10.163.55.18) with Microsoft SMTP Server (TLS) id 15.1.477.8; Tue, 26 Apr 2016 14:30:53 +0000 To: Bob Weinand References: CC: Levi Morrison , internals , Joe Watkins Message-ID: <571F7B91.2030102@zend.com> Date: Tue, 26 Apr 2016 17:30:41 +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: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: AM2PR09CA0009.eurprd09.prod.outlook.com (10.161.22.147) To CY1PR0201MB1785.namprd02.prod.outlook.com (10.163.55.18) X-MS-Office365-Filtering-Correlation-Id: 386bc719-1047-48a5-a03e-08d36ddf5fe5 X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1785;2:gv1f3A+pxFvXZl3Jp5Z1cgBrEhx95gP70j6jkm7PgrGmJZt4qJYuLmjr6mr9EzEbtOzemjrSPtAEpnZ6DDm+/JuNnl/gJRHR4JPLV/79rngK3m7T9c6d6QAM41YKRciu46Al6JKIrejYkhLhoFC41Dw0tInIOfQ93NK3wm9TCPBUoSE/BhTtSO4VBxyX65IS;3:q/iWONHgSMUz8LPmXOn0KVNGMTKl0+LhwH80pNZOeMH75RfeGSw/4+2+NgYaozi7EsAFGs87virRalhcV33fAUoQk2g/w5PDtYp+rDUHyXwo8zO7vmD3n3a+UnMf2mas X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0201MB1785; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1785;25:u2xuXuXcCTMOd+moHaiYN77iFBRyfp3UtzamTUFLMXIT1FjMNc+Z/vB+GIpp49FypzzpHeXIaCefwiyngNKhiZM6Log2WNZ6UVsE4h5Mhj2muJTBUSpKCZ87s7MmSt+TU9Ru5oz7JVT61uEBGxk3eB80rf16px9XBEYGKGf9HQmnw0scJ9EBmNW+ShcQVMaJjFRjeWgzdPWCVVg4m9mVxidlDOlzE6gH6Q6NEecRvffvZFVJsVTeJFdEz603Tsi30kptjCGk7ceQt4BSy8xJFOPiZuM/4lsiWGoB5wBqGfxiZeTvjHZgXt19yfFk7g8G8NLpsy/gUWtUEFGyWRlyxyNJEhq6LwEHF3/6fvMj+UHZMQffwHTKYW4yDUMuGA8VfqAk2Pr/xSJFWpwThVz+BaRmWE94S5AFJoXSCKgTSS5I79QFtY/g+uPyTnKEF5F3gvAyve9QhKIeJ85Wh6adlYBWr3yZs2pAwD66ym4wfhXWytYXhKMbgRn44o8LpJ866daZCEKfnFOoWkiNKlEyNYzVW9+jBejTJAbdTHKh9j9pyloTr8aKDydcCbrgP/nAh8pQHyH/LhkfqSGo0pRUGaC6MLXWNADsnxvxQF4z0RrBDthOtYCOmteZYojnEPtmb4a/Gq0wO9obUSF8wXIqwVDQANjWRthxBk6WLt6vxBAUews1NR0FBg65U8upP6oKLacQh4WaMQTDBMNVxU29XqesZhCbHz7cIcdYDq655S1d2Ie/mzcgygkzQxY6PYP6 X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1785;20:MEwqwivLaaw/l6/bocwgNW+5STIhWWI0AhQ/9+NZbfbKsr1xG8kutf48EvpSFr+DJQbeUt9yuBsrfNJlDIp42dRvx612l7qA/wnEUwNQ+4JaYl1Tsd2kIMWiHLuar769XEuKCKZyW89MAhyjjgghpZGHixARieiAUoQxocJtR1R2FIH2Z2ZPJmfLMewR2GbIX9hWJdPVTEqQEnI+if5ydVGMarbHlAC0quEnhZsE3AFOjfLz8BOyTAbPJX1FH/vd3z9m4a5xBBg45MWx0ZNz+/OTSL6i21qlw7EfNtTHbgRTFw+RDo8UOYMHCPDPQ+8QZscyWDZ/McKnQ6IkhwE+kIxysxeuSuZZnBfjYeKNwpofI91bpf7eNXkCV25hAXnKqeXq13yeNLpx/daOsOq5FrVuN0FkFrUKA7jdqmt8Cp8iS/24KbAI51jND5UBcEuEN4CAykuWnRYY7uUeRUw2J8YLNcVDZ5CddemfOp/bEUYniWScdSoAFfvaHyvjnb1G;4:rGN7aerwTLI9XWGAOUbTfMXgaeeq6/8ldDHUQpnIIJvK4ln1Xuxil5l/GDvJ43MWir01ok5N5CCl4zhIX03ozuTNKXucM0095lajEBCIdSaNDQtL3LwVMBfDRMRen23t1s9ilR05X43V8fwPzbbeSm9MNc7FwdvZ1KgtOI0G1HbifXmtW3WqI27L+IrOo8ISVaJIInGyISgmZjpK0MA4pcNWvi2Hl8Wn7ZSo2nLfgC/oEkMrKc6bNhlt2VQsPsqyk7xsVjgNZw6vThZ2R7J5P6+0u2mVLEwrAK/0YCulMGqQH8IB9TD4DjDJEjK2pwugjFhoDW30tc63pxqMwOoXMAGprOuE8iUOikOsAav3wLs21D8gdZZTZyR+gKVodvtRKv+ZRpx/4r0z7gZ2OQPlrA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101521072)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);SRVR:CY1PR0201MB1785;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0201MB1785; X-Forefront-PRVS: 0924C6A0D5 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(24454002)(377454003)(87266999)(19580405001)(36756003)(189998001)(19580395003)(15975445007)(2950100001)(80316001)(81166005)(4326007)(3900700001)(83506001)(76176999)(2906002)(50466002)(1096002)(59896002)(54356999)(92566002)(77096005)(64126003)(2870700001)(50986999)(3846002)(6116002)(5008740100001)(42186005)(65816999)(65956001)(33656002)(110136002)(586003)(86362001)(4001350100001)(23676002)(47776003)(66066001)(5004730100002);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR0201MB1785;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAyMDFNQjE3ODU7MjM6RHo2RzlObjhXaEVsOG44MTc3RHlJUG1N?= =?utf-8?B?WFlnVzJLeW92ZzVzRnl2M0I2R29DcS92dFJzNUFYSzNYeUMwZmRCMHRGNHRP?= =?utf-8?B?Tm04MnZvY2d6ZUxUbk1PNmZpa1Fpakc4V3hScTVhMDRhNVdncCttekc5MFpZ?= =?utf-8?B?YUxHM0wwZ043Z0lzenhobkhhRVdoeUVBZmFkSzcxRmpVTjJiT2N4NGRlSS9u?= =?utf-8?B?YUhmYm1zTlBReDI0QkdTcGd0QnFCN1ZHOVQxSGtFN05EM2l4M0VicExCcE96?= =?utf-8?B?SzRjK3YvZWdXbHZrVW5XSlZkb3k1TExoSGFwY2hCT3Q3TUM2V1ArQlUvNHIv?= =?utf-8?B?bXh0YzZDOFhBZUdnNHRTdUlRZk4wY0tYZE1NaDFGdG14NzBRY2JZZ1FCazA3?= =?utf-8?B?SGYwL2hXUWgxamhLS0JzUWsxNlFLVzFVTithd2NLYUcxMUhMYVFZeXNQV3p2?= =?utf-8?B?dExKUk9ZOHhNS2hXa1pEVnU2N1BVY1BBeit0bXRlMEU3bUF3MGlQMWxlRjRk?= =?utf-8?B?NjdIYWQzd1FaMUlUVXo2dXpacVVJRnZySGdPRkp0UEFYNnNST3lWUE0xVEV6?= =?utf-8?B?R2VEYmZxdkYvTnp6c2tKc2tNTXFBVVlmckV5TnEzNGJodFpXeGtNZ3JJQXUz?= =?utf-8?B?T1MybGduQmJxNDN5RFoxUU4yYTBmSjVpaWxUZjZQMjlCaTVScmh1bERLSW13?= =?utf-8?B?b1dGcUs0ZzBHWEJYbkdHbjhIM200TU5GR3VmVHNnTysrbFYwRi9DTHNLRGp6?= =?utf-8?B?cFA1VUN4WnQ0bS8veHRVZ1pnWEl4TXpCUGoxSkZNdWlkSFM1SkpEQ1VobW5X?= =?utf-8?B?b0hrZWpiclJCNDNCNXh4Ym43eGJsQm5GUGgrNHE3bDgwRTJMb0R6Nis5NW40?= =?utf-8?B?ZTFSYlp2UjJPU2xSdmZGSSt0Z2pWempLSmIxRHBtMHNNV0lWUFdIbWltdkNJ?= =?utf-8?B?cGNJeVNZMDd6ZjI3TmVEVGNkSGlrak1jZS9mT09pLzVObEtVNVBRb09kNmJP?= =?utf-8?B?VjFZQko3VkZXUUN4YkpsWlBUYU9JQVlIWXBIZFNiS0dNNlBsUy9lalZYTFdH?= =?utf-8?B?cHlZc0piZDV2d2JxckdObE1uaVRqcUUvMEwzT2poYmxIOG0waVZtZkZ2QTEr?= =?utf-8?B?TE5YOGw5a0JaS2JIcUhCWER1V1ArV2V0QWhWR0ovUUJObitVL2xXR3lraHRr?= =?utf-8?B?d2YrK1B3RENGa0hieHByZnI3UXZ0L3lUU1ZJZGgxd0FPRkZTRlp5NSt5Z3h3?= =?utf-8?B?NGVUNEVUZmExY3BVcUpxUnpsZkdwamdtVVR6WUROZ3pHS1ZndE9vQkVpeUFx?= =?utf-8?B?M01DQ0Q1VFNQd2g1Rk9vSnRMWG11UVBuUUhUWFZmSnNZUzFYenQ1WGVXbWo1?= =?utf-8?B?MG5veFFzN2dxY0NsZjRxdDhFNVh6MDhEOEhWd2RPb0RYTmlUelRpMlFvRGNt?= =?utf-8?B?M0J3NHFPaE1ka2NHblM4RVBQaXdKa1BqazZMMCtLOGNaWEUzWE1FR2pIR1lU?= =?utf-8?Q?9dO5ZG58/W3Hh3LmIvUDcWV20Is=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0201MB1785;5:cZFE+HfpJtQhDU6WMykxJj8/ZBOqcsjluPZleF7e0pN/kwekRMgbtUlwFySEPN18bLxMujWQkp0nRAjCdQEROKLsJL8nl7ggCqg56oGCv1crQ9E1PF8D+nw6HIE97mdVRVUyxhdfnChjOERGM+DXeQ==;24:zGTUjQ0p7VCJaAqItKY773vsR682/KomzoWDRno5EbKkrIgqFMv/syWsJ21SSMdXnHo+6Hoy3X5pcFMzyJGOE5elzjwndNp9u2RFZSGx6iU=;7:kPD/2RyFQb2gcdaaRlLkUm6r9YvpKBrJ+UNvXN5RjJddJGJkQRgQf58cFy4ZpRKjKP5nEDOCLu93E08irUizJacV/hv2F+ppTIogJpQUxddNp87AKo63cypKr9B0wBN23zYCKmPE34skT94PvxLlwBYh+XuqB12Zesv6lHUnhhdp3rQBc/tVv3wqDt872zk/ SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2016 14:30:53.1202 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0201MB1785 Subject: Re: [PHP-DEV] [RFC] Patch for Union and Intersection Types From: dmitry@zend.com (Dmitry Stogov) On 04/26/2016 05:19 PM, Bob Weinand wrote: >> Am 26.04.2016 um 15:33 schrieb Dmitry Stogov : >> >> hi Levi, >> >> It looks like your "work" on "Nullable Types" RFC was intended to win time for this patch and block "Nullable Types" again. >> Actually, you have been blocking it for more than a year :( >> >> I'm going to push my own RFC for voting together with "Union Types". >> >> https://wiki.php.net/rfc/nullable_return_types >> >> At least, it has up to date implementation. >> >> We discussed this internally 2-3 weeks ago, and my politeness (or/and stupidity) allowed you to pass your version for common discussion. >> Now I can see your real reason :( >> >> Both "Union Types" and "Nullable Types" may make sense, and both should be voted at the same time. >> Tomorrow is time to start voting. Right? >> >> Thanks. Dmitry. >> >> >> ________________________________________ >> From: Levi Morrison >> Sent: Tuesday, April 26, 2016 02:37 >> To: internals >> Subject: [PHP-DEV] [RFC] Patch for Union and Intersection Types >> >> Internals, >> >> Joe Watkins and Bob Weinand have worked out a [proof-of-concept patch >> for union types][1]. Please go download it and experiment with it. >> >> A few things to note: >> >> * This patch includes intersection types. However, a type expression >> must be either a union type or an intersection type; it doesn't >> support both such as `Array | (Countable & Traversable)`. >> * This patch adds `null`, `true` and `false` for type declarations. >> * This patch includes conversion rules for weak types. >> * It does not have short-hand for unions with null (`?Foo` being `Foo | Null`) >> >> These features (or omitted ones) are not necessarily what will be >> voted on. Rather this patch allows us to experiment with these >> features in code. This experience should be helpful for us to solidify >> how we actually feel about these features. >> >> I especially would like people to try out the conversion rules for >> scalar types as it has been a point of discussion. >> >> [1]: https://github.com/php/php-src/pull/1887 > Hey Dmitry, > > Please, do not accuse us of blocking the nullables. This wasn't intentional and rather a coincidence that we provided a patch right now. > First we wanted to concentrate our forces on getting a great 7.0 out before starting this RFC (as it didn't make it in time for going into 7.0 too as we waited for result on scalar types in general first). > Then, as you're aware Levi had absolutely no time for a few months… Now, he has time to manage things and we could move ahead quickly and write the patch up. I know, we all like to make our best for PHP. Sorry, if I was too emotional. > I'd like to hold first a formal (and binding) vote on whether "null |" or "?" should be used (in case both RFCs pass). Rushing things through right now might just us ending up with semantics the vast majority dislikes. I didn't exactly get, what do you propose. One RFC with voting for "Nullable" or "Union"? Thanks. Dmitry. > > Thanks, > Bob