383 Commits

Author SHA1 Message Date
Graydon Hoare
f1e2c379cb Cache referent-type calculations in rustboot; cut rustc compile time by 60%. 2010-10-08 15:17:27 -07:00
Graydon Hoare
5f2459145c Add -lpath mechanism for logging only a subset of a pass (by module-path prefix) 2010-10-08 14:54:51 -07:00
Graydon Hoare
facc5f8826 Make minimal-mode slightly less aggressive. 2010-10-07 18:21:06 -07:00
Graydon Hoare
e553ab9fc0 Simplify type-mismatch messages. 2010-10-07 13:15:38 -07:00
Graydon Hoare
8ecbe49a8f Add -minimal mode to rustboot that skips emitting code that's broken or unneeded for rustc. Shrink rustc by 300kb. Back under 1mb. 2010-10-05 18:44:39 -07:00
Graydon Hoare
4168c1dcda Add -lpasses for logging just the progress of passes. 2010-10-05 18:10:33 -07:00
Graydon Hoare
cdf67b1f2e Better backpointer logic. 2010-10-05 18:09:49 -07:00
Graydon Hoare
d07f7533b0 Sketch out #fmt syntax extension in rustboot. 2010-10-01 14:54:40 -07:00
Graydon Hoare
2e0d075407 Fix bug in bind thunks failing top drop unbound args; add test and adjust rustc to use bind again. 2010-09-30 17:39:37 -07:00
Graydon Hoare
62c224ffe4 Drop slots on block exits even when blocks have no statements. Part way to fixing bind leakage in rustc. 2010-09-30 16:10:30 -07:00
Or Brostovski
4a3404803b implemented break for while-loop case
ast.ml - added break and cont statements
item.ml - added break and cont statements
lexer.mll - added break and cont statements
token.ml - added break and cont statements
trans.ml - implemented the break statement for the while-loop case
         - replaced hash table accesses with get_stmt_depth where needed
type.ml = added break and cont statements
typestate.ml - implemented the break statement for the while-loop case
             - added shorthand filter_live_block_slots
walk.ml - added break and cont statements
while-with-break.rs - code for testing while loops
2010-09-30 13:45:57 -07:00
Or Brostovski
74cb9508cd Closed issue 154 - prevents compiler from compiliing a line to zero statements 2010-09-30 13:40:34 -07:00
Graydon Hoare
b970563fe3 Patchwork of attempted fixes to effect system and gc system; eventually give up and disable it entirely in the runtime. Will need extensive reworking. 2010-09-29 17:22:13 -07:00
Patrick Walton
7e733bf2ee Allow tag recursion through vectors as well as boxes 2010-09-29 16:58:42 -07:00
Graydon Hoare
bba4cae1b8 Resolve constant types through to their definitions. 2010-09-23 17:11:30 -07:00
Graydon Hoare
fc6f307787 Fix linear for loops on strings to not hit trailing null. 2010-09-22 15:27:35 -07:00
Graydon Hoare
264c765931 Revert "Make recursive type verification logic better by allowing it to see through multiple levels of indirection. Still can trigger "unexpected OpaqueTy" bugs, but that's better than infinite loops."
This reverts commit 751a47cc5ac3223c3b592659937b485c56ab2644.

