Skip to content
Snippets Groups Projects
Commit 8dd89ca3 authored by Richard W.M. Jones's avatar Richard W.M. Jones
Browse files

Update NOTES.

parent c3463aa7
No related branches found
No related tags found
No related merge requests found
## NB ##
These notes reflect earlier thinking about the language and may not
necessarily accurately describe the current goaljobs language. Please
read the documentation instead.
## NB ##
Like 'make' except: Like 'make' except:
- Predicates can be based on arbitrary expressions, not just - Predicates can be based on arbitrary expressions, not just
"file X is older than file Y". "file X is older than file Y".
...@@ -10,21 +18,11 @@ Differences from 'whenjobs': ...@@ -10,21 +18,11 @@ Differences from 'whenjobs':
- Goals instead of variables. - Goals instead of variables.
- Persistent (across session) variables exist, but are not central. - Persistent (across session) variables exist, but are not central.
- Doesn't use <<..>> for shell scripts (has a function 'sh' instead). - Doesn't use <<..>> for shell scripts (has a function 'sh' instead).
- No daemon.
Similarities to 'whenjobs': Similarities to 'whenjobs':
- Each shell script runs in its own temporary directory. - Each shell script runs in its own temporary directory.
Example Makefile rule and translation to goaljobs language:
%.o: %.c
cc -c $< -o $@
let goal compile c_file =
require (file_exists c_file);
let o_file = replace_substring ".c" ".o" c_file in
target (file_exists o_file && file_newer o_file c_file);
sh "cc -c %s -o %s" c_file o_file
Example program: Example program:
let package = "foo" let package = "foo"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment