[Pharo-dev] FileTree

Thierry Goubier thierry.goubier at gmail.com
Sat Feb 18 09:32:34 EST 2017

Hi Guile,

Le 18/02/2017 à 13:20, Guillermo Polito a écrit :
> We could try that... The thing is that it contains definitions of a
> Smalltalk kernel, so there are alternative Boolean classes, String
> classes, and so on... We would like to avoid conflicts in the image.

the API of FileTree is tied to the Monticello model of smalltalk code 
(and the api of Monticello repositories).

The MC model of code is of interest to you because it is completely 
decoupled from the code running in the image. It is just a bunch of 
objects, instances of MCMethodDefinition, MCClass... etc... regrouped in 
a MCVersion. What is saved, loaded and manipulated by a FileTree 
repository is that structure. The use is fairly clean: save a version 
(or a set of versions... with gitfiletree only) along with the 
dependencies; iterate over the contents of the MCVersion and write files 
/ create directories.

Reading with FileTree is the same process: read the directories / files 
and recreate the MCVersion.

Now, reimplementing this gives you two strategies: look into 
MCFileTreeStCypressWriter to see the core methods (the ones writing the 
files out of the MCVersion items, such as #writeClassDefinition:to:). 
This is not much code, but it seems more complex than it is really 
because there is a lot of delegation going on and the upper Monticello 
repository and writer classes are not abstract enough for FileTree.



> On Sat, Feb 18, 2017 at 1:17 PM, <serge.stinckwich at gmail.com
> <mailto:serge.stinckwich at gmail.com>> wrote:
>     I don't understand because you can load your project in a Pharo
>     image and save it as with FileTree.
>     Envoyé de mon iPhone
>     Le 18 févr. 2017 à 13:09, Guillermo Polito
>     <guillermopolito at gmail.com <mailto:guillermopolito at gmail.com>> a écrit :
>>     Hi Serge,
>>     Jonathan is trying to convert some old code I have in here:
>>     https://github.com/guillep/PharoCandle
>>     <https://github.com/guillep/PharoCandle>
>>     to Filtree.
>>     The thing is that at that moment I started that, FileTree was not
>>     there, So I made my own format and my own parser based and
>>     PetitParser and the Smalltalk petit parser that produced my own
>>     little meta-model :P.
>>     But now we want to move to the standard tools of today.
>>     What we would like to know is what should we use to write FileTree
>>     from something that is not Monticello, what is the class to look
>>     at, and the API to use.
>>     ANY information is welcome :)
>>     Thanks,
>>     Guille
>>     On Fri, Feb 17, 2017 at 5:22 PM, Jonathan Khalil <jonathan at esp.sn
>>     <mailto:jonathan at esp.sn>> wrote:
>>         Oh really ? My school is Ecole Supérieur Polytechnique (ESP).
>>         I want to rewrite the pharoCandle in the FileTree format but i
>>         don't know where to start.
>>         Jonathan
>>         2017-02-17 16:37 GMT+01:00 Serge Stinckwich
>>         <serge.stinckwich at gmail.com <mailto:serge.stinckwich at gmail.com>>:
>>             On Fri, Feb 17, 2017 at 3:06 PM, Jonathan Khalil
>>             <jonathan at esp.sn <mailto:jonathan at esp.sn>> wrote:
>>             > Hi everyone,
>>             >
>>             > I'm Jonathan, student in master, from Dakar, Sénégal and i will be working
>>             > with stephane ducasse's team for my internship.
>>             Great Jonathan. Where are you located ? My research team
>>             is working in
>>             Senegal in Dakar and St-Louis.
>>             > I need some lectures on FileTree.
>>             > Someone know how can i get it ?
>>             What kind of information you are looking for FileTree ?
>>             I'm not sure that there is that much information about it
>>             except the code :-)
>>             https://github.com/dalehenrich/filetree
>>             <https://github.com/dalehenrich/filetree>
>>             Regards,
>>             --
>>             Serge Stinckwich
>>             UCBN & UMI UMMISCO 209 (IRD/UPMC)
>>             Every DSL ends up being Smalltalk
>>             http://www.doesnotunderstand.org/
>>             <http://www.doesnotunderstand.org/>

More information about the Pharo-dev mailing list