Re: Re: Bug #46701
| From: | Pierre Joye | Date: | Wed, 25 Feb 2009 13:40:26 +0000 |
| Subject: | Re: Re: Bug #46701 | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-43171@lists.php.net to get a copy of this message | ||
On Wed, Feb 25, 2009 at 2:25 PM, Iain Lewis <ilewis@uk.ibm.com> wrote:
> Matt Wilmas wrote:
>
>>
>> (I'm glad this change was reverted for 5.2...)
>>
>> Anyway, like I said in my "5.3 todos" reply, I'll send a possible
>> DVAL_TO_LVAL, etc. solution (consistent/reliable overflow across
>> platforms)
>> for consideration as soon as I can... There are other inconsistencies and
>> behavior changes with the existing code, and it definitely doesn't behave
>> in
>> a platform-independent way! With the 4 versions of DVAL_...: old, 32 bit,
>> 64 bit, 64 bit Windows (not sure why it's there; its longs are still 32
>> bit?), things I can think of:
>>
>> - Matt
>>
>
> Longs are still 32bit on 64bit windows, which explains the special case for
> windows.
That's correct. long is always 32bit on windows. See:
http://msdn.microsoft.com/en-us/library/s3f49ktz.aspx
and
http://msdn.microsoft.com/en-us/library/cc953fe1.aspx
> I'd be interested to see your possible solution to this. Having consistent
> behaviour across platorms/32bit/64bit would be great from my p.o.v, as
> writing tests for the current behaviour isn't fun at all!
Something on our TODO is to use fixed and portable size types like
what we can find in stdint. I have put a windows version in
win32/php_stdint.h if you are interested. Ideally we should do that
for all platforms and make them available for all parts of php
(extensions, engine or main).
Cheers,
--
Pierre
http://blog.thepimp.net | http://www.libgd.org