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