2755 Commits

Author SHA1 Message Date
Patrick Walton
38be67a1b9 librustc: De-@mut CrateDebugContext::created_types. 2013-12-26 13:01:25 -08:00
Patrick Walton
6ac286b518 librustc: De-@mut CrateDebugContext::created_files 2013-12-26 13:01:25 -08:00
Patrick Walton
fc92f92572 librustc: De-@mut CrateContext::finished_tydescs. 2013-12-26 13:01:25 -08:00
Patrick Walton
462a791c34 librustc: De-@mut the external and external_srcs fields of
`CrateContext`
2013-12-26 13:01:25 -08:00
Patrick Walton
1e654f5ff7 librustc: De-@mut CrateContext::externs 2013-12-26 13:01:25 -08:00
Patrick Walton
519db34722 librustc: De-@mut CrateContext::tydescs 2013-12-26 13:01:24 -08:00
Patrick Walton
b5aa6eb69f librustc: De-@mut CrateContext::non_inlineable_statics 2013-12-26 13:01:24 -08:00
Patrick Walton
02bdda2776 librustc: De-@mut CrateContext::all_llvm_symbols 2013-12-26 13:01:24 -08:00
Patrick Walton
b895ba52bc librustc: Remove unused CrateContext::type_short_names 2013-12-26 13:01:24 -08:00
Patrick Walton
25337a7f9f librustc: De-@mut CrateContext::type_hashcodes 2013-12-26 13:01:24 -08:00
Patrick Walton
a1747a6091 librustc: De-@mut CrateContext::adt_reprs 2013-12-26 13:01:24 -08:00
Patrick Walton
db83a957b6 librustc: De-@mut CrateContext::llsizingtypes 2013-12-26 13:01:24 -08:00
Patrick Walton
06805209e4 librustc: De-@mut lltypes. 2013-12-26 13:01:24 -08:00
Patrick Walton
8c194a0136 librustc: De-@mut CrateContext::module_data 2013-12-26 13:01:24 -08:00
Patrick Walton
1185fcc437 librustc: De-@mut the impl_method_cache 2013-12-26 13:01:24 -08:00
Patrick Walton
37e3f2fe63 librustc: De-@mut CrateContext::extern_const_values 2013-12-26 13:01:24 -08:00
Patrick Walton
d16cca1f50 librustc: De-@mut const_values. 2013-12-26 13:01:23 -08:00
Patrick Walton
28943e96cb librustc: De-@mut RefCell::const_globals. 2013-12-26 13:01:23 -08:00
Patrick Walton
0e2041c54b librustc: De-@mut CrateContext::const_cstr_cache. 2013-12-26 13:01:23 -08:00
Patrick Walton
13f85cb097 librustc: De-@mut CrateContext::vtables. 2013-12-26 13:01:23 -08:00
Patrick Walton
5dcc5165a6 librustc: Remove unused discrim_symbols field from the crate context 2013-12-26 13:01:23 -08:00
Patrick Walton
0f3e4fea4f librustc: Remove unused field enum_sizes from the crate context 2013-12-26 13:01:23 -08:00
Patrick Walton
df7f1374d7 librustc: De-@mut item_symbols 2013-12-26 13:01:23 -08:00
Patrick Walton
610096d8c8 librustc: De-@mut CrateContext::item_vals 2013-12-26 13:01:23 -08:00
Patrick Walton
d3f58c59e4 librustc: De-@mut the monomorphizing field in CrateContext 2013-12-26 13:01:23 -08:00
Patrick Walton
b5218ba6ad librustc: De-@mut monomorphized in the crate context 2013-12-26 13:01:23 -08:00
Patrick Walton
6a0450c67d librustc: De-@mut the tc_cache 2013-12-26 13:01:23 -08:00
Patrick Walton
ba2e6c1e95 librustc: De-@mut the needs_unwind_cleanup_cache 2013-12-26 13:01:23 -08:00
Patrick Walton
2e46ac6449 librustc: De-@mut the short names cache 2013-12-26 13:01:22 -08:00
Patrick Walton
2612d76d22 librustc: De-@mut intrinsic_defs 2013-12-26 13:01:22 -08:00
Patrick Walton
2ead970b21 librustc: De-@mut trait_defs 2013-12-26 13:01:22 -08:00
Patrick Walton
3f444dca5b librustc: De-@mut trait_refs 2013-12-26 13:01:22 -08:00
Patrick Walton
efdbd60a87 librustc: De-@mut the impl_trait_cache 2013-12-26 13:01:22 -08:00
Patrick Walton
02f13adaa3 librustc: De-@mut the trait_methods_cache 2013-12-26 13:01:22 -08:00
Patrick Walton
214d6bc34a librustc: De-@mut the trait_method_def_ids table. 2013-12-26 13:01:22 -08:00
Patrick Walton
f15f9388dc librustc: De-@mut the type context's methods table 2013-12-26 13:01:22 -08:00
Patrick Walton
386300d4b0 librustc: De-@mut the node_type_substs table 2013-12-26 13:01:22 -08:00
Patrick Walton
fffbe7a8cd librustc: De-@mut the type interner 2013-12-26 13:01:22 -08:00
Patrick Walton
09589aae4f librustc: De-@mut FnCtxt. 2013-12-26 13:01:21 -08:00
Patrick Walton
c9432327c4 librustc: Change @mut Block to @Block. 2013-12-26 13:01:21 -08:00
Alex Crichton
ab431a20c0 Register new snapshots 2013-12-26 11:30:23 -08:00
bors
9477c49a7b auto merge of #10965 : alexcrichton/rust/libgreen, r=brson
This pull request extracts all scheduling functionality from libstd, moving it into its own separate crates. The new libnative and libgreen will be the new way in which 1:1 and M:N scheduling is implemented. The standard library still requires an interface to the runtime, however, (think of things like `std::comm` and `io::println`). The interface is now defined by the `Runtime` trait inside of `std::rt`.

