rfc:phpng64

Differences

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

Link to this comparison view

Next revision
Previous revision
rfc:phpng64 [2014/05/20 15:20] – created nikicrfc:phpng64 [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 11: Line 11:
 ===== Proposal ===== ===== Proposal =====
  
-The 64bit changes described in the following will be integrated into the phpng branch **once it is more stable**.+The 64bit changes described in the following will be added to the phpng branch **once it is more stable**.
  
 The following changes **will** be made: The following changes **will** be made:
Line 17: Line 17:
   * 64bit integers (in zvals and related areas) will be used on Win64 and other LLP64 platforms. This means that many current uses of ''long'' will be replaced with a type like ''zend_long'' which is 64bit large on all 64bit platforms.   * 64bit integers (in zvals and related areas) will be used on Win64 and other LLP64 platforms. This means that many current uses of ''long'' will be replaced with a type like ''zend_long'' which is 64bit large on all 64bit platforms.
   * ''size_t'' will be used for string lengths in ''zend_string''. This means that string sizes will be 64bit on 64bit platforms.   * ''size_t'' will be used for string lengths in ''zend_string''. This means that string sizes will be 64bit on 64bit platforms.
-  * ''size_t'' and the 64bit integer type may be used in some other places as well, as long as they do not significantly regress memory usage.+  * 64bit sizes/integers may be used in some other places as well, as long as the usage does not significantly increase memory usage. E.g. file/stream offsets and ini settings like ''memory_limit'' should support 64bit numbers.
  
 The following changes will **not** be made: The following changes will **not** be made:
  
-  * Use of ''size_t'' for all lengths. In particular hashtables will always use 32bit lengths. Linenos will be stored in a 32bit type. Special names (like argument or class names) will also use 32bit lengths, where possible.+  * Use of ''size_t'' for all lengths. In particular hashtables will always use 32bit lengths. Line numbers will be stored in a 32bit type. Special names (like argument or class names) will also use 32bit lengths, where possible.
  
-The expected impact memory impact of these changes is around 1%. We are okay with that.+The expected memory impact of these changes is around 1%. We are okay with that.
  
 Unclear as of now: Will we be performing renames like ''IS_LONG'' to ''IS_INT'' along the way? I prefer not (Nikita). Unclear as of now: Will we be performing renames like ''IS_LONG'' to ''IS_INT'' along the way? I prefer not (Nikita).
rfc/phpng64.1400599222.txt.gz · Last modified: 2017/09/22 13:28 (external edit)