Commit Graph

2703 Commits

Author SHA1 Message Date
Brian Anderson
6824f119fc rustc: Allow alt expressions to fail 2011-05-21 13:22:01 -04:00
Brian Anderson
418b4c4567 rustc: Assign ty_bot to nodes in write::bot_ty. Remove FIXME 2011-05-21 13:02:58 -04:00
Brian Anderson
779dd809d2 rustc: Blocks shouldn't try to return results for ty_bot 2011-05-21 12:56:31 -04:00
Tim Chevalier
7b4eec215c Some tests for ! annotations 2011-05-20 19:54:14 -07:00
Tim Chevalier
a1b440baaa Un-XFAIL some tests that now pass. 2011-05-20 19:54:14 -07:00
Tim Chevalier
77f56f3154 XFAIL two tests for stage0 2011-05-20 19:54:14 -07:00
Tim Chevalier
755ca8eb73 Correctly check that ! functions always diverge
Also make _|_ unify with any type.
2011-05-20 19:54:14 -07:00
Brian Anderson
699986d192 fuzzer: Begin writing main 2011-05-20 22:32:41 -04:00
Brian Anderson
01c13a3878 stdlib: Add io::writer.write_line 2011-05-20 22:32:41 -04:00
Brian Anderson
fc8b9671bb stdlib: Export only what's needed from std::bitv 2011-05-20 22:12:57 -04:00
Brian Anderson
04ce99b83c stdlib: Export only what's needed from std::sort 2011-05-20 22:12:16 -04:00
Brian Anderson
2fc0bedc83 rustc: Don't write metadata for unexported items 2011-05-20 21:32:57 -04:00
Brian Anderson
7817824205 stdlib: export ptr_eq from box, but not rustrt 2011-05-20 21:32:57 -04:00
Tim Chevalier
467b938ea8 Merge remote-tracking branch 'graydon/master' into typestate_4 2011-05-20 18:23:03 -07:00
Tim Chevalier
5de9d27fcc un-XFAIL forgot-ret and update error pattern 2011-05-20 18:20:54 -07:00
Tim Chevalier
964898eaf1 Error instead of warning for missing returns. Huzzah! 2011-05-20 18:20:54 -07:00
Tim Chevalier
fed0486c33 Annotate erroring functions in session and parser 2011-05-20 18:20:54 -07:00
Tim Chevalier
90dd6e7044 New snapshot that handles bang annotations 2011-05-20 18:20:54 -07:00
Lindsey Kuper
c3410bf927 More work on anonymous objects. 2011-05-20 17:59:56 -07:00
Tim Chevalier
c8d488b337 Change node_ann hash table to a vector in typestate 2011-05-20 16:57:37 -07:00
Tim Chevalier
9128a1bab8 rm unnecessary logging 2011-05-20 16:57:37 -07:00
Tim Chevalier
7e82f23bc0 rm unused import 2011-05-20 16:57:37 -07:00
Tim Chevalier
551fb13689 Add a "fail" after a while(true) loop in two places
(in preparation for changing the "function may not return" warning
to an error)
2011-05-20 16:57:37 -07:00
Tim Chevalier
a08a376d6e Make controlflow part of a function type
Change ty_fn to have a controlflow field. A 'controlflow' is
essentially a bit of data that says whether or not this function
never returns to the caller (if it never returns, that means it calls
"fail" or another "never-returns" function on every control path).

Also add syntax for annotating functions that never return:

fn foo() -> ! {
   fail;
}

