summary refs log tree commit diff
path: root/src/libpanic_unwind/lib.rs
AgeCommit message (Collapse)AuthorLines
2017-08-27Add missing dependency for WindowsTatsuyuki Ishi-1/+4
2017-08-25*: remove crate_{name,type} attributesTamir Duberstein-2/+0
Fixes #41701.
2016-12-29Remove not(stage0) from deny(warnings)Alex Crichton-1/+1
Historically this was done to accommodate bugs in lints, but there hasn't been a bug in a lint since this feature was added which the warnings affected. Let's completely purge warnings from all our stages by denying warnings in all stages. This will also assist in tracking down `stage0` code to be removed whenever we're updating the bootstrap compiler.
2016-11-10Fixes for stdio and processes on RedoxJeremy Soller-0/+1
2016-09-30Rewrite emscripten unwinding to use libcxxBrian Anderson-1/+7
2016-07-22Implement rust_eh_personality in Rust, remove rust_eh_personality_catch.Vadim Chugunov-0/+1
Well, not quite: ARM EHABI platforms still use the old scheme -- for now.
2016-06-05run rustfmt on libpanic_unwind folderSrinivas Reddy Thatiparthy-6/+6
2016-05-31mk: Prepare for a new stage0 compilerAlex Crichton-2/+2
This commit prepares the source for a new stage0 compiler, the 1.10.0 beta compiler. These artifacts are hot off the bots and should be ready to go.
2016-05-09rustc: Implement custom panic runtimesAlex Crichton-0/+109
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).