The booting process is now that libgreen defines the start lang-item and that's it. I want to extend this soon to have libnative also have a "start lang item" but also allow libgreen and libnative to be linked together in the same process. For now though, only libgreen can be used to start a program (unless you define the start lang item yourself). Again though, I want to change this soon, I just figured that this pull request is large enough as-is.

This certainly wasn't a smooth transition, certain functionality has no equivalent in this new separation, and some functionality is now better enabled through this new system. I did my best to separate all of the commits by topic and keep things fairly bite-sized, although are indeed larger than others.

As a note, this is currently rebased on top of my `std::comm` rewrite (or at least an old copy of it), but none of those commits need reviewing (that will all happen in another pull request).
2013-12-26 01:01:54 -08:00
Steven Fackler
c7cf5dc270 Method-ify CStore 2013-12-25 21:50:36 -07:00
Alex Crichton
a55c57284d std: Introduce std::sync
For now, this moves the following modules to std::sync

* UnsafeArc (also removed unwrap method)
* mpsc_queue
* spsc_queue
* atomics
* mpmc_bounded_queue
* deque

We may want to remove some of the queues, but for now this moves things out of
std::rt into std::sync
2013-12-24 14:42:00 -08:00
bors
32e730f122 auto merge of #11121 : vadimcn/rust/no-c++2, r=alexcrichton
This PR removes Rust's dependency on C++ for exception handling. Instead, it will use the unwind library API directly.

closes #10469
2013-12-24 12:46:32 -08:00
Vadim Chugunov
e3b37154b0 Stop using C++ exceptions for stack unwinding. 2013-12-24 12:13:42 -08:00
Brian Anderson
26f1b4db11 rustc: Add a lint for the obsolete crate-level link attribute 2013-12-23 21:04:01 -08:00
bors
55cbef611a auto merge of #11064 : huonw/rust/vec-sort, r=alexcrichton
This uses quite a bit of unsafe code for speed and failure safety, and allocates `2*n` temporary storage.

[Performance](https://gist.github.com/huonw/5547f2478380288a28c2):

|      n |      new | priority_queue |   quick3 |
|-------:|---------:|---------------:|---------:|
|      5 |      200 |            155 |      106 |
|    100 |     6490 |           8750 |     5810 |
|  10000 |  1300000 |        1790000 |  1060000 |
| 100000 | 16700000 |       23600000 | 12700000 |
| sorted |   520000 |        1380000 | 53900000 |
|  trend |  1310000 |        1690000 |  1100000 |

(The times are in nanoseconds, having subtracted the set-up time (i.e. the `just_generate` bench target).)

I imagine that there is still significant room for improvement, particularly because both priority_queue and quick3 are doing a static call via `Ord` or `TotalOrd` for the comparisons, while this is using a (boxed) closure.

Also, this code does not `clone`, unlike `quick_sort3`; and is stable, unlike both of the others.
2013-12-22 00:41:39 -08:00
Huon Wilson
2e8c522c62 std::vec: make the sorting closure use Ordering rather than just being
(implicitly) less_eq.
2013-12-22 18:16:50 +11:00
bors
9d1de0b699 auto merge of #11077 : alexcrichton/rust/crate-id, r=cmr
Right now the --crate-id and related flags are all process *after* the entire
crate is parsed. This is less than desirable when used with makefiles because it
means that just to learn the output name of the crate you have to parse the
entire crate (unnecessary).

This commit changes the behavior to lift the handling of these flags much sooner
in the compilation process. This allows us to not have to parse the entire crate
and only have to worry about parsing the crate attributes themselves. The
related methods have all been updated to take an array of attributes rather than
a crate.

Additionally, this ceases duplication of the "what output are we producing"
logic in order to correctly handle things in the case of --test.

Finally, this adds tests for all of this functionality to ensure that it does
not regress.
2013-12-20 15:21:33 -08:00