Commit Graph

42260 Commits

Author SHA1 Message Date
bors
8767e97d7e Auto merge of #24392 - seanmonstar:lint-transmute-mut, r=alexcrichton
The [UnsafeCell documentation says it is undefined behavior](http://doc.rust-lang.org/nightly/std/cell/struct.UnsafeCell.html), so people shouldn't do it.

This happened to catch one case in libstd that was doing this, and I switched that to use an UnsafeCell internally.

Closes #13146
2015-05-06 22:27:58 +00:00
Johannes Oertel
1a8ccd72d6 Add regression test for #20626
Closes #20626.
2015-05-07 00:25:54 +02:00
Johannes Oertel
6de3cdc0e0 Add regression test for #22463
Closes #22463.
2015-05-07 00:25:53 +02:00
Johannes Oertel
106461b6e5 Add regression test for #22258
Closes #22258.
2015-05-07 00:25:53 +02:00
Johannes Oertel
642db4b8b5 Add regression test for #22037
Closes #22037.
2015-05-07 00:25:53 +02:00
Johannes Oertel
57a53f0dfb Add regression test for #21701
Closes #21701.
2015-05-07 00:25:53 +02:00
Johannes Oertel
208452cdaf Add regression test for #21562
Closes #21562.
2015-05-07 00:25:48 +02:00
Johannes Oertel
5b8a486b9e Add regression test for #21177
Closes #21177.
2015-05-06 23:30:51 +02:00
Michael Wu
bfdbda24d9 Remove schedule_free_slice
Nothing uses it anymore.
2015-05-06 17:09:55 -04:00
bors
6c9f8408d5 Auto merge of #23894 - tbu-:pr_iter_length_position, r=pnkfelix
Added documentation of the panicking overflow to the `count` and `position`
methods of `IteratorExt`, also make them more obvious in the code.

Also mention that the `Iterator::next` method of the struct returned by
`IteratorExt::enumerate` can panic due to overflow.
2015-05-06 20:33:10 +00:00
Ariel Ben-Yehuda
df42976e4d improve comment 2015-05-06 22:24:13 +03:00
inrustwetrust
48636f3179 Add missing inline attribute to Not impl for Wrapping<T> 2015-05-06 21:21:23 +02:00
Ariel Ben-Yehuda
4d8d68f80d Fix #25076 2015-05-06 22:12:10 +03:00
bors
e6378cbda3 Auto merge of #25153 - jgallagher:rwlock-try-write, r=alexcrichton
Previously, `try_write` actually only obtained shared read access (but would return a `RwLockWriteGuard` if that access was successful).

Also updates the docs for `try_read` and `try_write`, which were leftover from when those methods returned `Option` instead of `Result`.
2015-05-06 18:07:41 +00:00
Alex Crichton
8d3f84e235 std: Remove addition on vectors for now
Ideally this trait implementation would be unstable, requiring crates to opt-in
if they would like the functionality, but that's not currently how stability
works so the implementation needs to be removed entirely.

This may come back at a future date, but for now the conservative option is to
remove it.

[breaking-change]
2015-05-06 10:52:34 -07:00
らいどっと
1884c87207 doc: Fix remove secret number at final source
Remove printing of secret number at final source.
2015-05-07 02:20:31 +09:00
らいどっと
08923fbff2 doc: Fix remove unused variable
This commit depends on #25148.
2015-05-07 01:58:55 +09:00
Ms2ger
ff89600813 Move the SC constants for macos to an accessible module (fixes #24374 for mac).
These constants were added in 6f54ce9aa5 and
e8fbd1ce04 to a consts module that is behind a
gate.

I have not confirmed that these constants do indeed work on either OSX or iOS.

It appears that some of the constants may actually belong in a POSIX module,
but I didn't make these changes here because I don't have access to the POSIX
standard.
2015-05-06 18:50:48 +02:00
Steven Allen
f9f01efad2 Stabilize from_raw_os 2015-05-06 12:29:08 -04:00
bors
0848d1c6a5 Auto merge of #25135 - alexcrichton:generalize-env-set-var, r=aturon
Many bounds are currently of the form `T: ?Sized + AsRef<OsStr>` where the
argument is `&T`, but the pattern elsewhere (primarily `std::fs`) has been to
remove the `?Sized` bound and take `T` instead (allowing usage with both
references and owned values). This commit generalizes the possible apis in
`std::env` from `&T` to `T` in this fashion.

The `split_paths` function remains the same as the return value borrows the
input value, so ta borrowed reference is required.
2015-05-06 15:50:13 +00:00
John Gallagher
833fc273a7 Update documentation for RwLock::try_{read,write}. 2015-05-06 11:47:30 -04:00
John Gallagher
30b883b93f Make RwLock::try_write try to obtain a write lock 2015-05-06 11:47:11 -04:00
Tobias Bucher
29d7fed994 Make overflow behaviour more obvious in the iterator module of libcore
Explicitely spell out behaviour on overflow for `usize`-returning iterator
functions.

Mention that panics are guaranteed if debug assertions are active, otherwise a
wrong result might be returned.
2015-05-06 17:17:48 +02:00
Pascal Hertleif
1d6285ebba Iter Docs: Mention 'reduce' and 'inject' 2015-05-06 15:51:06 +02:00
Paul Banks
81b90bd56f Correct initial guessing game example. Fixes #25147. r? @steveklabnik 2015-05-06 14:00:35 +01:00
Andrei Oprea
45c461c429 Add note about type signature searching to docs 2015-05-06 15:22:35 +03:00
Kang Seonghoon
3d34e177dd core: use banker's rounding for the exact mode in flt2dec.
For the shortest mode the IEEE 754 decoder already provides
an exact rounding range accounting for banker's rounding,
but it was not the case for the exact mode. This commit alters
the exact mode algorithm for Dragon so that any number ending at
`...x5000...` with even `x` and infinite zeroes will round to
`...x` instead of `...(x+1)` as it was. Grisu is not affected
by this change because this halfway case always results in
the failure for Grisu.
2015-05-06 21:11:14 +09:00
bors
5a83fa271d Auto merge of #25120 - bluss:sliceconcatext, r=alexcrichton
collections: Convert SliceConcatExt to use associated types

Coherence now allows this, we have `SliceConcatExt<T> for [V] where T: Sized + Clone` and` SliceConcatExt<str> for [S]`, these don't conflict because
str is never Sized.
2015-05-06 11:56:15 +00:00
bors
fc45fd99f5 Auto merge of #25117 - jooert:tests, r=alexcrichton 2015-05-06 09:48:58 +00:00
Kelvin Ly
4174aa40f4 Reword with pnkfelix's suggestion 2015-05-06 05:43:05 -04:00
らいどっと
085e1f489b doc: Fix link of repr attribute 2015-05-06 18:11:54 +09:00
Steve Klabnik
fc9bc779d2 Fix explanation of Cargo's behavior
https://github.com/rust-lang/rust/pull/25080/files#r29634986
2015-05-06 04:18:56 -04:00
bors
016cef914b Auto merge of #25062 - michaelsproul:html-error-index, r=alexcrichton
This PR adds a program which uses the JSON output from #24884 to generate a webpage with descriptions of each diagnostic error.

The page is constructed by hand, with calls to `rustdoc`'s markdown renderers where needed. I opted to generate HTML directly as I think it's more flexible than generating a markdown file and feeding it into the `rustdoc` executable. I envision adding the ability to filter errors by their properties (description, no description, used, unused), which is infeasible using the whole-file markdown approach due to the need to wrap each error in a `<div>` (markdown inside tags isn't rendered).

Architecturally, I wasn't sure how to add this generator to the distribution. For the moment I've settled on a separate Rust program in `src/etc/` that gets compiled and run by a custom makefile rule. This approach doesn't seem too hackish, but I'm unsure if my usage of makefile variables is correct, particularly the call to `rustc` (and the `LD_LIBRARY_PATH` weirdness). Other options I considered were:

* Integrate the error-index generator into `rustdoc` so that it gets invoked via a flag and can be built as part of `rustdoc`.
* Add the error-index-generator as a "tool" to the `TOOLS` array, and make use of the facilities for building tools. The main reason I didn't do this was because it seemed like I'd need to add lots of stuff. I'm happy to investigate this further if it's the preferred method.
2015-05-06 07:55:20 +00:00
Johannes Oertel
d55a7e8bc4 Implement append and split_off for BitVec (RFC 509) 2015-05-06 09:29:07 +02:00
bors
6afa669524 Auto merge of #25035 - Stebalien:iter, r=aturon
Specifically, make count, nth, and last call the corresponding methods on the underlying iterator where possible. This way, if the underlying iterator has an optimized count, nth, or last implementations (e.g. slice::Iter), these methods will propagate these optimizations.

Additionally, change Skip::next to take advantage of a potentially optimized nth method on the underlying iterator.

This covers:

* core::iter::Chain: count, last, nth
* core::iter::Enumerate: count, nth
* core::iter::Peekable: count, last, nth
* core::iter::Skip: count, last, next (should call nth), nth
* core::iter::Take: nth
* core::iter::Fuse: count, last, nth

of #24214.
2015-05-06 06:08:27 +00:00
Sean McArthur
5624cfbdda test: update run-pass tests to not use mutable transmuting 2015-05-05 22:26:23 -07:00
Sean McArthur
e136f93d0f std: update select internals to not use mutable transmuting 2015-05-05 22:26:23 -07:00
Sean McArthur
d131f33557 lint: deny transmuting from immutable to mutable, since it's undefined behavior
[breaking-change] Technically breaking, since code that had been using
these transmutes before will no longer compile. However, it was
undefined behavior, so really, it's a good thing. Fixing your code would
require some re-working to use an UnsafeCell instead.

Closes #13146
2015-05-05 22:26:23 -07:00
Kang Seonghoon
a641b05fda core: updated for the master changes.
The master no longer has `std::num::Float`, so a generic `ldexp` is
not readily available. `DecodableFloat::ldexpi` works around this.
2015-05-06 14:22:26 +09:00
Kang Seonghoon
97ea7c14ba core: fixed a slight bug.
The bug involves the incorrect logic for `core::num::flt2dec::decoder`.
This makes some numbers in the form of 2^n missing one final digits,
which breaks the bijectivity criterion. The regression tests have been
added, and f32 exhaustive test is rerun to get the updated result.
2015-05-06 14:22:26 +09:00
Kang Seonghoon
8a195f0754 core: fixed typos and revised comments in flt2dec. 2015-05-06 14:22:20 +09:00
Kang Seonghoon
85424c4bae test: update tests for flt2dec fallouts. 2015-05-06 14:21:48 +09:00
Kang Seonghoon
f9bfda0a6f core: tweaked flt2dec to match the casing of the older formatting code. 2015-05-06 14:21:48 +09:00
Kang Seonghoon
5aa9f38285 core: made the core formatter to use a new flt2dec.
As a side effect `core::fmt::float` is gone now. This also slightly
changes the float output, so this is:

[breaking-change]
2015-05-06 14:21:41 +09:00
Kang Seonghoon
c82da7a54b core: added core::num::flt2dec for floating-point formatting.
This is a fork of the flt2dec portion of rust-strconv [1] with
a necessary relicensing (the original code was licensed CC0-1.0).
Each module is accompanied with large unit tests, integrated
in this commit as coretest::num::flt2dec. This module is added
in order to replace the existing core::fmt::float method.

The forked revision of rust-strconv is from 2015-04-20, with a commit ID
9adf6d3571c6764a6f240a740c823024f70dc1c7.

[1] https://github.com/lifthrasiir/rust-strconv/
2015-05-06 14:19:37 +09:00
bors
5b04c16bd6 Auto merge of #24879 - Stebalien:vec_deque, r=alexcrichton
According to rust-lang/rfcs#235, `VecDeque` should have this method (`VecDeque` was called `RingBuf` at the time) but it was never implemented.

I marked this stable since "1.0.0" because it's stable in `Vec`.
2015-05-06 03:33:42 +00:00
Tamir Duberstein
e95241bf28 Don't repeat Attribute in the const names 2015-05-05 22:03:45 -04:00
Tamir Duberstein
5cfa713a1c Use empty() instead of a special const 2015-05-05 22:03:45 -04:00
Tshepang Lekhonkhobe
8227db86eb fix typos caught by codespell 2015-05-06 03:00:13 +02:00
bors
7bd71637ca Auto merge of #25134 - alexcrichton:fix-issue-25072-for-realsies, r=brson
Turns out that a verbatim path was leaking through to gcc via the PATH
environment variable (pointing to the bundled gcc provided by the main
distribution) which was wreaking havoc when gcc itself was run. The fix here is
to just stop passing verbatim paths down by adding more liberal uses of
`fix_windows_verbatim_for_gcc`.

Closes #25072
2015-05-06 00:54:55 +00:00