1. 01 10月, 2016 2 次提交
  2. 11 9月, 2016 1 次提交
  3. 25 8月, 2016 1 次提交
  4. 13 7月, 2016 1 次提交
    • A
      std: Clean out deprecated APIs · a7220d90
      Alex Crichton 提交于
      This primarily removes a lot of `sync::Static*` APIs and rejiggers the
      associated implementations. While doing this it was discovered that the
      `is_poisoned` method can actually result in a data race for the Mutex/RwLock
      primitives, so the inner `Cell<bool>` was changed to an `AtomicBool` to prevent
      the associated data race. Otherwise the usage/gurantees should be the same
      they were before.
      a7220d90
  5. 31 5月, 2016 1 次提交
  6. 25 5月, 2016 1 次提交
    • A
      std: Stabilize APIs for the 1.10 release · cae91d7c
      Alex Crichton 提交于
      This commit applies the FCP decisions made by the libs team for the 1.10 cycle,
      including both new stabilizations and deprecations. Specifically, the list of
      APIs is:
      
      Stabilized:
      
      * `os::windows::fs::OpenOptionsExt::access_mode`
      * `os::windows::fs::OpenOptionsExt::share_mode`
      * `os::windows::fs::OpenOptionsExt::custom_flags`
      * `os::windows::fs::OpenOptionsExt::attributes`
      * `os::windows::fs::OpenOptionsExt::security_qos_flags`
      * `os::unix::fs::OpenOptionsExt::custom_flags`
      * `sync::Weak::new`
      * `Default for sync::Weak`
      * `panic::set_hook`
      * `panic::take_hook`
      * `panic::PanicInfo`
      * `panic::PanicInfo::payload`
      * `panic::PanicInfo::location`
      * `panic::Location`
      * `panic::Location::file`
      * `panic::Location::line`
      * `ffi::CStr::from_bytes_with_nul`
      * `ffi::CStr::from_bytes_with_nul_unchecked`
      * `ffi::FromBytesWithNulError`
      * `fs::Metadata::modified`
      * `fs::Metadata::accessed`
      * `fs::Metadata::created`
      * `sync::atomic::Atomic{Usize,Isize,Bool,Ptr}::compare_exchange`
      * `sync::atomic::Atomic{Usize,Isize,Bool,Ptr}::compare_exchange_weak`
      * `collections::{btree,hash}_map::{Occupied,Vacant,}Entry::key`
      * `os::unix::net::{UnixStream, UnixListener, UnixDatagram, SocketAddr}`
      * `SocketAddr::is_unnamed`
      * `SocketAddr::as_pathname`
      * `UnixStream::connect`
      * `UnixStream::pair`
      * `UnixStream::try_clone`
      * `UnixStream::local_addr`
      * `UnixStream::peer_addr`
      * `UnixStream::set_read_timeout`
      * `UnixStream::set_write_timeout`
      * `UnixStream::read_timeout`
      * `UnixStream::write_Timeout`
      * `UnixStream::set_nonblocking`
      * `UnixStream::take_error`
      * `UnixStream::shutdown`
      * Read/Write/RawFd impls for `UnixStream`
      * `UnixListener::bind`
      * `UnixListener::accept`
      * `UnixListener::try_clone`
      * `UnixListener::local_addr`
      * `UnixListener::set_nonblocking`
      * `UnixListener::take_error`
      * `UnixListener::incoming`
      * RawFd impls for `UnixListener`
      * `UnixDatagram::bind`
      * `UnixDatagram::unbound`
      * `UnixDatagram::pair`
      * `UnixDatagram::connect`
      * `UnixDatagram::try_clone`
      * `UnixDatagram::local_addr`
      * `UnixDatagram::peer_addr`
      * `UnixDatagram::recv_from`
      * `UnixDatagram::recv`
      * `UnixDatagram::send_to`
      * `UnixDatagram::send`
      * `UnixDatagram::set_read_timeout`
      * `UnixDatagram::set_write_timeout`
      * `UnixDatagram::read_timeout`
      * `UnixDatagram::write_timeout`
      * `UnixDatagram::set_nonblocking`
      * `UnixDatagram::take_error`
      * `UnixDatagram::shutdown`
      * RawFd impls for `UnixDatagram`
      * `{BTree,Hash}Map::values_mut`
      * `<[_]>::binary_search_by_key`
      
      Deprecated:
      
      * `StaticCondvar` - this, and all other static synchronization primitives
                          below, are usable today through the lazy-static crate on
                          stable Rust today. Additionally, we'd like the non-static
                          versions to be directly usable in a static context one day,
                          so they're unlikely to be the final forms of the APIs in any
                          case.
      * `CONDVAR_INIT`
      * `StaticMutex`
      * `MUTEX_INIT`
      * `StaticRwLock`
      * `RWLOCK_INIT`
      * `iter::Peekable::is_empty`
      
      Closes #27717
      Closes #27720
      cc #27784 (but encode methods still exist)
      Closes #30014
      Closes #30425
      Closes #30449
      Closes #31190
      Closes #31399
      Closes #31767
      Closes #32111
      Closes #32281
      Closes #32312
      Closes #32551
      Closes #33018
      cae91d7c
  7. 06 5月, 2016 1 次提交
  8. 15 4月, 2016 1 次提交
  9. 23 3月, 2016 1 次提交
  10. 01 3月, 2016 1 次提交
    • A
      std: Stabilize APIs for the 1.8 release · b643782a
      Alex Crichton 提交于
      This commit is the result of the FCPs ending for the 1.8 release cycle for both
      the libs and the lang suteams. The full list of changes are:
      
      Stabilized
      
      * `braced_empty_structs`
      * `augmented_assignments`
      * `str::encode_utf16` - renamed from `utf16_units`
      * `str::EncodeUtf16` - renamed from `Utf16Units`
      * `Ref::map`
      * `RefMut::map`
      * `ptr::drop_in_place`
      * `time::Instant`
      * `time::SystemTime`
      * `{Instant,SystemTime}::now`
      * `{Instant,SystemTime}::duration_since` - renamed from `duration_from_earlier`
      * `{Instant,SystemTime}::elapsed`
      * Various `Add`/`Sub` impls for `Time` and `SystemTime`
      * `SystemTimeError`
      * `SystemTimeError::duration`
      * Various impls for `SystemTimeError`
      * `UNIX_EPOCH`
      * `ops::{Add,Sub,Mul,Div,Rem,BitAnd,BitOr,BitXor,Shl,Shr}Assign`
      
      Deprecated
      
      * Scoped TLS (the `scoped_thread_local!` macro)
      * `Ref::filter_map`
      * `RefMut::filter_map`
      * `RwLockReadGuard::map`
      * `RwLockWriteGuard::map`
      * `Condvar::wait_timeout_with`
      
      Closes #27714
      Closes #27715
      Closes #27746
      Closes #27748
      Closes #27908
      Closes #29866
      b643782a
  11. 06 2月, 2016 1 次提交
  12. 03 2月, 2016 1 次提交
  13. 02 2月, 2016 1 次提交
  14. 31 1月, 2016 1 次提交
  15. 30 1月, 2016 1 次提交
  16. 06 12月, 2015 1 次提交
    • A
      std: Stabilize APIs for the 1.6 release · 464cdff1
      Alex Crichton 提交于
      This commit is the standard API stabilization commit for the 1.6 release cycle.
      The list of issues and APIs below have all been through their cycle-long FCP and
      the libs team decisions are listed below
      
      Stabilized APIs
      
      * `Read::read_exact`
      * `ErrorKind::UnexpectedEof` (renamed from `UnexpectedEOF`)
      * libcore -- this was a bit of a nuanced stabilization, the crate itself is now
        marked as `#[stable]` and the methods appearing via traits for primitives like
        `char` and `str` are now also marked as stable. Note that the extension traits
        themeselves are marked as unstable as they're imported via the prelude. The
        `try!` macro was also moved from the standard library into libcore to have the
        same interface. Otherwise the functions all have copied stability from the
        standard library now.
      * The `#![no_std]` attribute
      * `fs::DirBuilder`
      * `fs::DirBuilder::new`
      * `fs::DirBuilder::recursive`
      * `fs::DirBuilder::create`
      * `os::unix::fs::DirBuilderExt`
      * `os::unix::fs::DirBuilderExt::mode`
      * `vec::Drain`
      * `vec::Vec::drain`
      * `string::Drain`
      * `string::String::drain`
      * `vec_deque::Drain`
      * `vec_deque::VecDeque::drain`
      * `collections::hash_map::Drain`
      * `collections::hash_map::HashMap::drain`
      * `collections::hash_set::Drain`
      * `collections::hash_set::HashSet::drain`
      * `collections::binary_heap::Drain`
      * `collections::binary_heap::BinaryHeap::drain`
      * `Vec::extend_from_slice` (renamed from `push_all`)
      * `Mutex::get_mut`
      * `Mutex::into_inner`
      * `RwLock::get_mut`
      * `RwLock::into_inner`
      * `Iterator::min_by_key` (renamed from `min_by`)
      * `Iterator::max_by_key` (renamed from `max_by`)
      
      Deprecated APIs
      
      * `ErrorKind::UnexpectedEOF` (renamed to `UnexpectedEof`)
      * `OsString::from_bytes`
      * `OsStr::to_cstring`
      * `OsStr::to_bytes`
      * `fs::walk_dir` and `fs::WalkDir`
      * `path::Components::peek`
      * `slice::bytes::MutableByteVector`
      * `slice::bytes::copy_memory`
      * `Vec::push_all` (renamed to `extend_from_slice`)
      * `Duration::span`
      * `IpAddr`
      * `SocketAddr::ip`
      * `Read::tee`
      * `io::Tee`
      * `Write::broadcast`
      * `io::Broadcast`
      * `Iterator::min_by` (renamed to `min_by_key`)
      * `Iterator::max_by` (renamed to `max_by_key`)
      * `net::lookup_addr`
      
      New APIs (still unstable)
      
      * `<[T]>::sort_by_key` (added to mirror `min_by_key`)
      
      Closes #27585
      Closes #27704
      Closes #27707
      Closes #27710
      Closes #27711
      Closes #27727
      Closes #27740
      Closes #27744
      Closes #27799
      Closes #27801
      cc #27801 (doesn't close as `Chars` is still unstable)
      Closes #28968
      464cdff1
  17. 18 11月, 2015 1 次提交
  18. 17 10月, 2015 1 次提交
    • A
      Add `Shared` pointer and have `{Arc, Rc}` use it · d6bd8d84
      Andrew Paseltiner 提交于
      This change has two consequences:
      
      1. It makes `Arc<T>` and `Rc<T>` covariant in `T`.
      
      2. It causes the compiler to reject code that was unsound with respect
      to dropck. See compile-fail/issue-29106.rs for an example of code that
      no longer compiles. Because of this, this is a [breaking-change].
      
      Fixes #29037.
      Fixes #29106.
      d6bd8d84
  19. 16 10月, 2015 1 次提交
  20. 20 9月, 2015 1 次提交
  21. 16 8月, 2015 1 次提交
  22. 28 7月, 2015 1 次提交
  23. 18 6月, 2015 2 次提交
  24. 04 6月, 2015 1 次提交
  25. 27 5月, 2015 1 次提交
  26. 13 5月, 2015 1 次提交
  27. 09 5月, 2015 1 次提交
  28. 06 5月, 2015 2 次提交
  29. 02 5月, 2015 1 次提交
  30. 29 4月, 2015 1 次提交
  31. 14 4月, 2015 1 次提交
  32. 09 4月, 2015 1 次提交
    • S
      Implement reentrant mutexes and make stdio use them · 45aa6c8d
      Simonas Kazlauskas 提交于
      write_fmt calls write for each formatted field. The default implementation of write_fmt is used,
      which will call write on not-yet-locked stdout (and write locking after), therefore making print!
      in multithreaded environment still interleave contents of two separate prints.
      
      This patch implements reentrant mutexes, changes stdio handles to use these mutexes and overrides
      write_fmt to lock the stdio handle for the whole duration of the call.
      45aa6c8d
  33. 27 3月, 2015 1 次提交
  34. 24 3月, 2015 1 次提交
  35. 12 3月, 2015 1 次提交
  36. 08 3月, 2015 1 次提交
    • H
      Remove unneeded `Send`/`Sync` bounds from `Mutex`/`RwLock`. · 25d070f2
      Huon Wilson 提交于
      The requirements `T: Send` and `T: Send + Sync` for `Mutex` and `RwLock`
      respectively only matter if those types are shared/sent across thread
      boundaries, and that is adequately controlled by the impls of
      `Send`/`Sync` for them. If `T` doesn't satisfy the bounds, then
      the types cannot cross thread boundaries and so everything is still
      safe (the two types just act like an expensive `RefCell`).
      25d070f2
  37. 03 3月, 2015 1 次提交
    • F
      Use `const`s instead of `static`s where appropriate · f35f973c
      Florian Zeitz 提交于
      This changes the type of some public constants/statics in libunicode.
      Notably some `&'static &'static [(char, char)]` have changed
      to `&'static [(char, char)]`. The regexp crate seems to be the
      sole user of these, yet this is technically a [breaking-change]
      f35f973c