lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


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