Hi Dmitry,
While updating my version (more below), I noticed another problem that I
overlooked before with your leading zero check: "-0" is being treated as
numeric.
----- Original Message -----
From: "Dmitry Stogov"
Sent: Friday, March 20, 2009
Hi Matt,
I ran you version but it looked little bit slower (I checked it with
callgrind). So I kept the current CVS version. Anyway, it is not a big
problem to change it after RC.
Yeah, after I sent that message, I noticed other times were strange
(bench.php, etc.), so it looks like I was getting compiler weirdness with
that code layout... And of course looking at the code, there shouldn't have
been anything faster about it, though it was shorter, which you confirmed
with callgrind.
Anyway, my updated version seems good, still smaller, and should do better
with callgrind. :-) On 32-bit, the first digit of a 10 digit number can be
checked which avoids having "2x overflow" on "5000000000", etc. that I
pointed out with your original code. (No problem on 64-bit.) Also made the
terminating null check be last again since it's least likely to fail...
http://realplain.com/php/handle_numeric.txt
OLD: http://realplain.com/php/handle_numeric-v1.txt
Thanks. Dmitry.
- Matt
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php