Smalltalk News

Version 1.5 of Fuel Released

Posted by:

Fuel, an open-source, general-purpose, binary serialization system for Smalltalk, provides extremely fast deserialization based on the pickling algorithm of parcels.  It’s also a popular tool for loading packages in Cincom® VisualWorks®. With a clean, object-oriented design that provides most of the required serializer features, Fuel is implemented in a Pharo Smalltalk Environment and is capable of building a very fast serializer without specific VM support.

The latest version of Fuel (Version 1.5) brings with it several changes, and Fuel developers have several ideas, possibilities and issues to pursue for future releases. 

More information is available here, and updates to this page are expected shortly including additional information that will be added to the benchmarks section. 

You can download this version in Pharo with:

Gofer new
        squeaksource: 'Fuel';
        package: 'ConfigurationOfFuel';
        load.
((Smalltalk at: #ConfigurationOfFuel) project version: '1.5') load.

The following are some changes that are effective with Version 1.5:

  • Initialize instances after materialization, implementing #fuelAfterMaterialization.
  • Ignore transient instance variables overriding #fuelIgnoredInstanceVariableNames.
  • Limit serialization progress bar to update at the most once every 250 milliseconds.
  • Traits are serialized and materialized as regular objects (http://code.google.com/p/fuel/issues/detail?id=59).
  • Removed mappers system cache (Eliot).
    • Many new tests.
  • Benchmarks
    • – Compare Fuel against StOMP, SRP, SIXX, Magma, EsAndEm and Fuel with progress bar.
    • –  New samples, scripts and CSV exporter
    • – Measure serialization stream size.
  • Removed some redundant #fuelAccept:.
  • Several aesthetic changes in protocols, categories and comments.
  • Now #materialize answers the materialized root.
  • Removed special cluster for HashedCollection. Now #rehash is sent via #fuelAfterMaterialization.
  • MethodContext serialization does not serialize temps (http://code.google.com/p/fuel/issues/detail?id=61).
  • Classes and traits now serialize its environment (testCreateWithSmalltalkGlobalsEnvironment).
    • Fixed serialization of non-octet characters (testCharacter).
  • Fixed a bug when serializing the system dictionary. FLWellKnownObjectsCluster handles it (testSmalltalkGlobals).
    • Fixed a bug when serializing class variables (testClassVariable).
  • Fixed a bug when serializing a collection with a size greater than 1^16 with repeated elements inside.
    • Fixed testTwoCompiledMethodsReferencingSameClassVariable.
    • Optimization: instanceIndexes are directly created with the exact size (Henrik).
0


Add a Comment

You must be logged in to post a comment.