Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This essentially turns "make" inside out. The makefile lists the dependencies and then has minimal glue to run the build command based on the dependencies. Instead, redo has the build commands invoke helper-tools to specify the dependencies.

Overall, I quite like it. One downside of the current design that I see as being somewhat hard to fix is that it doesn't handle build commands with multiple outputs. There are klugey workarounds, but they require either lying to redo about the true dependencies (which always fills me with dread), or making parallel build unreliable.



Those downsides sound massively important to fix.


I've been agitating on the mailing list. True cases of this seem to be fairly rare, and I have come up with a slightly more effective (but ridiculous) workaround: have the multiple target command create an archive of its output, and then each actual target depends on the archive and extracts itself from the archive.


There is yacc, as a fairly common standard case, and I find that quite a few of my homegrown tools for little languages fall into this category (e.g. translating a table into a header file, a source file, and a ruby script).




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: