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

Stabilize the re_rebalance_coherence feature #65879

Merged
merged 4 commits into from
Nov 9, 2019

Conversation

ohadravid
Copy link
Contributor

@ohadravid ohadravid commented Oct 27, 2019

This PR stabilizes RFC 2451, re-rebalance coherence.

Changes include removing the attribute from tests which tested both the old and new behavior, moving the feature to accepted and removing the old logic.

I'll also open a PR against the reference, updating it with the content of the RFC.

Closes #63599

r? @nikomatsakis

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 27, 2019
@jonas-schievink jonas-schievink added F-re_rebalance_coherence `#![feature(re_rebalance_coherence)]` relnotes Marks issues that should be documented in the release notes of the next release. T-lang Relevant to the language team, which will review and decide on the PR/issue. labels Oct 27, 2019
@jonas-schievink jonas-schievink added this to the 1.40 milestone Oct 27, 2019
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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-10-27T20:11:21.1486910Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-27T20:11:22.0107032Z ##[command]git config gc.auto 0
2019-10-27T20:11:22.0109882Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-27T20:11:22.0112165Z ##[command]git config --get-all http.proxy
2019-10-27T20:11:22.0114910Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/65879/merge:refs/remotes/pull/65879/merge
---
2019-10-27T21:12:32.5113397Z .................................................................................................... 1500/9188
2019-10-27T21:12:38.5698607Z .................................................................................................... 1600/9188
2019-10-27T21:12:48.3209189Z ............................................................................................i....... 1700/9188
2019-10-27T21:12:56.6319584Z ........i........................................................................................... 1800/9188
2019-10-27T21:13:03.7194630Z ..................................................................................iiiii............. 1900/9188
2019-10-27T21:13:26.1380647Z .................................................................................................... 2100/9188
2019-10-27T21:13:28.6221798Z .................................................................................................... 2200/9188
2019-10-27T21:13:31.3670291Z .................................................................................................... 2300/9188
2019-10-27T21:13:45.0037102Z .................................................................................................... 2400/9188
---
2019-10-27T21:16:52.1567434Z .....................................................................................i.............. 4700/9188
2019-10-27T21:16:59.8874174Z .i.................................................................................................. 4800/9188
2019-10-27T21:17:10.2855092Z .................................................................................................... 4900/9188
2019-10-27T21:17:16.2000757Z .................................................................................................... 5000/9188
2019-10-27T21:17:28.4316084Z ......................................................................................ii.ii......... 5100/9188
2019-10-27T21:17:32.2964126Z ..i................................................................................................. 5200/9188
2019-10-27T21:17:47.0549575Z .................................................................................................... 5400/9188
2019-10-27T21:17:53.9394706Z ........................................................i........................................... 5500/9188
2019-10-27T21:18:00.9589769Z .................................................................................................... 5600/9188
2019-10-27T21:18:09.0413029Z .................................................................................................... 5700/9188
2019-10-27T21:18:09.0413029Z .................................................................................................... 5700/9188
2019-10-27T21:18:18.5359701Z .....................................................ii...i..ii...........i......................... 5800/9188
2019-10-27T21:18:44.4089476Z .................................................................................................... 6000/9188
2019-10-27T21:18:53.8962740Z .................................................................................................... 6100/9188
2019-10-27T21:18:53.8962740Z .................................................................................................... 6100/9188
2019-10-27T21:18:59.1408937Z ............................................................................i..ii................... 6200/9188
2019-10-27T21:19:29.4976759Z .................................................................................................... 6400/9188
2019-10-27T21:19:31.8710606Z ..........................................i......................................................... 6500/9188
2019-10-27T21:19:34.1883773Z .................................................................................................... 6600/9188
2019-10-27T21:19:36.7030964Z .................i.................................................................................. 6700/9188
---
2019-10-27T21:24:14.3840451Z  finished in 5.724
2019-10-27T21:24:14.4023085Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-27T21:24:14.5613178Z 
2019-10-27T21:24:14.5614313Z running 153 tests
2019-10-27T21:24:17.8174186Z i....iii......iii..iiii...i.............................i..i..................i....i...........ii.i. 100/153
2019-10-27T21:24:19.8084244Z i..iiii..............i.........iii.i.........ii......
2019-10-27T21:24:20.7376021Z 
2019-10-27T21:24:20.7420248Z  finished in 5.406
2019-10-27T21:24:20.7421399Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-27T21:24:20.7421643Z 
---
2019-10-27T21:24:22.0119961Z  finished in 2.184
2019-10-27T21:24:22.0308757Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-27T21:24:22.1919428Z 
2019-10-27T21:24:22.1920193Z running 9 tests
2019-10-27T21:24:22.1921129Z iiiiiiiii
2019-10-27T21:24:22.2128408Z 
2019-10-27T21:24:22.2128597Z  finished in 0.161
2019-10-27T21:24:22.2129311Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-27T21:24:22.7308727Z 
---
2019-10-27T21:24:40.9058058Z  finished in 18.693
2019-10-27T21:24:40.9266630Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-27T21:24:41.0941075Z 
2019-10-27T21:24:41.0941391Z running 123 tests
2019-10-27T21:25:06.2461931Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-10-27T21:25:11.1279885Z i.i.i......iii.i.....ii
2019-10-27T21:25:11.1280500Z 
2019-10-27T21:25:11.1280573Z  finished in 30.201
2019-10-27T21:25:11.1291507Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-27T21:25:11.1292004Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-10-27T21:37:50.8576704Z 
2019-10-27T21:37:50.8577655Z    Doc-tests core
2019-10-27T21:37:56.2118469Z 
2019-10-27T21:37:56.2119392Z running 2409 tests
2019-10-27T21:38:07.5159311Z ......iiiii......................................................................................... 100/2409
2019-10-27T21:38:18.5768890Z ................................................................................ii..F............... 200/2409
2019-10-27T21:38:44.5941132Z ..i................................................................................................. 400/2409
2019-10-27T21:38:44.5941132Z ..i................................................................................................. 400/2409
2019-10-27T21:38:55.2654295Z .................................................i..i.................iiii.......................... 500/2409
2019-10-27T21:39:16.9582733Z .................................................................................................... 700/2409
2019-10-27T21:39:27.0643009Z .................................................................................................... 800/2409
2019-10-27T21:39:37.5212318Z .................................................................................................... 900/2409
2019-10-27T21:39:47.9921926Z .................................................................................................... 1000/2409
---
2019-10-27T21:42:24.3394857Z 
2019-10-27T21:42:24.3437085Z error: test failed, to rerun pass '--doc'
2019-10-27T21:42:24.3454344Z 
2019-10-27T21:42:24.3454416Z 
2019-10-27T21:42:24.3464610Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "-Zconfig-profile" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libtest/Cargo.toml" "-p" "core" "--" "--quiet"
2019-10-27T21:42:24.3464760Z 
2019-10-27T21:42:24.3464810Z 
2019-10-27T21:42:24.3470255Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-10-27T21:42:24.3499360Z Build completed unsuccessfully in 1:24:14
2019-10-27T21:42:24.3499360Z Build completed unsuccessfully in 1:24:14
2019-10-27T21:42:24.3528351Z == clock drift check ==
2019-10-27T21:42:24.3565703Z   local time: Sun Oct 27 21:42:24 UTC 2019
2019-10-27T21:42:27.7731263Z   network time: Sun, 27 Oct 2019 21:42:27 GMT
2019-10-27T21:42:27.7739331Z == end clock drift check ==
2019-10-27T21:42:28.2560012Z 
2019-10-27T21:42:28.2624561Z ##[error]Bash exited with code '1'.
2019-10-27T21:42:28.2666104Z ##[section]Starting: Checkout
2019-10-27T21:42:28.2668121Z ==============================================================================
2019-10-27T21:42:28.2668174Z Task         : Get sources
2019-10-27T21:42:28.2668236Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@bors
Copy link
Contributor

