> On 16 Dec 2015, at 13:24, Clément Bera <[email protected]> wrote:
> 
> I don't know if SqueakV3 - Spur32 support is needed, however, I think it is 
> really important to be able to serialize and materialize objects between 32 
> bits spur images and 64bits spur images.

I don't know.

Yes it would be nice, but since Fuel cannot even exchange data between 
different version itself (If I understand the situation correctly), why should 
that have to work ?

From my POV FUEL is only compatible with its own version, a sacrifice made to 
gain performance. IIUC it is not a stable external format for long lived data 
with backward/forward compatibility.

> 2015-12-16 10:34 GMT+01:00 Esteban Lorenzano <[email protected]>:
> Hi, 
> 
>> On 16 Dec 2015, at 08:21, Eliot Miranda <[email protected]> wrote:
>> 
>> Hi Esteban,
>> 
>> On Dec 15, 2015, at 5:06 AM, Esteban Lorenzano <[email protected]> wrote:
>> 
>>> 
>>>> On 15 Dec 2015, at 13:18, Norbert Hartl <[email protected]> wrote:
>>>> 
>>>> We have a test build for pharo5 that checks if we need to do stuff for 
>>>> future migrations. Since yesterday it fails, of course. 
>>>> I have a fueled out object graph stored as byte array in a method. The 
>>>> fuel bytes are serialized using a non-spur image. Now when the spur image 
>>>> reads the bytes I get an exception. Has this something to do with 
>>>> immediate characters? Is there a way to fix that or will it just not be 
>>>> possible to exchange objects between spur and non-spur using fuel?
>>> 
>>> I think is not possible, but I will let fuel maintainers to have the last 
>>> word :)
>> 
>> 
>> Of course it's possible; in VW we exchanged objects between 32- & 64-but 
>> images using a format much like fuel and in 32-bits all floats are arrays of 
>> 32-bit bit objects whereas in 64-bits a range of floats are immediate.
> 
> Oh well… of course is possible. What I meant is that I think current 
> implementation of Fuel does not support it, just that :)
> but again, I’m not sure: Martin and Mariano can for sure say something more 
> detailed about :)
> (problem is Martin is on vacations after getting his PhD and Mariano didn’t 
> followed in close the spur migration)
> 
> cheers,
> Esteban
> 
>> 
>> In spur characters are immediate (Max, "primitive" is not the right term) 
>> whereas in v3 they're objects with a single isn't var.  So at least fuel 
>> needs to be modified to read characters specially.  One way to architect 
>> this is to ask the class (SmallInteger, Character, Float etc) to 
>> materialize, and then the class can decide how to represent its instances.  
>> The question is whether characters in spur should serialize themselves using 
>> the same wire format as v3 or whether fuel should modify its wire format to 
>> serialize immediate characters specially and have v3 materialize characters 
>> as serialized by spur.  The issue is whether it's important to preserve 
>> object identity of characters with code >= 256 or not.
>> 
>>> 
>>> Esteban
>>> 
>>>> 
>>>> thanks,
>>>> 
>>>> Norbert
>>>> 
>>>> 
>>>> primitive #value: in Character class failed
>>>> Stacktrace
>>>> 
>>>> Character class(Object)>>primitiveFailed:
>>>> Character class(Object)>>primitiveFailed
>>>> Character class>>value:
>>>> Character class>>materializeFrom:
>>>> FLHookPrimitiveCluster>>materializeInstanceWith:
>>>> FLHookPrimitiveCluster(FLIteratingCluster)>>materializeInstancesStepWith:
>>>> FLMaterialization>>clusterInstancesStep
>>>> [ self clusterInstancesStep ] in FLMaterialization>>instancesStep
>>>> SmallInteger(Integer)>>timesRepeat:
>>>> FLMaterialization>>instancesStep
>>>> FLMaterialization>>run
>>>> [ :aDecoder | 
>>>> (FLMaterialization with: aDecoder)
>>>>    run;
>>>>    yourself ] in FLMaterializer>>setDefaultMaterialization
>>>> FLMaterializer>>materializeFrom:
>>>> FLMaterializer class>>materializeFromByteArray:
>>>> MAPExampleModels class>>readModelFromSelector:
>>>> MAPExampleModels class>>readModelNamed:
>>>> [ self readModelNamed: aString ] in MAPExampleModels class>>named:
>>>> [ self at: key put: aBlock value ] in Dictionary>>at:ifAbsentPut:
>>>> Dictionary>>at:ifAbsent:
>>>> Dictionary>>at:ifAbsentPut:
>>>> MAPExampleModels class>>named:
>>>> MAPTest>>model
>>>> MAPTest>>tcapModule
>>>> MAPTest>>testInsertSubscriberDataBitStringAccess
>>>> [ testMethod perform: testMethod selector ] in Given>>produceReturnValueAt:
>>>> [ self at: key put: aBlock value ] in Dictionary>>at:ifAbsentPut:
>>>> Dictionary>>at:ifAbsent:
>>>> Dictionary>>at:ifAbsentPut:
>>>> Given>>produceReturnValueAt:
>>>> MAPTest(Phexample)>>performTest
>>>> 
>>>> 
>>>> 
>>> 
> 
> 


Reply via email to