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
Peter Hull
f6e3e6903b
Initial check-in of 99 Bottles Of Beer
...
using different methods (simple, iterator, tail-call, pattern match)
2010-09-30 13:50:25 -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
f13306e8d6
Switch boolean operands to 1-bit, as llvm prefers. Will promote to 8-bit when storing to memory.
2010-09-28 16:17:28 -07:00
Graydon Hoare
5a4cb3ef36
Translate a modest selection of easy binops.
2010-09-28 14:01:21 -07:00
Graydon Hoare
11e72fd4e0
Translate literal int, char, bool and str types, as well as logging them.
2010-09-28 12:23:40 -07:00
Graydon Hoare
fbea4d04b7
More rustc expr-parsing logic.
2010-09-28 10:30:34 -07:00
Graydon Hoare
5b4b035c7a
Start building up the expression tower.
2010-09-27 18:25:02 -07:00
Graydon Hoare
f5787ed80c
Translate exit-task glue such that rustc's output programs exit properly.
2010-09-27 15:38:34 -07:00
Graydon Hoare
a2f4d9089a
Fix indexing bug in rustc's indirect-upcall arg-copying loops.
2010-09-27 14:42:58 -07:00
Graydon Hoare
d31eca41d5
First linkable and executable translation from rustc. Upcalls to log, passes wrong arg, crashes. Baby steps.
2010-09-27 13:43:53 -07:00
Graydon Hoare
d53209c927
Construct the crate constant in rustc.
2010-09-24 16:41:01 -07:00
Graydon Hoare
b69a0c137c
Modify the task type to not contain any opaques; apparently these make LLVM cross.
2010-09-24 15:22:48 -07:00
Graydon Hoare
4cfc4250bf
More work on trans, almost getting to the point of emitting an upcall.
2010-09-24 14:56:04 -07:00
Graydon Hoare
6b412be619
Wrap long line.
2010-09-23 18:42:49 -07:00
Graydon Hoare
274128c6b2
Add trans.get_upcall and skeleton for trans_log.
2010-09-23 18:38:37 -07:00
Graydon Hoare
730439c508
Improve LLVM builder wrapper-object.
2010-09-23 18:38:09 -07:00
Graydon Hoare
2db1f864e2
Declare the global and upcall glues as ValueRefs in rustc's trans.
2010-09-23 17:16:34 -07:00
Graydon Hoare
bba4cae1b8
Resolve constant types through to their definitions.
2010-09-23 17:11:30 -07:00
Graydon Hoare
46e46d0b49
Translate a bunch of the material (lltrans, llasm, abi) from rustboot to rustc, and move files around.
2010-09-23 15:46:31 -07:00
Graydon Hoare
2c514f33f2
More fleshing-out on rustc.me.trans. Emitting modules and fns corresponding to parsed input now.
2010-09-23 13:15:51 -07:00
Graydon Hoare
04a55df54b
Flesh out rustc.me.trans to construct functions, basic blocks and builders off the AST.
2010-09-22 17:05:38 -07:00
Graydon Hoare
4d17283371
Add 'items' iter to hashmap.
2010-09-22 17:04:08 -07:00
Graydon Hoare
2880ecd73f
Reformat standard library; no code changes.
2010-09-22 15:44:13 -07:00
Graydon Hoare
738fe078a4
Move llvm-using code in rustc to trans module.
2010-09-22 15:27:40 -07:00
Graydon Hoare
e0f682e5fb
Add some basic string functions: index, rindes, find, substr, split, concat, connect.
2010-09-22 15:27:40 -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
913882de7f
Make deps via temps, to avoid syntax errors wedging deps.
2010-09-22 15:27:24 -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 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