Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-01 15:06:56 -0800 (Tue, 01 Mar 2005)
Revision: 799
Log message:
Added a "find" function. Unlike the Unix version of find, this one
uses the same syntax as "test".
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-09 21:19:03 -0800 (Wed, 09 Mar 2005)
Revision: 804
Log message:
Added lazy computation of grammars (this is bug #411). This should
reduce compile times in mmc significantly.
Changes | Path |
+3 -2 | libmojave/util/lm_parser.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-10 22:24:56 -0800 (Thu, 10 Mar 2005)
Revision: 805
Log message:
Fixed a painful bug in the parser where precedences were not
being translated correctly during a grammar merge.
Changes | Path |
+32 -12 | libmojave/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-11 22:39:53 -0800 (Fri, 11 Mar 2005)
Revision: 806
Log message:
NOTE: this breaks binary compatibility, bleh.
Added much better error messages to the parser, as Aleksey and I
discussed.
Changes | Path |
+120 -34 | libmojave/util/lm_parser.ml |
+1 -1 | libmojave/util/lm_parser.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-12 11:25:50 -0800 (Sat, 12 Mar 2005)
Revision: 807
Log message:
Added non-binding contexts (bug #417).
mmc_int_test/test1 now passes closure conversion.
Changes | Path |
+1 -2 | libmojave/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-14 13:02:57 -0800 (Mon, 14 Mar 2005)
Revision: 809
Log message:
Separated grammar files from the rest. This is cleaner, and it
reduces the cost of compiling grammar files.
Note, the way I have done it, there is a single file Mmc_core_grammar
that includes all the grammars for the core. Each non-grammar file
in the core extends Mmc_core_grammar, so there is a single shared
namespace.
The filter is still slow.
Changes | Path |
+1 -1 | libmojave/util/lm_lexer.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-18 17:48:08 -0800 (Fri, 18 Mar 2005)
Revision: 815
Log message:
Some minor performance improvements for parsing.
Changes | Path |
+53 -31 | libmojave/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-18 21:34:43 -0800 (Fri, 18 Mar 2005)
Revision: 816
Log message:
Added hash codes to most of the data values in Lm_parser.
This gives a 20-30% speedup. I'll work on the propagate-fixpoint next.
Changes | Path |
+20 -3 | libmojave/util/lm_lexer.ml |
+3 -2 | libmojave/util/lm_lexer.mli |
+229 -80 | libmojave/util/lm_parser.ml |
+10 -15 | libmojave/util/lm_parser.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-19 12:26:33 -0800 (Sat, 19 Mar 2005)
Revision: 818
Log message:
Modified the lookahead propagation for performance (it is now
faster by about 10x). The main changes are a more explicit data
representation, and computing a fixpoint *within* a state
before moving on to the next one.
Changes | Path |
+237 -146 | libmojave/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-19 13:08:41 -0800 (Sat, 19 Mar 2005)
Revision: 819
Log message:
Lookahead for <eof> was computed incorrectly.
Changes | Path |
+39 -34 | libmojave/util/lm_parser.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-19 14:12:54 -0800 (Sat, 19 Mar 2005)
Revision: 820
Log message:
Use a more appropriate comparison function.
Changes | Path |
+5 -4 | libmojave/util/lm_symbol.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-19 15:47:19 -0800 (Sat, 19 Mar 2005)
Revision: 821
Log message:
Small change to sorter.
Another note to self: when optimizing, don't switch from native code
to byte code, forget that you did it, and then wonder why compile
times increased by a factor of 10...
Changes | Path |
+68 -40 | libmojave/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-19 17:18:37 -0800 (Sat, 19 Mar 2005)
Revision: 823
Log message:
Added more timing printouts. Use MP_DEBUG=parsetiming to see them.
Removed normal productions, so we just use production items
(the production with a . position). A normal production is
just a production with the . at the front.
Changes | Path |
+159 -168 | libmojave/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-19 18:23:19 -0800 (Sat, 19 Mar 2005)
Revision: 824
Log message:
Added a closure memo, to reduce the number of closure steps.
This is very effective, but uses more memory.
Changes | Path |
+67 -53 | libmojave/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-20 09:33:24 -0800 (Sun, 20 Mar 2005)
Revision: 825
Log message:
Pre-compute closures. This doesn't really change anything
major, but it is in preparation to completely removing the
closure step.
Changes | Path |
+216 -169 | libmojave/util/lm_parser.ml |
Changes by: ( at unknown.email)
Date: 2005-03-20 09:33:24 -0800 (Sun, 20 Mar 2005)
Revision: 826
Log message:
This commit was manufactured by cvs2svn to create branch 'fast_parser'.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-20 23:26:04 -0800 (Sun, 20 Mar 2005)
Revision: 827
Log message:
Major changes to the algorithm in the parser. We're not
building closures anymore, which makes the algorithm more
complicated but faster. This is partially done.
Changes | Path |
+603 -409 | libmojave-branches/fast_parser/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-21 00:27:31 -0800 (Mon, 21 Mar 2005)
Revision: 828
Log message:
Big speedup, but these numbers are not be be trusted yet.
Changes | Path |
+59 -16 | libmojave-branches/fast_parser/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-21 11:02:27 -0800 (Mon, 21 Mar 2005)
Revision: 829
Log message:
Some additional optimizations.
Changes | Path |
+519 -461 | libmojave-branches/fast_parser/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-21 12:48:53 -0800 (Mon, 21 Mar 2005)
Revision: 830
Log message:
Grammar construction is now around 0.3sec for our largest grammar,
which may be good enough.
However, I haven't reconstructed the full shift table, so we'll see.
Changes | Path |
+250 -201 | libmojave-branches/fast_parser/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-21 17:21:26 -0800 (Mon, 21 Mar 2005)
Revision: 831
Log message:
Getting ready to add empty productions to the action table.
Changes | Path |
+117 -98 | libmojave-branches/fast_parser/util/lm_parser.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-21 21:17:03 -0800 (Mon, 21 Mar 2005)
Revision: 832
Log message:
- Filter_parse: wrapped a number of grammar-related entries with a proper
handle_exn in order to make sure any error message would point to the
correct location in the .ml[i] file, as opposed to "line 0, characters 0-1"
- Lm_lexer: prefixed all the Failure error messages with "Lm_lexer: "
Together these changes replace a _very_ confusing:
> File "m_ast.mli", line 0, characters 0-1:
> Failure: character sequence is not terminated
with a much more self-explanatory:
> While processing lex_token:
> Line 183, characters 1-34:
> Failure:
> Lm_lexer: regex: character sequence is not terminated
Changes | Path |
+21 -21 | libmojave/util/lm_lexer.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-22 15:21:08 -0800 (Tue, 22 Mar 2005)
Revision: 833
Log message:
Fixed lookahead propagation, and added empty productions.
The grammars in mmc now parse. The maximum compile time has increased
from 0.3 sec to 0.45, but I have a few minor optimizations left.
Changes | Path |
+300 -183 | libmojave-branches/fast_parser/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-22 19:56:51 -0800 (Tue, 22 Mar 2005)
Revision: 836
Log message:
Almost done, we had a power outage here.
Some more optimizations on the propagation network.
Changes | Path |
+334 -383 | libmojave-branches/fast_parser/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-23 09:23:44 -0800 (Wed, 23 Mar 2005)
Revision: 837
Log message:
Changed the propagation edge sorting a bit.
Changes | Path |
+75 -123 | libmojave-branches/fast_parser/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-23 09:35:46 -0800 (Wed, 23 Mar 2005)
Revision: 838
Log message:
Additional MAGIC annotations for the stuff that is marshaled.
Preparing to merge.
Changes | Path |
+25 -8 | libmojave-branches/fast_parser/util/lm_parser.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-23 09:46:13 -0800 (Wed, 23 Mar 2005)
Revision: 839
Log message:
Merged the fast_parser branch.
Changes | Path |
+1342 -942 | libmojave/util/lm_parser.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 04:40:17 -0800 (Thu, 24 Mar 2005)
Revision: 840
Log message:
Minor API change: give access to the hyp index in the SeqHyp.fold function.
Changes | Path |
+6 -1 | libmojave/stdlib/lm_array_linear_set.ml |
+1 -1 | libmojave/stdlib/lm_linear_set_sig.ml |
+2 -2 | libmojave/stdlib/lm_splay_linear_set.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-26 17:09:28 -0800 (Sat, 26 Mar 2005)
Revision: 843
Log message:
Oops, the _ variable gets turned into an empty variable. I'm not sure
if we should fix Lm_symbol, but in any case, I've updated Filter_patt
to consider "" to denote a wildcard pattern.
Also, when we use simple wildcards, the syntax become unreadable
(at least to me). OCaml plans to treat variables that begin with an
underscore as real variables, but with special meaning wrt dead code.
In fact, it may already do this.
To handle these issues, Filter_patt now considers the following veriables
to denote wildcards:
1. the empty string,
2. a single underscore,
3. a double underscore followed by anything.
Changes | Path |
+3 -1 | libmojave/util/lm_symbol.ml |
Changes by: ( at unknown.email)
Date: 2005-03-29 23:34:50 -0800 (Tue, 29 Mar 2005)
Revision: 848
Log message:
This commit was manufactured by cvs2svn to create branch
'lexer_args_correction'.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-03-31 10:15:32 -0800 (Thu, 31 Mar 2005)
Revision: 849
Log message:
We needed to be more careful during hoisting because the hoisted
values may depend on recursively-defined functions.
Changes | Path |
+2 -1 | libmojave/stdlib/lm_rformat.ml |