- 06 1月, 2015 40 次提交
-
-
由 bors 提交于
cc #19260 Open questions: - I still feel weird about marking functions like `exp` as `#[stable]` in `core` since they're highly likely to call into libm which is theoretically something core is designed to avoid and so we may be forced/want to move it at some point in the future, and so it feels like a lie to call it `#[stable]` (I know `core` is `#[experimental]`, but still...) - `abs_sub` is a horrible name IMO: it feels like it is `(a - b).abs()`, but it is actually `(a - b).max(0.)`. maybe something along the lines of `pos_diff` ("positive difference") is better. - the associated-function nature of `Int::from_be` and `Int::from_le` feel strange to me, it feels like they should be methods, but I cannot think of a good name. I'm also not hugely in favour of `ldexp` and `frexp` but the precedent from C is large. (e.g. AFAICT, `ldexp` must mean "load exponent" which is essentially what it does... but only for a subset of its inputs.)
-
由 Huon Wilson 提交于
-
由 Huon Wilson 提交于
Pending integer conventions.
-
由 Huon Wilson 提交于
-
由 Huon Wilson 提交于
`FloatMath` no longer exists and all functionality from both traits is available under `Float`. Change from use std::num::{Float, FloatMath}; to use std::num::Float; [breaking-change]
-
由 Huon Wilson 提交于
-
由 Huon Wilson 提交于
These are replaced by the equivalent constants in `std::f32` and `std::f64` respectively. [breaking-change]
-
由 Huon Wilson 提交于
-
由 bors 提交于
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
This reverts commit f031671c. Conflicts: src/libcollections/slice.rs src/libcore/iter.rs src/libstd/sync/mpsc/mod.rs src/libstd/sync/rwlock.rs
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
Conflicts: src/libflate/lib.rs src/libstd/lib.rs src/libstd/macros.rs src/libsyntax/feature_gate.rs src/libsyntax/parse/parser.rs src/libsyntax/show_span.rs src/test/auxiliary/macro_crate_test.rs src/test/compile-fail/lint-stability.rs src/test/run-pass/intrinsics-math.rs src/test/run-pass/tcp-connect-timeouts.rs
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
Conflicts: src/liballoc/boxed.rs src/libcollections/btree/map.rs src/libcollections/slice.rs src/libcore/borrow.rs src/libcore/cmp.rs src/libcore/ops.rs src/libstd/c_str.rs src/libstd/collections/hash/map.rs src/libsyntax/parse/obsolete.rs src/test/compile-fail/unboxed-closure-sugar-default.rs src/test/compile-fail/unboxed-closure-sugar-equiv.rs src/test/compile-fail/unboxed-closure-sugar-lifetime-elision.rs src/test/compile-fail/unboxed-closure-sugar-region.rs src/test/compile-fail/unsized3.rs src/test/run-pass/associated-types-conditional-dispatch.rs
-
由 Niko Matsakis 提交于
Fixes #20604. Fixes #20378.
-
由 Niko Matsakis 提交于
-
由 Alex Crichton 提交于
Conflicts: src/libcollections/slice.rs src/libcollections/str.rs src/libcore/borrow.rs src/libcore/cmp.rs src/libcore/ops.rs src/libstd/c_str.rs src/test/compile-fail/issue-19009.rs
-
由 Alex Crichton 提交于
Conflicts: src/libsyntax/feature_gate.rs
-
由 Alex Crichton 提交于
Also, change the version number to 1.0.0.
-
由 Alex Crichton 提交于
The prelude has changed quite a bit since the list that Vim is aware of has been updated. This pull request brings it up to date with `std::prelude`.
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
These aren't in their final form, but are all aiming to be part of 1.0, so at the very least encouraging usage now to find the bugs is nice. Also, the widespread roll-out of associated types in the standard library indicates they're getting good, and it's lame to have to activate a feature in essentially every crate ever.
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
Conflicts: src/libstd/sync/mpsc/mod.rs
-
由 Alex Crichton 提交于
Update keyword list according to https://github.com/rust-lang/rust/blob/master/src/libsyntax/parse/token.rs
-
由 Alex Crichton 提交于
Conflicts: src/libcollections/slice.rs src/libcore/iter.rs src/libstd/sync/mpsc/mod.rs src/libstd/sync/rwlock.rs
-
由 Alex Crichton 提交于
Conflicts: src/librustc_typeck/check/_match.rs
-
由 Alex Crichton 提交于
Looks like no one has checked this benchmark in a long time: its main thread quit too early, taking down the worker threads before they were done.
-
由 Alex Crichton 提交于
Docs in ```tuple.rs``` edited. Edit: for some reason commits from something else found their way into here.
-
由 Alex Crichton 提交于
Conflicts: src/libstd/sync/rwlock.rs
-
由 Alex Crichton 提交于
1 in 1 chance to return true always results in true.
-
由 Alex Crichton 提交于
Fixes various safety issues. r? @aturon
-
由 Alex Crichton 提交于
`#[deriving]` has been changed to `#[derive]`, so we should update this lint accordingly so that it remains consistent with the language. Also register the rename with the LintStore. I've changed the one reference to `raw_pointer_deriving` that occurs in the tests (as well as renamed the file appropriately), but the rest of the `raw_pointer_deriving`s in the Rust codebase will need to wait for a snapshot to be changed because stage0 doesn't know about the new lint name. I'll take care of the remaining renaming after the next snapshot. Closes #20498.
-
由 Alex Crichton 提交于
This commit is an implementation of [RFC 494][rfc] which removes the entire `std::c_vec` module and redesigns the `std::c_str` module as `std::ffi`. [rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0494-c_str-and-c_vec-stability.md The interface of the new `CString` is outlined in the linked RFC, the primary changes being: * The `ToCStr` trait is gone, meaning the `with_c_str` and `to_c_str` methods are now gone. These two methods are replaced with a `CString::from_slice` method. * The `CString` type is now just a wrapper around `Vec<u8>` with a static guarantee that there is a trailing nul byte with no internal nul bytes. This means that `CString` now implements `Deref<Target = [c_char]>`, which is where it gains most of its methods from. A few helper methods are added to acquire a slice of `u8` instead of `c_char`, as well as including a slice with the trailing nul byte if necessary. * All usage of non-owned `CString` values is now done via two functions inside of `std::ffi`, called `c_str_to_bytes` and `c_str_to_bytes_with_nul`. These functions are now the one method used to convert a `*const c_char` to a Rust slice of `u8`. Many more details, including newly deprecated methods, can be found linked in the RFC. This is a: [breaking-change] Closes #20444
-
由 Alex Crichton 提交于
The previous scheme made it possible for another user/attacker to cause the temporary directory creation scheme to panic. All you needed to know was the pid of the process you wanted to target ('other_pid') and the suffix it was using (let's pretend it's 'sfx') and then code such as this would, in essence, DOS it: for i in range(0u, 1001) { let tp = &Path::new(format!("/tmp/rs-{}-{}-sfx", other_pid, i)); match fs::mkdir(tp, io::USER_RWX) { _ => () } } Since the scheme only 1000 times to create a temporary directory before dying, the next time the attacked process called TempDir::new("sfx") after that would typically cause a panic. Of course, you don't necessarily need an attacker to cause such a DOS: creating 1000 temporary directories without closing any of the previous would be enough to DOS yourself. This patch broadly follows the OpenBSD implementation of mkstemp. It uses the operating system's random number generator to produce random directory names that are impractical to guess (and, just in case someone manages to do that, it retries creating the directory for a long time before giving up; OpenBSD retries INT_MAX times, although 1<<31 seems enough to thwart even the most patient attacker). As a small additional change while the file name is changing, this patch also makes the argument that TempDir::new takes a prefix rather than a suffix. This is because 1) it more closely matches what mkstemp and friends do 2) if you're going to have a deterministic part of a filename, you really want it at the beginning so that shell completion is useful.
-
由 Alex Crichton 提交于
* Implement (derive) `Clone` for `ChaChaRng`, `Isaac*Rng`, `StdRng` and `ThreadRng`; * Derive `XorShiftRng` `Clone` implementation instead of implementing it explicitly. `OsRng` is the only Rng which does not implement `Clone` or `Copy` after this patch because of its dependence on `Reader`. r? @huonw I guess?
-
由 Alex Crichton 提交于
Number of rustc calls would depending on various circumstances. Two is misleading.
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
Treat associated types the same as type parameters when it comes to region bounding. Fixes #20303. Strictly speaking, this is a [breaking-change] (if you are using associated types). You are no longer free to wantonly violate the type system rules by closing associated types into objects without any form of region bound. Instead you should add region bounds like `T::X : 'a`, just as you would with a normal type parameter. r? @aturon
-