Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cherry-picking beta-nominated in to beta #24708

Merged
merged 25 commits into from
Apr 23, 2015

Conversation

alexcrichton
Copy link
Member

This PR is a cherry-pick of all beta-nominated commits into the beta branch. This should not be r+'d due to the beta automation currently having to go through a separate path. This should also not be merged until we have discussed this set of PRs at the triage meeting tomorrow.

PRs cherry-picked:

…ies.

Note: this Warns rather than error on shadowing problems involving labels.
We took this more conservative option mostly due to issues with
hygiene being broken for labels and/or lifetimes.

Add FIXME regarding non-hygienic comparison.
@rust-highfive
Copy link
Collaborator

r? @Aatch

(rust_highfive has picked a reviewer for you, use r? to override)

@alexcrichton
Copy link
Member Author

r? @brson

@rust-highfive rust-highfive assigned brson and unassigned Aatch Apr 23, 2015
@steveklabnik
Copy link
Member

(And I'll be doing one for documentation stuff later today)

@brson
Copy link
Contributor

brson commented Apr 23, 2015

#24420 only adds unstable API's and has been beta-rejected.

pnkfelix and others added 20 commits April 23, 2015 15:18
…y checks.

This avoids various ICEs, e.g. premature calls to cat_expr that yield
the dreaded "cat_expr Errd" ICE.
This is an implementation of [RFC 1030][rfc] which adds these traits to the
prelude and additionally removes all inherent `into_iter` methods on collections
in favor of the trait implementation (which is now accessible by default).

[rfc]: rust-lang/rfcs#1030

This is technically a breaking change due to the prelude additions and removal
of inherent methods, but it is expected that essentially no code breaks in
practice.

[breaking-change]
Closes rust-lang#24538
Words struct was stabilied by mistake. Unstabilize.
Cleaning out more deprecated items

Conflicts:
	src/libcore/result.rs
This commit removes all the old casting/generic traits from `std::num` that are
no longer in use by the standard library. This additionally removes the old
`strconv` module which has not seen much use in quite a long time. All generic
functionality has been supplanted with traits in the `num` crate and the
`strconv` module is supplanted with the [rust-strconv crate][rust-strconv].

[rust-strconv]: https://github.com/lifthrasiir/rust-strconv

This is a breaking change due to the removal of these deprecated crates, and the
alternative crates are listed above.

[breaking-change]

Conflicts:
	src/libstd/num/strconv.rs
This API was exercised in a few tests and mirrors the `from_str_radix`
functionality of the integer types.

Conflicts:
	src/doc/trpl/traits.md
	src/libstd/sys/windows/fs2.rs
Conflicts:
	src/librustc_data_structures/lib.rs
Conflicts:
	src/test/run-pass/task-stderr.rs
This allows `io::Error` values to be stored in `Arc` properly.

Because this requires `Sync` of any value passed to `io::Error::new()`
and modifies the relevant `convert::From` impls, this is a

[breaking-change]

Fixes rust-lang#24049.
which get mentioned in an associated type are constrained.  Arguably we
should just require that all regions are constrained, but that is more
of a breaking change.

Conflicts:
	src/librustc_typeck/collect.rs
multiple kinds of parameters (regions and types, specifically)

Conflicts:
	src/librustc_typeck/collect.rs
@brson
Copy link
Contributor

brson commented Apr 23, 2015

r=me

@alexcrichton alexcrichton merged commit 9b1573c into rust-lang:beta Apr 23, 2015
@alexcrichton alexcrichton deleted the beta-prs-1 branch April 23, 2015 22:24
alexcrichton added a commit to alexcrichton/rust that referenced this pull request May 15, 2015
Debug overflow checks for arithmetic negation landed in rust-lang#24500, at which time
the `abs` method on signed integers was changed to using `wrapping_neg` to
ensure that the function never panicked. This implied that `abs` of `INT_MIN`
would return `INT_MIN`, another negative value. When this change was back-ported
to beta, however, in rust-lang#24708, the `wrapping_neg` function had not yet been
backported, so the implementation was changed in rust-lang#24785 to `!self + 1`. This
change had the unintended side effect of enabling debug overflow checks for the
`abs` function. Consequently, the current state of affairs is that the beta
branch checks for overflow in debug mode for `abs` and the nightly branch does
not.

This commit alters the behavior of nightly to have `abs` always check for
overflow in debug mode. This change is more consistent with the way the standard
library treats overflow as well, and it is also not a breaking change as it's
what the beta branch currently does (albeit if by accident).

cc rust-lang#25378
alexcrichton added a commit to alexcrichton/rust that referenced this pull request May 19, 2015
Debug overflow checks for arithmetic negation landed in rust-lang#24500, at which time
the `abs` method on signed integers was changed to using `wrapping_neg` to
ensure that the function never panicked. This implied that `abs` of `INT_MIN`
would return `INT_MIN`, another negative value. When this change was back-ported
to beta, however, in rust-lang#24708, the `wrapping_neg` function had not yet been
backported, so the implementation was changed in rust-lang#24785 to `!self + 1`. This
change had the unintended side effect of enabling debug overflow checks for the
`abs` function. Consequently, the current state of affairs is that the beta
branch checks for overflow in debug mode for `abs` and the nightly branch does
not.

This commit alters the behavior of nightly to have `abs` always check for
overflow in debug mode. This change is more consistent with the way the standard
library treats overflow as well, and it is also not a breaking change as it's
what the beta branch currently does (albeit if by accident).

cc rust-lang#25378
bors added a commit that referenced this pull request May 19, 2015
Debug overflow checks for arithmetic negation landed in #24500, at which time
the `abs` method on signed integers was changed to using `wrapping_neg` to
ensure that the function never panicked. This implied that `abs` of `INT_MIN`
would return `INT_MIN`, another negative value. When this change was back-ported
to beta, however, in #24708, the `wrapping_neg` function had not yet been
backported, so the implementation was changed in #24785 to `!self + 1`. This
change had the unintended side effect of enabling debug overflow checks for the
`abs` function. Consequently, the current state of affairs is that the beta
branch checks for overflow in debug mode for `abs` and the nightly branch does
not.

This commit alters the behavior of nightly to have `abs` always check for
overflow in debug mode. This change is more consistent with the way the standard
library treats overflow as well, and it is also not a breaking change as it's
what the beta branch currently does (albeit if by accident).

cc #25378
alexcrichton added a commit to alexcrichton/rust that referenced this pull request Jun 10, 2015
Debug overflow checks for arithmetic negation landed in rust-lang#24500, at which time
the `abs` method on signed integers was changed to using `wrapping_neg` to
ensure that the function never panicked. This implied that `abs` of `INT_MIN`
would return `INT_MIN`, another negative value. When this change was back-ported
to beta, however, in rust-lang#24708, the `wrapping_neg` function had not yet been
backported, so the implementation was changed in rust-lang#24785 to `!self + 1`. This
change had the unintended side effect of enabling debug overflow checks for the
`abs` function. Consequently, the current state of affairs is that the beta
branch checks for overflow in debug mode for `abs` and the nightly branch does
not.

This commit alters the behavior of nightly to have `abs` always check for
overflow in debug mode. This change is more consistent with the way the standard
library treats overflow as well, and it is also not a breaking change as it's
what the beta branch currently does (albeit if by accident).

cc rust-lang#25378
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants