parser: Fix longstanding bug where "()" was required after CLI targets.
[goals.git] / TODO
diff --git a/TODO b/TODO
index 45b1880..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.
 
 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).
 
 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).
 
 
 Conditional sections (same as "ifeq" etc in make).
 
@@ -39,10 +33,7 @@ let foo = { echo "hello" }
 and/or anonymous functions:
 let foo = function (arg) { ... }
 
 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.