Changes by: Jason J. Hickey (jyh at cs.caltech.edu)
Date: 2007-06-28 18:18:32 -0700 (Thu, 28 Jun 2007)
Revision: 11162
Log message:

      There was an error in the semantic checker where it rejected .STATIC
     rules in functions.  The following program now works as expected.
     
         g(x) =
             eprintln($"g($x)")
             add($x, 1)
         
         f(x) =
             .STATIC: :key: $x
                 y = $(g $x)
             value $y
         
         println($(f 1))
         println($(f 2))
         println($(f 1))
     
     This calls g only twice.
     
         g(1)
         2
         g(2)
         3
         2
     
     Of course, .STATIC rules are only for values saved between runs.  We also
     need the memo function.

Changes  Path
+6 -0 omake-branches/0.9.8.x/src/env/omake_command_digest.ml
+3 -2 omake-branches/0.9.8.x/src/env/omake_ir_ast.ml
+4 -0 omake-branches/0.9.8.x/src/env/omake_ir_semant.ml
+2 -0 omake-branches/0.9.8.x/src/eval/omake_eval.ml
+1 -0 omake-branches/0.9.8.x/src/ir/omake_ir.ml
+1 -0 omake-branches/0.9.8.x/src/ir/omake_ir_free_vars.ml
+7 -0 omake-branches/0.9.8.x/src/ir/omake_ir_print.ml