[Pharo-dev] [ANN] Iceberg 0.6 released

Esteban Lorenzano estebanlm at gmail.com
Sat Oct 7 05:16:16 EDT 2017

> On 7 Oct 2017, at 08:10, Denis Kudriashov <dionisiydk at gmail.com> wrote:
> Hi Esteban
> 2017-10-06 19:18 GMT+02:00 Esteban Lorenzano <estebanlm at gmail.com <mailto:estebanlm at gmail.com>>:
> Hi all, 
> I released Iceberg version 0.6. It includes a lot of small tweaks and fixes, but the most important inclusion is tonel file format which aims to replace file tree.
> What is Tonel? (https://github.com/pharo-vcs/tonel <https://github.com/pharo-vcs/tonel>)
> Tonel is a file-per-class file format for monticello repositories. It’s purpose is to reduce the amount of files touched each operation, make the IO faster an compact the repositories database. 
> It has also as an objective to offer an “easy-to-read” format, so people wanting to understand a chunk of code will recognise it easily. 
> For testing, I migrated several of my projects to Tonel and I’ve been using it, you can see some as examples: 
> https://github.com/estebanlm/MUDClient <https://github.com/estebanlm/MUDClient>
> https://github.com/estebanlm/pharo-tonel <https://github.com/estebanlm/pharo-tonel> (this was just an example and it has some minimal errors already fixed)
> Did you accept format changes?
> Because it still uses category for the class. Really, we are moving away from it. Class has package and tags.
> Method also needs support for multiple tags. While you are not agree on using tags terminology Tonel still uses single category for this. 
> I think it is important for the new format to not use deprecated names and add support for upcoming features. Instead we will be forced to maintain old Tonel format at some point.
> And what about slots and class extensions? Do you have example for them?

We will support changes when the subjacent model changes. 
Just cosmetic changes are a no go for me, because that’s always arguably. For example, is been months that I’m telling you that protocols and tags are not the same, even if mechanically they behave the same :)
So, tonel will support “protocol” (and “protocols”) instead category (when MCMethodDefinition changes). But for sure it will not support “tag” or “tags” :P
It will support slots too… just when MC metamodel supports it.

Class extensions are there: Object.extension.class, for example.

Now, Tonel format is thought to be flexible because we intend to use it to replace file tree and file tree *is* flexible. Using STON definitions allows us to quickly adapt at the only price of being backward compatible a reasonable amount of time. So, it will adapt… but as I said, it will adapt with real system changes.


> We plan to migrate Pharo development to tonel to address some problems we have: 
> - since it has to read/write a lot of files, IO operations are slow
> - and even much more slow in Windows
> - Windows also has a problem with longpaths.
> Iceberg 0.6 will be integrated to Pharo7 soon :)
> To update Pharo 6.1, there are instructions in the readme: https://github.com/pharo-vcs/iceberg/blob/master/README.md <https://github.com/pharo-vcs/iceberg/blob/master/README.md>
> now, if you wan to migrate your projects to Tonel (from FileTree), here is a script you can use: https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md <https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md>
> btw, tonel is independent of Iceberg and can be used with plain Monticello (but it is a metadaless format, history will reside on git, not on monticello).
> cheers, 
> Esteban 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20171007/6e6f684c/attachment-0002.html>

More information about the Pharo-dev mailing list