Stefan Lang
4/3/2005 10:13:00 PM
On Sunday 03 April 2005 23:09, Lionel Thiry wrote:
> Stefan Lang a écrit :
> > On Sunday 03 April 2005 19:23, Jamis Buck wrote:
> >>On Apr 3, 2005, at 10:40 AM, Stefan Lang wrote:
> >>>Rant is a flexible build tool written entirely in Ruby,
> >>>similar to Rake.
> >>
> >>Could you expand on that a little bit more? What are some of the
> >>differences between Rake and Rant? From the name it sounds like the
> >>relationship might be "Rake is to Make as Rant is to Ant", but that's
> >>just a shot in the dark.
> >>
> >>- Jamis
> >
> > During development I use the following build tools as reference:
> > * Ant (Java)
>
> 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.
>
> > * 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.
> --
> Lionel Thiry
Stefan