Commit Graph

53463 Commits

Author SHA1 Message Date
Manish Goregaokar
c45d4816ca
Rollup merge of #33431 - GuillaumeGomez:issue-30416, r=steveklabnik
Update CSS for future rustdoc merge

cc #33382

r? @steveklabnik
cc @Manishearth
cc @birkenfeld
2016-05-09 14:59:36 -07:00
Manish Goregaokar
57fa783d3c
Rollup merge of #33383 - cramertj:E0509, r=Manishearth
Add detailed error explanation for E0509

Part of #32777
2016-05-09 14:59:33 -07:00
Manish Goregaokar
9f5f997c13
Rollup merge of #33370 - aochagavia:dump, r=nrc
save-analysis: use a decoupled representation for dumped data

Closes #33348

This will probably break any tool relying on the csv backend of save_analysis, for the following reasons:

1. Dumped spans don't contain extents anymore (`Dump` uses `SpanData` now instead of internal `Span`s). In case we still want to dump extents we could add them to `SpanData`.
1. `DefId`s are no longer dumped as a pair of `(ref_id, ref_crate)`. Instead, they are dumped as a single `Id`.

@nrc You said something about storing the id in a `u64`, but you didn't explain why. I kept using `u32` in this branch but I can change it if you prefer that.

r? @nrc

By the way, the fact that this breaks tools relying on CSV may be a good occasion to start dumping CSV in a different way (i.e. using the serializer like in the JSON backend).
2016-05-09 14:59:29 -07:00
Manish Goregaokar
d394aa064e
Rollup merge of #33224 - alexcrichton:create-exit-status, r=aturon
std: Allow creating ExitStatus from raw values

Sometimes a process may be waited on externally from the standard library, in
which case it can be useful to create a raw `ExitStatus` structure to return.
This commit extends the existing Unix `ExitStatusExt` extension trait and adds a
new Windows-specific `ExitStatusExt` extension trait to do this. The methods are
currently called `ExitStatus::from_raw`.

cc #32713
2016-05-09 14:59:20 -07:00
Brian Green
9d2c45d0e7 doc: Fix tiny typo in vec-alloc.md
Change `fast an loose` to `fast and loose`.
2016-05-09 14:28:42 -07:00
bors
0e7cb8bc31 Auto merge of #33224 - alexcrichton:create-exit-status, r=aturon
std: Allow creating ExitStatus from raw values

Sometimes a process may be waited on externally from the standard library, in
which case it can be useful to create a raw `ExitStatus` structure to return.
This commit extends the existing Unix `ExitStatusExt` extension trait and adds a
new Windows-specific `ExitStatusExt` extension trait to do this. The methods are
currently called `ExitStatus::from_raw`.

cc #32713
2016-05-09 14:04:08 -07:00
Georg Brandl
5606b42981 rustdoc: remove artificial indentation of doctest code
This makes the examples look nicer when printed (when is this
done?), but breaks tests using multi-line string literals.

