[squeak-dev] Re: [GS/SS Beta] Monticello enhancing

Mariano Martinez Peck marianopeck at gmail.com
Fri Dec 2 19:43:38 UTC 2011


On Fri, Dec 2, 2011 at 4:54 PM, Tobias Pape <Das.Linux at gmx.de> wrote:

> Dear all,
>
> afte Fuel being available for both Squeak and Pharo,
> I experimented a little bit.
>

Be aware that Fuel is "partially" supported in Squeak. It was just a first
try Martin and I did. The idea is to have at least the "Core" working.
Previously, the Core included also all the code to be able to completely
serialize classes, traits and compiled methods. Most of the times this is
not used, since most users want to serialize the class/trait/method as
"global", that is, we just serialize its name and then search it at
materialization time.  In the latest version of Fuel (1.8, which is not yet
released), such behavior was moved to a separate package called
FuelMetalevel. That package, does NOT work in Squeak since Class and Trait
are different in Squeak than Pharo. So, you are NOT able to serialize
classes/traits completely. Since that package is not supported,
FuelPackageLoader is not supported either.  So....just the plain/core
serialization works so far in Squeak. Of course we welcome someone to push
with the other packages.


>
> So, I put a new snapshot.fuel beside the snapshot.bin in
> the mcz zips (same for patch.* in mcd).
>

I am surprised that it worked since (as said) full serialization of
classes/methods is not working in Squeak. I thought that Monticello
serialize that in that snapshot.bin but it seems I am wrong. So...what is
exactly serialized in that snapshot.bin ?



>
> But to make it easier in the future to experiment with things,
> I included a small facility to extend serializers/materializers
> or similar things more easily. How is it done?
>
> Example: new serializer in MCZ files:
> After my patch, include
>
> MCMczWriter class>>serializerMine
>
>        ^ [:writer :snapshot | writer writeSnapshotAsMyFormat: snapshot]
>
> and
>
> MCMczWriter>>writeSnapshotAsMyFormat: snapshot
>
>        self addString: (self doSomeConversion: aSnapshot) at:
> 'snapshot.myformat'.
>
> as Extension methods in MCMczWriter, and execute
>
> MCMczWriter populateSerializers.
>
> Now, a new file member is added to every new mcz file.
>
>
Excellent.


> As an example, I have done such thing for Fuel.
> Don't worry, it just uses the default behavior if
> Fuel is not present in either the image or the mcz-file.
>

So, is it working?  can I commit/load with Monticello using the Fuel
instead of DataStream?
Did you notice performance improvement in using Fuel rather than
DataStream?
I guess (well, once Levente showed something)  it is a small percentage in
the overall process of Monticello, so I don't expect that much improvement
in the whole action of saving/commiting.

Thanks


>
> Best,
>        -Tobias
>
> PS: for Squeak, see Inbox Monticello-topa.491,
>    And I also have an MCD attached that should help using the code
> elsewhere.
>
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20111202/fb0cf86e/attachment.htm


More information about the Squeak-dev mailing list