Hi Martin, Nice project.
I noticed that you have a package FuelFameExtension. Is this done for the Fame meta engine? If yes, I would be interested in testing it, especially that in the context of Moose we do load the objects significantly more often than we store them :). Cheers, Doru On 8 Dec 2010, at 17:50, Martin Dias wrote: > Hi all > > Last months I and Tristan have been working on Fuel project, an object > binary serialization tool. The idea is that objects are much more > times loaded than stored, therefore it is worth to spend time while > storing in order to have faster loading and user experience. We > present an implementation of a pickle format that is based on > clustering similar objects. > > There is a summary of the project below, but more complete information > is available here: http://rmod.lille.inria.fr/web/pier/software/Fuel > > The implementation still needs a lot of work to be really useful, > optimizations should be done, but we'll be glad to get feedback of the > community. > > > = Pickle format = > > The pickle format and the serialization algorithm main idea, is > explained in this slides: > > http://www.slideshare.net/tinchodias/fuel-serialization-in-an-example > > > = Current features = > > - Class shape changing (when a variable has been added, or removed, or > its index changed) > - Serialize most of the basic objects. > - Serialize (almost) any CompiledMethod > - Detection of global or class variables > - Support for cyclic object graphs > - Tests > > > = Next steps = > > - Improve version checking. > - Optimize performance. > - Serialize more kinds of objects: > -- Class with its complete description. > -- Method contexts > -- Active block closures > -- Continuation > - Some improvements for the user: > -- pre and post actions to be executed. > -- easily say 'this object is singleton'. > - Partial loading of a stored graph. > - Fast statistics/brief info extraction of a stored graph. > - ConfigurationOfFuel. > - Be able to deploy materialization behavior only (independent from > the serialization behavior) > > > = Download = > > In a Pharo 1.1 or 1.1.1 evaluate: > > Gofer new > squeaksource: 'Fuel'; > version: 'Fuel-MartinDias.74'; > version: 'FuelBenchmarks-MartinDias.4'; > load. > > > = Benchmarks = > > You can run benchmarks executing this line (results in Transcript): > > FLBenchmarks newBasic run. > > > Thank you! > Martin Dias > -- www.tudorgirba.com "Sometimes the best solution is not the best solution."