Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-16 15:04:43 -0700 (Sat, 16 Apr 2005)
Revision: 860
Log message:

      Preparing to fix the problem with regular-expression arguments
      
      http://cvs.cs.cornell.edu:12000/bugzilla/show_bug.cgi?id=315
      

Changes  Path
+8 -8 libmojave-branches/lexer_args_correction/util/lm_lexer.ml
+12 -3 omake/src/shell/omake_shell_job.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-16 15:13:43 -0700 (Sat, 16 Apr 2005)
Revision: 861
Log message:

      Removed argument info, since we are planning to do it differently.
      

Changes  Path
+20 -99 libmojave-branches/lexer_args_correction/util/lm_lexer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-16 16:23:18 -0700 (Sat, 16 Apr 2005)
Revision: 862
Log message:

      Minor change, this converts states to use the HashCons module
      form performance.
      

Changes  Path
+322 -76 libmojave-branches/lexer_args_correction/util/lm_lexer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 08:16:52 -0700 (Sun, 17 Apr 2005)
Revision: 863
Log message:

      This adds the argument "registers" to the DFA.  Untested,
      and I haven't added argument extraction yet.
      

Changes  Path
+259 -183 libmojave-branches/lexer_args_correction/util/lm_lexer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 08:41:48 -0700 (Sun, 17 Apr 2005)
Revision: 864
Log message:

      Added handling for final states.
      

Changes  Path
+28 -12 libmojave-branches/lexer_args_correction/util/lm_lexer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 09:11:34 -0700 (Sun, 17 Apr 2005)
Revision: 865
Log message:

      Added argument extraction.
      

