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 derives Encodable/Decodable and unstabilize attribute #[bench] #62507

Merged
merged 2 commits into from
Aug 1, 2019

Conversation

petrochenkov
Copy link
Contributor

@petrochenkov petrochenkov commented Jul 8, 2019

Encodable and Decodable were deprecated before 1.0 and emitted an unsuppressable warning all this time.
#[bench] is a part of the custom test framework feature and cannot be used meaningfully on stable, only as cfg(false).

Crater results can be found in #62507 (comment) and below.

This PR also reroutes the tracking issue for feature(test) from #27812 (compiler internals) to #50297 (custom test frameworks).

Closes #62048

@petrochenkov
Copy link
Contributor Author

@bors try

@petrochenkov petrochenkov added the S-waiting-on-crater Status: Waiting on a crater run to be completed. label Jul 8, 2019
@bors
Copy link
Contributor

bors commented Jul 8, 2019

⌛ Trying commit 935c72a with merge 18481b6...

bors added a commit that referenced this pull request Jul 8, 2019
[WIP] Feature gate `(Rustc){En,De}codable` and `bench` for crater run

cc #62048
r? @ghost
@bors
Copy link
Contributor

bors commented Jul 9, 2019

☀️ Try build successful - checks-azure, checks-travis
Build commit: 18481b6

@petrochenkov
Copy link
Contributor Author

@craterbot run mode=check-only

@craterbot
Copy link
Collaborator

👌 Experiment pr-62507 created and queued.
🤖 Automatically detected try build 18481b6
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🚧 Experiment pr-62507 is now running on agent aws-2.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🚨 Experiment pr-62507 has encountered an error: docker is not running
🛠️ If the error is fixed use the retry command.

🆘 Can someone from the infra team check in on this? @rust-lang/infra
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@pietroalbini
Copy link
Member

@craterbot retry

@craterbot
Copy link
Collaborator

🛠️ Experiment pr-62507 queued again.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🚧 Experiment pr-62507 is now running on agent aws-1.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🚨 Experiment pr-62507 has encountered an error: some threads returned an error
🛠️ If the error is fixed use the retry command.

🆘 Can someone from the infra team check in on this? @rust-lang/infra
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@kennytm
Copy link
Member

kennytm commented Jul 19, 2019

The crater failure seems legit.

@petrochenkov
Copy link
Contributor Author

