rust/src
Alex Crichton 6968ccfd7a rollup merge of #23651: alexcrichton/unwind-try
This commit provides a safe, but unstable interface for the `try` functionality
of running a closure and determining whether it panicked or not.

There are two primary reasons that this function was previously marked `unsafe`:

1. A vanilla version of this function exposes the problem of exception safety by
   allowing a bare try/catch in the language. It is not clear whether this
   concern should be directly tied to `unsafe` in Rust at the API level. At this
   time, however, the bounds on `ffi::try` require the closure to be both
   `'static` and `Send` (mirroring those of `thread::spawn`). It may be possible
   to relax the bounds in the future, but for now it's the level of safety that
   we're willing to commit to.

2. Panicking while panicking will leak resources by not running destructors.
   Because panicking is still controlled by the standard library, safeguards
   remain in place to prevent this from happening.

The new API is now called `catch_panic` and is marked as `#[unstable]` for now.
2015-03-27 10:07:42 -07:00
..
compiler-rt@58ab642c30
compiletest rollup merge of #23598: brson/gate 2015-03-23 15:13:15 -07:00
doc rollup merge of #23638: pnkfelix/fsk-reject-specialized-drops 2015-03-24 15:27:14 -07:00
driver
etc Add the other S_I(RWX)(GRP/OTH) for posix creat 2015-03-24 03:25:48 -07:00
grammar
jemalloc@e24a1a025a
liballoc Added instability markers to POST_DROP_* consts, and related opt-in's. 2015-03-26 14:08:55 +01:00
libarena Add trivial cast lints. 2015-03-25 10:03:57 +13:00
libbacktrace
libcollections rollup merge of #23535: pnkfelix/fsk-filling-drop 2015-03-27 10:07:41 -07:00
libcollectionstest rollup merge of #23282: nikomatsakis/fn-trait-inheritance 2015-03-24 14:50:44 -07:00
libcore Added instability markers to POST_DROP_* consts, and related opt-in's. 2015-03-26 14:08:55 +01:00
libcoretest Add trivial cast lints. 2015-03-25 10:03:57 +13:00
libflate Require feature attributes, and add them where necessary 2015-03-23 14:40:26 -07:00
libfmt_macros
libgetopts
libgraphviz Test fixes and rebase conflicts, round 2 2015-03-23 17:10:19 -07:00
liblibc Test fixes and rebase conflicts, round 2 2015-03-24 18:37:16 -07:00
liblog rollup merge of #23630: nrc/coerce-tidy 2015-03-24 14:50:46 -07:00
librand Change lint names to plurals 2015-03-25 10:06:13 +13:00
librbml Test fixes and rebase conflicts, round 2 2015-03-24 18:37:16 -07:00
librustc rollup merge of #23535: pnkfelix/fsk-filling-drop 2015-03-27 10:07:41 -07:00
librustc_back Test fixes and rebase conflicts, round 3 2015-03-23 22:52:21 -07:00
librustc_bitflags Add #![feature] attributes to doctests 2015-03-23 14:40:26 -07:00
librustc_borrowck rollup merge of #23601: nikomatsakis/by-value-index 2015-03-23 15:10:50 -07:00
librustc_driver Add generic conversion traits 2015-03-23 15:01:45 -07:00
librustc_lint Change lint names to plurals 2015-03-25 10:06:13 +13:00
librustc_llvm Change lint names to plurals 2015-03-25 10:06:13 +13:00
librustc_privacy
librustc_resolve default => or_insert per RFC 2015-03-27 07:42:03 -04:00
librustc_trans Use -Z force-dropflag-checks=on/off for emitting sanity-check. 2015-03-26 14:08:55 +01:00
librustc_typeck rollup merge of #23535: pnkfelix/fsk-filling-drop 2015-03-27 10:07:41 -07:00
librustdoc default => or_insert per RFC 2015-03-27 07:42:03 -04:00
libserialize Change lint names to plurals 2015-03-25 10:06:13 +13:00
libstd rollup merge of #23651: alexcrichton/unwind-try 2015-03-27 10:07:42 -07:00
libsyntax rollup merge of #23625: fhahn/issue-23620-ice-unicode-bytestring 2015-03-27 10:07:41 -07:00
libterm Bug fixes 2015-03-25 10:37:03 +13:00
libtest Add trivial cast lints. 2015-03-25 10:03:57 +13:00
libunicode Add #![feature] attributes to doctests 2015-03-23 14:40:26 -07:00
llvm@bff6907697
rt
rust-installer@60fd8abfca
rustbook Add trivial cast lints. 2015-03-25 10:03:57 +13:00
rustllvm
test rollup merge of #23625: fhahn/issue-23620-ice-unicode-bytestring 2015-03-27 10:07:41 -07:00
snapshots.txt adding lastest Bitrig snapshot by hand 2015-03-23 15:58:44 -07:00