rust/src/libstd
bors 8e285208d5 auto merge of #12686 : FlaPer87/rust/shared, r=nikomatsakis
`Share` implies that all *reachable* content is *threadsafe*.

Threadsafe is defined as "exposing no operation that permits a data race if multiple threads have access to a &T pointer simultaneously". (NB: the type system should guarantee that if you have access to memory via a &T pointer, the only other way to gain access to that memory is through another &T pointer)...

Fixes #11781
cc #12577 

What this PR will do
================

- [x] Add Share kind and
- [x]  Replace usages of Freeze with Share in bounds.
- [x] Add Unsafe<T> #12577
- [x] Forbid taking the address of a immutable static item with `Unsafe<T>` interior

What's left to do in a separate PR (after the snapshot)?
===========================================

- Remove `Freeze` completely
2014-03-20 05:51:48 -07:00
..
comm rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
fmt rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
hash rename std::vec_ng -> std::vec 2014-03-20 04:25:32 -04:00
io auto merge of #12980 : cmr/rust/overhaul-stdio, r=thestinger 2014-03-20 04:36:50 -07:00
num rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
path rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
rt rename std::vec_ng -> std::vec 2014-03-20 04:25:32 -04:00
sync Make atomics interior Unsafe<T> 2014-03-20 10:17:29 +01:00
unstable fix MIPS target 2014-03-14 11:13:36 +08:00
any.rs Cleaned up std::any 2014-03-04 21:10:23 +01:00
ascii.rs rename std::vec_ng -> std::vec 2014-03-20 04:25:32 -04:00
bool.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
c_str.rs rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
c_vec.rs extra: Put the nail in the coffin, delete libextra 2014-03-14 13:59:02 -07:00
cast.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
cell.rs Make Cell and RefCell use Unsafe<T> 2014-03-20 10:16:56 +01:00
char.rs Remove code duplication 2014-03-13 12:23:24 +01:00
cleanup.rs log: Introduce liblog, the old std::logging 2014-03-15 22:26:36 -07:00
clone.rs Made the clone_from implementation for ~T reuse the T itself if 2014-03-18 16:29:57 -07:00
cmp.rs Remove std::cmp::cmp2. 2014-03-15 21:04:56 -07:00
container.rs std: uniform modules titles for doc 2013-12-27 09:49:11 +01:00
default.rs libstd: Remove all support code related to @mut 2014-01-03 14:02:00 -08:00
from_str.rs std: uniform modules titles for doc 2013-12-27 09:49:11 +01:00
gc.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
intrinsics.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
iter.rs rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
kinds.rs Add a Share kind 2014-03-20 10:16:55 +01:00
lib.rs auto merge of #12686 : FlaPer87/rust/shared, r=nikomatsakis 2014-03-20 05:51:48 -07:00
libc.rs rustdoc: Implement cross-crate searching 2014-03-18 13:51:29 -07:00
local_data.rs rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
macros.rs rename std::vec_ng -> std::vec 2014-03-20 04:25:32 -04:00
managed.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
mem.rs Doc-sprint: Document endian conversion functions 2014-03-16 15:57:16 -07:00
ops.rs Test fixes from the rollup 2014-03-18 16:29:57 -07:00
option.rs rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
os.rs rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
owned.rs librustc: Implement placement box for GC and unique pointers. 2014-01-09 16:05:34 -08:00
prelude.rs Add a Share kind 2014-03-20 10:16:55 +01:00
ptr.rs rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
raw.rs Cleaned up std::any 2014-03-04 21:10:23 +01:00
rc.rs Make Rc, Cell and RefCell NoShare 2014-03-20 10:16:55 +01:00
reference.rs Cleaned up imports per coding standards. 2014-02-07 09:59:19 -08:00
reflect.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
repr.rs rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
result.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
rtdeps.rs Invoke gcc with -nodefaultlibs 2014-02-14 08:07:46 -08:00
slice.rs rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
str.rs rename std::vec_ng -> std::vec 2014-03-20 04:25:32 -04:00
task.rs log: Introduce liblog, the old std::logging 2014-03-15 22:26:36 -07:00
to_str.rs Remove all ToStr impls, add Show impls 2014-02-23 20:51:56 -08:00
tuple.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
ty.rs Let ArcData use Unsafe<T> 2014-03-20 10:17:28 +01:00
unicode.rs rename std::vec -> std::slice 2014-03-20 01:30:27 -04:00
unit.rs Add some missing Show implementations in libstd 2014-02-13 12:54:01 -08:00
vec.rs A couple of fixes to vec_ng docs 2014-03-20 05:44:25 -04:00