590 Commits

Author SHA1 Message Date
Graydon Hoare
57c7e94c8f Encode and decode tag types in dwarf properly. Add list module to std. Shift rustc to use std.util.option. Fix various dependent bugs. Closes #73. 2010-10-15 22:09:09 -07:00
Graydon Hoare
fc2d4828e7 Finish the fold drivers in fold.rs. 2010-10-14 18:14:09 -07:00
Patrick Walton
5826a2e3de rustc: Parse field and vector indexing expressions 2010-10-14 17:42:06 -07:00
Graydon Hoare
ff4e9f9141 Enable resolve pass in rustc. Doesn't do much yet aside from an incomplete identity fold, but no longer crashes. 2010-10-14 15:53:28 -07:00
Graydon Hoare
6993346e7d Stop using bound refs (don't work; leak) and work around auto-deref vec-append bug. 2010-10-14 15:52:42 -07:00
Patrick Walton
699ef987d7 rustc: Start work on lvals 2010-10-14 15:20:27 -07:00
Patrick Walton
5c622b6ecb rustc: Lex identifiers that have numbers in them too 2010-10-13 11:02:56 -07:00
Patrick Walton
d50d481529 rustc: Parse vector types 2010-10-13 10:55:20 -07:00
Patrick Walton
81a43ef698 rustc: Add mutability to tuple literals 2010-10-12 16:30:44 -07:00
Patrick Walton
b1ca4da3b3 rustc: Parse box types 2010-10-12 14:54:49 -07:00
Patrick Walton
a41aa5595b rustc: Parse tuple types 2010-10-12 14:15:59 -07:00
Patrick Walton
0415841504 rustc: Add the tuple type to the AST 2010-10-11 18:42:10 -07:00
Patrick Walton
c9afe78c0c Parse autos 2010-10-11 18:20:25 -07:00
Patrick Walton
8a7a0308e3 rustc: Parse lets 2010-10-11 18:13:14 -07:00
Patrick Walton
a2c9879442 rustc: Say "expected expression" instead of "expected literal" when we expect an expression 2010-10-11 17:21:36 -07:00
Patrick Walton
e3758fe321 rustc: Make functions output a type, not a slot 2010-10-08 12:26:34 -07:00
Graydon Hoare
785d9b1594 Add a little code to resolve, to check that the fold interface works. 2010-10-07 18:34:22 -07:00
Graydon Hoare
b184be07e1 Revise folds to be much-less-polymorphic after some discussion; flesh out stmt and expr fold drivers. 2010-10-07 16:42:48 -07:00
Graydon Hoare
fa5ef4cfb6 Add the beginnings of an ast folder plus an empty module for resolve. 2010-10-06 18:36:28 -07:00
Graydon Hoare
5f2d35ed08 Make ast node box uses more uniform in rustc. 2010-10-06 15:41:14 -07:00
Graydon Hoare
d1e59d6910 Add input coordinate tracking to all major rustc ast nodes. 2010-10-05 18:21:44 -07:00
Graydon Hoare
19d0fa107a Improve name nodes to ast, teach to parse qualified names, put out flaming tinderbox. 2010-10-04 17:25:52 -07:00
Graydon Hoare
44e4b2d63a Teach rustc about phi nodes, block relationships. Translate if- and block-expressions. 2010-10-04 15:55:12 -07:00
Graydon Hoare
a87e81b929 Support refcount-drop and conditional free in rustc. 2010-10-01 18:25:42 -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
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
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
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
738fe078a4 Move llvm-using code in rustc to trans module. 2010-09-22 15:27:40 -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
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
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
7287d3aaa0 Teach front-end about simple, first-cut version of const items. 2010-09-14 10:52:32 -07:00