rfc:keywords_as_identifiers

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
rfc:keywords_as_identifiers [2013/10/20 16:25] – [Impact on performance] bwoebirfc:keywords_as_identifiers [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 3: Line 3:
   * Date: 2013-09-14   * Date: 2013-09-14
   * Author: Bob Weinand, bobwei9@hotmail.com   * Author: Bob Weinand, bobwei9@hotmail.com
-  * Status: Under Discussion+  * Status: Declined 
 +    * The implementation was creating too much need for maintenance etc. Don't duplicate that proposal without a better implementation.
   * First Published at: http://wiki.php.net/rfc/keywords_as_identifiers   * First Published at: http://wiki.php.net/rfc/keywords_as_identifiers
  
Line 9: Line 10:
  
 This RFC aims to remove some restrictions which are due to the fact that keywords are not included in T_STRING (especially for class const, method and class names). This RFC aims to remove some restrictions which are due to the fact that keywords are not included in T_STRING (especially for class const, method and class names).
 +
 +This especially could be useful to preserve more BC compatibility whenever new keywords are introduced. 
  
 ===== What is now possible ===== ===== What is now possible =====
Line 85: Line 88:
 An example what is possible with this patch: An example what is possible with this patch:
 <code php> <code php>
-namespace Test {+namespace Class {
     class List {     class List {
         const default = 0;         const default = 0;
Line 102: Line 105:
    
 namespace { namespace {
-    \Test\List::echo((new Test\List)->new(array(1)));+    \Class\List::echo((new Class\List)->new(array(1)));
 } }
 </code> </code>
Line 123: Line 126:
 ===== Impact on performance ===== ===== Impact on performance =====
  
-There is a slight decrease in performance in compiling step of up to 10% in worst case. So, actually, when used with opcache (execution only), any impact shouldn't be noticeable.+There is a slight decrease in //compilation performance// of up to 10% in worst case. So, actually, when used with opcache (execution only), any impact shouldn't be noticeable.
  
 For that benchmark I used an 1.5 megabyte big file wrapped in an //if (false)// (so that nothing is executed): https://raw.github.com/nikic/PHP-Parser/master/lib/PHPParser/Parser.php For that benchmark I used an 1.5 megabyte big file wrapped in an //if (false)// (so that nothing is executed): https://raw.github.com/nikic/PHP-Parser/master/lib/PHPParser/Parser.php
Line 159: Line 162:
   * Initially the patch contained also some support for functions and constants which was removed later due to some resulting syntactic inconsistencies   * Initially the patch contained also some support for functions and constants which was removed later due to some resulting syntactic inconsistencies
  
 +===== Vote =====
 +
 +<doodle title="Should the extended keyword support patch be merged into master?" auth="bwoebi" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
 +
 +Deadline was Monday, 28th october 2013.
 ===== Versions ===== ===== Versions =====
   * 1.0: Initial proposal (16.9.2013)   * 1.0: Initial proposal (16.9.2013)
   * 1.1: Added some more examples (18.9.2013)   * 1.1: Added some more examples (18.9.2013)
   * 1.2: Removed some restrictions (now all keywords are permitted except the ones which would conflict with the existing language) (16.10.2013)   * 1.2: Removed some restrictions (now all keywords are permitted except the ones which would conflict with the existing language) (16.10.2013)
rfc/keywords_as_identifiers.1382286300.txt.gz · Last modified: 2017/09/22 13:28 (external edit)