Fix: You must use 'all ()' on the command line.
-"Quiet" code. Generally {CODE} sections in user files should be
-echos, and those in stdlib should run silently (except if debugging).
-Maybe we should have a quiet keyword to indicate this?
-
Deleting target files if goals is interrupted, but only if the
timestamp changes (what about non-*files?). Also: atomic code. This
will delete the target if the code doesn't run to completion. (make
doesn't do this, but probably it should).
-Implement parallel builds.
+Parallel builds: On failure, wait for other jobs to finish.
Conditional sections (same as "ifeq" etc in make).
and/or anonymous functions:
let foo = function (arg) { ... }
-Functions returning plain strings and lists of strings.
-function (foo, bar) returning string = { echo hello }
-function (foo, bar) returning strings = { echo hello; echo goodbye }
-Then re-add the sort function.
-
-Should the environment be populated by the actual environment, eg:
-let homedir = "%HOME"
+Infinite loop when you have this goal:
+goal pod2man (page, section) = "docs/%page.%section" : "docs/%page.pod" { ... }
+This is caused by %section matching "pod" so the rule is called
+again, even if the local file docs/%page.pod actually exists.