Changes  Path
+56 -6 libmojave-branches/lexer_args_correction/util/lm_lexer.ml
+11 -20 omake/tests/regex/Test

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 09:36:15 -0700 (Sun, 17 Apr 2005)
Revision: 866
Log message:

      This appears to be working, so after some clean up I'll commit it.
      TODO: add "earliest-match" arguments so that we can do searching
      in linear time.
      
      NOTE: This doesn't include StepIII in Aleksey's description (bug #315),
      because I don't understand the need for it.
      
      The consequences are that the semantics are last-match.  For example:
      
         match $'fooXbooXmooXgoo'
         case $'\((\(.*\)X)*\)'
            println($(string $*))
      
      prints
         fooXbooXmooX moo
      

Changes  Path
+1 -1 libmojave-branches/lexer_args_correction/util/lm_lexer.ml
+56 -0 omake/tests/regex/Test

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 11:06:53 -0700 (Sun, 17 Apr 2005)
Revision: 867
Log message:

      This adds initial support for searching in linear time (but the
      search function hasn't been updated to use it yet).
      
      The idea follows our original plan, that the search for regular
      expression "r" is a new expression ".*#r" where '#' is used to
      in this case to indicate shortest match.
      
      However, a general solution for shortest-match based purely
      on argument handling is dubious.  For example, in this case,
      a naive solution would always search to the end-of-file.
      
      The solution here is to prune all NFA states that represent
      the initial search whenever a final state is reached for the
      first time.
      

Changes  Path
+148 -62 libmojave-branches/lexer_args_correction/util/lm_lexer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 11:29:03 -0700 (Sun, 17 Apr 2005)
Revision: 868
Log message:

      This is the linear-time version of the search.  This changes
      the semantics of the search function.  I think the old one, if
      it failed, would return the text to the eof.  This one just
      fails, so I'll have to see if these other files need to be
      updated.
      

Changes  Path
+30 -36 libmojave-branches/lexer_args_correction/util/lm_lexer.ml
+1 -1 libmojave-branches/lexer_args_correction/util/lm_lexer.mli
+2 -2 omake-branches/lexer_args_correction/src/build/omake_builtin_base.ml
+10 -17 omake-branches/lexer_args_correction/src/build/omake_builtin_io_fun.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 11:51:18 -0700 (Sun, 17 Apr 2005)
Revision: 869
Log message:

      Fixed some typos so searching actually works.  It is currently
      longest-match, so this will have to be fixed.
      

Changes  Path
+7 -4 libmojave-branches/lexer_args_correction/util/lm_lexer.ml
+7 -1 omake/tests/regex/Test
Added omake/tests/regex/Test2
Properties omake/tests/regex/Test2

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-17 17:43:19 -0700 (Sun, 17 Apr 2005)
Revision: 870
Log message:

      Added a very simple form of precedences to get shortest
      match on the search prefix.
      

Changes  Path
+21 -1 libmojave-branches/lexer_args_correction/util/lm_lexer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-18 12:43:35 -0700 (Mon, 18 Apr 2005)
Revision: 871
Log message:

      Now that we have separate arg registers, we can be more aggressive
      about computing the epsilon closure through argument calculations.
      This is a pre-commit before I delete some of the code.
      

Changes  Path
+48 -20 libmojave-branches/lexer_args_correction/util/lm_lexer.ml
Binary omake/tests/awk/Awk.in
+1 -1 omake/tests/awk/Test
Deleted omake/tests/regex/Test
Added omake/tests/regex/Test1
Properties omake/tests/regex/Test1
+6 -0 omake/tests/regex/Test2
Added omake/tests/regex/Test3
Properties omake/tests/regex/Test3
+1 -1 omake-branches/lexer_args_correction/src/build/omake_builtin_io_fun.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-18 12:56:09 -0700 (Mon, 18 Apr 2005)
Revision: 872
Log message:

      Deleted the unnecessary code, and simplified arg representation a bit.
      

Changes  Path
+37 -85 libmojave-branches/lexer_args_correction/util/lm_lexer.ml
+9 -3 omake/tests/regex/Test3

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-19 12:03:29 -0700 (Tue, 19 Apr 2005)
Revision: 875
Log message:

      Added Lexer.searchto function, for matching against delimiters.
      

Changes  Path
+75 -1 libmojave-branches/lexer_args_correction/util/lm_lexer.ml
+10 -0 libmojave-branches/lexer_args_correction/util/lm_lexer.mli
+19 -12 omake-branches/lexer_args_correction/src/build/omake_builtin_io_fun.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-19 12:16:13 -0700 (Tue, 19 Apr 2005)
Revision: 876
Log message:

      The clause_id was selected incorrectly.
      

Changes  Path
+12 -12 libmojave-branches/lexer_args_correction/util/lm_lexer.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-19 12:18:23 -0700 (Tue, 19 Apr 2005)
Revision: 877
Log message:

      Merged the lexer_args_correction branch.
      

Changes  Path
+877 -411 libmojave/util/lm_lexer.ml
+11 -1 libmojave/util/lm_lexer.mli
+2 -2 omake/src/build/omake_builtin_base.ml
+21 -21 omake/src/build/omake_builtin_io_fun.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-21 13:20:03 -0700 (Thu, 21 Apr 2005)
Revision: 889
Log message:

      Fixed a subtle error regarding shortest match.
      When a final state is reached, any NFA component of the DFA
      state should be removed if either of the following hold:
         1. the state is part of the search prefix
         2. the state came from a state in the search prefix, unless
            it is the final state being considered.
      Previously, we did part 1, but not part 2.
      

Changes  Path
+14 -9 libmojave/util/lm_lexer.ml
+0 -0 libmojave/util/lm_parser.ml
Binary omake/tests/awk/Awk.in
Deleted omake/tests/awk/Test
Added omake/tests/awk/Test1
Properties omake/tests/awk/Test1
Added omake/tests/awk/Test2
Properties omake/tests/awk/Test2

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-04-27 19:25:09 -0700 (Wed, 27 Apr 2005)
Revision: 911
Log message:

      Make sure that Lm_symbol.string_of_symbol and Lm_symbol.add provide a
      bidirectional 1-to-1 mapping between strings and variables. In other words
      "Lm_symbol.string_of_symbol o Lm_symbol.add" and "Lm_symbol.add o
      Lm_symbol.string_of_symbol" should both be identity functions.
      

Changes  Path
+11 -7 libmojave/util/lm_symbol.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-29 12:44:42 -0700 (Fri, 29 Apr 2005)
Revision: 912
Log message:

      Made some changes to the Map class.
      
      The keys are now "simple" values, not just strings.  These
      include integers, floats, strings, arrays of simple values,
      files, and directories.
      
      Only the Map class has the map functions defined.  If you
      want to have, say, a File that also includes a Map,
      create a subclass that extends both File and Map.
      
      The literal keys now have the form $|key...|.  This works
      both for definitions and uses.  The usual modifiers are
      allowed $,|key| and $`|key|.
      
         X. =
            extends $(Map)
            $|key 1| = 1
            $|key 2| = $|key 1| boo
            $|key 2| += foo
      

Changes  Path
+13 -9 libmojave/stdlib/lm_map.ml
+8 -0 libmojave/stdlib/lm_map.mli
+23 -23 libmojave/stdlib/lm_map_sig.ml
+27 -55 omake/Pervasives.src
+27 -55 omake/lib/Pervasives.om
+3 -2 omake/src/ast/omake_ast.ml
+6 -4 omake/src/ast/omake_ast_print.ml
+5 -1 omake/src/ast/omake_ast_util.ml
+2 -2 omake/src/build/omake_builtin.ml
+169 -76 omake/src/build/omake_builtin_object.ml
+1 -1 omake/src/build/omake_builtin_object.mli
+2 -0 omake/src/build/omake_builtin_type.ml
+34 -10 omake/src/env/omake_ast_lex.mll
+52 -27 omake/src/env/omake_ast_parse.input
+23 -2 omake/src/env/omake_command_digest.ml
+117 -9 omake/src/env/omake_env.ml
+21 -3 omake/src/env/omake_env.mli
+16 -2 omake/src/env/omake_ir_ast.ml
+3 -1 omake/src/env/omake_ir_free_vars.ml
+62 -12 omake/src/eval/omake_eval.ml
+43 -0 omake/src/eval/omake_value.ml
+1 -0 omake/src/eval/omake_value.mli
+3 -1 omake/src/ir/omake_ir.ml
+9 -5 omake/src/ir/omake_ir_print.ml
+1 -0 omake/src/ir/omake_ir_util.ml
+1 -1 omake/src/ir/omake_symbol.ml
+1 -0 omake/src/main/omake_shell.ml

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-04-30 15:24:33 -0700 (Sat, 30 Apr 2005)
Revision: 920
Log message:

      When splitting a sequence into a list of values along the space boundaries, do
      not stringify primitive values (such as files and directories). This partially
      solves bug #443.
      

Changes  Path
+57 -112 libmojave/stdlib/lm_string_util.ml
+2 -2 libmojave/stdlib/lm_string_util.mli
+2 -37 omake/src/eval/omake_eval.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-04-30 16:52:34 -0700 (Sat, 30 Apr 2005)
Revision: 921
Log message:

      Working on outstanding issues for Win32.
      
      This is a fix to be more careful about spaces in filenames,
      so that placing ocaml in
      
         C:\Program Files\Objective Caml
      
      actually works.  This adds the $(quote-argv ...) function that
      quotes an array in a way that the command-line parser can recover
      the argv string.  This allows include directories with spaces in
      a -pp option.
      

Changes  Path
+3 -2 libmojave/stdlib/lm_string_util.ml
+1 -0 libmojave/stdlib/lm_string_util.mli
+502 -496 omake/Makefile.dep.nt
+27 -2 omake/src/build/omake_builtin_base.ml
+8 -8 omake/src/clib/fam_win32.c
+49 -17 omake/src/clib/omake_shell_sys.c
+1 -1 omake/src/clib/readline.c
+6 -3 omake/src/eval/omake_eval.ml
+2 -10 omake/src/ir/omake_command.ml
+1 -1 omake/version.txt