Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Fuel serializer
Last updated at 8:16 pm UTC on 17 January 2019
Fuel is a general-purpose object serialization framework developed in Pharo.
It is also available for Squeak.
Fuel is developed under the MIT license.


Fuel: A Fast General Purpose Object Graph Serializer

https://github.com/theseion/Fuel

Usage

see FLSerializer


Limitation

Fuel works fine for a particular version of the image. It is generally not possible to load a fuel file into a later version of Squeak / Pharo.
Exchange of serialized objects between Pharo and Squeak is not possible. SIXX does not have this limitation however it is much slower.

Tests

Fuel works fine in Squeak 5.1. Up to date results see:
https://travis-ci.org/theseion/Fuel

Installation

There are SqueakMap entries including one for version 5.2
SqueakMap entry

Recent versions see github for current load instructions.


Background


Mariano Martinez Peck Tue, Oct 21, 2014 at 3:55 AM
Reply-To: The general-purpose Squeak developers list
To: The general-purpose Squeak developers list
Cc: Squeak Virtual Machine Development Discussion , Discusses Development of Pharo

Just a quick note I would like to share....
For my PhD, I did investigate ImageSegment very very deeply:

http://dl.acm.org/citation.cfm?id=2076323
http://www.slideshare.net/MarianoMartinezPeck/2010-smalltalkspeckobject-swapping

I didn't want to write Fuel just because. I took quite a lot of time to understand how ImageSegment primitives worked. From that effort, I remember a few conclusions:

1) I found only few users of ImageSegment
2) The few users I found, were NOT using the real purpose of ImageSegment, that is, object swapping. It was used instead as an object serializer. For that, they use #writeForExportOn: which ended up using SmartRefStream for the rest of the objects.
3) I noticed I could achieve the same performance or even better with an OO serializer built at the language side, with all the benefits this means. Of course, having Cog helped here....

In the Fuel paper: http://rmod.lille.inria.fr/archives/papers/Dias12a-SPE-Fuel.pdf
you can find some benchmark comparison agains IS. Also in my PhD: Application-Level Virtual Memory for Object-Oriented Systems

Cheers,

Object Swapping Challenges - an Evaluation of ImageSegment

A note

Fuel serialization approach, BOSS (Binary Object Storage System), Parcels and ImageSegments