parser: Fix longstanding bug where "()" was required after CLI targets.
[goals.git] / TODO
diff --git a/TODO b/TODO
index 4d74fe3..51bd05a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -6,18 +6,12 @@ Default parameters, ie:
 You might only allow defaults to be added to the end, or you
 might allow goals to be called with labelled parameters.
 
-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).
 
@@ -39,7 +33,7 @@ let foo = { echo "hello" }
 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.
+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.