rfc:gmp_number
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
rfc:gmp_number [2013/12/30 23:53] – yohgaki | rfc:gmp_number [2014/01/04 07:05] – Extract gmp float related changes to a separate RFC pollita | ||
---|---|---|---|
Line 23: | Line 23: | ||
==== Add GMP float support to GMP module ==== | ==== Add GMP float support to GMP module ==== | ||
- | Add GMP float support to GMP module. | + | <del>Add GMP float support to GMP module. |
* Add all GMP float API wrapper to module. | * Add all GMP float API wrapper to module. | ||
* GMP float API wrapper supports PHP int/float and GMP int/float. Conversion is done automatically. | * GMP float API wrapper supports PHP int/float and GMP int/float. Conversion is done automatically. | ||
- | * Default precision: 256 (?) | + | * Default precision: 256 (?)</ |
- | ==== Add GMP float support to Zend OP ===== | + | Extracted out to a separate RFC: [[rfc: |
- | Add GMP float support to operators. | + | |
- | + | ||
- | * Arithmetic with GMP float and any number(PHP int/float, GMP int) is promoted | + | |
==== Add math function compatibility ===== | ==== Add math function compatibility ===== | ||
Line 72: | Line 69: | ||
bool(false) | bool(false) | ||
bool(false) | bool(false) | ||
+ | |||
+ | |||
+ | == Current math function behavior == | ||
+ | |||
+ | GMP float is not supported. | ||
+ | php > $f = 2.2; | ||
+ | php > $gf = gmp_init($f); | ||
+ | | ||
+ | Warning: gmp_init(): Unable to convert variable to GMP - wrong type in php shell code on line 1 | ||
+ | |||
+ | max()/min() | ||
+ | php > $g = gmp_init(123); | ||
+ | php > var_dump($v); | ||
+ | object(GMP)# | ||
+ | [" | ||
+ | string(1) " | ||
+ | } | ||
+ | php > $g = gmp_init(5); | ||
+ | php > var_dump(max(1, | ||
+ | object(GMP)# | ||
+ | [" | ||
+ | string(1) " | ||
+ | } | ||
+ | php > var_dump(min(1, | ||
+ | int(1) | ||
+ | php > var_dump(min($g, | ||
+ | object(GMP)# | ||
+ | [" | ||
+ | string(1) " | ||
+ | } | ||
Line 98: | Line 125: | ||
PHP 5.6 or later | PHP 5.6 or later | ||
- | |||
- | ===== Impact to Existing Extensions ===== | ||
- | |||
- | GMP module will have GMP float support. | ||
- | |||
- | ===== php.ini Defaults ===== | ||
- | |||
- | If there are any php.ini settings then list: | ||
- | |||
- | * hardcoded default values | ||
- | * gmp_precision=256 | ||
- | |||
- | * php.ini-development values | ||
- | * gmp_precision=256 | ||
- | |||
- | * php.ini-production values | ||
- | * gmp_precision=256 | ||
===== Open Issues ===== | ===== Open Issues ===== | ||
Line 123: | Line 133: | ||
* Implement autoboxing like feature | * Implement autoboxing like feature | ||
* How GMP number should behave (Like PHP or Ruby?) | * How GMP number should behave (Like PHP or Ruby?) | ||
- | * GMP float support API design | ||
- | * gmp_precision default value | ||
===== Future Scope ===== | ===== Future Scope ===== | ||
Line 153: | Line 161: | ||
Keep this updated with features that were discussed on the mail lists. | Keep this updated with features that were discussed on the mail lists. | ||
- | |||
- |
rfc/gmp_number.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1