Commit Graph

2952 Commits

Author SHA1 Message Date
Brian Anderson
0e5f76a718 Fix ty_uniq case in maybe_auto_unbox
Closes #961
Issue #409
2011-09-22 18:14:18 -07:00
Brian Anderson
1a48023a79 Add take glue for unique boxes
Closes #962
Issue #409
2011-09-22 18:05:36 -07:00
Brian Anderson
77fcab043e Remove nonsensical load and store from trans_uniq::copy_val
Issue #409
2011-09-22 17:50:27 -07:00
Brian Anderson
7a76323459 Allow vectors to contain unique boxes. Closes #952
Issue #409
2011-09-22 17:00:53 -07:00
Patrick Walton
e372f943e2 rustc: Write raw type parameters instead of linearized type parameters in object body shapes 2011-09-22 16:13:03 -07:00
Brian Anderson
30a4eab380 Autoderef indexes and fields of unique boxes
Issue #409
2011-09-22 16:06:25 -07:00
Brian Anderson
d174d917e2 Calculate the correct kind for unique boxes
Issue #409
2011-09-22 15:28:49 -07:00
Brian Anderson
3f41563cc9 Drop the previous value when copying one unique box local to another
Issue #409
2011-09-22 13:53:34 -07:00
Brian Anderson
67bac873e0 Add assignment to unique box locals
Issue #409
2011-09-22 13:53:33 -07:00
Brian Anderson
268a9fe5fb Initialize unique box locals from other locals
Issue #409
2011-09-22 13:53:33 -07:00
Brian Anderson
5d5136df9f Convert trans_uniq asserts to preconditions
Issue #409
2011-09-22 13:53:33 -07:00
Brian Anderson
c4f02a7925 Sprinkle some asserts through trans_uniq 2011-09-22 13:53:33 -07:00
Brian Anderson
8492eed137 Move uniq trans code to trans_uniq module
Issue #409
2011-09-22 13:53:30 -07:00
Brian Anderson
0f0ba33d82 Factor alloc_uniq from trans_uniq
Issue #409
2011-09-22 13:52:30 -07:00
Brian Anderson
f6ab12a3b1 Don't unify unique boxes with different mutability
Issue #409
2011-09-22 11:10:48 -07:00
Brian Anderson
ea67099234 Add support for mutable unique boxes
Issue #409
2011-09-22 10:26:34 -07:00
Brian Anderson
1b3023e4d0 Convert ty::ty_uniq to contain a mutable type
Issue #409
2011-09-22 10:26:34 -07:00
Brian Anderson
4d088bd528 Call drop glue on the thing in a unique box
Issue #409
2011-09-22 10:26:34 -07:00
Brian Anderson
42fd2a9d89 Remove unused arg from revoke_clean 2011-09-21 15:39:46 -07:00
Brian Anderson
2cc01e2ca2 Add ability to deref unique boxes. Make unique boxes immediates.
Issue #409
2011-09-21 14:40:55 -07:00
Marijn Haverbeke
80778f642f Revert "rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935."
This reverts commit f19ab1ff3c.
2011-09-21 21:39:31 +02:00
Patrick Walton
f19ab1ff3c rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935. 2011-09-21 10:55:28 -07:00
Patrick Walton
fcd17731cf rustc: Don't try to spill bottom types, since we can't make any assumptions about the type of the ValueRef 2011-09-21 10:55:27 -07:00
Marijn Haverbeke
a034f87146 Revert "Implement pattern ranges for all numeric types."
This reverts commit ce0f054f9d.
2011-09-21 18:42:09 +02:00
Marijn Haverbeke
410f73fdb2 Don't write to retptr when returning nil, pass undef for unused params 2011-09-21 17:57:19 +02:00
Graydon Hoare
68d50b5928 Add target_triple to session::options. Use host triple by default, accept --target on command line. 2011-09-21 08:46:44 -07:00
Marijn Haverbeke
07eb29dbce Revert "rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935."
This reverts commit e6a84f252a.
2011-09-21 11:05:54 +02:00
Josh Matthews
ce0f054f9d Implement pattern ranges for all numeric types. 2011-09-21 09:36:12 +02:00
Patrick Walton
e6a84f252a rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935. 2011-09-20 22:52:26 -07:00
Brian Anderson
f809e22697 Represent unique creation as a unop in the AST instead of its own expr
Like the box unop.

Issue #409
2011-09-20 18:06:47 -07:00
Brian Anderson
7ae251789c Make creation of unique boxes work again
Issue #409
2011-09-20 17:51:17 -07:00
Brian Anderson
865dcb663d Parse unique box types
Issue #409
2011-09-20 17:51:17 -07:00
Patrick Walton
d607316b2f rustc: Pass actual tydescs to upcall_malloc 2011-09-20 13:48:22 -07:00
Patrick Walton
78147452b8 rustc: Remove trans_raw_malloc, as it's only called from one place 2011-09-20 13:38:54 -07:00
Brian Anderson
de1b394c32 Move linker invocation from driver::rustc to back::link 2011-09-20 11:10:03 -07:00
Brian Anderson
870117f44e Zero locals that are inited via alt expressions. Closes #945 2011-09-20 10:28:16 -07:00
Marijn Haverbeke
e33f116598 Remove some obsolete 'copy' operators from trans 2011-09-20 17:35:40 +02:00
Marijn Haverbeke
1eaddb772e Properly handle 'put;' in trans
Closes #947
2011-09-20 17:34:32 +02:00
Marijn Haverbeke
8c85745452 Remove some bogus white-space from llvm.rs 2011-09-20 17:14:50 +02:00
Brian Anderson
7c6630a367 Build tuples in two phases to avoid cleaning up partial tuples 2011-09-19 17:59:53 -07:00
Brian Anderson
9626e2f71f Register tuple cleanups after the tuple is built
Issue #936
2011-09-19 17:59:47 -07:00
Brian Anderson
b1bf9ef5ae Break fold's circular reference during unwinding
This converts the AST fold into a resource that breaks it's own circular
reference (just a temporary workaround until GC), so that failure during fold
will unwind correctly.

Issue #936
2011-09-19 15:32:56 -07:00
Brian Anderson
dd1cf63515 Build records in two phases to avoid cleanups on partial records 2011-09-19 14:28:04 -07:00
Brian Anderson
432e931a2a Don't register record cleanups until the record is built 2011-09-19 14:28:04 -07:00
Marijn Haverbeke
eafb6789a2 Stop creating function pairs for static functions
These are now called directly. When taking their value, a null pointer is added
to create a pair.
2011-09-18 22:05:58 +02:00
Tim Chevalier
8640e67e3f Add a precondition to GEP_tup_like 2011-09-17 10:18:30 -07:00
Tim Chevalier
2b98eccfee Add a type_is_tup_like predicate that takes a block ctxt, and make some fns pure 2011-09-17 10:18:11 -07:00
Tim Chevalier
8613f28a16 In trans, replace another impossible case with a precondition 2011-09-17 09:13:05 -07:00
Brian Anderson
1002623201 Make move-mode arguments unwind correctly. Closes #939 2011-09-16 14:38:04 -07:00
Tim Chevalier
99236d64d0 Dead code elim 2011-09-16 13:32:44 -07:00