Commit Graph

853 Commits

Author SHA1 Message Date
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 751a47cc5a.

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
1f0621d04e Begin teaching rustc to parse literals, atoms, stmts, blocks, items, modules, crates. 2010-09-21 16:22:32 -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
72cc89c8c3 Add QUES to comp/fe/lexer.rs, rustc can self-lex again. 2010-09-21 08:30:06 -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
dda16f807c Add issue #163 testcase to str-append testcase. 2010-09-20 17:42:14 -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
Michael Bebenita
1bd331b7aa Fixed deadlock caused by the message pump not being notified of new message sends. 2010-09-16 00:51:03 -07:00
Graydon Hoare
91b4a0c9f8 Add beginnings of a fuzzer to rustboot. 2010-09-16 00:26:19 -07:00
Graydon Hoare
cd1a765c6f Add Peter Hull's contributed translation of the fasta shootout benchmark (integer-only version). 2010-09-15 18:22:10 -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
a4a0c6ad1e XFAIL const test on LLVM, of course. 2010-09-14 11:13:24 -07:00
Graydon Hoare
7287d3aaa0 Teach front-end about simple, first-cut version of const items. 2010-09-14 10:52:32 -07:00
Graydon Hoare
43ec78636f Update manual to cover change to nominal tag items. 2010-09-13 17:58:09 -07:00
Graydon Hoare
bc646d01c5 Fix leaking arg slots on tail calls. Closes #160. 2010-09-13 13:37:24 -07:00
Graydon Hoare
67aa39e1ef Fix a leak when box types are used via type descriptors. 2010-09-12 01:05:56 -07:00
Michael Bebenita
a493350eb5 Cleanup, refactoring, and some runtime tests. 2010-09-10 14:38:31 -07:00
Michael Bebenita
f985fded3e Added lock_and_signal::signal_all(), and made the rust_kernel::join() use wait instead of yield. 2010-09-10 14:38:31 -07:00
Graydon Hoare
79dc07d648 Use hashtable rather than bitset for vreg constraints in ra; speeds compilation. 2010-09-09 18:56:51 -07:00
Graydon Hoare
a9e2327a18 Switch tags to purely nominal, removing TY_iso and TY_idx. Seems to mostly work, possibly a little bumpy. Changes a lot. 2010-09-09 15:59:29 -07:00
Michael Bebenita
c877f31730 Fixed lost signal notifications. 2010-09-08 22:20:31 -07:00
Michael Bebenita
743ca289b6 Cache task handles. 2010-09-08 21:25:16 -07:00
Graydon Hoare
616b7afb72 Tidy up the sync dir, remove dead or mis-designed code in favour of OS primitives, switch rust_kernel to use a lock/signal pair and wait rather than spin. 2010-09-08 19:13:49 -07:00