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.

2015-12-16 10:34 GMT+01:00 Esteban Lorenzano <esteba...@gmail.com>:

> Hi,
>
> On 16 Dec 2015, at 08:21, Eliot Miranda <eliot.mira...@gmail.com> wrote:
>
> Hi Esteban,
>
> On Dec 15, 2015, at 5:06 AM, Esteban Lorenzano <esteba...@gmail.com>
> wrote:
>
>
> On 15 Dec 2015, at 13:18, Norbert Hartl <norb...@hartl.name> 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