151 Commits

Author SHA1 Message Date
Graydon Hoare
7bd30f83e1 Put out burning tree (sizeof / alignof bug). 2010-12-20 12:54:50 -08:00
Graydon Hoare
490da3564b Use gvars for vtbls rather than returning const immediates. 2010-12-20 11:41:32 -08:00
Graydon Hoare
6a8518c97b Trailing whitespace police. 2010-12-20 11:41:32 -08:00
Patrick Walton
a7e9984999 rustc: Build tydescs for types, and make all take and drop operations go through the tydescs for simplicity (LLVM inlines them). 2010-12-20 10:23:37 -08:00
Patrick Walton
ad5e920276 rustc: Remove the unused "name" parameter from trans.new_builder 2010-12-17 18:42:15 -08:00
Patrick Walton
9b56b79296 rustc: Make some no-op take and drop glue for scalar types 2010-12-17 18:40:24 -08:00
Patrick Walton
7210a31e2a rustc: Make all drop and take glue have the same signature, so we can put them in tydescs 2010-12-17 18:20:51 -08:00
Patrick Walton
c44c7c5ab3 rustc: Zero out slots after dropping them 2010-12-17 17:21:56 -08:00
Graydon Hoare
56e040e61a Trans methods more correctly, and store vtbl pointer in pair returned from obj ctor. 2010-12-17 00:31:41 -08:00
Graydon Hoare
a3f828f941 Sketch trans_vtbl. 2010-12-16 18:34:04 -08:00
Patrick Walton
bfdba2dbcc rustc: Translate parametric function signatures into task + type parameters + formal arguments 2010-12-16 16:35:19 -08:00
Graydon Hoare
31f0642da3 Stub out translation of obj ctors (no vtbl or body built). 2010-12-16 15:55:28 -08:00
Patrick Walton
13b889287b rustc: Make trans.type_of handle parameter types 2010-12-16 12:23:48 -08:00
Graydon Hoare
7d2feae857 Collect obj items, translate obj-name references and obj-ctor types. 2010-12-16 10:23:47 -08:00
Patrick Walton
42789c4b97 rustc: Fix bug involving extracting any variant element beyond the first. Un-XFAIL alt-tag.rs. 2010-12-15 10:11:33 -08:00
Patrick Walton
e17806e1c8 rustc: Translate pattern matching 2010-12-15 09:38:40 -08:00
Graydon Hoare
525966a543 Fix a couple bugs in iter_sequence, un-XFAIL vec-drop.rs. 2010-12-13 17:48:42 -08:00
Patrick Walton
29e6d7a4ad rustc: Hack to get rid of passing i1 types for unit around in most cases, suggested by Rafael 2010-12-13 16:12:45 -08:00
Graydon Hoare
a3cbdc661c Set the new vec fill-size on the compiler side, as in rustboot. Un-XFAIL first 3 vec tests. 2010-12-13 11:16:04 -08:00
Graydon Hoare
f97242c255 Fix bad GEP and missing branch in iter_sequence; vec.rs compiles now. 2010-12-10 17:46:47 -08:00
Graydon Hoare
60affafdcd Implement expr_vec. 2010-12-10 17:25:22 -08:00
Graydon Hoare
779b913348 Fix trans_index implementation. 2010-12-10 17:25:22 -08:00
Patrick Walton
2c472c0de8 rustc: Add LLVM typedefs for rust_crate and rust_task for good measure 2010-12-10 16:29:41 -08:00
Patrick Walton
cf8ad5f56d rustc: Declare LLVM typedefs appropriately 2010-12-10 16:24:47 -08:00
Patrick Walton
e37c032eb0 rustc: Move refcount incrementing out of line too 2010-12-10 16:14:06 -08:00
Graydon Hoare
865c06c1f9 Preliminary translation of expr_index. 2010-12-10 16:10:35 -08:00
Patrick Walton
270b93bd71 rustc: Move refcount decrement-and-free (drop) logic out-of-line 2010-12-10 15:37:17 -08:00
Patrick Walton
10d5d32537 rustc: Change lazy "and" and "or" to use scope contexts rather than sub-block contexts, to run cleanups properly 2010-12-10 15:27:55 -08:00
Patrick Walton
eaa76bd83f rustc: Decouple new_fn_ctxt() from AST function arguments, so that it can be used to generate glue 2010-12-09 17:38:57 -08:00
Patrick Walton
1c9dc2ca52 rustc: Decouple new_fn_ctxt from AST items so that we can use it to generate glue too 2010-12-09 15:26:16 -08:00
Graydon Hoare
876282791e First sketch of support for const items, not including most of trans. 2010-12-09 14:37:50 -08:00
Patrick Walton
e5bbe93646 rustc: Mark constant strings as constants 2010-12-09 13:49:26 -08:00
Patrick Walton
e652e58bfc rustc: Fix indirection problem with tag constructors 2010-12-09 13:39:33 -08:00
Graydon Hoare
66b5dfabee Remove redundant trans_drop_str, fix buggy branch in trans_if. Un-XFAIL drop-on-ret.rs. 2010-12-09 12:32:16 -08:00
Graydon Hoare
440e637edf Fix boxed returns harder. Un-XFAIL output-slot-variants.rs. 2010-12-08 16:43:59 -08:00
Graydon Hoare
652ae9f50e Fix structure returns harder. 2010-12-08 16:34:16 -08:00
Graydon Hoare
e3a3a03572 Fix boxed returns. 2010-12-08 16:20:04 -08:00
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
68af077e81 Implement binop= forms. Un-XFAIL bitwise.rs. 2010-12-08 14:50:47 -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
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
Patrick Walton
afd3af9bb5 rustc: Remove LLVM unions and represent tags as (discriminant, byte blob) pairs 2010-12-03 16:55:59 -08:00