- 19 8月, 2014 1 次提交
-
-
由 Steve Klabnik 提交于
Fixes #15954
-
- 18 8月, 2014 5 次提交
-
-
由 bors 提交于
Fixes #16338. Fixed #16401.
-
由 Jakub Wieczorek 提交于
Fixes #16338. Fixed #16401.
-
由 bors 提交于
Pretty self-explanatory. Only annoying thing is that it *seems* that I had to add `#![feature(default_type_params)]` to libnum because of Hasher. Don't know if there's a way around that. Fix #16551
-
由 bors 提交于
-
由 Alexis Beingessner 提交于
-
- 17 8月, 2014 16 次提交
-
-
由 bors 提交于
-
由 bors 提交于
This is very half-baked at the moment and very inefficient, e.g. inappropriate use of by-value `self` (and thus being forced into an overuse of `clone`). People get the wrong impression about Rust when using it, e.g. that Rust cannot express what other languages can because the implementation is inefficient: https://news.ycombinator.com/item?id=8187831 .
-
由 bors 提交于
-
由 bors 提交于
them during kind checking. This implements RFC #11. Closes #15759. r? @nikomatsakis
-
由 Patrick Walton 提交于
them during kind checking. This implements RFC #11. Closes #15759.
-
由 bors 提交于
The vim syntax highlighting file had become out of sync with the real prelude. Lots of Vector -> Slice renames have happened recently.
-
由 bors 提交于
The first commit improves code generation through a few changes: - The `#[inline]` attributes allow llvm to constant fold the encoding step away in certain situations. For example, code like this changes from a call to `encode_utf8` in a inner loop to the pushing of a byte constant: ```rust let mut s = String::new(); for _ in range(0u, 21) { s.push_char('a'); } ``` - Both methods changed their semantic from causing run time failure if the target buffer is not large enough to returning `None` instead. This makes llvm no longer emit code for causing failure for these methods. - A few debug `assert!()` calls got removed because they affected code generation due to unwinding, and where basically unnecessary with today's sound handling of `char` as a Unicode scalar value. ~~The second commit is optional. It changes the methods from regular indexing with the `dst[i]` syntax to unsafe indexing with `dst.unsafe_mut_ref(i)`. This does not change code generation directly - in both cases llvm is smart enough to see that there can never be an out-of-bounds access. But it makes it emit a `nounwind` attribute for the function. However, I'm not sure whether that is a real improvement, so if there is any objection to this I'll remove the commit.~~ This changes how the methods behave on a too small buffer, so this is a [breaking-change]
-
由 Kasey Carrothers 提交于
-
由 bors 提交于
declared with the same name in the same scope. This breaks several common patterns. First are unused imports: use foo::bar; use baz::bar; Change this code to the following: use baz::bar; Second, this patch breaks globs that import names that are shadowed by subsequent imports. For example: use foo::*; // including `bar` use baz::bar; Change this code to remove the glob: use foo::{boo, quux}; use baz::bar; Or qualify all uses of `bar`: use foo::{boo, quux}; use baz; ... baz::bar ... Finally, this patch breaks code that, at top level, explicitly imports `std` and doesn't disable the prelude. extern crate std; Because the prelude imports `std` implicitly, there is no need to explicitly import it; just remove such directives. The old behavior can be opted into via the `import_shadowing` feature gate. Use of this feature gate is discouraged. This implements RFC #116. Closes #16464. [breaking-change] r? @brson
-
由 Patrick Walton 提交于
declared with the same name in the same scope. This breaks several common patterns. First are unused imports: use foo::bar; use baz::bar; Change this code to the following: use baz::bar; Second, this patch breaks globs that import names that are shadowed by subsequent imports. For example: use foo::*; // including `bar` use baz::bar; Change this code to remove the glob: use foo::{boo, quux}; use baz::bar; Or qualify all uses of `bar`: use foo::{boo, quux}; use baz; ... baz::bar ... Finally, this patch breaks code that, at top level, explicitly imports `std` and doesn't disable the prelude. extern crate std; Because the prelude imports `std` implicitly, there is no need to explicitly import it; just remove such directives. The old behavior can be opted into via the `import_shadowing` feature gate. Use of this feature gate is discouraged. This implements RFC #116. Closes #16464. [breaking-change]
-
由 Huon Wilson 提交于
-
由 Huon Wilson 提交于
This is very half-baked at the moment and very inefficient, e.g. inappropriate use of by-value `self` (and thus being forced into an overuse of `clone`). People get the wrong impression about Rust when using it, e.g. that Rust cannot express what other languages can because the implementation is inefficient.
-
由 bors 提交于
Hopefully this will fix #16489!
-
由 Jakub Wieczorek 提交于
-
由 Marvin Löbel 提交于
- Both can now be inlined and constant folded away - Both can no longer cause failure - Both now return an `Option` instead Removed debug `assert!()`s over the valid ranges of a `char` - It affected optimizations due to unwinding - Char handling is now sound enought that they became uneccessary
-
由 bors 提交于
Crates that are resolved normally have their path canonicalized and all symlinks resolved. This does currently not happen for paths specified using the --extern option to rustc, which can lead to rustc thinking that it encountered two different versions of a crate, when it's actually the same version found through different paths. Fixes #16496
-
- 16 8月, 2014 15 次提交
-
-
由 bors 提交于
This is already enabled by default for x86_64 executables on Windows, but it needs to be manually enabled on x86. Closes #16533
-
由 bors 提交于
We shouldn't be setting any settings in the syntax file. Better to put them in the ftplugin, where they won't be pulled in by :syn-include and can be cleaned up when changing the filetype.
-
由 Michael Sproul 提交于
Lots of Vector -> Slice renames.
-
由 Daniel Micay 提交于
This is already enabled by default for x86_64 executables on Windows, but it needs to be manually enabled on x86. Closes #16533
-
由 bors 提交于
-
由 bors 提交于
Did not find a test for it.
-
由 bors 提交于
* Fix `LimitReader`'s `Buffer::consume` impl to avoid limit underflow * Make `MultiWriter` fail fast instead of always running through each `Writer`. This may or may not be what we want, but it at least doesn't throw any errors encountered in later `Writer`s into oblivion. * Prevent `IterReader`'s `Reader::read` impl from returning EOF if given an empty buffer. [breaking-change]
-
由 Alex Crichton 提交于
Hopefully this will fix #16489!
-
由 bors 提交于
This is needed to derive Clone on structures containing durations.
-
由 Kevin Ballard 提交于
We shouldn't be setting any settings in the syntax file. Better to put them in the ftplugin, where they won't be pulled in by :syn-include and can be cleaned up when changing the filetype.
-
由 bors 提交于
When a struct implements Drop, its fields should still drop in declaration order (just as they do when the struct does not implement Drop). Fixes #16492.
-
由 Kevin Ballard 提交于
When a struct implements Drop, its fields should still drop in declaration order (just as they do when the struct does not implement Drop). Fixes #16492.
-
由 bors 提交于
The discriminant for Option values is either 0 or 1, so we can just truncate the value to an i1, which ends up as a no-op for Options containing pointers.
-
由 Daniel Micay 提交于
These are already marked as `noalias` due to the immutability guarantee (see 4c2d4cd3), but more information can be bubbled up to the caller via `readonly`.
-
- 15 8月, 2014 3 次提交
-
-
由 bors 提交于
Fixes #15397. Fixes #7261. Fixes #6573.
-
由 Andrew Poelstra 提交于
This is needed to derive Clone for types containing Durations.
-
由 Björn Steinbrink 提交于
-