Hi guys,
I want to start testing my app in GemStone and one of the things I would need to do first is to move some that. I understand that most of the people use SIXX. So..what things should I be careful while serializing? sorted collections? closures?
Floats? DateAndTimes? ScaledDecimal ... In other words...is there any known type of object that I should not move with SIXX to GemStone? Any blog post or something about using/installing/serializing/materializing SIXX for this task?
Thanks in advance!! _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
I think that these two posts still apply [1], [2] plus the discussions on this list [3],[4].... [1] http://gemstonesoup.wordpress.com/2009/06/01/deep-sixx-with-xmlpullparser/ [2] http://gemstonesoup.wordpress.com/2008/11/19/gemstone-101-managing-out-of-memory-situations/ [3] http://forum.world.st/Porting-data-from-Pharo-to-GLASS-with-SIXX-td4658419.html [4] https://www.google.com/search?q=sixx+glass+site:forum.world.st&rlz=1C5CHFA_enUS507US513&espv=210&es_sm=91&biw=957&bih=537 From: "Mariano Martinez Peck" <[hidden email]> _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by Mariano Martinez Peck
Stephan, as you can imagine, I am one of them. I have replied this a few times already, but I will answer again. Fuel was developed from scratch with 2 main goals: 1) speed 2) good design. Portability was not our main goal, which is at the same time the most important goal in other serializers.
That being said, having a good design allowed us to make some ports. For example, Fuel currently works in all versions from Pharo 1.1 to Pharo 3.0 and it works in Squeak. I was also ported to VW and it was kind of working (I think the port was never finished). It was also ported to Newspeak.
So....even if it was not our goal, I think it should NOT be difficult to make Fuel in GemStone. The only thing we would need is the special serialization for certain low level classes like SmallDouble and things like that.
But...all that paragraph is about making Fuel to work in GemStone. And yes, I think it is possible and should not take much. But, a completely different story is to not only make Fuel work in Pharo and GemStone but also be able to serialize in one place and materialize in another one. That requires including lot of information (metadata) in the serialization, try to find portable serialziation/representation of objects, etc etc etc. And this one yes, I think it is more complicated and more complicated to implement.
Cheers, On Sat, Nov 23, 2013 at 4:57 PM, Stephan Eggermont <[hidden email]> wrote: There used to be people who thought Fuel might be interesting for this… Mariano http://marianopeck.wordpress.com _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
In reply to this post by Dale Henrichs-3
Thanks Dale for the links. So, I installed SIXX in Pharo with: Gofer new squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfSIXX'; load. (Smalltalk at:#ConfigurationOfSIXX) load. And I serialized into a text file sending #sixxString. In GemStone I installed SIXX with:
Metacello new
baseline: 'SIXX';
repository: 'github://glassdb/SIXX:master/repository';
load .
and tried to materialize with #readSixxFrom:
Now...the problem is that first, it barked because the class LargePositiveInteger didn't exist. So I found a workaound doing:
srs := SixxShapeChangeReadStream on: (FileStream oldFileNamed: 'myFile.xml').
srs shapeChangers at: #LargePositiveInteger put: LargeInteger. srs next. Cool. I continue and now it barks because it doesn't find the class False..... So.....I thought the SIXX serialization between Pharo and GemStone managed this stuff. Am I doing something wrong or I need to manually map all these classes?
Thanks!
On Fri, Nov 22, 2013 at 5:23 PM, Dale K. Henrichs <[hidden email]> wrote:
Mariano http://marianopeck.wordpress.com _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
Mariano, I haven't actually used SIXX in years so it will take some time for me to blow the dust off my SIXX SKILLZ:) The LargeInteger class is new in 3.x so that one is not a surprise ... Having to map True and False is not surprising since they are classes that don't exist in GemStone ... I almost think that perhaps True and False being required might be indicative of a bug on the pharo side, since I seem to recall that SIXX has the notion of Booleans builtin so the True and False classes should be masked on the creation side ... then again I could be remembering this wrong:) I assume that a set of standard mappings for classes could be created, and I'm curious if any of the folks that use SIXX have done so? Dale From: "Mariano Martinez Peck" <[hidden email]> _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
On Tue, Nov 26, 2013 at 1:45 PM, Dale K. Henrichs <[hidden email]> wrote:
I was wondering the same. Anyway, I could at least materialize using this:
srs := SixxShapeChangeReadStream on: (FileStream oldFileNamed: 'xxx.xml'). srs shapeChangers at: #LargePositiveInteger put: LargeInteger.
srs shapeChangers at: #True put: TrueClass. srs shapeChangers at: #False put: FalseClass. materializedObject := srs next .
I am not 100% if that is the correct way to do it but a simple view seems the materialized graph is OK. Cheers,
Mariano http://marianopeck.wordpress.com _______________________________________________ Glass mailing list [hidden email] http://lists.gemtalksystems.com/mailman/listinfo/glass |
Free forum by Nabble | Edit this page |