From: Lionel Thiry Date: 2005-04-07T06:44:43+09:00 Subject: Re: [ANN] Rant 0.3.2 Jim Weirich a �crit : > On Tuesday 05 April 2005 07:44 pm, Lionel Thiry wrote: > >>>Actually they are. Ok, there are no checks to enforce the acyclic nature >>>of the dependency graph, but the arcs of the graph are certainly >>>directed. >> >>In Rake, the existence of the graph is implicit, hidden in the Task >>instances themselves, there isn't any explicit global DAG object. >> >>Just pointing a fact, no offense. :) > > > None taken. You are correct. There is no one object that represents a > DAG[1]. But a DAG is merely a graph with a set of nodes and directed arcs > between the node (and no cycles too). The Task objects form the nodes of the > DAG and the directed arcs are implemented by named lookup in the task map. > > You seem to imply there would be advantages to a more explicit DAG > implementation. Not exactly. SCons main design doc claims its cornerstone is the management of explicit file dependency DAG. As SCons is one of the source of inspiration for Rant, I asked if it was based on the same cornerstone. > I would be interested in hearing what you think those > advantages might be. > For Rake, the advantages of a Task Dependency Graph (TDG) _might_ be: 1) better decoupling between inner mechanisms of Rake and its interface, the Rakefile. It would allow the development of other interfaces. 2) Easier to play with several TDG at the same time, merge them, split them, and so on. Probably not doable with Rakefile as there is usually only one such TDG. 3) Easier to add multithreaded task execution. 4) easier to develop event listening (for example: once this target is build and passed unit tests, send me a mail) 5) easier to develop error & exception management 6) probably a lot of other features that I haven't sight of The disadvantages are: 1) the advantages listed above are mostly suppositions 2) DAG management code may be heavy 3) task generation on the fly as the TDG is executed may be delicate to implement 4) not sure the concept of rule can be applied easily with a TDG -- Lionel Thiry