Fixes: #25944
2016-05-09 22:46:40 +02:00
Michael Woerister
118cc9e8e1 Fix some rebasing fallout. 2016-05-09 16:17:00 -04:00
Michael Woerister
00eabcbefa trans::context: Remove some tcx::tls wackiness 2016-05-09 16:17:00 -04:00
Michael Woerister
86a691a5c7 trans: Consistently name SharedCrateContext instances 'scx' 2016-05-09 16:17:00 -04:00
Michael Woerister
b89a5d1f7c Make FixedCount partitioning handle case where codegen units have to be added. 2016-05-09 16:17:00 -04:00
Michael Woerister
0142336a2a trans: Add some explanatory comments to trans::context types. 2016-05-09 16:17:00 -04:00
Michael Woerister
a8e34dfc29 trans: Make partitioning available in LocalCrateContext. 2016-05-09 16:17:00 -04:00
Michael Woerister
bebcb285ad Restructure trans_crate() so that codegen unit partitioning happens before creating LocalCrateContexts. 2016-05-09 16:17:00 -04:00
Michael Woerister
bb8c8c58d3 Make trans::collector only depend on SharedCrateContext. 2016-05-09 16:17:00 -04:00
Michael Woerister
75bf6173e5 trans: Make glue::get_drop_glue_type() independent of CrateContext. 2016-05-09 16:17:00 -04:00
Michael Woerister
3f74c6afe0 trans: Make base::custom_coerce_unsize_info only depend on SharedCrateContext. 2016-05-09 16:17:00 -04:00
Michael Woerister
566aa54b49 trans: Make common::fulfill_obligation only depend on SharedCrateContext.
Plus make it produce a nicer dependency graph via DepTrackingMap::memoize().
2016-05-09 16:17:00 -04:00
Michael Woerister
d24ead0f93 trans: Make various trans::collector functions independent of CrateContext. 2016-05-09 16:17:00 -04:00
Michael Woerister
2564199d8f trans: Make meth::get_vtable_methods() not depend on CrateContext. 2016-05-09 16:17:00 -04:00
Michael Woerister
100a4f5699 trans: Make normalize_and_test_predicates() not depend on CrateContext. 2016-05-09 16:17:00 -04:00
Michael Woerister
60259b9d90 Make trans::collector item printing methods independent of CrateContext. 2016-05-09 16:17:00 -04:00
Michael Woerister
b2ea54d2c6 trans: Split LocalCrateContext ownership out of SharedCrateContext. 2016-05-09 16:17:00 -04:00
Eduard Burtescu
cb3a557e0c trans: deal with the fact that ZSTs are always "initialized". 2016-05-09 22:52:06 +03:00
Eduard Burtescu
d460597e33 trans: monomorphize varidiac call argument types. 2016-05-09 22:52:01 +03:00
Matt Brubeck
06f5fa4a0c Inline RawVec::cap 2016-05-09 11:44:55 -07:00
Taylor Cramer
38a5338c63 Add detailed error explanation for E0504
Removed unnecessary use of threads from E0504

Cleaned up line ending on E0504

Added more examples for E0504

Changed to erroneous code wording

Switched Rc example to thread/Arc example

Added comments describing why errors no longer occur
2016-05-09 11:05:11 -07:00
bors
faca79fc33 Auto merge of #33457 - oli-obk:const_err/cast_u8_ptr, r=eddyb
casting `&[u8]` to `* const u8` doesn't work in const_eval

fixes #33452

r? @eddyb

cc @Ms2ger
2016-05-09 10:57:35 -07:00
bors
af0a433865 Auto merge of #33048 - Amanieu:integer_atomics, r=alexcrichton
Add integer atomic types

Tracking issue: #32976
RFC: rust-lang/rfcs#1543

