Version 1.9


We are happy to announce Fuel 1.9.

The default set of packages of this version already comes in Pharo 2.0, so you it's not necessary to install it there. However, Fuel also works out-of-the-box in Pharo from 1.1 up to 2.0, as well as in Squeak 4.1 up to 4.4. You can see our documentation for complete installation and use guides.


  • (feature) DoIt and not-installed CompiledMethods are fully serialized by default.
  • (fix) Date & DateAndTime (thanks Cami and Marcus) (already included in 1.8.1 and 1.8.2).
  • (feature) New hooks methods #fuelNew and #fuelNew: for custom instantiation (see "Hooking instance creation" in Customizing the Graph).
  • Globals:
    • Added #globalEnvironment: to specify where the globals are looked-up. (see "Changing the environment" in Managing Globals)
    • Explicit references to "Smalltalk globals" changed to "self class environment".
    • A SystemDictionary instance is not treated as global when it is not "Smalltalk globals".
  • Documentation:
  • (feature) Put back FLSerializer>>on:.
  • (optimization) New clusters for SmallInteger.
  • (optimization) New clusters for most common collections.
  • (feature) Built-in support for header (See Built-in Header Support):
    • pre and post materialization actions (clean closures).
    • attach additional objects.
    • materialize only the header.
  • (fix) Safer substitutions (see FLPluggableSubstitutionTest>>testPrivateExcluded).
  • (feature) Materialize .fuel files when drag&dropped in the image.
  • (cleanup) Removed unneeded cluster: FLWellKnownObjectsCluster.

We want to thank developers of the community that enrich the project with code, issue reports and ideas.

Have fun!

Martin (on behalf of Mariano and Max, who worked a lot on this version!)

Posted by RMoD at 28 March 2013, 6:37 pm with tags release link

Version 1.8.1


We want to announce Fuel release 1.8.1.

This release includes one fix: serialization / materialization of Date objects. The rest of the work went into making fuel work with as many images as possible. All tests run green.

Supported and tested images: Pharo 1.1.1, 1.1.2, 1.2, 1.3, 1.4, 2.0 and Squeak 4.1, 4.2, 4.3, 4.4.

Have fun!


  • same as 1.8
  • fix: serialization / materialization of Date objects.
  • do not use Pharo compatibility packages for Squeak
  • use individual compatibility packages for Squeak
  • new compatibility fixes
  • supported images: Pharo 1.1.1, 1.1.2, 1.2, 1.3, 1.4, 2.0 and Squeak 4.1, 4.2, 4.3, 4.4.
Posted by RMoD at 1 January 2013, 11:40 pm with tags release link

Version 1.8

We are proud to announce Fuel 1.8 with a lot of new features and documentation. Of course, we don't stop working but it was time to freeze a stable version.

Fuel works out of the box in Pharo from 1.1 up to 2.0 (checked at #20094). Please check our Documentation for complete installation and use guides.

Below there are some remarkable changes.

  • Much more complete user guides.
  • Improved API for customizing how graph is traced.
  • FuelMetalevel: serialization of stuff like classes and compiled methods moved to an optional package.
  • Customize objects to be treated as globals.
  • Migrations: declare at materialization time class and variables renames.
  • Weak references properly managed. Thanks to Juan Vuletich and Levente.
  • Thanks Pavel for helping us improving FuelPackageLoader with wonderful ideas and bug reports.
  • Serialization speed up on large graphs by using specialized collections. Thanks Levente.
  • Encoder and Decoder: new reifications that clarify the design. Thanks Colin Putney.
  • Optimized serialization of "clean" BlockClosures, which don't need the whole stack of contexts. Thanks Juan Vuletich and Eliot Miranda.
  • Added a clear error hierarchy.
  • Debug facilities, including graph visualization using Roassal. Thanks Alexandre and Doru.
  • Many more new tests. Including those from extension packages, we have almost 600 tests.
  • Repository moved from 'http://www.squeaksource.com/Fuel' to 'http://ss3.gemstone.com/ss/Fuel'.

If you are a Fuel user we are not aware of, please let us know!

Best regards,

Martin and Mariano

Posted by Martin Dias at 26 May 2012, 6:49 am with tags release link

Version 1.7

We have released the new version 1.7 of Fuel. The list of changes includes performance optimizations, design clean-ups, and new features.

  • The FLSerializer and FLMaterializer API has changed. They are no longer implementing the algorithms but are a kind of Fa├žade.
  • Developer guides with examples: Getting Started and Customizing the graph.
  • Serialization substitutions: "Store this object instead of me."
  • Global sends: "Restore me by sending this selector to this global"
  • Versioning the stream: We prefix the stream with a version number that should match when loading.
  • Performance optimizations on instances of:
    • Word-like classes. (We thank a lot to Henrik Sperre Johansen for your help!)
    • ByteString and Symbol.
    • Date, Time, Duration and DateAndTime.
    • Point and Rectangle.
    • MethodDictionary. Now materialization is 2000x faster, thanks to its new rehash without become.
  • Huge clean-up in Tests package.
Posted by Martin Dias at 14 October 2011, 7:55 am with tags release link

Binary Package Loading

Last week we were successful in a challenging experiment we had in mind for months. It consists on:

  1. Install Seaside in a clean Pharo image
  2. Use Fuel to export Seaside to disk
  3. Import from files in a clean Pharo image
  4. Start a server

The challenge was to achieve that without doing any compilation at all: just serialize a graph of objects in the source image and materialize them in destination. Of course, some initialization on load is needed to get the classes ready to work just as they were loaded by Gofer/Monticello/Metacello.

About the experiment, Mariano Martinez-Peck wrote a wonderful post describing it in full detail, and James Robertson published a cool screencast showing the loading process.

Posted by Martin Dias at 29 September 2011, 10:37 pm with tags binary, package, class, load, parcels link
<< 1 2 >>