- 29 4月, 2015 1 次提交
-
-
由 Tamir Duberstein 提交于
-
- 25 4月, 2015 1 次提交
-
-
由 Johannes Oertel 提交于
Changes the style guidelines regarding unit tests to recommend using a sub-module named "tests" instead of "test" for unit tests as "test" might clash with imports of libtest.
-
- 23 4月, 2015 1 次提交
-
-
由 Corey Farwell 提交于
-
- 14 4月, 2015 1 次提交
-
-
由 Andrew Paseltiner 提交于
-
- 09 4月, 2015 1 次提交
-
-
由 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.
-
- 02 4月, 2015 1 次提交
-
-
由 Alex Crichton 提交于
-
- 25 3月, 2015 2 次提交
-
-
由 Felix S. Klock II 提交于
See Issue 8142 for discussion. This makes it illegal for a Drop impl to be more specialized than the original item. So for example, all of the following are now rejected (when they would have been blindly accepted before): ```rust struct S<A> { ... }; impl Drop for S<i8> { ... } // error: specialized to concrete type struct T<'a> { ... }; impl Drop for T<'static> { ... } // error: specialized to concrete region struct U<A> { ... }; impl<A:Clone> Drop for U<A> { ... } // error: added extra type requirement struct V<'a,'b>; impl<'a,'b:a> Drop for V<'a,'b> { ... } // error: added extra region requirement ``` Due to examples like the above, this is a [breaking-change]. (The fix is to either remove the specialization from the `Drop` impl, or to transcribe the requirements into the struct/enum definition; examples of both are shown in the PR's fixed to `libstd`.) ---- This is likely to be the last thing blocking the removal of the `#[unsafe_destructor]` attribute. Includes two new error codes for the new dropck check. Update run-pass tests to accommodate new dropck pass. Update tests and docs to reflect new destructor restriction. ---- Implementation notes: We identify Drop impl specialization by not being as parametric as the struct/enum definition via unification. More specifically: 1. Attempt unification of a skolemized instance of the struct/enum with an instance of the Drop impl's type expression where all of the impl's generics (i.e. the free variables of the type expression) have been replaced with unification variables. 2. If unification fails, then reject Drop impl as specialized. 3. If unification succeeds, check if any of the skolemized variables "leaked" into the constraint set for the inference context; if so, then reject Drop impl as specialized. 4. Otherwise, unification succeeded without leaking skolemized variables: accept the Drop impl. We identify whether a Drop impl is injecting new predicates by simply looking whether the predicate, after an appropriate substitution, appears on the struct/enum definition.
-
由 Felix S. Klock II 提交于
-
- 24 3月, 2015 1 次提交
-
-
由 Brian Anderson 提交于
-
- 21 3月, 2015 1 次提交
-
-
由 Barosl Lee 提交于
-
- 14 3月, 2015 1 次提交
-
-
由 Joseph Crail 提交于
-
- 12 3月, 2015 1 次提交
-
-
由 Steve Klabnik 提交于
This brings comments in line with https://github.com/rust-lang/rfcs/blob/master/text/0505-api-comment-conventions.md#using-markdown
-
- 08 3月, 2015 1 次提交
-
-
由 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`).
-
- 03 3月, 2015 1 次提交
-
-
由 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]
-
- 26 2月, 2015 1 次提交
-
-
由 nwin 提交于
-
- 23 2月, 2015 1 次提交
-
-
由 Nick Cameron 提交于
-
- 21 2月, 2015 2 次提交
-
-
由 Huon Wilson 提交于
Adds some basic tests to check that the types still catch the most glaring errors that could occur. cc #22444.
-
由 Alex Crichton 提交于
This commit removes many unnecessary `unsafe impl` blocks as well as pushing the needed implementations to the lowest level possible. I noticed that the bounds for `RwLock` are a little off when reviewing #22574 and wanted to ensure that we had our story straight on these implementations.
-
- 18 2月, 2015 3 次提交
-
-
由 Niko Matsakis 提交于
-
由 Aaron Turon 提交于
-
由 Huon Wilson 提交于
In most places this preserves the current API by adding an explicit `'static` bound. Notably absent are some impls like `unsafe impl<T: Send> Send for Foo<T>` and the `std::thread` module. It is likely that it will be possible to remove these after auditing the code to ensure restricted lifetimes are safe. More progress on #22251.
-
- 07 2月, 2015 1 次提交
-
-
由 Keegan McAllister 提交于
-
- 30 1月, 2015 1 次提交
-
-
由 Tobias Bucher 提交于
-
- 29 1月, 2015 1 次提交
-
-
由 Jorge Aparicio 提交于
sed -i 's/in range(\([^,]*\), *\([^()]*\))/in \1\.\.\2/g' **/*.rs
-
- 24 1月, 2015 2 次提交
-
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
* `core` - for the core crate * `hash` - hashing * `io` - io * `path` - path * `alloc` - alloc crate * `rand` - rand crate * `collections` - collections crate * `std_misc` - other parts of std * `test` - test crate * `rustc_private` - everything else
-
- 22 1月, 2015 2 次提交
-
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
- 21 1月, 2015 1 次提交
-
-
由 Flavio Percoco 提交于
-
- 16 1月, 2015 1 次提交
-
-
由 Flavio Percoco 提交于
-
- 07 1月, 2015 3 次提交
-
-
由 Nick Cameron 提交于
-
由 Aaron Turon 提交于
-
由 Nick Cameron 提交于
[breaking-change]
-
- 06 1月, 2015 1 次提交
-
-
由 Aaron Turon 提交于
-
- 04 1月, 2015 1 次提交
-
-
由 Jorge Aparicio 提交于
-
- 03 1月, 2015 3 次提交
-
-
由 Alex Crichton 提交于
-
由 Jorge Aparicio 提交于
-
由 Alex Crichton 提交于
This commit is an implementation of [RFC 503][rfc] which is a stabilization story for the prelude. Most of the RFC was directly applied, removing reexports. Some reexports are kept around, however: * `range` remains until range syntax has landed to reduce churn. * `Path` and `GenericPath` remain until path reform lands. This is done to prevent many imports of `GenericPath` which will soon be removed. * All `io` traits remain until I/O reform lands so imports can be rewritten all at once to `std::io::prelude::*`. This is a breaking change because many prelude reexports have been removed, and the RFC can be consulted for the exact list of removed reexports, as well as to find the locations of where to import them. [rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0503-prelude-stabilization.md [breaking-change] Closes #20068
-
- 30 12月, 2014 2 次提交
-
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
This commit performs a stabilization pass over the sync::{mutex, rwlock, condvar} modules, marking the following items as stable: * Mutex * Mutex::new * Mutex::lock * Mutex::try_lock * MutexGuard * RWLock * RWLock::new * RWLock::read * RWLock::try_read * RWLock::write * RWLock::try_write * RWLockReadGuard * RWLockWriteGuard * Condvar * Condvar::new * Condvar::wait * Condvar::notify_one * Condvar::notify_all * PoisonError * TryLockError * TryLockError::Poisoned * TryLockError::WouldBlock * LockResult * TryLockResult The following items remain unstable to explore future possibilities of unifying the static/non-static variants of the types: * StaticMutex * StaticMutex::new * StaticMutex::lock * StaticMutex::try_lock * StaticMutex::desroy * StaticRWLock * StaticRWLock::new * StaticRWLock::read * StaticRWLock::try_read * StaticRWLock::write * StaticRWLock::try_write * StaticRWLock::destroy The following items were removed in favor of `Guard<'static, ()>` instead. * StaticMutexGuard * StaticRWLockReadGuard * StaticRWLockWriteGuard
-