apenwarr's implementation of djb redo[1] contains a minimal, shell implementation of redo in its `minimal/` subdirectory.
It seems like the downside to using redo would be that there are .do files sitting throughout the source tree. It'd be nice if there was a way to consolidate several .do files into a single Redofile, similar to a Makefile or Sakefile.
Like the non-minimal redo, sake is also implemented in Python. I wonder how they compare, performance-wise.
I like the concept of redo, but is there actually a version that does not depend on a hole runtime environment like python, ideally something written just in plain C? I've come across this[0] but it's a WIP and development seems to go very slow.
Then again, some make-based projects work very hard in order to have tidy little .mk include files in just about every directory in the source tree. :)
A single Redofile kind of doesn't work with the hole concept of redo, sadly. However, most .do files will sit in some kind of out/ directory anyway, so I don't think that'd be a real issue in practise.
Speaking of performance, apenwarrs redo implementation suffers mostly from excessive forking of the python runtime. Sake doesn't need to do this, but it needs to do more work at the start, so my guess would be that Sake is faster for any bigger project. That is assuming sequential builds though, because it seems like Sake doesn't support parallel building?
EDIT: I believe you can create a fake "Redofile" even in apenwarr redo by just naming it "default.do" and switching on $1 to see what you are supposed to build. I even used this myself[0], but it's a hack, and should be replaced by something better.
The tool looks interesting, but I don't understand what the submission title is supposed to mean. The novel part of this relative to make is not the use of shell scripts (the actual building of things and dependency tracking appears to be identical to make), but rather the graph visualization and ability to actually document targets.
Was interested to see what this is about, but the lack of contrast between letters and background put me off to make the effort to even try and get the point. Please, people who make an effort: Please do not do so in vain.
Not really a solution, but using NoScript helps in such situations. I was using NoScript and only after seeing your comment (and temporarily whitelisting the site) did I notice the issue.
This is on a page with a white background. You might want to reconsider this for the benefit of vision impaired readers (or even those trying to read with some glare on the screen, as I am now).
17 comments
[ 3.6 ms ] story [ 37.0 ms ] threadSake: A self-documenting build automation tool
I wonder why the submitter decided to go off piste?
It seems like the downside to using redo would be that there are .do files sitting throughout the source tree. It'd be nice if there was a way to consolidate several .do files into a single Redofile, similar to a Makefile or Sakefile.
Like the non-minimal redo, sake is also implemented in Python. I wonder how they compare, performance-wise.
[1] https://github.com/apenwarr/redo
[0] https://github.com/Tharre/redo
Speaking of performance, apenwarrs redo implementation suffers mostly from excessive forking of the python runtime. Sake doesn't need to do this, but it needs to do more work at the start, so my guess would be that Sake is faster for any bigger project. That is assuming sequential builds though, because it seems like Sake doesn't support parallel building?
EDIT: I believe you can create a fake "Redofile" even in apenwarr redo by just naming it "default.do" and switching on $1 to see what you are supposed to build. I even used this myself[0], but it's a hack, and should be replaced by something better.
[0] https://github.com/Tharre/redo/blob/master/default.do
This is on a page with a white background. You might want to reconsider this for the benefit of vision impaired readers (or even those trying to read with some glare on the screen, as I am now).
https://github.com/kgaughan/memoize.py (https://news.ycombinator.com/item?id=9356433)
Also another entrant in the genre is 'Drake':
http://blog.factual.com/introducing-drake-a-kind-of-make-for... (https://news.ycombinator.com/item?id=5110921)