rfc:closurefromcallable

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
rfc:closurefromcallable [2016/05/15 10:04] – clarified numbers danackrfc:closurefromcallable [2016/07/09 12:49] – this RFC has already been implemented cmb
Line 1: Line 1:
 ====== PHP RFC: Closure from callable function ====== ====== PHP RFC: Closure from callable function ======
-  * Version: 0.95+  * Version: 1
   * Date: 2016-04-23    * Date: 2016-04-23 
   * Author: Dan Ackroyd, Danack@php.net   * Author: Dan Ackroyd, Danack@php.net
-  * Status: Under Discussion +  * Status: Implemented (PHP 7.1)
   * First Published at: https://wiki.php.net/rfc/closurefromcallable   * First Published at: https://wiki.php.net/rfc/closurefromcallable
  
Line 125: Line 125:
 ==== Performance gain ==== ==== Performance gain ====
  
-Although PHP has a 'callable' type it is quite slow to use compared to other types. This is due to the amount of work that is needed to check whether a 'callable' is actually a valid callable or not. This work needs to be each time the 'callable' parameter is called.+Although PHP has a 'callable' type it is quite slow to use compared to other types. This is due to the amount of work that is needed to check whether a 'callable' is actually a valid callable or not. This work needs to be performed each time the 'callable' parameter is called.
  
 Below are two files that call a function 10,000 times which calls itself recursively 8 times. One version has a callable type for the parameter, the other has Closure as the type. Measuring the number of operations with Below are two files that call a function 10,000 times which calls itself recursively 8 times. One version has a callable type for the parameter, the other has Closure as the type. Measuring the number of operations with
Line 144: Line 144:
 ==== Patches and Tests ==== ==== Patches and Tests ====
  
-The function has been implemented in this branch: https://github.com/danack/php-src/tree/closureSimpler The patch is not finished as the error messages need some improvement.+The function has been implemented in this PR: https://github.com/php/php-src/pull/1906
    
    
 ==== Proposed Voting Choices ==== ==== Proposed Voting Choices ====
-As this is a simple function addition with no language changes, the voting will requie a 50%+1 majority to include this in PHP 7.1+As this is a simple function addition with no language changes, the voting will require a 50%+1 majority to include this in PHP 7.1 
 + 
 + 
 +Voting will close at 9pm UTC on the 29th of May 2016. 
 +<doodle title="Accept Closure from Callble? (50%+1 majority required)" auth="Danack" voteType="single" closed="true"> 
 +   * Yes 
 +   * No 
 +</doodle>
    
    
Line 184: Line 191:
 However this RFC takes the position that it is inappropriate to have a separate function per type. Instead having a single function that takes any callable parameter is more powerful, and easier for users to use. However this RFC takes the position that it is inappropriate to have a separate function per type. Instead having a single function that takes any callable parameter is more powerful, and easier for users to use.
    
 +===== Implementation =====
 +
 +Merged into php-src for PHP 7.1: https://github.com/php/php-src/commit/63ca65d
 +
 +After the project is implemented, this section should contain 
 +  - a link to the PHP manual entry for the feature
 +
 ===== Appendix ===== ===== Appendix =====
    
rfc/closurefromcallable.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1