Changes by: Jason J. Hickey (jyh at cs.caltech.edu)
Date: 2007-11-04 11:04:55 -0800 (Sun, 04 Nov 2007)
Revision: 12555
Log message:

      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  Path(relative to 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