X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=TODO;h=af661fd673e9f95fc1f7943bf62d712f4b68ecfe;hb=2b6dba02c641e5c2ab09700e20c1f76193869722;hp=379bb14ca1133d77df158d607808098caa10662e;hpb=86051da22cc2a0be9766de20a33fe1cd24b0421e;p=goals.git diff --git a/TODO b/TODO index 379bb14..af661fd 100644 --- a/TODO +++ b/TODO @@ -1,12 +1,35 @@ -'let :=' for immediate evaluation in assignment. Does this work -for included files? +'let :=' for immediate evaluation in assignment. Does this work for +included files? Also ?= to only override if not already defined. Default parameters, ie: goal foo (name, release = true) = ... You might only allow defaults to be added to the end, or you might allow goals to be called with labelled parameters. -Functions, eg. wildcard("*.c"). These should be defined as shell -scripts with a selection of common functions defined in stdlib. +Fix: You must use 'all ()' on the command line. -Allow "-" character in identifiers, so eg. "goal maintainer-clean" works. +"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. + +Conditional sections (same as "ifeq" etc in make). + +Let within functions and goals, eg: + function foo () = + let temp = "%bar%baz"; + { .... } +Unclear if this would be helpful or not. + +Implement more make functions, see: +https://www.gnu.org/software/make/manual/html_node/Functions.html#Functions + +Make re-execs itself if the Makefile (or any include) changes, and +goals should do something similar. See: +https://www.gnu.org/software/make/manual/html_node/Remaking-Makefiles.html