Commit Graph

9073 Commits

Author SHA1 Message Date
Niko Matsakis
712dd23541 make inline enabled by default 2012-03-06 09:01:40 -08:00
Marijn Haverbeke
fb61b8f262 Add a reachability checker, only export metadata for reachable items
Closes #1934
2012-03-06 17:11:30 +01:00
Marijn Haverbeke
4e4bd585cd Track all exports in exp_map
This is needed because the reachability checker needs to be able to
follow exports.

Issue #1934
2012-03-06 17:11:30 +01:00
Marijn Haverbeke
19508c7d53 Make trans pass responsible for pulling in inlined functions
This makes the logic for finding the inlinable items much easier --
they are simply pulled in lazily when encountered.
2012-03-06 14:00:21 +01:00
Marijn Haverbeke
9b88219723 Don't attach def ids to types when the type already contains the def id 2012-03-06 14:00:13 +01:00
Marijn Haverbeke
cc99ce5bdd Register new snapshot 2012-03-06 13:58:32 +01:00
Brian Anderson
ee991cae81 rt: Add a hack to fix a port detach bug 2012-03-05 20:02:25 -08:00
Brian Anderson
32f7818e7f etc: Add more helgrind suppressions for i686 2012-03-05 19:39:57 -08:00
Brian Anderson
958c321083 rt: Fix the atomic get_ref_count method to avoid races 2012-03-05 19:39:56 -08:00
Brian Anderson
1347d04bb0 rt: Properly block tasks while waiting for port detach 2012-03-05 19:39:56 -08:00
Brian Anderson
4c4a2320eb rt: Make rust_port_detach less contentious
It still utterly dominates some benchmarks with busy waiting, but at least it
doesn't create lock contention while doing so.
2012-03-05 19:39:56 -08:00
Brian Anderson
0a5603cb58 rt: Make linked failure less prone to deadlock
Still a mess.
2012-03-05 19:39:56 -08:00
Brian Anderson
cc276fe3c9 rt: Be more precise with VALGRIND_MAKE_MEM_UNDEFINED 2012-03-05 19:39:56 -08:00
Brian Anderson
c78da1e170 rt: Stop calling prepare_valgrind_stack when it's not needed 2012-03-05 19:39:56 -08:00
Brian Anderson
f057f00300 rt: Simplify reap_dead_tasks 2012-03-05 19:39:56 -08:00
Brian Anderson
8efe4b8913 rt: Add an assert to the scheduler loop 2012-03-05 19:39:56 -08:00
Brian Anderson
e08f46db68 rt: Move receive code into rust_port 2012-03-05 19:39:56 -08:00
Brian Anderson
77295c56c5 rt: Simplify the recv interface 2012-03-05 19:39:56 -08:00
Brian Anderson
8e0efce0da rt: Move some code from rust_port_detach into rust_port::detach 2012-03-05 19:39:56 -08:00
Brian Anderson
93fa933a19 rt: Move some locking from rust_port to rust_task 2012-03-05 19:39:56 -08:00
Brian Anderson
e3ccac8ed3 rt: Renome rust_task::lock to port_lock 2012-03-05 19:39:55 -08:00
Brian Anderson
fa566ad2fd rt: Make the rust_task_thread lock private 2012-03-05 19:39:55 -08:00
Brian Anderson
2465a63a69 rt: Move transition from rust_task to rust_task_thread 2012-03-05 19:39:55 -08:00
Brian Anderson
237652299e rt: Protect cond and cond_name with the state_lock 2012-03-05 19:39:55 -08:00
Brian Anderson
0432030c27 rt: Don't take the task lock on state transitions 2012-03-05 19:39:55 -08:00
Brian Anderson
43f9f4d54a etc: Add helgrind suppressions for libunwind 2012-03-05 19:39:55 -08:00
Brian Anderson
b2a075e20d rt: Protect rust_task::state with a lock 2012-03-05 19:39:55 -08:00
Brian Anderson
d7298a797b rt: Protect rust_task::killed with a lock 2012-03-05 19:39:55 -08:00
Brian Anderson
8a4c8bab84 test: Add test for #979 2012-03-05 18:41:55 -08:00
Brian Anderson
d2135597e9 std: Use util::unreachable 2012-03-05 18:23:01 -08:00
Brian Anderson
2c8c8f9a06 Stop .gitignoring rustboot. It does not exist 2012-03-05 18:17:26 -08:00
Brian Anderson
77ed09728b rustc: Use std::util::unreachable 2012-03-05 18:16:25 -08:00
Brian Anderson
b32e09172c rustc: Make llvm_err non-returning 2012-03-05 18:16:15 -08:00
Brian Anderson
a34ad8c4e7 Stop .gitignoring the rustc directory 2012-03-05 18:15:46 -08:00
Brian Anderson
602015f902 rustc: Use consistent casing for names of timed passes 2012-03-05 17:44:11 -08:00
Brian Anderson
0ee96de4ee rustc: Lower case error messages 2012-03-05 17:05:20 -08:00
Brian Anderson
13a07ce1d4 rustc: Remove some redundant text from error messages 2012-03-05 17:05:20 -08:00
Niko Matsakis
8820d4485b print type arguments when pretty-printing all nominal types 2012-03-05 16:47:52 -08:00
Niko Matsakis
3269a4043c rewrite vec to be more unsafe, more inlined 2012-03-05 16:47:52 -08:00
Niko Matsakis
0416a946b7 give user control of whether we use inline hint or inline always
supply inline hints for resource ctors/dtors
2012-03-05 16:47:51 -08:00
Niko Matsakis
cc2ebfc105 set LLVM inline hint for all #[inline] methods, whether CC or local 2012-03-05 16:47:51 -08:00
Graydon Hoare
e400733e90 Extra removal, missed by last commit. 2012-03-05 16:02:38 -08:00
Graydon Hoare
6c87c34277 Remove dead code from rt (debug_obj, rust_obj, rust_closure, rust_box_obj, rust_vtable) 2012-03-05 15:50:11 -08:00
Brian Anderson
15df3950ad rustc: Remove remaining non-inbounds GEPs 2012-03-05 15:12:36 -08:00
Brian Anderson
3a4c96a196 rt: Remove virtual methods from memory_region, rust_srv 2012-03-05 14:47:24 -08:00
Graydon Hoare
5bf185b499 Port fsync, waitpid and remove_file to core::{os,libc}. 2012-03-05 14:00:44 -08:00
Erick Tryzelaar
faccd4ac92 std: export json::error. 2012-03-05 08:47:21 -08:00
Brian Anderson
633881a562 test: xfail-fast run-pass/classes-simple.rs 2012-03-04 14:13:18 -08:00
Tim Chevalier
e2fa6f03f5 Translate simple classes
Programs using classes with fields only (no methods) compile and run,
    as long as nothing refers to a class in a different crate (todo).

    Also changed the AST representation of classes to have a separate
    record for constructor info (instead of inlining the fields in the
    item_class node), and fixed up spans and pretty-printing for
    classes.
2012-03-04 12:43:17 -08:00
Brian Anderson
1d826b735c rustdoc: Build appropriate filenames for pages 2012-03-04 00:23:54 -08:00