Broken build.
2010-09-22 10:57:58 -07:00
Patrick Walton
751a47cc5a Make recursive type verification logic better by allowing it to see through multiple levels of indirection. Still can trigger "unexpected OpaqueTy" bugs, but that's better than infinite loops. 2010-09-21 19:15:47 -07:00
Patrick Walton
742b1c5793 Report an error instead of asserting when an item name is already in use 2010-09-21 17:38:47 -07:00
Graydon Hoare
8beb118df4 Add insn-selection fixup-name logging. 2010-09-21 16:21:30 -07:00
Graydon Hoare
b549721a2e Tighten pattern parsing on 0-ary constructors. 2010-09-21 16:18:47 -07:00
Graydon Hoare
9f0a6c21b2 Implement preliminary form of structured compare. No boxes, vectors or strings yet. 2010-09-21 11:47:10 -07:00
Graydon Hoare
28b9357a0c Kill residual dead code in Trans.iter_tag_parts. Shaves a couple kb off rustc. 2010-09-21 08:28:19 -07:00
Graydon Hoare
71d49a20a7 Skip 0-ary tag ctors in Trans.iter_tag_parts. Rustc loses 150kb. 2010-09-21 00:13:59 -07:00
Graydon Hoare
c5f4789d5b Bind pattern slots with ?, drop parens from 0-ary tag constructors, translate 0-ary constructors as constants. Rustc loses ~300kb. 2010-09-20 23:56:43 -07:00
Graydon Hoare
acdec30149 Wrap long lines. 2010-09-20 20:46:44 -07:00
Graydon Hoare
c17964c06d Use name_base in plval base. 2010-09-20 20:19:22 -07:00
Roy Frostig
3c3421e01d When translating vec-append, delay destination string's null-byte-accounting length decrement until the destination string has already been resized. Closes #163. 2010-09-20 17:26:24 -07:00
Graydon Hoare
7ab3b305e4 Move id counters into sess in preparation for moving desugaring to middle-end. 2010-09-20 13:06:49 -07:00
Graydon Hoare
5536af3d48 Beginnings of post-resolve simplify pass. 2010-09-16 16:59:37 -07:00
Patrick Walton
bc03c82c79 Check for infinitely sized tags. Un-XFAIL test/compile-fail/infinite-tag-type-recursion.rs. 2010-09-16 16:24:19 -07:00
Patrick Walton
659d1e1b7d Actually build the graph properly. Oops. 2010-09-16 16:20:00 -07:00
Patrick Walton
32103089d3 Create tag nodes for all the tags beforehand 2010-09-16 15:38:49 -07:00
Graydon Hoare
9dac49bcd6 Resolve plvals to their defns. 2010-09-16 15:04:40 -07:00
Patrick Walton
d92e30d773 Populate the tag containment relation 2010-09-16 14:21:24 -07:00
Graydon Hoare
c4c73e09f1 Add a pexp-rebuild phase to the type resolution pass in resolve.ml. 2010-09-16 12:34:07 -07:00
Patrick Walton
01a76e21a6 Better representation of tag containment, which will allow us to discern backreferences 2010-09-16 11:28:55 -07:00
Patrick Walton
a4a8bea3cc Add ctxt_tag_containment to the Semant context 2010-09-16 11:06:41 -07:00
Patrick Walton
1676a389be Switch the "expected" and "actual" types for function parameter mismatches 2010-09-16 10:26:20 -07:00
Patrick Walton
09793dd0c8 Not finding a name in a module isn't a bug, it's an error. Report it as such. 2010-09-16 10:26:19 -07:00
Graydon Hoare
91b4a0c9f8 Add beginnings of a fuzzer to rustboot. 2010-09-16 00:26:19 -07:00
Graydon Hoare
e270ab6fbf Minor improvements to pretty-printer. 2010-09-15 18:14:14 -07:00
Graydon Hoare
e6729a66ec Teach walk about plvals and pexps. 2010-09-15 17:44:57 -07:00
Graydon Hoare
5c82cb42e7 Add Ast.ATOM_pexp and -pexp mode wherein pexps live beyond parsing, into later stages. Fixes to pexp pretty printer. 2010-09-15 16:10:08 -07:00
Graydon Hoare
3350b17c60 Add pretty-printing for pexps. 2010-09-15 14:36:40 -07:00
Graydon Hoare
77beffc889 Add some form-judgements on plvals and pexps. 2010-09-15 12:29:45 -07:00
Graydon Hoare
c61d021f6d Commence moving pexp into ast, for eventual merger with expr. 2010-09-14 18:59:14 -07:00
Graydon Hoare
b504b3f8d5 Begin actually folding constant items into operands at site of use. 2010-09-14 15:34:01 -07:00
Graydon Hoare
6cfeac162d Translate const uses via runtime expression evaluation. 2010-09-14 11:44:25 -07:00
Graydon Hoare
7287d3aaa0 Teach front-end about simple, first-cut version of const items. 2010-09-14 10:52:32 -07:00