> On 3 Feb 2015, at 21:49, Lester Caine <les...@lsces.co.uk> wrote:
> 
> On 03/02/15 16:44, Andrea Faulds wrote:
>> Sure, but I don’t think we shouldn’t cripple the language merely for the 
>> sake of really low-end embedded devices. Also, I’m not convinced that the 
>> overhead, at least in terms of file size, is really that big of an issue.
> 
> 'I don’t think we should cripple' ?
> 
> There are two views on the handling of integers. Obviously it would be
> nice if there was no limit to the size of a number and there are
> situations where that is indeed useful. However there are equally
> situations where both the natural 32bit and 64bit limits of the target
> hardware and software needs to be observed and these require a different
> method of handling things like 'overflow’.

Maybe. But PHP has never cared about those things. We promote to float when 
integers would “overflow” in another language.

> Simply automatically
> upgrading an integer value to a more complex object depending on what
> hardware one is running on adds the overhead of having to create code to
> disable things depending on some hardware flag.

Not really. We already do promotion for integers to float, and it’s a very 
simple operation to check for overflow, natively supported by many compilers, 
and we also have a pure C fallback. All that bigints do is that instead of 
promoting to float, we promote to bigints. There’s no new overhead, these 
checks already existed, and have done for well over a decade.

The only complexity bigints add are the addition of the new IS_BIGINT type 
(which goes in your operator type matrices etc.), and requiring some bigint 
library.

> With the bulk of SQL persistent data having to manage both 32 and 64bit
> integer limits and the matching float/numeric limits, a system of
> working which mirrors that would naturally seem to be the sensible
> default.

Why should it match SQL? Why should we have the complexity of two different 
sizes of integer? Why not just have a single, unified arbitrary-precision 
integer type, like the RFC proposes.

> If those limitations have been avoided by the use of additional
> libraries, then a matching additional library in PHP also comes into play.
> 
> Currently we have a problem with the size of integers, but simply
> ignoring that there are limits is not the may to fix that problem.

This RFC doesn’t ignore that there are limits. Arbitrary-precision integers 
are, naturally, bounded by available RAM (including the request memory limit).

--
Andrea Faulds
http://ajf.me/





--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to