for example. Functions marked with ! implicitly have a result type of
ty_bot, which is a new type that this commit also adds.
2011-05-20 16:57:37 -07:00
Eric Holk
3dd2877975 Using the right mode... 2011-05-20 16:51:09 -07:00
Eric Holk
0de27ce8bd Translated start_task, but it fails on spp == align_down(spp) 2011-05-20 16:51:09 -07:00
Eric Holk
d01948cd07 Called the new_task upcall. There are refcount issues though. 2011-05-20 16:51:08 -07:00
Eric Holk
41b3979990 Nicer printer of LLVM array types. 2011-05-20 16:51:08 -07:00
Eric Holk
219351e4b9 A little closure towards translating spawn. We're about ready to do the upcall, except that rustc segfaults. 2011-05-20 16:51:08 -07:00
Eric Holk
d6338a8c15 Added some comments to trans_spawn that sort of explains what needs to happen 2011-05-20 16:51:08 -07:00
Eric Holk
2b124a8140 Started working on translating spawn. It correctly generates the task name in the case that it is not provided. 2011-05-20 16:51:08 -07:00
Eric Holk
51e1ce292d Added a couple of test cases for sending messages. One works as expected, the other succeeds unexpectedly. 2011-05-20 16:51:08 -07:00
Patrick Walton
4eb476fc75 stdlib: Modify union-find to guarantee that root nodes are always less than or equal to leaf nodes; add a "prune" method 2011-05-20 15:50:43 -07:00
Graydon Hoare
36c083b14c Options fix from erickt. 2011-05-20 15:20:48 -07:00
Graydon Hoare
fa75703700 Twiddle glue inlining heuristics. ~10% win on build time. 2011-05-20 14:57:52 -07:00
Graydon Hoare
67b8501eb8 Elide a bunch of do-nothing take glue. 2011-05-20 14:50:57 -07:00
Graydon Hoare
381ba1d0ba Remove redundant secondary declaration of glue. 2011-05-20 14:48:33 -07:00
Patrick Walton
7e43a31f08 rustc: Move the interner to a new module intended to be used for general data structures 2011-05-20 13:57:53 -07:00
Erick Tryzelaar
02b995f428 librustc depends on rustllvm and std.
This fixes compiling the fuzzer application.
2011-05-20 12:32:44 -07:00
Erick Tryzelaar
7341055b84 Make sure we're using clang >=3.0svn. 2011-05-20 12:32:44 -07:00
Erick Tryzelaar
134b61a317 Use CFG_LLVM_ROOT's llvm-config if it exists.
On some platform (OS X), llvm needs macros like
__STDC_LIMIT_MACROS defined in order to work, which is
normally defined in llvm-config. This patch modifies
the config to use CFG_LLVM_ROOT's llvm-config if it
exists, which fixes the compile failures.
2011-05-20 12:32:44 -07:00
Brian Anderson
b6d2fe4d74 rustc: Translate else if blocks the same as other blocks. Closes #388 2011-05-19 23:32:09 -04:00
Brian Anderson
879a952a37 rustc: Find the correct outer scope in trans_block 2011-05-19 23:32:08 -04:00
Rafael Ávila de Espíndola
40b511a7c5 Revert 106216d673.
This depends on llvm's 131294.
2011-05-19 18:30:19 -07:00
Graydon Hoare
494c0c3b61 After all that, give up on "complex" version of type_has_pointers and just manually inspect. Can't calculate property during interning. 2011-05-19 18:28:09 -07:00
Eric Holk
5d09e12e15 Added two version of reverse and a swap function to the standard library. 2011-05-19 17:25:37 -07:00
Graydon Hoare
7f938f4945 Move the ty_item_table into ty::ctxt.items, move variant_info to ty, and start sketching the contains_pointer property on types. 2011-05-19 17:21:36 -07:00
Graydon Hoare
1d67ee0e88 Remove type_glue.rs, don't think it's going to work. 2011-05-19 17:21:36 -07:00
Patrick Walton
bc87ecf110 rustc: Unify variables using a single type instead of keeping a list and doing it all at the end. This will give us better error messages. 2011-05-19 16:07:12 -07:00
Patrick Walton
6b95584df5 stdlib: Add vec growth functions that use a thunk to initialize elements 2011-05-19 16:07:12 -07:00