Changes by: Jason J. Hickey (jyh at cs.caltech.edu)
Date: 2007-11-06 18:48:17 -0800 (Tue, 06 Nov 2007)
Revision: 12583
Log message:

      Performance optimization: use Array for arguments, instead of List.
     
     This is a surprise to me, but the optimization results in a slight slowdown,
     and 5%.  That isn't statistically significant on a single run, but the slowdown
     is consistent.  This is despite the fact that the evaluator uses List.map
     a lot.
     
     I guess the reason is that the argument lists tend to be small and short-lived,
     so the extra allocation rate is no big deal.  Still, it is a little surprising.

Changes  Path(relative to omake-branches/jumbo/array-args)
Copied . (from rev 12468, omake-branches/0.9.8.x)
Replaced OMakefile
Copied OMakefile (from rev 12575, omake-branches/0.9.8.x/OMakefile)
Copied bench/ (from rev 12575, omake-branches/0.9.8.x/bench)
+1 -1 bench/mandel/Test1
Replaced doc/html/omake-all-index.html
Copied doc/html/omake-all-index.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-all-index.html)
Replaced doc/html/omake-autoconf.html
Copied doc/html/omake-autoconf.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-autoconf.html)
Replaced doc/html/omake-base.html
Copied doc/html/omake-base.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-base.html)
Replaced doc/html/omake-build-examples.html
Copied doc/html/omake-build-examples.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-build-examples.html)
Replaced doc/html/omake-build.html
Copied doc/html/omake-build.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-build.html)
Replaced doc/html/omake-contents.html
Copied doc/html/omake-contents.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-contents.html)
Replaced doc/html/omake-detail.html
Copied doc/html/omake-detail.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-detail.html)
Replaced doc/html/omake-doc.html
Copied doc/html/omake-doc.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-doc.html)
Replaced doc/html/omake-fun-index.html
Copied doc/html/omake-fun-index.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-fun-index.html)
Replaced doc/html/omake-grammar.html
Copied doc/html/omake-grammar.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-grammar.html)
Replaced doc/html/omake-language-examples.html
Copied doc/html/omake-language-examples.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-language-examples.html)
Replaced doc/html/omake-language-naming.html
Copied doc/html/omake-language-naming.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-language-naming.html)
Replaced doc/html/omake-language.html
Copied doc/html/omake-language.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-language.html)
Replaced doc/html/omake-obj-index.html
Copied doc/html/omake-obj-index.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-obj-index.html)
Replaced doc/html/omake-option-index.html
Copied doc/html/omake-option-index.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-option-index.html)
Replaced doc/html/omake-options.html
Copied doc/html/omake-options.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-options.html)
Replaced doc/html/omake-pervasives.html
Copied doc/html/omake-pervasives.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-pervasives.html)
Replaced doc/html/omake-quickstart.html
Copied doc/html/omake-quickstart.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-quickstart.html)
Replaced doc/html/omake-references.html
Copied doc/html/omake-references.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-references.html)
Replaced doc/html/omake-rules.html
Copied doc/html/omake-rules.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-rules.html)
Replaced doc/html/omake-shell.html
Copied doc/html/omake-shell.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-shell.html)
Replaced doc/html/omake-system.html
Copied doc/html/omake-system.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-system.html)
Replaced doc/html/omake-target-index.html
Copied doc/html/omake-target-index.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-target-index.html)
Replaced doc/html/omake-toc.html
Copied doc/html/omake-toc.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-toc.html)
Replaced doc/html/omake-var-index.html
Copied doc/html/omake-var-index.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake-var-index.html)
Replaced doc/html/omake.html
Copied doc/html/omake.html (from rev 12469, omake-branches/0.9.8.x/doc/html/omake.html)
Replaced doc/html/osh.html
Copied doc/html/osh.html (from rev 12469, omake-branches/0.9.8.x/doc/html/osh.html)
Replaced doc/info/omake-doc.info
Copied doc/info/omake-doc.info (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info)
Replaced doc/info/omake-doc.info-1
Copied doc/info/omake-doc.info-1 (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info-1)
Replaced doc/info/omake-doc.info-10
Copied doc/info/omake-doc.info-10 (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info-10)
Replaced doc/info/omake-doc.info-2
Copied doc/info/omake-doc.info-2 (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info-2)
Replaced doc/info/omake-doc.info-3
Copied doc/info/omake-doc.info-3 (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info-3)
Replaced doc/info/omake-doc.info-4
Copied doc/info/omake-doc.info-4 (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info-4)
Replaced doc/info/omake-doc.info-5
Copied doc/info/omake-doc.info-5 (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info-5)
Replaced doc/info/omake-doc.info-6
Copied doc/info/omake-doc.info-6 (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info-6)
Replaced doc/info/omake-doc.info-7
Copied doc/info/omake-doc.info-7 (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info-7)
Replaced doc/info/omake-doc.info-8
Copied doc/info/omake-doc.info-8 (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info-8)
Replaced doc/info/omake-doc.info-9
Copied doc/info/omake-doc.info-9 (from rev 12469, omake-branches/0.9.8.x/doc/info/omake-doc.info-9)
Replaced doc/ps/omake-doc.dvi
Copied doc/ps/omake-doc.dvi (from rev 12469, omake-branches/0.9.8.x/doc/ps/omake-doc.dvi)
Replaced doc/ps/omake-doc.pdf
Copied doc/ps/omake-doc.pdf (from rev 12469, omake-branches/0.9.8.x/doc/ps/omake-doc.pdf)
Replaced doc/ps/omake-doc.ps
Copied doc/ps/omake-doc.ps (from rev 12469, omake-branches/0.9.8.x/doc/ps/omake-doc.ps)
Replaced doc/src/omake-grammar.tex
Copied doc/src/omake-grammar.tex (from rev 12469, omake-branches/0.9.8.x/doc/src/omake-grammar.tex)
Replaced doc/txt/omake-doc.txt
Copied doc/txt/omake-doc.txt (from rev 12469, omake-branches/0.9.8.x/doc/txt/omake-doc.txt)
Replaced lib/Pervasives.om
Copied lib/Pervasives.om (from rev 12469, omake-branches/0.9.8.x/lib/Pervasives.om)
Replaced lib/parse/LaTeX/Spell.om
Copied lib/parse/LaTeX/Spell.om (from rev 12575, omake-branches/0.9.8.x/lib/parse/LaTeX/Spell.om)
Replaced mk/make_gen
Copied mk/make_gen (from rev 12512, omake-branches/0.9.8.x/mk/make_gen)
Replaced src/Makefile
Copied src/Makefile (from rev 12497, omake-branches/0.9.8.x/src/Makefile)
Replaced src/Makefile.nt
Copied src/Makefile.nt (from rev 12497, omake-branches/0.9.8.x/src/Makefile.nt)
Replaced src/ast/omake_ast.ml
Copied src/ast/omake_ast.ml (from rev 12469, omake-branches/0.9.8.x/src/ast/omake_ast.ml)
Replaced src/ast/omake_ast_print.ml
Copied src/ast/omake_ast_print.ml (from rev 12469, omake-branches/0.9.8.x/src/ast/omake_ast_print.ml)
Replaced src/ast/omake_ast_util.ml
Copied src/ast/omake_ast_util.ml (from rev 12469, omake-branches/0.9.8.x/src/ast/omake_ast_util.ml)
Replaced src/ast/omake_ast_util.mli
Copied src/ast/omake_ast_util.mli (from rev 12469, omake-branches/0.9.8.x/src/ast/omake_ast_util.mli)
+4 -3 src/build/omake_builtin.ml
+2 -2 src/build/omake_builtin_type.ml
Replaced src/build/omake_rule.ml
Copied src/build/omake_rule.ml (from rev 12555, omake-branches/0.9.8.x/src/build/omake_rule.ml)
+1 -1 src/build/omake_rule.ml (from rev 12555, omake-branches/0.9.8.x/src/build/omake_rule.ml)
+83 -59 src/builtin/omake_builtin_arith.ml
Replaced src/builtin/omake_builtin_base.ml
Copied src/builtin/omake_builtin_base.ml (from rev 12512, omake-branches/0.9.8.x/src/builtin/omake_builtin_base.ml)
+159 -137 src/builtin/omake_builtin_base.ml (from rev 12512, omake-branches/0.9.8.x/src/builtin/omake_builtin_base.ml)
+99 -99 src/builtin/omake_builtin_file.ml
+7 -7 src/builtin/omake_builtin_fun.ml
+148 -142 src/builtin/omake_builtin_io.ml
+40 -40 src/builtin/omake_builtin_io_fun.ml
Replaced src/builtin/omake_builtin_object.ml
Copied src/builtin/omake_builtin_object.ml (from rev 12555, omake-branches/0.9.8.x/src/builtin/omake_builtin_object.ml)
+75 -73 src/builtin/omake_builtin_object.ml (from rev 12555, omake-branches/0.9.8.x/src/builtin/omake_builtin_object.ml)
+10 -10 src/builtin/omake_builtin_rule.ml
+16 -13 src/builtin/omake_builtin_shell.ml
+20 -20 src/builtin/omake_builtin_sys.ml
+16 -16 src/builtin/omake_builtin_target.ml
+9 -9 src/builtin/omake_builtin_test.ml
Replaced src/env/
Copied src/env/ (from rev 12469, omake-branches/0.9.8.x/src/env)
Replaced src/env/omake_command_digest.ml
Copied src/env/omake_command_digest.ml (from rev 12555, omake-branches/0.9.8.x/src/env/omake_command_digest.ml)
+47 -51 src/env/omake_command_digest.ml (from rev 12555, omake-branches/0.9.8.x/src/env/omake_command_digest.ml)
Replaced src/env/omake_env.ml
Copied src/env/omake_env.ml (from rev 12514, omake-branches/0.9.8.x/src/env/omake_env.ml)
+182 -111 src/env/omake_env.ml (from rev 12514, omake-branches/0.9.8.x/src/env/omake_env.ml)
Replaced src/env/omake_env.mli
Copied src/env/omake_env.mli (from rev 12514, omake-branches/0.9.8.x/src/env/omake_env.mli)
+10 -10 src/env/omake_env.mli (from rev 12514, omake-branches/0.9.8.x/src/env/omake_env.mli)
Replaced src/env/omake_exp_lex.ml
Copied src/env/omake_exp_lex.ml (from rev 12575, omake-branches/0.9.8.x/src/env/omake_exp_lex.ml)
Replaced src/env/omake_ir_ast.ml
Copied src/env/omake_ir_ast.ml (from rev 12556, omake-branches/0.9.8.x/src/env/omake_ir_ast.ml)
+18 -18 src/env/omake_ir_ast.ml (from rev 12556, omake-branches/0.9.8.x/src/env/omake_ir_ast.ml)
Replaced src/env/omake_ir_semant.ml
Copied src/env/omake_ir_semant.ml (from rev 12555, omake-branches/0.9.8.x/src/env/omake_ir_semant.ml)
+27 -20 src/env/omake_ir_semant.ml (from rev 12555, omake-branches/0.9.8.x/src/env/omake_ir_semant.ml)
Replaced src/eval/omake_eval.ml
Copied src/eval/omake_eval.ml (from rev 12555, omake-branches/0.9.8.x/src/eval/omake_eval.ml)
+100 -89 src/eval/omake_eval.ml (from rev 12555, omake-branches/0.9.8.x/src/eval/omake_eval.ml)
Replaced src/eval/omake_eval.mli
Copied src/eval/omake_eval.mli (from rev 12555, omake-branches/0.9.8.x/src/eval/omake_eval.mli)
+2 -2 src/eval/omake_eval.mli (from rev 12555, omake-branches/0.9.8.x/src/eval/omake_eval.mli)
Replaced src/eval/omake_value.ml
Copied src/eval/omake_value.ml (from rev 12555, omake-branches/0.9.8.x/src/eval/omake_value.ml)
Replaced src/ir/omake_ir.ml
Copied src/ir/omake_ir.ml (from rev 12555, omake-branches/0.9.8.x/src/ir/omake_ir.ml)
+8 -8 src/ir/omake_ir.ml (from rev 12555, omake-branches/0.9.8.x/src/ir/omake_ir.ml)
Replaced src/ir/omake_ir_free_vars.ml
Copied src/ir/omake_ir_free_vars.ml (from rev 12555, omake-branches/0.9.8.x/src/ir/omake_ir_free_vars.ml)
+27 -30 src/ir/omake_ir_free_vars.ml (from rev 12555, omake-branches/0.9.8.x/src/ir/omake_ir_free_vars.ml)
Replaced src/ir/omake_ir_print.ml
Copied src/ir/omake_ir_print.ml (from rev 12555, omake-branches/0.9.8.x/src/ir/omake_ir_print.ml)
+32 -43 src/ir/omake_ir_print.ml (from rev 12555, omake-branches/0.9.8.x/src/ir/omake_ir_print.ml)
Replaced src/ir/omake_ir_util.ml
Copied src/ir/omake_ir_util.ml (from rev 12512, omake-branches/0.9.8.x/src/ir/omake_ir_util.ml)
Replaced src/ir/omake_symbol.ml
Copied src/ir/omake_symbol.ml (from rev 12497, omake-branches/0.9.8.x/src/ir/omake_symbol.ml)
Replaced src/ir/omake_value_print.ml
Copied src/ir/omake_value_print.ml (from rev 12555, omake-branches/0.9.8.x/src/ir/omake_value_print.ml)
Replaced src/ir/omake_value_type.ml
Copied src/ir/omake_value_type.ml (from rev 12555, omake-branches/0.9.8.x/src/ir/omake_value_type.ml)
+3 -3 src/ir/omake_value_type.ml (from rev 12555, omake-branches/0.9.8.x/src/ir/omake_value_type.ml)
Replaced src/main/omake_shell.ml
Copied src/main/omake_shell.ml (from rev 12555, omake-branches/0.9.8.x/src/main/omake_shell.ml)
+1 -1 src/main/omake_shell.ml (from rev 12555, omake-branches/0.9.8.x/src/main/omake_shell.ml)
Replaced src/shell/omake_shell_lex.ml
Copied src/shell/omake_shell_lex.ml (from rev 12469, omake-branches/0.9.8.x/src/shell/omake_shell_lex.ml)
Replaced test/OMakefile
Copied test/OMakefile (from rev 12512, omake-branches/0.9.8.x/test/OMakefile)
Replaced test/curry/Test2
Copied test/curry/Test2 (from rev 12512, omake-branches/0.9.8.x/test/curry/Test2)
Replaced test/curry/Test3
Copied test/curry/Test3 (from rev 12512, omake-branches/0.9.8.x/test/curry/Test3)
Replaced test/keyword/Test5
Copied test/keyword/Test5 (from rev 12512, omake-branches/0.9.8.x/test/keyword/Test5)
Copied test/lazy/ (from rev 12555, omake-branches/0.9.8.x/test/lazy)
Replaced test/lazy/Test1
Copied test/lazy/Test1 (from rev 12556, omake-branches/0.9.8.x/test/lazy/Test1)
Copied test/syntax/ (from rev 12469, omake-branches/0.9.8.x/test/syntax)
Replaced test/syntax/Test1
Copied test/syntax/Test1 (from rev 12497, omake-branches/0.9.8.x/test/syntax/Test1)
Replaced test/syntax/Test2
Copied test/syntax/Test2 (from rev 12497, omake-branches/0.9.8.x/test/syntax/Test2)
Replaced test/syntax/Test3
Copied test/syntax/Test3 (from rev 12497, omake-branches/0.9.8.x/test/syntax/Test3)