The previous time (#62008 (comment)) this helped:
@craterbot retry

cc @pietroalbini

@craterbot
Copy link
Collaborator

🛠️ Experiment pr-62507 queued again.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@petrochenkov
Copy link
Contributor Author

Argh, there's only one crater instance right now, so it won't run for a few days anyway.

@kennytm
Copy link
Member

kennytm commented Jul 19, 2019

The error message should be clearer anyway. "Some threads returned an error" is totally pointless.

@craterbot
Copy link
Collaborator

🚧 Experiment pr-62507 is now running on agent aws-1.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🎉 Experiment pr-62507 is completed!
📊 455 regressed and 0 fixed (66894 total)
📰 Open the full report.

⚠️ If you notice any spurious failure please add them to the blacklist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Jul 22, 2019
@petrochenkov
Copy link
Contributor Author

RustcDecodable - 418 projects
RustcEncodable - 211 projects
bench - 5 projects
Decodable - 0 projects
Encodable - 0 projects

Ok, it's clear that we

I'll check how #[bench] is used.

@petrochenkov
Copy link
Contributor Author

#[bench]:

  • ./reg/punkt/1.0.5 - #![cfg_attr(test, feature(test))], other unconditional features, nightly crate
  • ./reg/route-recognizer/0.1.12 - #![cfg_attr(test, feature(test))], no other unconditional features
  • ./reg/triadic-census/0.2.0 - #![cfg_attr(test, feature(test))], no other unconditional features
  • ./reg/beehave/0.0.4 - no features (not sure how this works), part of examples rather than primary code, other unconditional features, nightly crate
  • ./gh/ryan-scott-dev/beehave - duplicate of the previous one

I.e. 2 real stable regressions.
Seems more or less ok to unstabilize, given the unclear plans for custom testing frameworks.

@petrochenkov petrochenkov added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 22, 2019
@petrochenkov
Copy link
Contributor Author

I'll implement the deprecation/removal once #62086 lands.

@petrochenkov petrochenkov added S-blocked Status: Marked as blocked ❌ on something else such as an RFC or other implementation work. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 22, 2019
bors added a commit to rust-lang/cargo that referenced this pull request Jul 31, 2019
tests: Enable features to fix unstabilized `#[bench]`

Needed for rust-lang/rust#62507.

(Even if unstabilization of `bench` is reverted later due to fallout, this change should be ok.)
@bors
Copy link
Contributor

bors commented Aug 1, 2019

⌛ Testing commit ef7ef05 with merge 658aa4ab8cb04a108c47e7689c771232ca4e5df1...

@bors bors mentioned this pull request Aug 1, 2019
@Centril
Copy link
Contributor

Centril commented Aug 1, 2019

@bors retry yielding to r0llup.

@rust-highfive
Copy link
Collaborator

Your PR failed (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-08-01T04:58:55.7045073Z ##[command]git config gc.auto 0
2019-08-01T04:58:55.7048818Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-08-01T04:58:55.7051100Z ##[command]git config --get-all http.proxy
2019-08-01T04:58:55.7053400Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin
2019-08-01T04:58:57.0204159Z fatal: remote error: upload-pack: not our ref 658aa4ab8cb04a108c47e7689c771232ca4e5df1
2019-08-01T04:58:57.0299972Z fatal: the remote end hung up unexpectedly
2019-08-01T04:58:57.1388790Z ##[warning]Git fetch failed with exit code 128, back off 7.228 seconds before retry.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@petrochenkov
Copy link
Contributor Author

@bors retry

@bors
Copy link
Contributor

bors commented Aug 1, 2019

⌛ Testing commit ef7ef05 with merge f23a5f2...

bors added a commit that referenced this pull request Aug 1, 2019
Remove derives `Encodable`/`Decodable` and unstabilize attribute `#[bench]`

`Encodable` and `Decodable` were deprecated before 1.0 and emitted an unsuppressable warning all this time.
`#[bench]` is a part of the custom test framework feature and cannot be used meaningfully on stable, only as `cfg(false)`.

Crater results can be found in #62507 (comment) and below.

This PR also reroutes the tracking issue for `feature(test)` from #27812 (compiler internals) to #50297 (custom test frameworks).

Closes #62048
@bors
Copy link
Contributor

bors commented Aug 1, 2019

☀️ Test successful - checks-azure
Approved by: alexcrichton
Pushing f23a5f2 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Aug 1, 2019
@bors bors merged commit ef7ef05 into rust-lang:master Aug 1, 2019
@rust-highfive
Copy link
Collaborator

📣 Toolstate changed by #62507!

Tested on commit f23a5f2.
Direct link to PR: #62507

💔 rls on windows: test-pass → build-fail (cc @Xanewok, @rust-lang/infra).
💔 rustfmt on windows: test-pass → build-fail (cc @topecongiro, @rust-lang/infra).

rust-highfive added a commit to rust-lang-nursery/rust-toolstate that referenced this pull request Aug 1, 2019
Tested on commit rust-lang/rust@f23a5f2.
Direct link to PR: <rust-lang/rust#62507>

💔 rls on windows: test-pass → build-fail (cc @Xanewok, @rust-lang/infra).
💔 rustfmt on windows: test-pass → build-fail (cc @topecongiro, @rust-lang/infra).
@Nemo157
Copy link
Member

Nemo157 commented Aug 2, 2019

Breaking route-recognizer with this change is quite annoying, it is depended on by quite a few projects, but doesn't seem to have any active maintenance team. There have been recent attempts to get access to support it better, but as far as I know it's still pretty much abandoned but in use at this point.

vorot93 added a commit to vorot93/route-recognizer.rs that referenced this pull request Aug 5, 2019
Centril added a commit to Centril/rust that referenced this pull request Aug 10, 2019
Give built-in macros stable addresses in the standard library

Continuation of rust-lang#62086.

Derive macros corresponding to traits from libcore are now available through the same paths as those traits:
- `Clone` - `{core,std}::clone::Clone`
- `PartialEq` - `{core,std}::cmp::PartialEq`
- `Eq` - `{core,std}::cmp::Eq`
- `PartialOrd` - `{core,std}::cmp::PartialOrd`
- `Ord` - `{core,std}::cmp::Ord`
- `Default` - `{core,std}::default::Default`
- `Debug` - `{core,std}::fmt::Debug`
- `Hash` - `{core,std}::hash::Hash`
- `Copy` - `{core,std}::marker::Copy`

Fn-like built-in macros are now available through libcore and libstd's root module, by analogy with non-builtin macros defined by libcore and libstd:
```rust
{core,std}::{
    __rust_unstable_column,
    asm,
    assert,
    cfg,
    column,
    compile_error,
    concat,
    concat_idents,
    env,
    file,
    format_args,
    format_args_nl,
    global_asm,
    include,
    include_bytes,
    include_str,
    line,
    log_syntax,
    module_path,
    option_env,
    stringify,
    trace_macros,
}
```

Derive macros without a corresponding trait in libcore or libstd are still available only through prelude (also see rust-lang#62507).
Attribute macros also keep being available only through prelude, mostly because they don't have an existing practice to follow. An advice from the library team on their eventual placement would be appreciated.
```rust
    RustcDecodable,
    RustcEncodable,
    bench,
    global_allocator,
    test,
    test_case,
```

r? @alexcrichton
Centril added a commit to Centril/rust that referenced this pull request Aug 10, 2019
Give built-in macros stable addresses in the standard library

Continuation of rust-lang#62086.

Derive macros corresponding to traits from libcore are now available through the same paths as those traits:
- `Clone` - `{core,std}::clone::Clone`
- `PartialEq` - `{core,std}::cmp::PartialEq`
- `Eq` - `{core,std}::cmp::Eq`
- `PartialOrd` - `{core,std}::cmp::PartialOrd`
- `Ord` - `{core,std}::cmp::Ord`
- `Default` - `{core,std}::default::Default`
- `Debug` - `{core,std}::fmt::Debug`
- `Hash` - `{core,std}::hash::Hash`
- `Copy` - `{core,std}::marker::Copy`

Fn-like built-in macros are now available through libcore and libstd's root module, by analogy with non-builtin macros defined by libcore and libstd:
```rust
{core,std}::{
    __rust_unstable_column,
    asm,
    assert,
    cfg,
    column,
    compile_error,
    concat,
    concat_idents,
    env,
    file,
    format_args,
    format_args_nl,
    global_asm,
    include,
    include_bytes,
    include_str,
    line,
    log_syntax,
    module_path,
    option_env,
    stringify,
    trace_macros,
}
```

Derive macros without a corresponding trait in libcore or libstd are still available only through prelude (also see rust-lang#62507).
Attribute macros also keep being available only through prelude, mostly because they don't have an existing practice to follow. An advice from the library team on their eventual placement would be appreciated.
```rust
    RustcDecodable,
    RustcEncodable,
    bench,
    global_allocator,
    test,
    test_case,
```

r? @alexcrichton
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Built-in derive macros Encodable, Decodable, RustcEncodable and RustcDecodable are stable
9 participants