~ach/redo-hare

An implementation of djb redo in hare.
Fix buildstart comparison.
Implement redo-ifcreate.
Rework dependency checking.

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~ach/redo-hare
read/write
git@git.sr.ht:~ach/redo-hare

You can also use your local clone with git send-email.

#redo-hare

An implementation of the 'redo' build system in hare.

The implementation is inspired by redo-c, but was reimplemented without specific study of the redo-c source code.

This implementation tries to be compatible with https://github.com/apenwarr/redo except that:

  • It does not capture do file stdout, add 'exec >"$3"' at the top of your do file instead.
  • It has it's own dependency tracking database format, so don't use two different versions of redo at once.
  • The redo-ood, redo-targets, redo-stamp, redo-whichdo, redo-log are missing for now (help wanted).

This implementation tries to be compatible with https://github.com/leahneukirchen/redo-c except that:

  • it does not use implicit hash stamps.

This implementation tries to be compatible with http://www.goredo.cypherpunks.ru/ except that:

  • it does not use implicit hash stamps.
  • it does not create target directories automatically.

#Building

$ cd redo-hare
$ hare build -o redo main.ha

#TODO

  • Implement missing commands - most importantly redo-stamp.
  • Implement the -j flag (by using a pipe as a semaphore/job server).
  • Implement the various flags like -x .
  • We use a cache to determine which targets are out of date, this could be (somehow) shared to/between child processes to reduce the amount of stats required for partial rebuilds.
  • Address XXX comments.
  • Tidy, make idiomatic.