4 ms·
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 r
by davvid 11y ago
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.
[1] https://github.com/apenwarr/redo https://github.com/apenwarr/redo
- fratx 11y agoI 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. [0] https://github.com/Tharre/redo https://github.com/Tharre/redo
- kazinator 11y agoThen 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. :)
- Tharre 11y agoA 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. [0] https://github.com/Tharre/redo/blob/master/default.do https://github.com/Tharre/redo/blob/master/default.do