On 07/02/11 17:23, Anatol Pomozov wrote: [...] > There is an interesting build tool called Tup [1] that uses reverse > algorithm. First it finds all files has been changed and then > constructs subgraph that needs to be rebuild. It is a huge time-saver > for incremental builds in large projects. See more info in this paper > [2], and the result at this page [3] That's very interesting --- I have actually been thinking a revisit to Prime Mover; it works great for me but there are places where it needs a redesign. One of its problems is that while it's hugely faster than recursive make it's not great on truly huge source trees. Adopting some of tup's design features ought to make things much snappier, as well as allowing parallel builds. Lua's ability to read and write data very quickly should avoid the need for a transactional database like SQLite, too... Interestingly, Google have just released this: http://martine.github.com/ninja/manual.html It's a very fast build tool which has no features other than managing a dependency graph as quickly as possible. They're completely up-front about the fact that they intend you to generate ninjafiles via other tools; decisions like compiler flags or release-vs-debug builds are not handled by ninja itself. It looks like it doesn't handle visiting nodes multiple times (Prime Mover's raison d'etre) or handling dynamically generated source files (er, Prime Mover's other raison d'etre). Alas, it's written in C++. -- ┌─── dg@cowlark.com ───── http://www.cowlark.com ───── │ "Thou who might be our Father, who perhaps may be in Heaven, hallowed │ be Thy Name, if Name Thou hast and any desire to see it hallowed..." │ --- _Creatures of Light and Darkness_, Roger Zelazny
Attachment:
signature.asc
Description: OpenPGP digital signature