rust/src/libcore
bors a6b109723a auto merge of #19835 : pythonesque/rust/add-unordered-intrinsic, r=thestinger
This corresponds to the JMM memory model's non-volatile reads and writes to shared variables.  It provides fairly weak guarantees, but prevents UB (specifically, you will never see a value that was not written _at some point_ to the provided location).  It is not part of the C++ memory model and is only legal to provide to LLVM for loads and stores (not fences, atomicrmw, etc.).

Valid uses of this ordering are things like racy counters where you don't care about the operation actually being atomic, just want to avoid UB.  It cannot be used for synchronization without additional memory barriers since unordered loads and stores may be reordered freely by the optimizer (this is the main way it differs from relaxed).

Because it is new to Rust and it provides so few guarantees, for now only the intrinsic is provided--this patch doesn't add it to any of the higher-level atomic wrappers.
2015-01-03 01:10:40 +00:00
..
fmt rollup merge of #20341: nikomatsakis/impl-trait-for-trait-2 2015-01-02 11:13:05 -08:00
hash More fallout 2015-01-02 10:28:19 +13:00
num Fix fallout from change, adding explicit Sized annotations where necessary. 2015-01-02 12:06:59 -05:00
str Fallout - change array syntax to use ; 2015-01-02 10:28:19 +13:00
any.rs Utilize fewer reexports 2014-12-05 18:13:04 -05:00
array.rs core: use assoc types in Deref[Mut] 2015-01-02 12:19:59 -05:00
atomic.rs std: Second pass stabilization of sync 2015-01-01 22:02:59 -08:00
borrow.rs core: use assoc types in Deref[Mut] 2015-01-02 12:19:59 -05:00
cell.rs rollup merge of #20410: japaric/assoc-types 2015-01-02 13:51:50 -08:00
char.rs Implement Clone for a large number of iterators & other adaptors. 2014-12-30 21:01:36 +11:00
clone.rs Fix fallout from change, adding explicit Sized annotations where necessary. 2015-01-02 12:06:59 -05:00
cmp.rs std: Stabilize the prelude module 2015-01-02 08:54:06 -08:00
default.rs librustc: Always parse macro!()/macro![] as expressions if not 2014-12-18 12:09:07 -05:00
finally.rs libcore: fix fallout in doc tests 2014-12-13 17:03:46 -05:00
intrinsics.rs auto merge of #19835 : pythonesque/rust/add-unordered-intrinsic, r=thestinger 2015-01-03 01:10:40 +00:00
iter.rs rollup merge of #20410: japaric/assoc-types 2015-01-02 13:51:50 -08:00
kinds.rs Make Send and Sync traits unsafe 2014-12-26 17:26:33 +01:00
lib.rs Don't expose NonZero through libstd. 2014-12-28 19:40:48 -05:00
macros.rs Register new snapshots 2014-12-30 15:04:43 -08:00
mem.rs rollup merge of #19942: steveklabnik/doc_std_mem 2014-12-17 11:50:31 -08:00
nonzero.rs core: use assoc types in Deref[Mut] 2015-01-02 12:19:59 -05:00
ops.rs rollup merge of #20410: japaric/assoc-types 2015-01-02 13:51:50 -08:00
option.rs Rollup test fixes and rebase conflicts 2015-01-02 10:50:13 -08:00
panicking.rs Register new snapshots 2014-12-30 15:04:43 -08:00
prelude.rs rollup merge of #20410: japaric/assoc-types 2015-01-02 13:51:50 -08:00
ptr.rs rollup merge of #20410: japaric/assoc-types 2015-01-02 13:51:50 -08:00
raw.rs libcore: use #[deriving(Copy)] 2014-12-19 10:43:23 -05:00
result.rs Rollup test fixes and rebase conflicts 2015-01-02 10:50:13 -08:00
simd.rs libcore: use #[deriving(Copy)] 2014-12-19 10:43:23 -05:00
slice.rs merge *SliceExt traits, use assoc types in SliceExt, Raw[Mut]Ptr 2015-01-02 12:07:04 -05:00
tuple.rs std: Stabilize the prelude module 2015-01-02 08:54:06 -08:00
ty.rs std: Stabilize unit, bool, ty, tuple, arc, any 2014-07-26 13:12:20 -07:00