[Omake] SVN Commit: OMake Build System [0.9.8.x] (Rev. 12555)
Jason J. Hickey
jyh at cs.caltech.edu
Sun Nov 4 11:04:55 PST 2007
This drops the recursive quote in favor of the non-recursive quote,
more like Lisp-style. This is a major code simplification, and more
intuitive too.
There is a semantic change--quoting is not recursive.
Before:
osh> println($`(printvln $y))
$(apply global.y)
Now we get: unbound variable: global.y
To get the previous behavior, two quotes must be used.
println($`(printvln $`y))
$(global.y) : Exp
Eager quotes are transformed at compile time into private bindings.
$`(f $,y)
<-->
private."eager.x1" = $y in
$`(f $(eager.x1))
The "eager.x1" is a variable name containing a dot.
NOTE: the way I have done it now, unquotes are nested too, and there
is no double-unquote.
$`(x $`(y $,z)) # $,z belongs to the inner quote
Actually, thinking about Lisp, this is probably wrong. I'll change
it.
----
Changes in omake-branches/0.9.8.x:
+2 -2 src/build/omake_rule.ml
+0 -24 src/builtin/omake_builtin_object.ml
+16 -54 src/env/omake_command_digest.ml
+103 -35 src/env/omake_ir_ast.ml
+13 -6 src/env/omake_ir_semant.ml
+88 -246 src/eval/omake_eval.ml
+1 -2 src/eval/omake_eval.mli
+0 -32 src/eval/omake_value.ml
+6 -14 src/ir/omake_ir.ml
+9 -4 src/ir/omake_ir_free_vars.ml
+22 -29 src/ir/omake_ir_print.ml
+0 -32 src/ir/omake_value_print.ml
+0 -4 src/ir/omake_value_type.ml
+1 -5 src/main/omake_shell.ml
Properties test/lazy/
Added test/lazy/Test1
A hyperlinked version of this commit is available at
http://svn.metaprl.org/commitlogs/omake/2007-11.html#07/11/04.11:04:55
More information about the OMake-CVS
mailing list