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

Remove all unstable deprecated functionality #27684

Merged
merged 1 commit into from Aug 14, 2015

Conversation

Projects
None yet
8 participants
@alexcrichton
Copy link
Member

alexcrichton commented Aug 12, 2015

This commit removes all unstable and deprecated functions in the standard
library. A release was recently cut (1.3) which makes this a good time for some
spring cleaning of the deprecated functions.

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Aug 12, 2015

r? @Aatch

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

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Aug 12, 2015

r? @aturon

A huge amount of stuff ended up getting removed here, and I believe I avoided all stable deprecated items, but a second set of eyes would certainly be useful!

@rust-highfive rust-highfive assigned aturon and unassigned Aatch Aug 12, 2015

@alexcrichton alexcrichton force-pushed the alexcrichton:remove-deprecated branch 2 times, most recently from 30bdf5b to ea5e082 Aug 12, 2015

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Aug 12, 2015

☔️ The latest upstream changes (presumably #27615) made this pull request unmergeable. Please resolve the merge conflicts.

@alexcrichton alexcrichton force-pushed the alexcrichton:remove-deprecated branch from ea5e082 to 58b2a2d Aug 12, 2015

@bluss

This comment has been minimized.

Copy link
Contributor

bluss commented Aug 12, 2015

fwiw, looks good to me.

I caught the deprecation of reverse_in_place here, and it says not performant enough to justify inclusion, deprecated in c14d86f. Is this something that has been a problem? We could probably improve it instead (codegen for match on tuple is known to be inferior).

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Aug 12, 2015

☔️ The latest upstream changes (presumably #27688) made this pull request unmergeable. Please resolve the merge conflicts.

@alexcrichton alexcrichton force-pushed the alexcrichton:remove-deprecated branch from 58b2a2d to aa2fc27 Aug 12, 2015

Remove all unstable deprecated functionality
This commit removes all unstable and deprecated functions in the standard
library. A release was recently cut (1.3) which makes this a good time for some
spring cleaning of the deprecated functions.

@alexcrichton alexcrichton force-pushed the alexcrichton:remove-deprecated branch from aa2fc27 to 8d90d3f Aug 12, 2015

@aturon

This comment has been minimized.

Copy link
Member

aturon commented Aug 13, 2015

OK, I've read over this entire PR. As usual, very satisfying.

My one worry: some of the removals are APIs that were deprecated in 1.3 (currently in beta), whose replacements were also introduced in 1.3. That risks introducing a strong split between the nightly and stable ecosystems.

In general, we want for deprecations to only take effect once a stable release providing their replacement is available -- and the same is even more true for removals. When we haven't done this, e.g. with connect -> join, it's been a hassle for people. We've talked about using the since attribute to not even warn until the relevant release has hit stable.

I'm not sure whether this is a blocker; I feel like we don't have a ton of experience to go from here. Thoughts?

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Aug 13, 2015

Yeah that's a good point. I like the idea of doing a regular cleaning right after releases are made, so it's probably good to have a formula for something like when we release 1.X we can remove all deprecated items from 1.Y and below (with some relation between X and Y).

Perhaps when say that X == Y? e.g. we don't actually delete anything deprecated in 1.3? That should give a full cycle of deprecation on nightly before deletion I think.

@Gankro

This comment has been minimized.

Copy link
Contributor

Gankro commented Aug 13, 2015

👍 to letting deprecations hit stable first

On Thu, Aug 13, 2015 at 9:10 AM, Alex Crichton notifications@github.com
wrote:

Yeah that's a good point. I like the idea of doing a regular cleaning
right after releases are made, so it's probably good to have a formula for
something like when we release 1.X we can remove all deprecated items from
1.Y and below (with some relation between X and Y).

Perhaps when say that X == Y? e.g. we don't actually delete anything
deprecated in 1.3? That should give a full cycle of deprecation on nightly
before deletion I think.


Reply to this email directly or view it on GitHub
#27684 (comment).

@Stebalien

This comment has been minimized.

Copy link
Contributor

Stebalien commented Aug 13, 2015

My one worry: some of the removals are APIs that were deprecated in 1.3 (currently in beta), whose replacements were also introduced in 1.3. That risks introducing a strong split between the nightly and stable ecosystems.

How is this a problem? The APIs are unstable so they can't be used in beta/stable anyways so the ecosystem was already split.

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Aug 13, 2015

Er, after thinking about this some more:

In general, we want for deprecations to only take effect once a stable release providing their replacement is available -- and the same is even more true for removals.

I totally agree for stable APIs we want this, but it's not as clear to me that we want this same guarantee for unstable APIs. Once an unstable API is deprecated the second you see that is the second you have the replacement available to you. In that sense I don't think it's as pressing that we leave around unstable + deprecated APIs for a long time.

It's certainly nice to still have a grace period as projects tracking nightly update every so often, but a 2-ish releases may be a bit much.

@aturon

This comment has been minimized.

Copy link
Member

aturon commented Aug 13, 2015

Oy, yes, as @Stebalien points out I slipped into making a point about stable APIs; for unstable APIs, this is just fine.

@bors: r+

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Aug 13, 2015

📌 Commit 8d90d3f has been approved by aturon

bors added a commit that referenced this pull request Aug 13, 2015

Auto merge of #27684 - alexcrichton:remove-deprecated, r=aturon
This commit removes all unstable and deprecated functions in the standard
library. A release was recently cut (1.3) which makes this a good time for some
spring cleaning of the deprecated functions.
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Aug 13, 2015

⌛️ Testing commit 8d90d3f with merge 82b8964...

@bors bors merged commit 8d90d3f into rust-lang:master Aug 14, 2015

2 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
homu Test successful
Details

@alexcrichton alexcrichton deleted the alexcrichton:remove-deprecated branch Aug 14, 2015

Ms2ger added a commit to Ms2ger/servo that referenced this pull request Aug 16, 2015

Stop using [T]::tail.
It has been removed upstream (rust-lang/rust#27684).

@Ms2ger Ms2ger referenced this pull request Aug 16, 2015

Merged

Stop using [T]::tail. #7240

bors-servo pushed a commit to servo/servo that referenced this pull request Aug 16, 2015

bors-servo
Auto merge of #7240 - Ms2ger:slice_extras, r=nox
Stop using [T]::tail.

It has been removed upstream (rust-lang/rust#27684).

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7240)
<!-- Reviewable:end -->

mokus0 added a commit to mokus0/zinc that referenced this pull request Aug 16, 2015

josiahdaniels added a commit to josiahdaniels/servo that referenced this pull request Sep 28, 2015

Stop using [T]::tail.
It has been removed upstream (rust-lang/rust#27684).

jrmuizel pushed a commit to jrmuizel/gecko-cinnabar that referenced this pull request Jun 12, 2017

servo: Merge #7240 - Stop using [T]::tail (from Ms2ger:slice_extras);…
… r=nox

It has been removed upstream (rust-lang/rust#27684).

Source-Repo: https://github.com/servo/servo
Source-Revision: 4d7dd66ec9f0a5229a52b3301ac1a38848ebfb4b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.