bors commented Oct 28, 2019

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

@ohadravid ohadravid force-pushed the stabilize-re-rebalance-coherence branch from 47288f5 to be5113c Compare October 28, 2019 12:02
@ohadravid
Copy link
Contributor Author

Apparently the example used in the documentation for the Into trait fails because it can now be complied.

This is the expected behavior (and one of the RFC's stated goals), but I don't know what to do with it (remove the example? change it to say that before rust. 1.40...?).

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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-10-28T12:03:44.8101181Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-28T12:03:44.8318506Z ##[command]git config gc.auto 0
2019-10-28T12:03:44.8399239Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-28T12:03:44.8465054Z ##[command]git config --get-all http.proxy
2019-10-28T12:03:44.8625131Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/65879/merge:refs/remotes/pull/65879/merge
---
2019-10-28T13:02:37.8383904Z .................................................................................................... 1500/9190
2019-10-28T13:02:43.9608386Z .................................................................................................... 1600/9190
2019-10-28T13:02:54.1281439Z ..........................................................................................i......... 1700/9190
2019-10-28T13:03:01.2537219Z ......i............................................................................................. 1800/9190
2019-10-28T13:03:08.1562253Z ................................................................................iiiii............... 1900/9190
2019-10-28T13:03:29.7200727Z .................................................................................................... 2100/9190
2019-10-28T13:03:32.1400683Z .................................................................................................... 2200/9190
2019-10-28T13:03:34.8032310Z .................................................................................................... 2300/9190
2019-10-28T13:03:49.0261368Z .................................................................................................... 2400/9190
---
2019-10-28T13:06:46.6551442Z ................................................................................i...............i... 4700/9190
2019-10-28T13:06:54.3250536Z .................................................................................................... 4800/9190
2019-10-28T13:07:04.4787858Z .................................................................................................... 4900/9190
2019-10-28T13:07:09.9271141Z .................................................................................................... 5000/9190
2019-10-28T13:07:21.7440705Z .................................................................................ii.ii...........i.. 5100/9190
2019-10-28T13:07:30.5852670Z .................................................................................................... 5300/9190
2019-10-28T13:07:40.1212924Z .................................................................................................... 5400/9190
2019-10-28T13:07:46.7258765Z ...................................................i................................................ 5500/9190
2019-10-28T13:07:53.5602709Z .................................................................................................... 5600/9190
2019-10-28T13:07:53.5602709Z .................................................................................................... 5600/9190
2019-10-28T13:08:04.0726223Z .................................................................................................... 5700/9190
2019-10-28T13:08:14.8626143Z ....................................ii...i..ii...........i.......................................... 5800/9190
2019-10-28T13:08:37.4421642Z .................................................................................................... 6000/9190
2019-10-28T13:08:43.8114888Z .................................................................................................... 6100/9190
2019-10-28T13:08:43.8114888Z .................................................................................................... 6100/9190
2019-10-28T13:08:50.9642083Z .......................................................i..ii........................................ 6200/9190
2019-10-28T13:09:18.4209270Z .................................................................................................... 6400/9190
2019-10-28T13:09:20.5400057Z .....................i.............................................................................. 6500/9190
2019-10-28T13:09:22.7749207Z ................................................................................................i... 6600/9190
2019-10-28T13:09:25.4367279Z .................................................................................................... 6700/9190
---
2019-10-28T13:13:53.5426753Z  finished in 5.490
2019-10-28T13:13:53.5603416Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-28T13:13:53.7540337Z 
2019-10-28T13:13:53.7541913Z running 153 tests
2019-10-28T13:13:56.8869589Z i....iii......iii..iiii...i.............................i..i..................i....i...........ii.i. 100/153
2019-10-28T13:13:58.8196334Z i..iiii..............i.........iii.i.........ii......
2019-10-28T13:13:58.8196992Z 
2019-10-28T13:13:58.8201184Z  finished in 5.260
2019-10-28T13:13:58.8388865Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-28T13:13:59.0274682Z 
---
2019-10-28T13:14:00.9897086Z  finished in 2.150
2019-10-28T13:14:01.0067243Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-28T13:14:01.1632482Z 
2019-10-28T13:14:01.1632721Z running 9 tests
2019-10-28T13:14:01.1637187Z iiiiiiiii
2019-10-28T13:14:01.1638197Z 
2019-10-28T13:14:01.1642013Z  finished in 0.157
2019-10-28T13:14:01.1839355Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-28T13:14:01.3791339Z 
---
2019-10-28T13:14:19.4485196Z  finished in 18.264
2019-10-28T13:14:19.4731516Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-28T13:14:19.6604673Z 
2019-10-28T13:14:19.6605014Z running 123 tests
2019-10-28T13:14:43.8866295Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-10-28T13:14:48.5884870Z i.i.i......iii.i.....ii
2019-10-28T13:14:48.5885416Z 
2019-10-28T13:14:48.5892018Z  finished in 29.116
2019-10-28T13:14:48.5901214Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-28T13:14:48.5901629Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-10-28T13:27:04.1168987Z 
2019-10-28T13:27:04.1169774Z    Doc-tests core
2019-10-28T13:27:09.1848511Z 
2019-10-28T13:27:09.1849509Z running 2409 tests
2019-10-28T13:27:20.0451537Z ......iiiii......................................................................................... 100/2409
2019-10-28T13:27:30.7642250Z ................................................................................ii.F................ 200/2409
2019-10-28T13:27:55.8872181Z ..i................................................................................................. 400/2409
2019-10-28T13:27:55.8872181Z ..i................................................................................................. 400/2409
2019-10-28T13:28:06.3368471Z .................................................i..i.................iiii.......................... 500/2409
2019-10-28T13:28:26.1449795Z .................................................................................................... 700/2409
2019-10-28T13:28:36.3052128Z .................................................................................................... 800/2409
2019-10-28T13:28:46.5886725Z .................................................................................................... 900/2409
2019-10-28T13:28:56.8213779Z .................................................................................................... 1000/2409
---
2019-10-28T13:31:28.1985695Z 
2019-10-28T13:31:28.2022848Z error: test failed, to rerun pass '--doc'
2019-10-28T13:31:28.2044432Z 
2019-10-28T13:31:28.2045849Z 
2019-10-28T13:31:28.2048326Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "-Zconfig-profile" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libtest/Cargo.toml" "-p" "core" "--" "--quiet"
2019-10-28T13:31:28.2050206Z 
2019-10-28T13:31:28.2051201Z 
2019-10-28T13:31:28.2062610Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-10-28T13:31:28.2064038Z Build completed unsuccessfully in 1:21:19
2019-10-28T13:31:28.2064038Z Build completed unsuccessfully in 1:21:19
2019-10-28T13:31:28.2115635Z == clock drift check ==
2019-10-28T13:31:28.2132442Z   local time: Mon Oct 28 13:31:28 UTC 2019
2019-10-28T13:31:28.3569342Z   network time: Mon, 28 Oct 2019 13:31:28 GMT
2019-10-28T13:31:28.3572103Z == end clock drift check ==
2019-10-28T13:31:28.9840642Z 
2019-10-28T13:31:28.9987372Z ##[error]Bash exited with code '1'.
2019-10-28T13:31:29.0021888Z ##[section]Starting: Checkout
2019-10-28T13:31:29.0023900Z ==============================================================================
2019-10-28T13:31:29.0023956Z Task         : Get sources
2019-10-28T13:31:29.0024005Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@bors
Copy link
Contributor

bors commented Oct 29, 2019

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

@ohadravid ohadravid force-pushed the stabilize-re-rebalance-coherence branch 2 times, most recently from d0c7b80 to 3dd02da Compare October 29, 2019 18:27
@nikomatsakis
Copy link
Contributor

@ohadravid

Apparently the example used in the documentation for the Into trait fails because it can now be complied.

amusing

@nikomatsakis
Copy link
Contributor

I wonder if this means that whole section can be removed, and we can just advice to always implement From?

Copy link
Contributor

@nikomatsakis nikomatsakis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great! I left one suggestion for how to approach the docs -- I think we could be a bit more forceful -- but I'm also relatively happy as is.

@@ -220,21 +220,20 @@ pub trait AsMut<T: ?Sized> {
///
/// # Implementing [`Into`] for conversions to external types
///
/// If the destination type is not part of the current crate
/// then you can't implement [`From`] directly.
/// Prior to Rust 1.40, if the destination type was not part of the current crate
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should strengthen this -- unless we have a good example of when you do need to implement Into, we should probably start by telling people to avoid implementing Into directly, and then continue with this content?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should say 1.41 instead?

@ohadravid
Copy link
Contributor Author

As far as I can tell, there is no reason to implement Into, so I changed it to be more forceful.
However I just might not be able to come up with a contrived-enough example.

(I went to diesel and changed all the Into to From and it worked where it didn't before re_rebalance, so that's something)

@ohadravid
Copy link
Contributor Author

@nikomatsakis I changed the docs like you suggested! Let me know if there's anything else to do 😁

@bors
Copy link
Contributor

bors commented Oct 31, 2019

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

@ohadravid ohadravid force-pushed the stabilize-re-rebalance-coherence branch from 48c3f9b to 442a6e7 Compare October 31, 2019 16:11
@Centril Centril modified the milestones: 1.40, 1.41 Nov 7, 2019
Co-Authored-By: Mazdak Farrokhzad <[email protected]>
@nikomatsakis
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented Nov 8, 2019

📌 Commit 3e0759d has been approved by nikomatsakis

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 8, 2019
@Centril
Copy link
Contributor

Centril commented Nov 8, 2019

@bors rollup=never p=3

@bors
Copy link
Contributor

bors commented Nov 9, 2019

⌛ Testing commit 3e0759d with merge 98c173a...

bors added a commit that referenced this pull request Nov 9, 2019
…nikomatsakis

Stabilize the `re_rebalance_coherence` feature

This PR stabilizes [RFC 2451](https://rust-lang.github.io/rfcs/2451-re-rebalancing-coherence.html), re-rebalance coherence.

Changes include removing the attribute from tests which tested both the old and new behavior, moving the feature to `accepted` and removing the old logic.

I'll also open a [PR](rust-lang/reference#703) against the reference, updating it with the content of the RFC.

Closes #63599

r? @nikomatsakis
@bors
Copy link
Contributor

bors commented Nov 9, 2019

☀️ Test successful - checks-azure
Approved by: nikomatsakis
Pushing 98c173a to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Nov 9, 2019
@bors bors mentioned this pull request Nov 9, 2019
@bors bors merged commit 3e0759d into rust-lang:master Nov 9, 2019
@ohadravid ohadravid deleted the stabilize-re-rebalance-coherence branch November 9, 2019 18:47
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Feb 17, 2020
Version 1.41.0 (2020-01-30)
===========================

Language
--------

- [You can now pass type parameters to foreign items when implementing
  traits.][65879] E.g. You can now write `impl<T> From<Foo> for Vec<T> {}`.
- [You can now arbitrarily nest receiver types in the `self` position.][64325] E.g. you can
  now write `fn foo(self: Box<Box<Self>>) {}`. Previously only `Self`, `&Self`,
  `&mut Self`, `Arc<Self>`, `Rc<Self>`, and `Box<Self>` were allowed.
- [You can now use any valid identifier in a `format_args` macro.][66847]
  Previously identifiers starting with an underscore were not allowed.
- [Visibility modifiers (e.g. `pub`) are now syntactically allowed on trait items and
  enum variants.][66183] These are still rejected semantically, but
  can be seen and parsed by procedural macros and conditional compilation.

Compiler
--------

- [Rustc will now warn if you have unused loop `'label`s.][66325]
- [Removed support for the `i686-unknown-dragonfly` target.][67255]
- [Added tier 3 support\* for the `riscv64gc-unknown-linux-gnu` target.][66661]
- [You can now pass an arguments file passing the `@path` syntax
  to rustc.][66172] Note that the format differs somewhat from what is
  found in other tooling; please see [the documentation][argfile-docs] for
  more information.
- [You can now provide `--extern` flag without a path, indicating that it is
  available from the search path or specified with an `-L` flag.][64882]

\* Refer to Rust's [platform support page][forge-platform-support] for more
information on Rust's tiered platform support.

[argfile-docs]: https://doc.rust-lang.org/nightly/rustc/command-line-arguments.html#path-load-command-line-flags-from-a-path

Libraries
---------

- [The `core::panic` module is now stable.][66771] It was already stable
  through `std`.
- [`NonZero*` numerics now implement `From<NonZero*>` if it's a smaller integer
  width.][66277] E.g. `NonZeroU16` now implements `From<NonZeroU8>`.
- [`MaybeUninit<T>` now implements `fmt::Debug`.][65013]

Stabilized APIs
---------------

- [`Result::map_or`]
- [`Result::map_or_else`]
- [`std::rc::Weak::weak_count`]
- [`std::rc::Weak::strong_count`]
- [`std::sync::Weak::weak_count`]
- [`std::sync::Weak::strong_count`]

Cargo
-----

- [Cargo will now document all the private items for binary crates
  by default.][cargo/7593]
- [`cargo-install` will now reinstall the package if it detects that it is out
  of date.][cargo/7560]
- [Cargo.lock now uses a more git friendly format that should help to reduce
  merge conflicts.][cargo/7579]
- [You can now override specific dependencies's build settings][cargo/7591] E.g.
  `[profile.dev.overrides.image] opt-level = 2` sets the `image` crate's
  optimisation level to `2` for debug builds. You can also use
  `[profile.<profile>.build_overrides]` to override build scripts and
  their dependencies.

Misc
----

- [You can now specify `edition` in documentation code blocks to compile the block
  for that edition.][66238] E.g. `edition2018` tells rustdoc that the code sample
  should be compiled the 2018 edition of Rust.
- [You can now provide custom themes to rustdoc with `--theme`, and check the
  current theme with `--check-theme`.][54733]
- [You can use `#[cfg(doc)]` to compile an item when building documentation.][61351]

Compatibility Notes
-------------------

- [As previously announced 1.41.0 will be the last tier 1 release for 32-bit
  Apple targets.][apple-32bit-drop] This means that the source code is still
  available to build, but the targets are no longer being tested and release
  binaries for those platforms will no longer be distributed by the Rust project.
  Please refer to the linked blog post for more information.

[54733]: rust-lang/rust#54733
[61351]: rust-lang/rust#61351
[67255]: rust-lang/rust#67255
[66661]: rust-lang/rust#66661
[66771]: rust-lang/rust#66771
[66847]: rust-lang/rust#66847
[66238]: rust-lang/rust#66238
[66277]: rust-lang/rust#66277
[66325]: rust-lang/rust#66325
[66172]: rust-lang/rust#66172
[66183]: rust-lang/rust#66183
[65879]: rust-lang/rust#65879
[65013]: rust-lang/rust#65013
[64882]: rust-lang/rust#64882
[64325]: rust-lang/rust#64325
[cargo/7560]: rust-lang/cargo#7560
[cargo/7579]: rust-lang/cargo#7579
[cargo/7591]: rust-lang/cargo#7591
[cargo/7593]: rust-lang/cargo#7593
[`Result::map_or_else`]: https://doc.rust-lang.org/std/result/enum.Result.html#method.map_or_else
[`Result::map_or`]: https://doc.rust-lang.org/std/result/enum.Result.html#method.map_or
[`std::rc::Weak::weak_count`]: https://doc.rust-lang.org/std/rc/struct.Weak.html#method.weak_count
[`std::rc::Weak::strong_count`]: https://doc.rust-lang.org/std/rc/struct.Weak.html#method.strong_count
[`std::sync::Weak::weak_count`]: https://doc.rust-lang.org/std/sync/struct.Weak.html#method.weak_count
[`std::sync::Weak::strong_count`]: https://doc.rust-lang.org/std/sync/struct.Weak.html#method.strong_count
[apple-32bit-drop]: https://blog.rust-lang.org/2020/01/03/reducing-support-for-32-bit-apple-targets.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
F-re_rebalance_coherence `#![feature(re_rebalance_coherence)]` merged-by-bors This PR was explicitly merged by bors. relnotes Marks issues that should be documented in the release notes of the next release. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-lang Relevant to the language team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Stabilize RFC 2451, re-rebalance coherence
7 participants