libgmp was just the first shot as it has functions to convert from
arbitrary binary data to string and vice versa, mpz_import and mpz_export.
That's what should work fine across platforms. Looking at the type
definitions here
http://lxr.php.net/xref/PHP_5_5/ext/date/lib/timelib_structs.h#70 i
wouldn't exclude possible platform issues. Implementing that manually is a
tricky job, could be done probably with more homework :)

What is the way you had in the mind to achieve the string<->integer
conversions?

Regards

Anatol

On Sun, March 10, 2013 23:11, Derick Rethans wrote:
> On Sat, 9 Mar 2013, Anatol Belski wrote:
>
>
>> On Sat, 2013-03-09 at 21:57 +0100, Gustavo Lopes wrote:
>>
>>> On Sat, 09 Mar 2013 21:36:41 +0100, Derick Rethans <der...@php.net>
>>> wrote:
>>>
>>>
>>>> On Tue, 5 Mar 2013, Anatol Belski wrote:
>>>>
>>>>
>>>>> I've reworked the patch from
>>>>> http://nebm.ist.utl.pt/~glopes/misc/date_period_interval_ser.diff
>>>>> (mentioned by tony2001) for bug #63437, that seems to fix the
>>>>> issue. That patch was ported back to 5.3 and adapted to the current
>>>>> 5.4+. Both variants are posted to the ticket.
>>>>>
>>>>
>>>> Serializing this as a base64 encoded variant of some binary data
>>>> is not a good thing. If you want to serialize, it needs to output the
>>>> same thigns that allow users to create the period or interval.
>>>
>>> I would agree in principle, but, as I explained before, there is a
>>> problem. The DatePeriod class has 64-bit integers in its internal
>>> structure. The PHP integer type cannot (in general) represent that
>>> data.  So the general method of getting the object data via
>>> get_properties and serializing (and then using __set_state to convert
>>> the array back) does not work unless you represent those 64-bit
>>> integers with some non-integer type and do the conversions.
>>
>> So base64 seems to be only the doubtful point. Thriving to fix that,
>> what if we could bring it in dependency of libgmp to serialize and read
>> as strings (and maybe disable serialization otherwise)?
>
> Why do you need libgmp for that‽
>
>
> cheers, Derick



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

Reply via email to