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. I need some lectures on FileTree. Someone know how can i get it ? Thanks Jonathan |
On Fri, Feb 17, 2017 at 3:06 PM, Jonathan Khalil <[hidden email]> 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 Regards, -- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://www.doesnotunderstand.org/ |
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 <[hidden email]>: On Fri, Feb 17, 2017 at 3:06 PM, Jonathan Khalil <[hidden email]> wrote: |
Hi Serge, Jonathan is trying to convert some old code I have in here: 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 <[hidden email]> 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
|
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. On Sat, Feb 18, 2017 at 1:17 PM, <[hidden email]> wrote:
|
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. Regards, Thierry > On Sat, Feb 18, 2017 at 1:17 PM, <[hidden email] > <mailto:[hidden email]>> 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 > <[hidden email] <mailto:[hidden email]>> 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 <[hidden email] >> <mailto:[hidden email]>> 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 >> <[hidden email] <mailto:[hidden email]>>: >> >> On Fri, Feb 17, 2017 at 3:06 PM, Jonathan Khalil >> <[hidden email] <mailto:[hidden email]>> 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/> >> >> >> > |
In reply to this post by Guillermo Polito
Guille, You should be able to read (not load) Monticello packages into an image as a snapshot and then write that snapshot out in FileTree format ...There isn't a direct way for doing this type of thing in Monticello itself, but it can be put together without too much trouble. I've written code to do just that in tODE[1]. I've extracted the code in this mail and you should be able get something functional without too much trouble: mccopy: versionName fromRepository: sourcRepository to: destinationRepoDescriptions "destinationRepoDescriptions may include repository descriptions or object references (@xxx)" | version repo repositoryList | version := self versionFor: versionName inRepository: sourcRepository. repositoryList := OrderedCollection new. destinationRepoDescriptions do: [ :repoSpec | | repoOrList | repoOrList := self resolveRepositoryReference: repoSpec. "just need a FileTree repository instance here" repoOrList isCollection ifTrue: [ repositoryList addAll: repoOrList ] ifFalse: [ repositoryList add: repoOrList ] ]. ^ self mccopyVersion: version to: repositoryList versionFor: versionName inRepository: repo | reference version | reference := GoferResolvedReference name: versionName repository: repo. ^ reference version mccopyVersion: version to: repositoryList ^ repositoryList collect: [ :repo | self storeVersion: version inRepository: repo ] Dale [1] https://github.com/dalehenrich/tode/blob/master/repository/Topez-Server-Core.package/TDMonticelloTool.class/ On 2/18/17 4:20 AM, Guillermo Polito
wrote:
|
Free forum by Nabble | Edit this page |