rfc:size_t_and_int64

Differences

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

Link to this comparison view

rfc:size_t_and_int64 [2014/01/26 11:14] abrfc:size_t_and_int64 [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 1: Line 1:
  
 ====== PHP RFC: 64 bit platform improvements for string length and integer in zval ====== ====== PHP RFC: 64 bit platform improvements for string length and integer in zval ======
-  * Version: 1.8+  * Version: 2.0
   * Date: 2013-12-05   * Date: 2013-12-05
   * Authors: Anatol Belski <ab@php.net>, Matt Ficken <mattficken@php.net>, Stephen A. Zarkos <szarkos@php.net>   * Authors: Anatol Belski <ab@php.net>, Matt Ficken <mattficken@php.net>, Stephen A. Zarkos <szarkos@php.net>
-  * Status: Under Discussion+  * Status: Rejected
  
  
Line 90: Line 90:
 \\ \\
  
-==== Semantical macro renamings ====+==== Semantical macro renamings (Vote 2)====
  
 ^ Old ^ New ^ Comment ^ ^ Old ^ New ^ Comment ^
Line 111: Line 111:
 \\ \\
  
-==== Accepting values with zend_parse_parameters() ====+==== Accepting values with zend_parse_parameters() (Vote 3) ====
  
 ^ Old ^ New ^ Comment ^ ^ Old ^ New ^ Comment ^
Line 170: Line 170:
 It has to do with squeezing anything possible from the 64 bit platforms, for maximal PHP benefit. No real features are going to be changed, removed or added to the PHP language. It has to do with squeezing anything possible from the 64 bit platforms, for maximal PHP benefit. No real features are going to be changed, removed or added to the PHP language.
  
-==== Performance comparsion ====+===== Some performance comparsion =====
  
  
Line 183: Line 183:
 | php-5.5.8-nts-Win32-VC11-x64 | NoCache:     59      | NoCache:     65      | NoCache:     51 | | php-5.5.8-nts-Win32-VC11-x64 | NoCache:     59      | NoCache:     65      | NoCache:     51 |
 | -                            | Cache:       <nowiki>270*</nowiki>    | Cache:       <nowiki>**</nowiki> | Cache:       <nowiki>**</nowiki> | | -                            | Cache:       <nowiki>270*</nowiki>    | Cache:       <nowiki>**</nowiki> | Cache:       <nowiki>**</nowiki> |
 +
 +The numbers here are the test scores one already might have seen in the other [[http://windows.php.net/downloads/snaps/ostc/pftt/perf/ | performance tests]].\\
 +\\
 +<nowiki>*, **</nowiki> Some issues with the x64 versions of 5.5.8 and str_size_and_int64 when testing with opcache enabled. However issues of this kind are well known on windows (for instance [[https://bugs.php.net/bug.php?id=64926 | #64926]]) and are due to some unluckily choosen memory address. So the cause persists in the mainstream and is not because of this patch.
 +\\
  
 ===== Migration path for PECL extensions ===== ===== Migration path for PECL extensions =====
  
-Tutorial, tools and compatibility header to ease the migration of the PECL extensions are available [[http://git.php.net/?p=php-src.git;a=tree;f=compat;hb=refs/heads/str_size_and_int64 | here]] . The goal is to make the same source in the new semantic compatible with older PHP versions.+[[http://git.php.net/?p=php-src.git;a=tree;f=compat;hb=refs/heads/str_size_and_int64 | Tutorial, tools and compatibility header]] to ease the migration of the PECL extensions are available. The goal is to make the same source in the new semantic compatible with older PHP versions.
  
-=== Example on accepting parameters with zpp ===+==== Example on accepting parameters with zpp ====
  
 <code c> <code c>
Line 200: Line 205:
 </code> </code>
  
-=== Example on printf specs usage ===+==== Example on printf specs usage ====
  
 <code c> <code c>
Line 215: Line 220:
 </code> </code>
  
-=== Example on printf specs usage (no BC) ===+==== Example on printf specs usage (no BC) ====
  
 <code c> <code c>
Line 221: Line 226:
 </code> </code>
  
-=== Example proper check of string size ===+==== Example proper check of string size ====
  
 <code c> <code c>
Line 238: Line 243:
 \\ \\
  
-=== Example with some renamed macros ===+==== Example with some renamed macros ====
  
 <code c> <code c>
Line 272: Line 277:
 ===== Future Scope ===== ===== Future Scope =====
  
-  * with further tweaks - enabling 64 bit integer even on 32 bit platform 
   * in far perspective - easier to implement 128 bit support   * in far perspective - easier to implement 128 bit support
   * in near perspective - excellent base for 64 bit performance optimization   * in near perspective - excellent base for 64 bit performance optimization
Line 278: Line 282:
   * easier integration on new platforms   * easier integration on new platforms
  
-===== Proposed Voting Choices =====+===== Vote ===== 
 + 
 +The Vote 1 is the main vote for this patch. The both Votes 2 and 3 are merely to decide about the semantical replacements choosen for the patch. Should the Votes 2 and 3 result in reverting of that semantical changes, the essential patch part about the 64 bit support will not be hurt. Fixing the macro names or zpp specs is only the naming issue. 
 + 
 +The vote begins Monday, 27 January 2014, 21:30 CET and ends Monday, 03 February 2014, 21:30 CET.
  
 ==== Vote 1 ==== ==== Vote 1 ====
  
-  * merge str_size_and_int64 branch into 5.6: yes/no+<doodle  
 +title="Merge this RFC into PHP-5.6 having regard to Vote 2 and 3" auth="ab" voteType="single" closed="true"> 
 +   * Yes 
 +   * No 
 +</doodle>\\
  
 ==== Vote 2 ==== ==== Vote 2 ====
  
-  * keep the old macro names for LONG<>INT, STRLEN<>STRSIZE, etc. : yes/no+<doodle  
 +title="Keep the old macro names for LONG vs. INT, STRLEN vs. STRSIZE, etc." auth="ab" voteType="single" closed="true"> 
 +   * Yes 
 +   * No 
 +</doodle>\\
  
 ==== Vote 3 ==== ==== Vote 3 ====
  
-  * keep zpp specs "lLsp" as aliases to "iISP": yes/no+<doodle  
 +title="Keep zpp specs l, L, s, p as aliases to i, I, S, Pauth="ab" voteType="single" closed="true"> 
 +   * Yes 
 +   * No 
 +</doodle>\\
  
 ===== Patches and Tests ===== ===== Patches and Tests =====
rfc/size_t_and_int64.1390734867.txt.gz · Last modified: 2017/09/22 13:28 (external edit)