rust/src/libstd
bors b8bea5a0a6 Auto merge of #54017 - alexcrichton:wasm-atomics2, r=sfackler
std: Start implementing wasm32 atomics

This commit is an initial start at implementing the standard library for
wasm32-unknown-unknown with the experimental `atomics` feature enabled. None of
these changes will be visible to users of the wasm32-unknown-unknown target
because they all require recompiling the standard library. The hope with this is
that we can get this support into the standard library and start iterating on it
in-tree to enable experimentation.

Currently there's a few components in this PR:

* Atomic fences are disabled on wasm as there's no corresponding atomic op and
  it's not clear yet what the convention should be, but this will change in the
  future!
* Implementations of `Mutex`, `Condvar`, and `RwLock` were all added based on
  the atomic intrinsics that wasm has.
* The `ReentrantMutex` and thread-local-storage implementations panic currently
  as there's no great way to get a handle on the current thread's "id" yet.

Right now the wasm32 target with atomics is unfortunately pretty unusable,
requiring a lot of manual things here and there to actually get it operational.
This will likely continue to evolve as the story for atomics and wasm unfolds,
but we also need more LLVM support for some operations like custom `global`
directives for this to work best.
2018-10-05 01:57:01 +00:00
..
collections Auto merge of #53804 - RalfJung:ptr-invalid, r=nagisa 2018-09-16 18:03:39 +00:00
ffi make CStr::from_bytes_with_nul_unchecked() a const fn 2018-10-02 04:25:40 -07:00
io Improve docs for std::io::Seek 2018-09-28 08:01:56 -04:00
net Rollup merge of #53522 - phungleson:fix-impl-from-for-addr, r=TimNN 2018-09-18 10:21:33 +02:00
os Move std::os::raw::c_void into libcore and re-export in libstd 2018-09-14 16:19:59 +01:00
prelude Reformat std prelude source to show it is the sum of core and alloc preludes 2018-07-07 23:16:27 +02:00
sync Fix Once perf regression 2018-09-29 11:07:48 +03:00
sys std: Start implementing wasm32 atomics 2018-09-24 15:55:35 -07:00
sys_common Improve output if no_lookup_host_duplicates fails 2018-09-15 17:17:35 +02:00
tests Breaking change upgrades 2018-09-04 13:22:08 -06:00
thread Expand synchronization comments in park/unpark 2018-09-18 18:06:16 +01:00
alloc.rs Bump to 1.31.0 and bootstrap from 1.30 beta 2018-09-27 20:52:53 -07:00
ascii.rs Remove unstable and deprecated APIs 2018-07-30 18:18:23 +02:00
build.rs Add rustc SHA to released DWARF debuginfo 2018-09-10 10:10:38 -07:00
Cargo.toml Breaking change upgrades 2018-09-04 13:22:08 -06:00
env.rs make reference to dirs crate clickable in terminals 2018-07-12 12:48:10 +02:00
error.rs Rollup merge of #53523 - phungleson:fix-impl-from-for-std-error, r=GuillaumeGomez 2018-10-04 12:20:05 +02:00
f32.rs Clarify rational behind current implementation of .mod_euc() 2018-06-26 13:09:56 +02:00
f64.rs Clarify rational behind current implementation of .mod_euc() 2018-06-26 13:09:56 +02:00
fs.rs Rollup merge of #53376 - frewsxcv:frewsxcv-copy, r=GuillaumeGomez 2018-09-07 15:26:30 +08:00
future.rs Remove spawning from task::Context 2018-09-19 15:01:19 -07:00
keyword_docs.rs Add struct keyword doc 2018-08-23 23:50:05 +02:00
lib.rs Auto merge of #54017 - alexcrichton:wasm-atomics2, r=sfackler 2018-10-05 01:57:01 +00:00
macros.rs Auto merge of #54317 - Centril:feature/dbg_macro, r=SimonSapin 2018-09-25 07:06:15 +00:00
memchr.rs Fix typos found by codespell. 2018-08-19 17:41:28 +02:00
num.rs Stabilize num::NonZeroU* 2018-05-16 19:11:31 +02:00
panic.rs Remove spawning from task::Context 2018-09-19 15:01:19 -07:00
panicking.rs Auto merge of #54601 - cuviper:prep-1.31, r=Mark-Simulacrum 2018-09-30 01:45:50 +00:00
path.rs Add links to std::char::REPLACEMENT_CHARACTER from docs. 2018-08-11 15:42:35 -04:00
primitive_docs.rs Fixed three small typos. 2018-09-23 23:47:52 -05:00
process.rs document the platform-specific behavior of Command::current_dir 2018-08-20 17:02:45 -04:00
rt.rs Deny bare trait objects in src/libstd. 2018-07-10 20:35:36 +02:00
time.rs Stabilize SystemTime::UNIX_EPOCH 2018-05-28 18:24:01 -06:00