rfc:size_t_and_int64
Differences
This shows you the differences between two versions of the page.
rfc:size_t_and_int64 [2014/01/26 04:13] – ab | rfc: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: | + | * Version: |
* Date: 2013-12-05 | * Date: 2013-12-05 | ||
* Authors: Anatol Belski < | * Authors: Anatol Belski < | ||
- | * Status: | + | * Status: |
Line 90: | Line 90: | ||
\\ | \\ | ||
- | ==== Semantical macro renamings ==== | + | ==== Semantical macro renamings |
^ 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 169: | Line 169: | ||
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. | ||
+ | |||
+ | ===== Some performance comparsion ===== | ||
+ | |||
+ | |||
+ | ^ PHP Version | ||
+ | |||
+ | | str_size_and_int64-x86 | ||
+ | | - | Cache: | ||
+ | | php-5.5.8-nts-Win32-VC11-x86 | NoCache: | ||
+ | | - | Cache: | ||
+ | | str_size_and_int64-x64 | ||
+ | | - | Cache: | ||
+ | | php-5.5.8-nts-Win32-VC11-x64 | NoCache: | ||
+ | | - | Cache: | ||
+ | |||
+ | The numbers here are the test scores one already might have seen in the other [[http:// | ||
+ | \\ | ||
+ | < | ||
+ | \\ | ||
===== 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:// |
- | === Example on accepting parameters with zpp === | + | ==== Example on accepting parameters with zpp ==== |
<code c> | <code c> | ||
Line 186: | Line 205: | ||
</ | </ | ||
- | === Example on printf specs usage === | + | ==== Example on printf specs usage ==== |
<code c> | <code c> | ||
Line 201: | Line 220: | ||
</ | </ | ||
- | === Example on printf specs usage (no BC) === | + | ==== Example on printf specs usage (no BC) ==== |
<code c> | <code c> | ||
Line 207: | Line 226: | ||
</ | </ | ||
- | === Example proper check of string size === | + | ==== Example proper check of string size ==== |
<code c> | <code c> | ||
Line 224: | Line 243: | ||
\\ | \\ | ||
- | === Example with some renamed macros === | + | ==== Example with some renamed macros |
<code c> | <code c> | ||
Line 258: | 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 264: | 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 | + | <doodle |
+ | title=" | ||
+ | * Yes | ||
+ | * No | ||
+ | </doodle> | ||
==== Vote 2 ==== | ==== Vote 2 ==== | ||
- | * keep the old macro names for LONG<>INT, STRLEN<>STRSIZE, etc. : yes/no | + | <doodle |
+ | title=" | ||
+ | * Yes | ||
+ | * No | ||
+ | </doodle> | ||
==== Vote 3 ==== | ==== Vote 3 ==== | ||
- | * keep zpp specs " | + | <doodle |
+ | title=" | ||
+ | * Yes | ||
+ | * No | ||
+ | </doodle> | ||
===== Patches and Tests ===== | ===== Patches and Tests ===== |
rfc/size_t_and_int64.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1