> On 7 Oct 2017, at 08:10, Denis Kudriashov <[email protected]> wrote: > > Hi Esteban > > 2017-10-06 19:18 GMT+02:00 Esteban Lorenzano <[email protected] > <mailto:[email protected]>>: > 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. Esteban > > > 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 >
