Commit Graph

401 Commits

Author SHA1 Message Date
Graydon Hoare
264de9c7fc Fix structure-returns. 2010-12-08 15:52:01 -08:00
Graydon Hoare
2b36a8eab4 Fix log upcall translation bug. Un-XFAIL rec-auto.rs. 2010-12-08 15:29:09 -08:00
Graydon Hoare
6ccfba34f3 Add missing case to parse_ty, un-XFAIL cast.rs. 2010-12-08 15:04:57 -08:00
Graydon Hoare
68af077e81 Implement binop= forms. Un-XFAIL bitwise.rs. 2010-12-08 14:50:47 -08:00
Graydon Hoare
b971d6312e Fix missing case in resolve, un-XFAIL rec-tup.rs. 2010-12-08 11:52:34 -08:00
Patrick Walton
e558ff907f rustc: Allow callees to use alias args 2010-12-07 12:34:10 -08:00
Patrick Walton
7f85945b05 rustc: Translate function calls with alias parameters (though the callee can't use them yet) 2010-12-07 11:57:19 -08:00
Patrick Walton
15a614acb4 rustc: Implement is_lval 2010-12-07 10:38:42 -08:00
Graydon Hoare
a059b4720c Null slots on missing init, null-check box ptrs on drop. Works around missing typestate pass. Un-XFAIL box-in-tup.rs. 2010-12-06 17:46:44 -08:00
Patrick Walton
3f9d5dab5b rustc: Run the verifier over LLVM modules before writing them out 2010-12-06 17:17:49 -08:00
Patrick Walton
a1c7d19836 rustc: Translate tag constructors. Can't call them at the moment due to lack of alias args, though. 2010-12-06 16:50:24 -08:00
Patrick Walton
fb05d9184b rustc: Make copy_args_to_allocas not insist on a function type so it's easier to make it work with tag constructors 2010-12-06 11:22:08 -08:00
Graydon Hoare
9f6a630519 Drop rec and tup alloca temporariles on block exit. 2010-12-03 18:43:40 -08:00
Patrick Walton
b4d9754347 rustc: Make new_fn_ctxt and copy_args_to_allocas receive a list of args rather than an AST fn, so we can use it for tag constructors 2010-12-03 18:20:41 -08:00
Patrick Walton
2e119698b7 rustc: Add def ids to variant arguments so we can turn them into function arguments later 2010-12-03 18:13:15 -08:00
Graydon Hoare
0c19c8e18f Parse layer and effect annotations. 2010-12-03 18:04:18 -08:00
Patrick Walton
afd3af9bb5 rustc: Remove LLVM unions and represent tags as (discriminant, byte blob) pairs 2010-12-03 16:55:59 -08:00
Patrick Walton
f371dc613a rustc: Set data layout and target triple 2010-12-03 13:52:54 -08:00
Graydon Hoare
aeef8cee29 Add load_non_structural and use it. 2010-12-03 13:03:07 -08:00
Patrick Walton
5347cac92d rustc: Handle n-ary tag constructors in iter_structural_ty (which lets us process their refcounts correctly) 2010-12-03 12:35:49 -08:00
Graydon Hoare
4316df6323 Trim whitespace. 2010-12-03 12:26:27 -08:00
Graydon Hoare
a98b2ebb4a Change 'stratum' to the friendlier term 'layer'. 2010-12-03 12:15:32 -08:00
Patrick Walton
7bdb93266d rustc: Translate nullary tag constructors 2010-12-03 10:24:55 -08:00
Graydon Hoare
d922b0ad9c Drop slots on the way out of scopes. Un-XFAIL box.rs. 2010-12-02 19:44:24 -08:00
Graydon Hoare
966cfed07c Modify block ctxt / cleanup handling to only occur on scope blocks. 2010-12-02 19:12:34 -08:00
Graydon Hoare
1e9c8b923d Implement translation for deref unop. 2010-12-02 19:12:09 -08:00
Graydon Hoare
97247bbb53 Change order of basic blocks in copy_ty, makes nicer disassembly. 2010-12-02 18:33:11 -08:00
Graydon Hoare
f69b4417e6 Don't drop context returned from decl-init call to copy_ty. 2010-12-02 18:32:43 -08:00
Graydon Hoare
0f41f5a8f9 Improve translations of unary box operator and drop_ty on boxes. 2010-12-02 17:43:24 -08:00
Patrick Walton
e233978891 rustc: Change fn_names and fn_ids to item_names and item_ids in trans, since we're soon to be storing tags in there too 2010-12-02 17:30:07 -08:00
Patrick Walton
49b3cd700e rustc: Remove the premature optimization for nullary tag constructors, since it'll be no longer necessary once LLVM gets a unit type 2010-12-02 17:18:06 -08:00
Graydon Hoare
a439f6ec68 Add ty_boxed to typeck.type_is_boxed. 2010-12-02 15:56:44 -08:00
Graydon Hoare
cdcab742a7 Fix fold bug on expr_unary. 2010-12-02 15:54:45 -08:00
Graydon Hoare
b79de6b76c Typecheck the box and deref unops properly. 2010-12-02 14:38:32 -08:00
Patrick Walton
376b35e618 rustc: Remove the overly complex variant_indices and n_ary_variant_indices tables 2010-12-02 11:00:10 -08:00
Patrick Walton
eeecc8d061 rustc: Add stub support for tag constructors in trans 2010-12-01 19:03:47 -08:00
Graydon Hoare
98a63bd1f9 Add code to fail on non-exhaustive alt matching. Fix all cases this picked up in rustc. 2010-12-01 17:09:02 -08:00
Patrick Walton
fd600bad46 rustc: Annotate variants with their types. This may be useful for trans! 2010-12-01 15:27:38 -08:00
Patrick Walton
cd97b9d965 rustc: Typecheck tag constructors 2010-12-01 11:39:03 -08:00
Patrick Walton
67a616340d rustc: Fix segfault due to nonexhaustive match when using tags 2010-12-01 10:53:40 -08:00
Patrick Walton
42282a25c0 rustc: Resolve tag variant names 2010-12-01 10:19:38 -08:00
Graydon Hoare
45043374ff Tidy up structural types for rec, tup AST and typeck nodes. 2010-11-30 16:32:00 -08:00
Patrick Walton
567a45cc70 rustc: Add def ids to variants 2010-11-30 12:32:20 -08:00
Graydon Hoare
25b973df1b Finish support for typechecking and translating records. Un-XFAIL rec.rs. 2010-11-30 10:39:35 -08:00
Graydon Hoare
9c426521ee Wrap long lines. 2010-11-29 17:53:35 -08:00
Graydon Hoare
a94046f5d2 Teach typechecker about record types. 2010-11-29 17:42:53 -08:00
Patrick Walton
6c5a05b819 rustc: Implement the block syntax discussed on the mailing list 2010-11-29 17:11:41 -08:00
Graydon Hoare
6c4e975099 Teach fold about ty_rec. 2010-11-29 16:09:46 -08:00
Graydon Hoare
e6b7f76385 Add ty_rec and parse it. 2010-11-29 15:42:09 -08:00
Graydon Hoare
3e08171fc2 Change mutability into a type constructor. 2010-11-29 15:29:55 -08:00
Graydon Hoare
386f363cfe Change from bool to tag ast.mutability. 2010-11-29 14:18:26 -08:00
Graydon Hoare
38846e39c4 Add ast.ty_mutable. 2010-11-29 12:29:57 -08:00
Graydon Hoare
20b11c832c Add mut field to typeck.ty. 2010-11-29 12:13:38 -08:00
Graydon Hoare
7be7c23b6b Copy args to allocas, change llargs lookups to 'in mem'. Un-XFAIL tup.rs. 2010-11-26 17:47:27 -08:00
Graydon Hoare
d7ce2425c9 Load structural values through pointer before passing structs as args. 2010-11-26 16:08:10 -08:00
Graydon Hoare
9f56b0061c Pass exprs by @, always treat structural types by pointer, move path and name into trans_lval. 2010-11-26 15:54:04 -08:00
Graydon Hoare
1600974a3a Avoid segfault due to fallthrough in base case of incr_all_refcounts. We could use a typestate checker in rustc, any time now. 2010-11-26 13:03:56 -08:00
Graydon Hoare
7e01aba12d Declare the memcpy intrinsics properly. 2010-11-26 13:02:48 -08:00
Graydon Hoare
3fd3270845 Return memcpy src rather than falling through and failing. 2010-11-25 18:28:15 -08:00
Graydon Hoare
a95dbdef70 Cast memcpy args to correct types. 2010-11-25 18:13:20 -08:00
Graydon Hoare
9b3182a99d Add lookup checks and intrinsics table to trans. 2010-11-25 17:45:26 -08:00
Graydon Hoare
7e2f205866 Add missed case to typeck.ast_ty_to_ty, plus faux exhaustiveness check. 2010-11-25 17:06:36 -08:00
Graydon Hoare
416d9bc0fd Fix typo in numeric-label-parsing loop. 2010-11-25 16:53:17 -08:00
Graydon Hoare
f0abe8f568 Translate field expressions. 2010-11-25 16:40:24 -08:00
Graydon Hoare
5678f5aa56 Typecheck field expressions. 2010-11-25 16:40:03 -08:00
Graydon Hoare
092af6fb76 Typecheck tup expressions. 2010-11-25 14:44:04 -08:00
Graydon Hoare
cffdb66aa4 Translate tuple-expressions. 2010-11-24 18:11:11 -08:00
Patrick Walton
78ec07790a rustc: Assign definition IDs to type params 2010-11-24 18:01:20 -08:00
Patrick Walton
9769b61226 rustc: Parse type-parametric typedefs 2010-11-24 17:36:22 -08:00
Patrick Walton
98e8c2ef21 rustc: Parse type-parametric tags 2010-11-24 17:17:42 -08:00
Graydon Hoare
f809375b16 Sketch out type-directed structural drop and copy, including vector types. 2010-11-24 16:56:01 -08:00
Graydon Hoare
96540ef0bb move expr_call translation into helper function. 2010-11-24 16:56:01 -08:00
Graydon Hoare
e2f9f746ea Move expr_cast translation into helper function. 2010-11-24 16:56:01 -08:00
Patrick Walton
c1916adc7e rustc: Parse type-parametric functions 2010-11-24 16:52:49 -08:00
Patrick Walton
80d099c59a rustc: Don't require a semicolon after an "alt" statement 2010-11-24 16:29:44 -08:00
Patrick Walton
f075b10af2 rustc: Add patterns to fold 2010-11-24 15:45:59 -08:00
Patrick Walton
756880a5f5 rustc: Parse simple patterns 2010-11-24 14:42:01 -08:00
Patrick Walton
5d72dae1d1 rustc: Parse tag items. Currently segfaults in copy glue. 2010-11-24 11:36:35 -08:00
Patrick Walton
f55f46af64 rustc: Typecheck whiles and do-whiles. Add a workaround to complex.rs pending a solution to the one-armed-if problem. 2010-11-23 17:02:08 -08:00
Patrick Walton
4208352527 rustc: As an experiment, swap the expected/actual types when checking function arguments. Produces better diagnostics for arg-type-mismatch.rs. 2010-11-23 10:25:20 -08:00
Graydon Hoare
f2a7e712d3 Remove warning about non-void expr stmts. 2010-11-22 18:03:27 -08:00
Graydon Hoare
e05d7c3ac1 Support mach types in rustc, enable 5 more tests. 2010-11-22 17:41:32 -08:00
Patrick Walton
3e01b2d529 rustc: "Expected" and "actual" were swapped. Also un-XFAIL compile-fail/arg-count-mismatch.rs for good measure. 2010-11-22 17:38:23 -08:00
Patrick Walton
c0741c13ab Remove the global bindings table in the typechecker 2010-11-22 17:14:18 -08:00
Graydon Hoare
d3cb25d5d1 Check and translate 'as' cast-operator, lower target-specific types, reindent rustc.rs, enable uint test. 2010-11-22 16:27:00 -08:00
Graydon Hoare
c262543d3b Fix type disagreements in lowering typeck.ty to llvm TypeRefs, enable complex.rs test. 2010-11-22 14:28:05 -08:00
Graydon Hoare
1090c5e69c Check for structural equality rather than structural-and-cname equality. 2010-11-22 13:24:53 -08:00
Graydon Hoare
6fcf55347e Resolve the easy case of type paths. 2010-11-22 13:24:53 -08:00
Graydon Hoare
fdac6ffa7c Accumulate type paths as we parse, rather than throwing them away. 2010-11-22 13:24:53 -08:00
Patrick Walton
0847ff7d42 rustc: "expectied" -> "expected" in parser.rs; also say what was found 2010-11-22 11:43:25 -08:00
Graydon Hoare
ccc21fd4da Fix lexer bug, enable 5 more tests on rustc. 2010-11-22 11:35:00 -08:00
Graydon Hoare
3ba6736383 More typeck hacking, check if and call exprs, enable fact and deep tests. 2010-11-21 12:06:09 -08:00
Graydon Hoare
5955e23343 Typecheck assignment exprs, redo decl checking, propagate ty_vars. Enable another test. 2010-11-21 01:16:16 -08:00
Graydon Hoare
79a3811ab8 Typecheck binary, unary and name expressions. Re-enable 3 more tests. 2010-11-20 23:00:52 -08:00
Graydon Hoare
77670e84de Fix bug in llvm type signature of function items; enable three more tests. 2010-11-20 22:05:17 -08:00
Graydon Hoare
eaf9df2dc3 Remove dead code. 2010-11-20 22:04:48 -08:00
Graydon Hoare
e731520be5 Add helper function to double-check non-null types. 2010-11-20 22:04:34 -08:00
Graydon Hoare
244c59ac20 Clean up typechecker file, disable all tests that fail under typechecker. 2010-11-19 20:46:04 -08:00
Graydon Hoare
6d92ca64a7 Translate typeck.ty_fn to a TypeRef. Can compile int.rs test now. 2010-11-19 20:08:57 -08:00
Patrick Walton
c00bda539d rustc: First stab at a typechecker 2010-11-19 17:50:45 -08:00
Graydon Hoare
3352fab59b Parse type items, nil types, named types. Fix some parser bugs. Enable arith-0 and arith-2 tests. 2010-11-19 16:34:47 -08:00
Graydon Hoare
44a0c7225d Isolate while-header bug to minimal testcase, fix in rustboot, remove workaround in rustc. 2010-11-19 14:59:58 -08:00
Graydon Hoare
e94af48bc9 Work around Yet Another Typestate Lifecycle Bug in rustboot. 2010-11-19 10:41:32 -08:00
Graydon Hoare
44b051f34a Fix typo in x86 backend glue that was, by luck, only crashing on OSX. 2010-11-15 12:45:26 -08:00
Graydon Hoare
a352efadad Switch upcall glues to fastcall as well. 2010-11-14 13:41:10 -08:00
Graydon Hoare
4cbef9d8a1 Remove outptr from module-internal calls; use standard ABI returns. 2010-11-14 13:04:01 -08:00
Graydon Hoare
640d167037 Switch module-internal calls (i.e. all user code) to fastcall. Still returning via explicit outptr. Activate glue works by accident. 2010-11-14 12:28:07 -08:00
Graydon Hoare
a7af86155d Support emitting trap instructions for debugging. 2010-11-14 11:21:49 -08:00
Graydon Hoare
2de59aa6b9 Correct infinite-loop, block-context mismatches in early cleanups. 2010-11-14 10:48:44 -08:00
Patrick Walton
e02ffb2c2d rustc: Add a type annotation for locals 2010-11-12 16:11:33 -08:00
Graydon Hoare
0578978495 Move phi-node generation into a helper that measures the liveness of each incoming edge. Factorial test now succeeds. 2010-11-12 14:51:11 -08:00
Graydon Hoare
2ff0662eae Load outptr alloca as retval; function call/return now works in rustc. 2010-11-12 11:48:18 -08:00
Graydon Hoare
1ff88982fe Stop translating a block when a sub-statement terminates the llvm bb. 2010-11-12 10:15:40 -08:00
Patrick Walton
c3bc88a325 rustc: Add an annotation to function and type items so that the typechecker can store types with them 2010-11-10 18:20:02 -08:00
Graydon Hoare
d1e7f0b414 Redo the scheme for block context chaining and termination, to simplify and support ret better. 2010-11-10 17:46:49 -08:00
Graydon Hoare
a404e54261 Teach rustc about const tag value, begin work on trans_copy_ty, make uint's to_str routine less clever and thereby resist overflow. 2010-11-09 17:50:31 -08:00
Graydon Hoare
216082d040 Translate ast.box unary expressions and support extraction of TypeRefs from AST annotations. 2010-11-05 18:31:24 -07:00
Graydon Hoare
ffb3861c70 Move symbol prefix logic into separate function, add underscore prefix for windows. 2010-11-05 18:31:23 -07:00
Graydon Hoare
c1fb592f62 Emit WinMain@16 entrypoint on windows. 2010-11-05 18:31:22 -07:00
Graydon Hoare
981edaef40 Fix two incorrect block-context uses in rustc. 2010-11-05 18:31:21 -07:00
Graydon Hoare
2122e363df Teach rustc to generate type descriptors. 2010-11-05 18:31:20 -07:00
Graydon Hoare
3956b98312 Switch rustc to llvm 2.8 rather than 2.8svn on windows. 2010-11-05 18:31:20 -07:00
Patrick Walton
35eb088ae3 rustc: Implement function types 2010-11-05 15:23:03 -07:00
Patrick Walton
adb1754e4d Move the option type to its own module 2010-11-05 11:18:40 -07:00
Patrick Walton
2fcf81cc4b Revert "Move the option type to its own module" 2010-11-05 10:41:23 -07:00
Patrick Walton
1d214b4df3 Move the option type to its own module 2010-11-05 10:23:22 -07:00
Graydon Hoare
16faef2218 Fix buggy while and do-while translation in rustc. Add test. 2010-11-04 07:55:33 -07:00
Patrick Walton
a3d666bfdf rustc: Use an extensible annotation field instead of putting option[@ty] everywhere 2010-11-03 15:54:46 -07:00
Graydon Hoare
e5fdd7b63a Support while and do-while loops in rustc. 2010-11-03 11:05:15 -07:00
Graydon Hoare
dc299c9a19 Teach rustc lexer about changes to stratum, opacity and effect keywords. 2010-11-03 10:29:48 -07:00
Graydon Hoare
7db115834f Split out stratum-checking pass, implement more-strict (overly aggressive) impure-effect checking. 2010-11-02 15:24:46 -07:00
Graydon Hoare
da13c508d8 First pass on splitting stratum and opacity off of effects. WIP. 2010-11-02 11:11:58 -07:00
Graydon Hoare
f3b7aa9068 Long line police. 2010-10-22 19:37:03 -07:00
Graydon Hoare
3bf775e80f Pass outptr as in rustboot. Probably need to revisit this ABI. Also disgusting hack employed. Please remove. 2010-10-22 19:35:48 -07:00
Graydon Hoare
b2f07c6056 Collect all fns first so decl order doesn't matter to translation. 2010-10-22 19:31:33 -07:00
Graydon Hoare
d4497e481e Extremely broken hacked-up incorrect attempt at 'ret'. 2010-10-22 19:23:10 -07:00
Graydon Hoare
e5229b97d7 Don't use string == in x86.rs, doesn't work. 2010-10-22 17:27:22 -07:00
Patrick Walton
05a3c5c0f3 rustc: Add an "_" prefix to assembler-generated symbols on Mac 2010-10-22 16:16:02 -07:00
Graydon Hoare
6d47d2abde Implement check-exprs, un-xfail 5 rustc tests. 2010-10-22 15:37:42 -07:00
Graydon Hoare
6ec402d4a6 Add makefile bits to run rustc on the testsuite as part of 'make check'. Mostly xfailed. 2010-10-22 14:46:03 -07:00
Graydon Hoare
36aea66e47 Give rustc the beginnings of an option-processing loop (at least -nowarn, -h and -o). 2010-10-22 11:47:28 -07:00
Graydon Hoare
74eda5bb70 Make append take a mutable &. Not even checked at present, tsk tsk. 2010-10-22 11:46:54 -07:00
Graydon Hoare
3f80e79efc Add support for passing args to fns in rustc. 2010-10-21 18:13:57 -07:00
Graydon Hoare
67477b85ae Support basic function calls in rustc. 2010-10-21 17:24:26 -07:00
Graydon Hoare
3aaae2a881 Teach rustc to parse call exprs. 2010-10-21 16:42:02 -07:00
Dave Herman
dbe27199b8 line length police; moved comp.util.bits to std.bitv 2010-10-21 11:39:53 -07:00
Dave Herman
852c0d6631 oops, removed bits.test() from main 2010-10-21 08:06:44 -07:00
Dave Herman
da8b6795c7 tests and bugfixes: fns take aliases, fixed binary arithmetic in create, eliminated wasted bit per uint 2010-10-21 07:36:13 -07:00
Dave Herman
ce3224652f simpler computation of uint_bits(), plus whitespace police 2010-10-20 22:04:19 -07:00
Dave Herman
8f71dad2c9 created a first draft of the bit-set library needed for typestate 2010-10-20 17:04:15 -07:00
Graydon Hoare
368943998d Translate lazy && and || operators in rustc. 2010-10-19 17:24:15 -07:00
Graydon Hoare
71b1f1d117 Parse and translate assignments. 2010-10-19 16:33:11 -07:00
Graydon Hoare
b8cca0971f Teach trans to allocate, initialize and load from local variables. 2010-10-19 14:54:10 -07:00
Patrick Walton
10d628dbd0 Add a type slot to the AST 2010-10-19 13:28:43 -07:00
Patrick Walton
e497fe981b Partial work on adding types to the AST 2010-10-19 13:10:39 -07:00
Graydon Hoare
4a3edb320d Store items and decls in vecs to preserve input order, index externally. Implement block-local name lookup. 2010-10-18 18:19:16 -07:00
Graydon Hoare
865bbae685 More work on resolving names in rustc. Basic expr_name lookup working on items and args. 2010-10-18 16:15:25 -07:00
Graydon Hoare
f747101b7c Rewrite session formatting to use #fmt extension. 2010-10-18 16:03:22 -07:00
Graydon Hoare
67d4427345 Begin sketching name lookup in rustc. 2010-10-18 14:37:30 -07:00
Graydon Hoare
05e7374e29 Expand rustc's fold to update env on block boundaries. 2010-10-18 14:36:40 -07:00
Patrick Walton
1c3e95e0a5 Roll back the expr->lval change. We're now LL(1) again. 2010-10-18 11:31:31 -07:00
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