Hi Tudor, Thank you. Yes, just to test the project in a real case, I created a package that uses Fame metadescription like MSE to export and import moose models. In the main page I talk a bit about the extension, but I didn't mentioned it in the summary mail. It needs to be better tested... and a progress bar like MSE! In Moose 4.1: Gofer new squeaksource: 'Fuel'; version: 'Fuel-MartinDias.74'; version: 'FuelFameExtension-MartinDias.10'; load. And opening a new MoosePanel it will have the export to FL and import from FL options. I would like to have your feedback! Martin On Thu, Dec 9, 2010 at 10:02 AM, Tudor Girba <tudor.girba@gmail.com> wrote:
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."