The changes to AtomicBool in the RFC are not included, they are in a separate PR (#32365).
2016-05-09 08:48:58 -07:00
Alex Crichton
0ec321f7b5 rustc: Implement custom panic runtimes
This commit is an implementation of [RFC 1513] which allows applications to
alter the behavior of panics at compile time. A new compiler flag, `-C panic`,
is added and accepts the values `unwind` or `panic`, with the default being
`unwind`. This model affects how code is generated for the local crate, skipping
generation of landing pads with `-C panic=abort`.

[RFC 1513]: https://github.com/rust-lang/rfcs/blob/master/text/1513-less-unwinding.md

Panic implementations are then provided by crates tagged with
`#![panic_runtime]` and lazily required by crates with
`#![needs_panic_runtime]`. The panic strategy (`-C panic` value) of the panic
runtime must match the final product, and if the panic strategy is not `abort`
then the entire DAG must have the same panic strategy.

With the `-C panic=abort` strategy, users can expect a stable method to disable
generation of landing pads, improving optimization in niche scenarios,
decreasing compile time, and decreasing output binary size. With the `-C
panic=unwind` strategy users can expect the existing ability to isolate failure
in Rust code from the outside world.

Organizationally, this commit dismantles the `sys_common::unwind` module in
favor of some bits moving part of it to `libpanic_unwind` and the rest into the
`panicking` module in libstd. The custom panic runtime support is pretty similar
to the custom allocator support with the only major difference being how the
panic runtime is injected (takes the `-C panic` flag into account).
2016-05-09 08:22:36 -07:00
Alex Crichton
96b228835a trans: Always lower to frem
Long ago LLVM unfortunately didn't handle the 32-bit MSVC case of `frem` where
it can't be lowered to `fmodf` because that symbol doesn't exist. That was since
fixed in http://reviews.llvm.org/D12099 (landed as r246615) and was released in
what appears to be LLVM 3.8. Now that we're using that branch of LLVM let's
remove our own hacks and help LLVM optimize a little better by giving it
knowledge about what we're doing.
2016-05-09 08:17:46 -07:00
Georg Brandl
6100b70b98 rustdoc: do not strip blanket impls in crate of origin
In `impl<T> Trait for T`, the blanket type parameters `T` were
recognized as "local" and "not exported", so these impls were
thrown out.

Now we check if they are generic, and keep them in that case.

Fixes: #29503
2016-05-09 16:50:47 +02:00
bors
0cc90978e8 Auto merge of #33484 - murarth:diagnostic-builder-fields, r=brson
Add accessor methods to DiagnosticBuilder
2016-05-09 06:40:56 -07:00
Corey Farwell
62b19c627e Utilize Result::unwrap_err in more places. 2016-05-09 08:40:57 -04:00
Amanieu d'Antras
03dd9b87cb Add test to ensure that atomic types are lock-free 2016-05-09 13:33:24 +01:00
Amanieu d'Antras
97216a6ce5 Add new atomic integer types 2016-05-09 13:31:47 +01:00
Amanieu d'Antras
04835ea5ec Add #[cfg(target_has_atomic)] to get atomic support for the current target 2016-05-09 13:31:47 +01:00
Jeffrey Seyfried
805666a4d2 Fix fallout in librustdoc and in tests 2016-05-09 12:12:32 +00:00
bors
32683ce193 Auto merge of #33478 - xen0n:normalize-callee-trait-ref, r=eddyb
trans: callee: normalize trait_ref before use

This fixes #33436 and #33461. Ran the tests and nothing else seems to be affected.

P.S. How to write the regression test for this fix? Does this qualify as run-pass or run-make, as the test only needs to be successfully compiled to be considered passed? Will add the testcase (the minimal example in #33461 seems fit) after clarifying this.
2016-05-09 04:32:39 -07:00
Jeffrey Seyfried
abec20b177 Refactor out driver::lower_and_resolve 2016-05-09 10:27:27 +00:00
Jeffrey Seyfried
6710eef6b2 Refactor hir::lowering::Resolver 2016-05-09 10:27:24 +00:00
Georg Brandl
ba17bd0b42 rustdoc: fix emitting duplicate implementors in .js files
The collect() fn checks for double quotes; use them here as well.

Fixes: #30219
2016-05-09 10:18:06 +02:00
Manish Goregaokar
84843b73dc
Merge E0410 into E0408 2016-05-08 23:36:40 -07:00
Eduard Burtescu
9709dff7e3 trans: monomorphize the cast destination type before using it. 2016-05-09 09:20:02 +03:00
bors
50909f2d50 Auto merge of #33365 - birkenfeld:makehelpfix, r=alexcrichton
Makefile: there is only one tidy target now

Also removes mention of tidy.py from the tidy sources.
2016-05-08 20:07:10 -07:00
Jeffrey Seyfried
e6d6c37968 Reimplement pretty printing 2016-05-09 02:47:08 +00:00
Jeffrey Seyfried
e5a0dd7c6e Resolve paths generated in the ast->hir lowerer 2016-05-09 02:31:06 +00:00
Jeffrey Seyfried
983b4d3925 Refactor the interface that resolve exposes to driver 2016-05-09 02:31:06 +00:00
Jeffrey Seyfried
8428447253 Move resolution to before lowering 2016-05-09 02:31:04 +00:00
bors
27edda2411 Auto merge of #33360 - alexcrichton:rustbuild-dox, r=brson
rustbuild: Document many more parts of the build

This commit expands the bootstrap build system's `README.md` as well as ensuring
that all API documentation is present and up-to-date. Additionally a new
`config.toml.example` file is checked in with commented out versions of all
possible configuration values.
2016-05-08 17:58:54 -07:00