From: Lionel Thiry Date: 2005-04-04T11:14:41+09:00 Subject: Re: [ANN] Rant 0.3.2 Stefan Lang a �crit : > On Sunday 03 April 2005 23:09, Lionel Thiry wrote: >>Following your code samples, I must tell I feel it hard to see where Rant >>is affiliated with Ant. > > > An Rantfile is Ruby code. A buildfile for Ant is XML. > Besides that, one could call Ant as project oriented. I try to achieve > a similar goal with Rant. There is already another project called Rant on rubyforge, and that one claims to be a real mimick of Ant in ruby. So, I suppose telling "Rant is for Ant what Rake is for Make" fits better for that other project. >>>* Nant (C#) >>>* make >>>* SCons (Python) >> >>I'm really curious here: what have you borrowed from SCons? Does Rant use a >>directed acyclic graph for managing file dependencies? (AFAIK it's the main >>mechanism of SCons internals) > > > If I understand the definition of a DAG correctly, yes. > Rant delays dependency resolving until the point where it's actually > needed: > task :t => %w(d1 d2) do > end > > task :d1 do > ... > task :d2 do > end > end > When invoking task "t", Rant will first invoke dependency "d1" > which will create task "d2", then the newly created task "d2" > will be invoked and afterwards the actions for "t" will be performed. > Don't know if something like that works with SCons. > > With Rant it is possible to achieve the same goals as with a "Construction > Environment" in SCons (at least AFAIK SCons), but this is currently not > documented (mainly because it's currently not very convinient to do so > and it will change, expect docs in future releases). > > Note that Ant and SCons are very heavyweight compared to Rant. And Rant > is in an early stage of development. I'm using other build tools as > reference for e.g. names of commandline switches or to decide detailed > semantics. I can't tell I master those topics, but I don't think it is exactly what I was talking about. One of the feature of SCons is to be able to automatically generate tasks based on file dependencies. In some way, it would be as if task d2 didn't needed to be created, SCons would have done it for you. But it would do it the same way you stated: only when needed. Note: SCons doesn't even stop on "automagically generate the appropriate task and only when needed", it even tries its best to find the dependencies itself. Second Note: I think jam works the same way. -- Lionel Thiry