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 --crate-version option in rustdoc #69494

Merged
merged 2 commits into from
Mar 23, 2020

Conversation

GuillaumeGomez
Copy link
Member

@GuillaumeGomez GuillaumeGomez commented Feb 26, 2020

I don't see any reason to not stabilize it anymore, so let's go!

cc @kinnison @ehuss

r? @ollie27

@ehuss
Copy link
Contributor

ehuss commented Feb 26, 2020

cc @aleksator

Some context for this is rust-lang/cargo#7907 where Cargo now has an unstable option to automatically set this flag for everyone. However, one of the concerns I had is that the std docs include the hash and date in the string, whereas Cargo doesn't. If we stabilize the Cargo side, it would result in an error when building the std docs due to a duplicate command-line option. So the fundamental question for rolling this out to a larger audience is: would it be OK to remove the hash/date from the string in std? If not, we'll need some way to opt-in to having Cargo issue the flag. Another option would be to allow the flag to be specified multiple times, and only honor the last one.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-7 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.
2020-02-26T21:10:48.0981142Z ========================== Starting Command Output ===========================
2020-02-26T21:10:48.0985582Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/115d1f4e-4e64-4ad0-b74e-0195d91d27d8.sh
2020-02-26T21:10:48.0985960Z 
2020-02-26T21:10:48.0990792Z ##[section]Finishing: Disable git automatic line ending conversion
2020-02-26T21:10:48.1009488Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69494/merge to s
2020-02-26T21:10:48.1012761Z Task         : Get sources
2020-02-26T21:10:48.1013007Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-26T21:10:48.1013243Z Version      : 1.0.0
2020-02-26T21:10:48.1013407Z Author       : Microsoft
---
2020-02-26T21:10:49.1070171Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-02-26T21:10:49.1076085Z ##[command]git config gc.auto 0
2020-02-26T21:10:49.1079370Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-02-26T21:10:49.1083824Z ##[command]git config --get-all http.proxy
2020-02-26T21:10:49.1091373Z ##[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/69494/merge:refs/remotes/pull/69494/merge
---
2020-02-26T22:10:36.5953158Z .................................................................................................... 1700/9733
2020-02-26T22:10:40.8993127Z .................................................................................................... 1800/9733
2020-02-26T22:10:51.7524160Z ....................................................................i............................... 1900/9733
2020-02-26T22:10:58.2338791Z .................................................................................................... 2000/9733
2020-02-26T22:11:12.3131704Z ..........................................................iiiii..................................... 2100/9733
2020-02-26T22:11:22.3552160Z .................................................................................................... 2300/9733
2020-02-26T22:11:24.5360171Z .................................................................................................... 2400/9733
2020-02-26T22:11:27.5747993Z .................................................................................................... 2500/9733
2020-02-26T22:11:48.3700019Z .................................................................................................... 2600/9733
---
2020-02-26T22:14:20.8338504Z ..................i...............i................................................................. 5000/9733
2020-02-26T22:14:29.8828830Z .................................................................................................... 5100/9733
2020-02-26T22:14:35.1355894Z .............................................................i...................................... 5200/9733
2020-02-26T22:14:41.4545418Z .................................................................................................... 5300/9733
2020-02-26T22:14:49.8308254Z ......................................ii.ii........i...i............................................ 5400/9733
2020-02-26T22:14:58.1446434Z .................................................................................................... 5600/9733
2020-02-26T22:15:07.1692793Z .................................................................................................... 5700/9733
2020-02-26T22:15:13.4766593Z .............................i...................................................................... 5800/9733
2020-02-26T22:15:19.0411238Z .................................................................................................... 5900/9733
2020-02-26T22:15:19.0411238Z .................................................................................................... 5900/9733
2020-02-26T22:15:29.4998391Z .................................................................................................... 6000/9733
2020-02-26T22:15:39.0947296Z ....................ii...i..ii...........i.......................................................... 6100/9733
2020-02-26T22:15:54.9529449Z .................................................................................................... 6300/9733
2020-02-26T22:16:01.5904393Z .................................................................................................... 6400/9733
2020-02-26T22:16:01.5904393Z .................................................................................................... 6400/9733
2020-02-26T22:16:16.0773712Z ...................................................i..ii............................................ 6500/9733
2020-02-26T22:16:39.6684730Z .................................................................................................... 6700/9733
2020-02-26T22:16:42.1683700Z ...........................................i........................................................ 6800/9733
2020-02-26T22:16:44.2287329Z .................................................................................................... 6900/9733
2020-02-26T22:16:46.5303919Z .........................................................................i.......................... 7000/9733
---
2020-02-26T22:18:22.4574455Z .................................................................................................... 7700/9733
2020-02-26T22:18:27.6017937Z .................................................................................................... 7800/9733
2020-02-26T22:18:32.6407176Z .................................................................................................... 7900/9733
2020-02-26T22:18:40.7439683Z ..................i................................................................................. 8000/9733
2020-02-26T22:18:49.2798932Z ...................................................................iiiiiii.i........................ 8100/9733
2020-02-26T22:19:04.0394216Z ........i......i.................................................................................... 8300/9733
2020-02-26T22:19:09.2771035Z .................................................................................................... 8400/9733
2020-02-26T22:19:22.6106128Z .................................................................................................... 8500/9733
2020-02-26T22:19:31.6896100Z .................................................................................................... 8600/9733
---
2020-02-26T22:21:46.7607758Z  finished in 6.920
2020-02-26T22:21:46.7784265Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-26T22:21:46.9575892Z 
2020-02-26T22:21:46.9577584Z running 178 tests
2020-02-26T22:21:49.5603985Z iiii......i...........ii..iiii...i....i...........i............i..i..................i....i......... 100/178
2020-02-26T22:21:51.7236083Z ...i.i.i...iii..iiiiiiiiiiiiiiii.......................iii............ii......
2020-02-26T22:21:51.7239449Z 
2020-02-26T22:21:51.7244239Z  finished in 4.946
2020-02-26T22:21:51.7426258Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-26T22:21:51.8937218Z 
---
2020-02-26T22:21:53.7466965Z  finished in 2.004
2020-02-26T22:21:53.7673201Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-26T22:21:53.9327420Z 
2020-02-26T22:21:53.9327942Z running 9 tests
2020-02-26T22:21:53.9329132Z iiiiiiiii
2020-02-26T22:21:53.9334444Z 
2020-02-26T22:21:53.9334912Z  finished in 0.166
2020-02-26T22:21:53.9531873Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-26T22:21:54.1399064Z 
---
2020-02-26T22:22:13.2337343Z  finished in 19.280
2020-02-26T22:22:13.2550639Z Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-26T22:22:13.4241529Z 
2020-02-26T22:22:13.4241778Z running 116 tests
2020-02-26T22:22:27.0746315Z iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii..........i.....i..i.......ii.i.ii. 100/116
2020-02-26T22:22:28.9744367Z ....iiii.....ii.
2020-02-26T22:22:28.9745722Z 
2020-02-26T22:22:28.9750838Z  finished in 15.720
2020-02-26T22:22:28.9756852Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-02-26T22:22:28.9757642Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2020-02-26T22:34:58.4188785Z 
2020-02-26T22:34:58.4193429Z    Doc-tests core
2020-02-26T22:35:02.8280899Z 
2020-02-26T22:35:02.8281388Z running 2480 tests
2020-02-26T22:35:11.3762578Z ......iiiii......................................................................................... 100/2480
2020-02-26T22:35:19.8133572Z ....................................................................................ii.............. 200/2480
2020-02-26T22:35:38.9630410Z ...................i................................................................................ 400/2480
2020-02-26T22:35:38.9630410Z ...................i................................................................................ 400/2480
2020-02-26T22:35:48.4724272Z ........................................................................i..i..................iiii.. 500/2480
2020-02-26T22:36:04.2859176Z .................................................................................................... 700/2480
2020-02-26T22:36:12.3726235Z .................................................................................................... 800/2480
2020-02-26T22:36:20.5033043Z .................................................................................................... 900/2480
2020-02-26T22:36:28.5225292Z .................................................................................................... 1000/2480
---
2020-02-26T22:39:39.2132755Z .................................................thread '<unnamed>' panicked at 'explicit panic', src/libstd/io/stdio.rs:871:13
2020-02-26T22:39:39.2142628Z ... 300/760
2020-02-26T22:39:39.2999290Z .................................................................................................... 400/760
2020-02-26T22:39:41.3724050Z .................................................................................................... 500/760
2020-02-26T22:39:41.4178042Z .................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2741:22
2020-02-26T22:39:41.4195913Z ....thread '<unnamed>thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libstd/sync/mpsc/mod.rs:2766:17
2020-02-26T22:39:41.4209732Z .' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2778.:21.
2020-02-26T22:39:41.4225566Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2645:13
2020-02-26T22:39:41.6379681Z ..........................................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1997:22
2020-02-26T22:39:41.6410524Z ...thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2034:21
2020-02-26T22:39:41.6466946Z ........thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1916:13
2020-02-26T22:39:43.7251611Z ...................thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:633:13
2020-02-26T22:39:43.7258701Z ..thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:587:13
2020-02-26T22:39:43.7262314Z thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:563:13
2020-02-26T22:39:43.7267592Z .....thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:694:13
---
2020-02-26T22:39:52.6211974Z 
2020-02-26T22:39:52.6212329Z running 1009 tests
2020-02-26T22:40:09.4090997Z i................................................................................................... 100/1009
2020-02-26T22:40:18.6876023Z .................................................................................................... 200/1009
2020-02-26T22:40:25.3472853Z ..................iii......i......i...i......i...................................................... 300/1009
2020-02-26T22:40:29.9142295Z .................................................................................................... 400/1009
2020-02-26T22:40:36.0238495Z ............................................i..i.....................................ii............. 500/1009
2020-02-26T22:40:47.5416214Z .................................................................................................... 700/1009
2020-02-26T22:40:47.5416214Z .................................................................................................... 700/1009
2020-02-26T22:40:53.9755024Z ...................................iiii............................................................. 800/1009
2020-02-26T22:41:07.2509971Z .................................................................................................... 900/1009
2020-02-26T22:41:13.4609516Z .........................................................iiii....................................... 1000/1009
2020-02-26T22:41:13.7933995Z test result: ok. 989 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out
2020-02-26T22:41:13.7935206Z 
2020-02-26T22:41:13.8050128Z  finished in 156.056
2020-02-26T22:41:13.8063963Z Testing term stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
2020-02-26T22:57:35.3120547Z error: the `-Z unstable-options` flag must also be passed to enable the flag `index-page`
2020-02-26T22:57:35.3121103Z 
2020-02-26T22:57:35.3124743Z 
2020-02-26T22:57:35.3127253Z 
2020-02-26T22:57:35.3129411Z command did not execute successfully: "/checkout/obj/build/bootstrap/debug/rustdoc" "--html-after-content" "/checkout/src/doc/footer.inc" "--html-before-content" "/checkout/obj/build/x86_64-unknown-linux-gnu/doc/version_info.html" "--html-in-header" "/checkout/src/doc/favicon.inc" "--markdown-no-toc" "--index-page" "/checkout/src/doc/index.md" "--markdown-playground-url" "https://play.rust-lang.org/" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/doc" "/checkout/src/doc/index.md" "--markdown-css" "rust.css"
2020-02-26T22:57:35.3130784Z 
2020-02-26T22:57:35.3130896Z 
2020-02-26T22:57:35.3183785Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2020-02-26T22:57:35.3184123Z Build completed unsuccessfully in 1:40:40
2020-02-26T22:57:35.3184123Z Build completed unsuccessfully in 1:40:40
2020-02-26T22:57:35.3192579Z == clock drift check ==
2020-02-26T22:57:35.3210850Z   local time: Wed Feb 26 22:57:35 UTC 2020
2020-02-26T22:57:35.5426358Z   network time: Wed, 26 Feb 2020 22:57:35 GMT
2020-02-26T22:57:35.5431654Z == end clock drift check ==
2020-02-26T22:57:37.1632645Z 
2020-02-26T22:57:37.1680160Z ##[error]Bash exited with code '1'.
2020-02-26T22:57:37.1698204Z ##[section]Finishing: Run build
2020-02-26T22:57:37.1736692Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69494/merge to s
2020-02-26T22:57:37.1747249Z Task         : Get sources
2020-02-26T22:57:37.1747534Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-26T22:57:37.1747989Z Version      : 1.0.0
2020-02-26T22:57:37.1748222Z Author       : Microsoft
2020-02-26T22:57:37.1748222Z Author       : Microsoft
2020-02-26T22:57:37.1748506Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-02-26T22:57:37.1749026Z ==============================================================================
2020-02-26T22:57:37.4921520Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-02-26T22:57:37.4960206Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/69494/merge to s
2020-02-26T22:57:37.5041120Z Cleaning up task key
2020-02-26T22:57:37.5042396Z Start cleaning up orphan processes.
2020-02-26T22:57:37.5199156Z Terminate orphan process: pid (3419) (python)
2020-02-26T22:57:37.5410931Z ##[section]Finishing: Finalize Job

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)

@aleksator
Copy link
Contributor

I believe what @ehuss says is true.

If we start passing '--crate-version' from cargo by default (which I think is desirable after this PR), we'll get two instances of the flag passed:

  1. Aforementioned default passage without git hash and date (not yet implemented).
  2. From the following code in rustdoc.rs

To me the most consistent approach seems to drop custom code for bootstrapping, but we do lose an additional information (hash & date) in that case.

What do others think?

@JohnTitor JohnTitor added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Mar 8, 2020
@ollie27
Copy link
Member

ollie27 commented Mar 10, 2020

Currently as far as cargo is concerned std is version 0.0.0:

version = "0.0.0"
so we'll definitely need to do something to make sure the std docs continue to display the correct version.

Another option would be to allow the flag to be specified multiple times, and only honor the last one.

This should work as long as cargo can guarantee that RUSTDOCFLAGS always comes after the automatically added --crate-version. That would allow any crate including std to override --crate-version. Alternatively cargo could not pass the default --crate-version if RUSTDOCFLAGS contains --crate-version.

@ehuss
Copy link
Contributor

ehuss commented Mar 10, 2020

Oh, I didn't even think about the version being 0.0.0.

I'm leaning towards changing Cargo to skip the --crate-version flag if it is supplied in RUSTDOCFLAGS. We generally try to avoid parsing rustc/rustdoc flags in Cargo, but I think in this case it should be fine.

Unfortunately bootstrap doesn't use RUSTDOCFLAGS, but instead a wrapper. To make that work, bootstrap will need to be changed to use something like this for rustdoc. I think if we do that we can git rid of all the environment variables in the rustdoc wrapper.

How does that sound?

@GuillaumeGomez
Copy link
Member Author

I'm fine with it.

@ehuss
Copy link
Contributor

ehuss commented Mar 16, 2020

Sounds good to me. @aleksator are you OK with changing Cargo to check for that flag? I think in the rustdoc function it will need to check if any of the extra arguments starts with --crate-version, and skip the version if it is already set. I think it should probably check both rustdocflags_args (which comes from RUSTDOCFLAGS) and extra_args_for (which comes from cargo rustdoc -- …).

@GuillaumeGomez it looks like this PR needs to add -Zunstable-options somewhere for the remaining unstable opts.

@aleksator
Copy link
Contributor

@ehuss Thanks for the tips, I'll do the changes in the cargo.

I did not, however, understood this part:

Unfortunately bootstrap doesn't use RUSTDOCFLAGS, but instead a wrapper. To make that work, bootstrap will need to be changed to use something like this for rustdoc. I think if we do that we can git rid of all the environment variables in the rustdoc wrapper.

The word "bootstrap" makes me think it's related to the compiler, since to compile one it needs to bootstrap itself. Does it mean some changes would needed to be done to rustc?
Also, where is the wrapper you are talking about here is located?

If someone could help me get a better understanding/point me out to the related documentation about this, I may be able to work on these changes as well. :)

@ehuss
Copy link
Contributor

ehuss commented Mar 17, 2020

Ah, sorry for the jargon. "bootstrap" is the build system used in the rust repository (sometimes also called "rustbuild" or "x.py" for the script that launches it). It's responsible for orchestrating building and testing the compiler and all its tools.

The rustdoc wrapper is here. It wraps rustdoc in order to do some dynamic decisions about which flags to use. It's generally a hack, and we'd like to eventually get away from it as much as possible.

Most of the documentation about rustbuild is in the rustc-dev-guide, but it's a little light.

Don't worry about updating it. I'll try to take care of that. It has to be done when we transition to beta (every 6 weeks), where we switch the version of Cargo used to bootstrap. All backwards incompatible changes (usually due to stabilizations) have to be done at once.

@aleksator
Copy link
Contributor

I think it should probably check both rustdocflags_args (which comes from RUSTDOCFLAGS) and extra_args_for (which comes from cargo rustdoc -- …)

@ehuss Which one should take precedence if both are supplied?

@ehuss
Copy link
Contributor

ehuss commented Mar 17, 2020

@ehuss Which one should take precedence if both are supplied?

I don't think we need to worry about that. Cargo just needs to check if the flag is specified in either, and if it is, don't add the --crate-version flag itself. If the user specifies both, they'll just get an error.

@aleksator
Copy link
Contributor

Done here: rust-lang/cargo#8014

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-7 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.
2020-03-20T22:18:20.5336262Z ========================== Starting Command Output ===========================
2020-03-20T22:18:20.5338515Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/865db772-eb27-44cf-b174-cd6d763cea6e.sh
2020-03-20T22:18:20.5338789Z 
2020-03-20T22:18:20.5341730Z ##[section]Finishing: Disable git automatic line ending conversion
2020-03-20T22:18:20.5358197Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69494/merge to s
2020-03-20T22:18:20.5360912Z Task         : Get sources
2020-03-20T22:18:20.5361159Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-20T22:18:20.5361400Z Version      : 1.0.0
2020-03-20T22:18:20.5361562Z Author       : Microsoft
---
2020-03-20T22:18:21.5322181Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-03-20T22:18:21.5327026Z ##[command]git config gc.auto 0
2020-03-20T22:18:21.5330301Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-03-20T22:18:21.5333329Z ##[command]git config --get-all http.proxy
2020-03-20T22:18:21.5338410Z ##[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/69494/merge:refs/remotes/pull/69494/merge
---
2020-03-20T22:21:46.0464529Z Successfully built 87fc7de5641c
2020-03-20T22:21:46.0500076Z Successfully tagged rust-ci:latest
2020-03-20T22:21:46.0820913Z Built container sha256:87fc7de5641cb8b95a6bafb269faf3fe3659062fd5e72fcf47d30d19879ada78
2020-03-20T22:21:46.0840830Z Uploading finished image to https://rust-lang-ci-sccache2.s3.amazonaws.com/docker/fc0b9a6e3051d635da7d94215f84d5e9794477aa0cb68449a3fa307fcd796c24419e8a5e04fb3ebd554f2f8d17623f528e7a0f3c6d8c2a3324e25c8632491b33
2020-03-20T22:22:26.3926891Z upload failed: - to s3://rust-lang-ci-sccache2/docker/fc0b9a6e3051d635da7d94215f84d5e9794477aa0cb68449a3fa307fcd796c24419e8a5e04fb3ebd554f2f8d17623f528e7a0f3c6d8c2a3324e25c8632491b33 An error occurred (InvalidAccessKeyId) when calling the CreateMultipartUpload operation: The AWS Access Key Id you provided does not exist in our records.
2020-03-20T22:22:26.8027829Z [CI_JOB_NAME=x86_64-gnu-llvm-7]
2020-03-20T22:22:26.8055896Z == clock drift check ==
2020-03-20T22:22:26.8065079Z   local time: Fri Mar 20 22:22:26 UTC 2020
2020-03-20T22:22:26.9667007Z   network time: Fri, 20 Mar 2020 22:22:26 GMT
---
2020-03-20T23:06:38.4612597Z .................................................................................................... 1700/9804
2020-03-20T23:06:42.0223207Z .................................................................................................... 1800/9804
2020-03-20T23:06:51.3445665Z ..........................................................................i......................... 1900/9804
2020-03-20T23:06:56.6918134Z .................................................................................................... 2000/9804
2020-03-20T23:07:03.4029547Z ................................................................iiiii............................... 2100/9804
2020-03-20T23:07:17.7910281Z .................................................................................................... 2300/9804
2020-03-20T23:07:19.6238596Z .................................................................................................... 2400/9804
2020-03-20T23:07:22.0384355Z .................................................................................................... 2500/9804
2020-03-20T23:07:38.3169005Z .................................................................................................... 2600/9804
---
2020-03-20T23:09:50.1507240Z .....................................i...............i.............................................. 5000/9804
2020-03-20T23:09:57.6189340Z .................................................................................................... 5100/9804
2020-03-20T23:10:02.8371459Z ................................................................................i................... 5200/9804
2020-03-20T23:10:07.3342272Z .................................................................................................... 5300/9804
2020-03-20T23:10:15.5183215Z .............................................................ii.ii........i...i..................... 5400/9804
2020-03-20T23:10:22.1612522Z i................................................................................................... 5600/9804
2020-03-20T23:10:29.8902952Z .....i.............................................................................................. 5700/9804
2020-03-20T23:10:35.1980478Z ........................................................i........................................... 5800/9804
2020-03-20T23:10:40.6036285Z .................................................................................................... 5900/9804
2020-03-20T23:10:40.6036285Z .................................................................................................... 5900/9804
2020-03-20T23:10:47.3176783Z .................................................................................................... 6000/9804
2020-03-20T23:10:53.8722135Z ..................................................ii...i..ii...........i............................ 6100/9804
2020-03-20T23:11:11.0299589Z .................................................................................................... 6300/9804
2020-03-20T23:11:15.1267223Z .................................................................................................... 6400/9804
2020-03-20T23:11:15.1267223Z .................................................................................................... 6400/9804
2020-03-20T23:11:18.4664857Z ................................................................................i..ii............... 6500/9804
2020-03-20T23:11:37.1659227Z .................................................................................................... 6700/9804
2020-03-20T23:11:44.8708138Z ...............................................................................i.................... 6800/9804
2020-03-20T23:11:46.6213805Z .................................................................................................... 6900/9804
2020-03-20T23:11:48.3733222Z .................................................................................................... 7000/9804
---
2020-03-20T23:13:11.9927748Z .................................................................................................... 7800/9804
2020-03-20T23:13:16.4214939Z .................................................................................................... 7900/9804
2020-03-20T23:13:21.2902186Z ..................................................................i................................. 8000/9804
2020-03-20T23:13:29.5518869Z .................................................................................................... 8100/9804
2020-03-20T23:13:34.0469565Z ...............iiiiiiiiii.i......................................................................... 8200/9804
2020-03-20T23:13:45.2884744Z .................................................................................................... 8400/9804
2020-03-20T23:13:50.3829552Z .................................................................................................... 8500/9804
2020-03-20T23:14:02.6797798Z .................................................................................................... 8600/9804
2020-03-20T23:14:08.0645099Z .................................................................................................... 8700/9804
---
2020-03-20T23:16:03.1610399Z Suite("src/test/codegen") not skipped for "bootstrap::test::Codegen" -- not in ["src/tools/tidy"]
2020-03-20T23:16:03.1774300Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-03-20T23:16:03.3511786Z 
2020-03-20T23:16:03.3512389Z running 183 tests
2020-03-20T23:16:05.9547541Z iiii......i............ii.i..iiii....i....i...........i............i..i..................i....i..... 100/183
2020-03-20T23:16:08.0388037Z .......i.i.i...iii...iiiiiiiiiiiiiiii......................iii.............ii......
2020-03-20T23:16:08.0394420Z 
2020-03-20T23:16:08.0398976Z  finished in 4.862
2020-03-20T23:16:08.0412726Z Suite("src/test/codegen-units") not skipped for "bootstrap::test::CodegenUnits" -- not in ["src/tools/tidy"]
2020-03-20T23:16:08.0597242Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
2020-03-20T23:16:09.8613750Z Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
2020-03-20T23:16:09.8768020Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-03-20T23:16:10.0024299Z 
2020-03-20T23:16:10.0025908Z running 9 tests
2020-03-20T23:16:10.0027746Z iiiiiiiii
2020-03-20T23:16:10.0030740Z 
2020-03-20T23:16:10.0031482Z  finished in 0.125
2020-03-20T23:16:10.0032178Z Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]
2020-03-20T23:16:10.0205921Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
2020-03-20T23:16:27.4653283Z Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
2020-03-20T23:16:27.4888515Z Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2020-03-20T23:16:27.6471927Z 
2020-03-20T23:16:27.6472317Z running 115 tests
2020-03-20T23:16:39.2093966Z iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii.........i.....i..i.......ii.i.ii.. 100/115
2020-03-20T23:16:40.7780699Z ...iiii.....ii.
2020-03-20T23:16:40.7787777Z 
2020-03-20T23:16:40.7787927Z  finished in 13.289
2020-03-20T23:16:40.7795210Z Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["src/tools/tidy"]
2020-03-20T23:16:40.7800754Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
2020-03-20T23:26:40.9963889Z 
2020-03-20T23:26:40.9965156Z    Doc-tests core
2020-03-20T23:26:44.5119313Z 
2020-03-20T23:26:44.5120381Z running 2482 tests
2020-03-20T23:26:51.7580357Z ......iiiii......................................................................................... 100/2482
2020-03-20T23:26:58.7749406Z .....................................................................................ii............. 200/2482
2020-03-20T23:27:15.1388394Z ....................i............................................................................... 400/2482
2020-03-20T23:27:15.1388394Z ....................i............................................................................... 400/2482
2020-03-20T23:27:22.8872006Z .........................................................................i..i..................iiii. 500/2482
2020-03-20T23:27:36.1654312Z .................................................................................................... 700/2482
2020-03-20T23:27:42.9488752Z .................................................................................................... 800/2482
2020-03-20T23:27:49.7372655Z .................................................................................................... 900/2482
2020-03-20T23:27:56.5326428Z .................................................................................................... 1000/2482
---
2020-03-20T23:30:36.0378135Z .................................................thread '<unnamed>' panicked at 'explicit panic', src/libstd/io/stdio.rs:875:13
2020-03-20T23:30:36.0383894Z .. 300/761
2020-03-20T23:30:36.1350880Z .................................................................................................... 400/761
2020-03-20T23:30:38.2003175Z .................................................................................................... 500/761
2020-03-20T23:30:38.2354607Z ..................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2741:22
2020-03-20T23:30:38.2364094Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libstd/sync/mpsc/mod.rs:2766:17
2020-03-20T23:30:38.2370457Z .thread '.<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2778:21
2020-03-20T23:30:38.2384816Z .....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2645:13
2020-03-20T23:30:38.5363323Z ..........................................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1997:22
2020-03-20T23:30:38.5388424Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2034:21
2020-03-20T23:30:38.5420650Z .......thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1916:13
2020-03-20T23:30:38.5713266Z .................. 600/761
2020-03-20T23:30:40.6039751Z ....................thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:633:13
2020-03-20T23:30:40.6047742Z thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:587:13
---
2020-03-20T23:30:49.4003644Z 
2020-03-20T23:30:49.4004021Z running 1012 tests
2020-03-20T23:31:03.1117189Z i................................................................................................... 100/1012
2020-03-20T23:31:11.1570621Z .................................................................................................... 200/1012
2020-03-20T23:31:16.7165406Z ..................iii......i......i...i......i...................................................... 300/1012
2020-03-20T23:31:26.3954105Z ............................................i....i......................................ii.......... 500/1012
2020-03-20T23:31:32.2811789Z .................................................................................................... 600/1012
2020-03-20T23:31:36.6761759Z .................................................................................................... 700/1012
2020-03-20T23:31:36.6761759Z .................................................................................................... 700/1012
2020-03-20T23:31:42.1610721Z ......................................iiii.......................................................... 800/1012
2020-03-20T23:31:53.2748467Z .................................................................................................... 900/1012
2020-03-20T23:31:58.4760860Z ............................................................iiii.................................... 1000/1012
2020-03-20T23:31:58.8665982Z test result: ok. 992 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out
2020-03-20T23:31:58.8666170Z 
2020-03-20T23:31:58.8753065Z  finished in 133.609
2020-03-20T23:31:58.8757573Z Set({"src/libterm"}) not skipped for "bootstrap::test::Crate" -- not in ["src/tools/tidy"]
---
2020-03-20T23:45:38.1288372Z 
2020-03-20T23:45:38.1418365Z error: Could not document `alloc`.
2020-03-20T23:45:38.1418910Z 
2020-03-20T23:45:38.1419558Z Caused by:
2020-03-20T23:45:38.1422787Z   process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustdoc --edition=2018 --crate-type lib --crate-name alloc src/liballoc/lib.rs --target x86_64-unknown-linux-gnu -o /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-unknown-linux-gnu/doc --cfg 'feature="compiler-builtins-c"' --error-format=json --json=diagnostic-rendered-ansi --markdown-css rust.css --markdown-no-toc --generate-redirect-pages --resource-suffix 1.44.0 --index-page /checkout/src/doc/index.md -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/release/deps --extern compiler_builtins=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-unknown-linux-gnu/release/deps/libcompiler_builtins-18a9c72eaea4a16b.rmeta --extern core=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-unknown-linux-gnu/release/deps/libcore-08e1e792db7cc395.rmeta` (exit code: 1)
2020-03-20T23:45:38.1435254Z 
2020-03-20T23:45:38.1435254Z 
2020-03-20T23:45:38.1439762Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustdoc" "--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" "-Z" "unstable-options" "-p" "alloc" "--" "--markdown-css" "rust.css" "--markdown-no-toc" "--generate-redirect-pages" "--resource-suffix" "1.44.0" "--index-page" "/checkout/src/doc/index.md"
2020-03-20T23:45:38.1440866Z 
2020-03-20T23:45:38.1440972Z 
2020-03-20T23:45:38.1451285Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test --exclude src/tools/tidy
2020-03-20T23:45:38.1451774Z Build completed unsuccessfully in 1:21:42
2020-03-20T23:45:38.1451774Z Build completed unsuccessfully in 1:21:42
2020-03-20T23:45:38.1499107Z == clock drift check ==
2020-03-20T23:45:38.1510143Z   local time: Fri Mar 20 23:45:38 UTC 2020
2020-03-20T23:45:38.4435753Z   network time: Fri, 20 Mar 2020 23:45:38 GMT
2020-03-20T23:45:38.4440201Z == end clock drift check ==
2020-03-20T23:45:40.2615373Z 
2020-03-20T23:45:40.2678244Z ##[error]Bash exited with code '1'.
2020-03-20T23:45:40.2691493Z ##[section]Finishing: Run build
2020-03-20T23:45:40.2736749Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69494/merge to s
2020-03-20T23:45:40.2740723Z Task         : Get sources
2020-03-20T23:45:40.2741000Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-03-20T23:45:40.2741267Z Version      : 1.0.0
2020-03-20T23:45:40.2741451Z Author       : Microsoft
2020-03-20T23:45:40.2741451Z Author       : Microsoft
2020-03-20T23:45:40.2741734Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-03-20T23:45:40.2742189Z ==============================================================================
2020-03-20T23:45:40.5524732Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-03-20T23:45:40.5558846Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/69494/merge to s
2020-03-20T23:45:40.5622144Z Cleaning up task key
2020-03-20T23:45:40.5623165Z Start cleaning up orphan processes.
2020-03-20T23:45:40.5764313Z Terminate orphan process: pid (4112) (python)
2020-03-20T23:45:40.5902259Z ##[section]Finishing: Finalize Job

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 @rust-lang/infra. (Feature Requests)

@GuillaumeGomez
Copy link
Member Author

I think everything is now working as expected thanks to @aleksator. Anything else to be done in here?

@aleksator
Copy link
Contributor

I think just a final review and r+ 🙂

@aleksator
Copy link
Contributor

@rustbot modify labels to -S-waiting-on-author, +S-waiting-on-review

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

Then let's go!

@bors: r=ehuss,aleksator,ollie27

@bors
Copy link
Contributor

bors commented Mar 23, 2020

📌 Commit da5d03d has been approved by ehuss,aleksator,ollie27

@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 Mar 23, 2020
@Centril Centril added this to the 1.44 milestone Mar 23, 2020
@Centril Centril added relnotes Marks issues that should be documented in the release notes of the next release. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Mar 23, 2020
Centril added a commit to Centril/rust that referenced this pull request Mar 23, 2020
…ion, r=ehuss,aleksator,ollie27

Stabilize --crate-version option in rustdoc

I don't see any reason to not stabilize it anymore, so let's go!

cc @kinnison @ehuss

r? @ollie27
This was referenced Mar 23, 2020
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 23, 2020
Rollup of 9 pull requests

Successful merges:

 - rust-lang#68700 (Add Wake trait for safe construction of Wakers.)
 - rust-lang#69494 (Stabilize --crate-version option in rustdoc)
 - rust-lang#70080 (rustc_mir: remove extra space when pretty-printing MIR.)
 - rust-lang#70195 (Add test for issue rust-lang#53275)
 - rust-lang#70199 (Revised span-to-lines conversion to produce an empty vec on DUMMY_SP.)
 - rust-lang#70299 (add err_machine_stop macro)
 - rust-lang#70300 (Reword unused variable warning)
 - rust-lang#70315 (Rename remaining occurences of Void to Opaque.)
 - rust-lang#70318 (Split long derive lists into two derive attributes.)

Failed merges:

r? @ghost
@bors bors merged commit e37e81c into rust-lang:master Mar 23, 2020
@GuillaumeGomez GuillaumeGomez deleted the stabilize-crate-version branch March 28, 2020 15:43
Marwes pushed a commit to Marwes/rust that referenced this pull request May 7, 2020
This was accidentally included in rust-lang#69494 after a rebase and given
how much `inflate` and `keccak` stresses the obligation forest seems
like a likely culprit to the regression in those benchmarks.

(It is necessary in rust-lang#69218 as obligation forest needs to accurately
track the root variables or unifications will get lost)
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jun 8, 2020
Pkgsrc changes:
 * Remove a couple diffs which are now integrated upstream.
 * Adjust cargo checksums after upstream upgrades.
 * Belatedly bump the curl dependency
 * Unset DESTDIR during the build phase, to work around a mysterious
   build bug deep in the bowels of llvm.
 * Bump nearly all bootstraps to 1.43.1.

Upstream changes:

Version 1.44.0 (2020-06-04)
==========================

Language
--------
- [You can now use `async/.await` with `#[no_std]` enabled.][69033]
- [Added the `unused_braces` lint.][70081]

**Syntax-only changes**

- [Expansion-driven outline module parsing][69838]
```rust
#[cfg(FALSE)]
mod foo {
    mod bar {
        mod baz; // `foo/bar/baz.rs` doesn't exist, but no error!
    }
}
```

These are still rejected semantically, so you will likely receive an error but
these changes can be seen and parsed by macros and conditional compilation.

Compiler
--------
- [Rustc now respects the `-C codegen-units` flag in incremental mode.][70156]
  Additionally when in incremental mode rustc defaults to 256 codegen units.
- [Refactored `catch_unwind`, to have zero-cost unless unwinding is enabled and
  a panic is thrown.][67502]
- [Added tier 3\* support for the `aarch64-unknown-none` and
  `aarch64-unknown-none-softfloat` targets.][68334]
- [Added tier 3 support for `arm64-apple-tvos` and
  `x86_64-apple-tvos` targets.][68191]

Libraries
---------
- [Special cased `vec![]` to map directly to `Vec::new()`.][70632] This allows
  `vec![]` to be able to be used in `const` contexts.
- [`convert::Infallible` now implements `Hash`.][70281]
- [`OsString` now implements `DerefMut` and `IndexMut` returning
  a `&mut OsStr`.][70048]
- [Unicode 13 is now supported.][69929]
- [`String` now implements `From<&mut str>`.][69661]
- [`IoSlice` now implements `Copy`.][69403]
- [`Vec<T>` now implements `From<[T; N]>`.][68692] Where `N` is less than 32.
- [`proc_macro::LexError` now implements `fmt::Display` and `Error`.][68899]
- [`from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`,
  `from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all
  integer types.][69373]

Stabilized APIs
---------------
- [`PathBuf::with_capacity`]
- [`PathBuf::capacity`]
- [`PathBuf::clear`]
- [`PathBuf::reserve`]
- [`PathBuf::reserve_exact`]
- [`PathBuf::shrink_to_fit`]
- [`f32::to_int_unchecked`]
- [`f64::to_int_unchecked`]
- [`Layout::align_to`]
- [`Layout::pad_to_align`]
- [`Layout::array`]
- [`Layout::extend`]

Cargo
-----
- [Added the `cargo tree` command which will print a tree graph of
  your dependencies.][cargo/8062] E.g.
  ```
    mdbook v0.3.2 (/Users/src/rust/mdbook)
  +-- ammonia v3.0.0
  |   +-- html5ever v0.24.0
  |   |   +-- log v0.4.8
  |   |   |   +-- cfg-if v0.1.9
  |   |   +-- mac v0.1.1
  |   |   +-- markup5ever v0.9.0
  |   |       +-- log v0.4.8 (*)
  |   |       +-- phf v0.7.24
  |   |       |   +-- phf_shared v0.7.24
  |   |       |       +-- siphasher v0.2.3
  |   |       |       +-- unicase v1.4.2
  |   |       |           [build-dependencies]
  |   |       |           +-- version_check v0.1.5
  ...
  ```
  You can also display dependencies on multiple versions of the same crate with
  `cargo tree -d` (short for `cargo tree --duplicates`).

Misc
----
- [Rustdoc now allows you to specify `--crate-version` to have rustdoc include
  the version in the sidebar.][69494]

Compatibility Notes
-------------------
- [Rustc now correctly generates static libraries on Windows GNU targets with
  the `.a` extension, rather than the previous `.lib`.][70937]
- [Removed the `-C no_integrated_as` flag from rustc.][70345]
- [The `file_name` property in JSON output of macro errors now points the actual
  source file rather than the previous format of `<NAME macros>`.][70969]
  **Note:** this may not point a file that actually exists on the user's system.
- [The minimum required external LLVM version has been bumped to LLVM 8.][71147]
- [`mem::{zeroed, uninitialised}` will now panic when used with types that do
  not allow zero initialization such as `NonZeroU8`.][66059] This was
  previously a warning.
- [In 1.45.0 (the next release) converting a `f64` to `u32` using the `as`
  operator has been defined as a saturating operation.][71269] This was
  previously undefined behaviour, you can use the `{f64, f32}::to_int_unchecked`
  methods to continue using the current behaviour which may desirable in rare
  performance sensitive situations.

Internal Only
-------------
These changes provide no direct user facing benefits, but represent significant
improvements to the internals and overall performance of rustc and
related tools.

- [dep_graph Avoid allocating a set on when the number reads are small.][69778]
- [Replace big JS dict with JSON parsing.][71250]

[69373]: rust-lang/rust#69373
[66059]: rust-lang/rust#66059
[68191]: rust-lang/rust#68191
[68899]: rust-lang/rust#68899
[71147]: rust-lang/rust#71147
[71250]: rust-lang/rust#71250
[70937]: rust-lang/rust#70937
[70969]: rust-lang/rust#70969
[70632]: rust-lang/rust#70632
[70281]: rust-lang/rust#70281
[70345]: rust-lang/rust#70345
[70048]: rust-lang/rust#70048
[70081]: rust-lang/rust#70081
[70156]: rust-lang/rust#70156
[71269]: rust-lang/rust#71269
[69838]: rust-lang/rust#69838
[69929]: rust-lang/rust#69929
[69661]: rust-lang/rust#69661
[69778]: rust-lang/rust#69778
[69494]: rust-lang/rust#69494
[69403]: rust-lang/rust#69403
[69033]: rust-lang/rust#69033
[68692]: rust-lang/rust#68692
[68334]: rust-lang/rust#68334
[67502]: rust-lang/rust#67502
[cargo/8062]: rust-lang/cargo#8062
[`PathBuf::with_capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.with_capacity
[`PathBuf::capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.capacity
[`PathBuf::clear`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.clear
[`PathBuf::reserve`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve
[`PathBuf::reserve_exact`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve_exact
[`PathBuf::shrink_to_fit`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.shrink_to_fit
[`f32::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f32.html#method.to_int_unchecked
[`f64::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f64.html#method.to_int_unchecked
[`Layout::align_to`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.align_to
[`Layout::pad_to_align`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.pad_to_align
[`Layout::array`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.array
[`Layout::extend`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.extend
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jun 9, 2020
Version 1.44.0 (2020-06-04)
==========================

Language
--------
- [You can now use `async/.await` with `#[no_std]` enabled.][69033]
- [Added the `unused_braces` lint.][70081]

**Syntax-only changes**

- [Expansion-driven outline module parsing][69838]
```rust
#[cfg(FALSE)]
mod foo {
    mod bar {
        mod baz; // `foo/bar/baz.rs` doesn't exist, but no error!
    }
}
```

These are still rejected semantically, so you will likely receive an error but
these changes can be seen and parsed by macros and conditional compilation.

Compiler
--------
- [Rustc now respects the `-C codegen-units` flag in incremental mode.][70156]
  Additionally when in incremental mode rustc defaults to 256 codegen units.
- [Refactored `catch_unwind` to have zero-cost, unless unwinding is enabled and
  a panic is thrown.][67502]
- [Added tier 3\* support for the `aarch64-unknown-none` and
  `aarch64-unknown-none-softfloat` targets.][68334]
- [Added tier 3 support for `arm64-apple-tvos` and
  `x86_64-apple-tvos` targets.][68191]


Libraries
---------
- [Special cased `vec![]` to map directly to `Vec::new()`.][70632] This allows
  `vec![]` to be able to be used in `const` contexts.
- [`convert::Infallible` now implements `Hash`.][70281]
- [`OsString` now implements `DerefMut` and `IndexMut` returning
  a `&mut OsStr`.][70048]
- [Unicode 13 is now supported.][69929]
- [`String` now implements `From<&mut str>`.][69661]
- [`IoSlice` now implements `Copy`.][69403]
- [`Vec<T>` now implements `From<[T; N]>`.][68692] Where `N` is at most 32.
- [`proc_macro::LexError` now implements `fmt::Display` and `Error`.][68899]
- [`from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`,
  `from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all
  integer types.][69373]

Stabilized APIs
---------------
- [`PathBuf::with_capacity`]
- [`PathBuf::capacity`]
- [`PathBuf::clear`]
- [`PathBuf::reserve`]
- [`PathBuf::reserve_exact`]
- [`PathBuf::shrink_to_fit`]
- [`f32::to_int_unchecked`]
- [`f64::to_int_unchecked`]
- [`Layout::align_to`]
- [`Layout::pad_to_align`]
- [`Layout::array`]
- [`Layout::extend`]

Cargo
-----
- [Added the `cargo tree` command which will print a tree graph of
  your dependencies.][cargo/8062] E.g.
  ```
    mdbook v0.3.2 (/Users/src/rust/mdbook)
  ├── ammonia v3.0.0
  │   ├── html5ever v0.24.0
  │   │   ├── log v0.4.8
  │   │   │   └── cfg-if v0.1.9
  │   │   ├── mac v0.1.1
  │   │   └── markup5ever v0.9.0
  │   │       ├── log v0.4.8 (*)
  │   │       ├── phf v0.7.24
  │   │       │   └── phf_shared v0.7.24
  │   │       │       ├── siphasher v0.2.3
  │   │       │       └── unicase v1.4.2
  │   │       │           [build-dependencies]
  │   │       │           └── version_check v0.1.5
  ...
  ```
  You can also display dependencies on multiple versions of the same crate with
  `cargo tree -d` (short for `cargo tree --duplicates`).

Misc
----
- [Rustdoc now allows you to specify `--crate-version` to have rustdoc include
  the version in the sidebar.][69494]

Compatibility Notes
-------------------
- [Rustc now correctly generates static libraries on Windows GNU targets with
  the `.a` extension, rather than the previous `.lib`.][70937]
- [Removed the `-C no_integrated_as` flag from rustc.][70345]
- [The `file_name` property in JSON output of macro errors now points the actual
  source file rather than the previous format of `<NAME macros>`.][70969]
  **Note:** this may not point to a file that actually exists on the user's system.
- [The minimum required external LLVM version has been bumped to LLVM 8.][71147]
- [`mem::{zeroed, uninitialised}` will now panic when used with types that do
  not allow zero initialization such as `NonZeroU8`.][66059] This was
  previously a warning.
- [In 1.45.0 (the next release) converting a `f64` to `u32` using the `as`
  operator has been defined as a saturating operation.][71269] This was previously
  undefined behaviour, but you can use the `{f64, f32}::to_int_unchecked` methods to
  continue using the current behaviour, which may be desirable in rare performance
  sensitive situations.

Internal Only
-------------
These changes provide no direct user facing benefits, but represent significant
improvements to the internals and overall performance of rustc and
related tools.

- [dep_graph Avoid allocating a set on when the number reads are small.][69778]
- [Replace big JS dict with JSON parsing.][71250]

[69373]: rust-lang/rust#69373
[66059]: rust-lang/rust#66059
[68191]: rust-lang/rust#68191
[68899]: rust-lang/rust#68899
[71147]: rust-lang/rust#71147
[71250]: rust-lang/rust#71250
[70937]: rust-lang/rust#70937
[70969]: rust-lang/rust#70969
[70632]: rust-lang/rust#70632
[70281]: rust-lang/rust#70281
[70345]: rust-lang/rust#70345
[70048]: rust-lang/rust#70048
[70081]: rust-lang/rust#70081
[70156]: rust-lang/rust#70156
[71269]: rust-lang/rust#71269
[69838]: rust-lang/rust#69838
[69929]: rust-lang/rust#69929
[69661]: rust-lang/rust#69661
[69778]: rust-lang/rust#69778
[69494]: rust-lang/rust#69494
[69403]: rust-lang/rust#69403
[69033]: rust-lang/rust#69033
[68692]: rust-lang/rust#68692
[68334]: rust-lang/rust#68334
[67502]: rust-lang/rust#67502
[cargo/8062]: rust-lang/cargo#8062
[`PathBuf::with_capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.with_capacity
[`PathBuf::capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.capacity
[`PathBuf::clear`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.clear
[`PathBuf::reserve`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve
[`PathBuf::reserve_exact`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve_exact
[`PathBuf::shrink_to_fit`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.shrink_to_fit
[`f32::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f32.html#method.to_int_unchecked
[`f64::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f64.html#method.to_int_unchecked
[`Layout::align_to`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.align_to
[`Layout::pad_to_align`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.pad_to_align
[`Layout::array`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.array
[`Layout::extend`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.extend
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jul 6, 2020
Pkgsrc changes:
 * Remove the clutter caused by the cross-compile setup from Makefile
   (Now consigned to my own private cross.mk file.)
 * Remove a couple of patches which are now integrated upstream.
 * Minor adjustments to a couple of other patches.
 * Adjust cargo checksums after upstream upgrades.
 * Belatedly bump the curl dependency
 * If doing a "dist" build, unset DESTDIR during the build phase,
   to work around a mysterious build bug deep in the bowels of llvm,
   causing llvm tools to be installed to a directory unexpecetd by
   the rest of the rust build, ref.
   rust-lang/rust#73132
   A "dist" build is not expected to be followed by an "install".
 * Bump nearly all bootstraps to 1.43.1; NetBSD earmv7hf bootstrap
   bumped to 1.44.0, as that one now finally builds and works.

Upstream changes:

Version 1.44.0 (2020-06-04)
==========================

Language
--------
- [You can now use `async/.await` with `#[no_std]` enabled.][69033]
- [Added the `unused_braces` lint.][70081]

**Syntax-only changes**

- [Expansion-driven outline module parsing][69838]
```rust
#[cfg(FALSE)]
mod foo {
    mod bar {
        mod baz; // `foo/bar/baz.rs` doesn't exist, but no error!
    }
}
```

These are still rejected semantically, so you will likely receive an error but
these changes can be seen and parsed by macros and conditional compilation.

Compiler
--------
- [Rustc now respects the `-C codegen-units` flag in incremental mode.][70156]
  Additionally when in incremental mode rustc defaults to 256 codegen units.
- [Refactored `catch_unwind`, to have zero-cost unless unwinding is enabled and
  a panic is thrown.][67502]
- [Added tier 3\* support for the `aarch64-unknown-none` and
  `aarch64-unknown-none-softfloat` targets.][68334]
- [Added tier 3 support for `arm64-apple-tvos` and
  `x86_64-apple-tvos` targets.][68191]

Libraries
---------
- [Special cased `vec![]` to map directly to `Vec::new()`.][70632] This allows
  `vec![]` to be able to be used in `const` contexts.
- [`convert::Infallible` now implements `Hash`.][70281]
- [`OsString` now implements `DerefMut` and `IndexMut` returning
  a `&mut OsStr`.][70048]
- [Unicode 13 is now supported.][69929]
- [`String` now implements `From<&mut str>`.][69661]
- [`IoSlice` now implements `Copy`.][69403]
- [`Vec<T>` now implements `From<[T; N]>`.][68692] Where `N` is less than 32.
- [`proc_macro::LexError` now implements `fmt::Display` and `Error`.][68899]
- [`from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`,
  `from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all
  integer types.][69373]

Stabilized APIs
---------------
- [`PathBuf::with_capacity`]
- [`PathBuf::capacity`]
- [`PathBuf::clear`]
- [`PathBuf::reserve`]
- [`PathBuf::reserve_exact`]
- [`PathBuf::shrink_to_fit`]
- [`f32::to_int_unchecked`]
- [`f64::to_int_unchecked`]
- [`Layout::align_to`]
- [`Layout::pad_to_align`]
- [`Layout::array`]
- [`Layout::extend`]

Cargo
-----
- [Added the `cargo tree` command which will print a tree graph of
  your dependencies.][cargo/8062] E.g.
  ```
    mdbook v0.3.2 (/Users/src/rust/mdbook)
  +-- ammonia v3.0.0
  |   +-- html5ever v0.24.0
  |   |   +-- log v0.4.8
  |   |   |   +-- cfg-if v0.1.9
  |   |   +-- mac v0.1.1
  |   |   +-- markup5ever v0.9.0
  |   |       +-- log v0.4.8 (*)
  |   |       +-- phf v0.7.24
  |   |       |   +-- phf_shared v0.7.24
  |   |       |       +-- siphasher v0.2.3
  |   |       |       +-- unicase v1.4.2
  |   |       |           [build-dependencies]
  |   |       |           +-- version_check v0.1.5
  ...
  ```
  You can also display dependencies on multiple versions of the same crate with
  `cargo tree -d` (short for `cargo tree --duplicates`).

Misc
----
- [Rustdoc now allows you to specify `--crate-version` to have rustdoc include
  the version in the sidebar.][69494]

Compatibility Notes
-------------------
- [Rustc now correctly generates static libraries on Windows GNU targets with
  the `.a` extension, rather than the previous `.lib`.][70937]
- [Removed the `-C no_integrated_as` flag from rustc.][70345]
- [The `file_name` property in JSON output of macro errors now points the actual
  source file rather than the previous format of `<NAME macros>`.][70969]
  **Note:** this may not point a file that actually exists on the user's system.
- [The minimum required external LLVM version has been bumped to LLVM 8.][71147]
- [`mem::{zeroed, uninitialised}` will now panic when used with types that do
  not allow zero initialization such as `NonZeroU8`.][66059] This was
  previously a warning.
- [In 1.45.0 (the next release) converting a `f64` to `u32` using the `as`
  operator has been defined as a saturating operation.][71269] This was
  previously undefined behaviour, you can use the `{f64, f32}::to_int_unchecked`
  methods to continue using the current behaviour which may desirable in rare
  performance sensitive situations.

Internal Only
-------------
These changes provide no direct user facing benefits, but represent significant
improvements to the internals and overall performance of rustc and
related tools.

- [dep_graph Avoid allocating a set on when the number reads are small.][69778]
- [Replace big JS dict with JSON parsing.][71250]

[69373]: rust-lang/rust#69373
[66059]: rust-lang/rust#66059
[68191]: rust-lang/rust#68191
[68899]: rust-lang/rust#68899
[71147]: rust-lang/rust#71147
[71250]: rust-lang/rust#71250
[70937]: rust-lang/rust#70937
[70969]: rust-lang/rust#70969
[70632]: rust-lang/rust#70632
[70281]: rust-lang/rust#70281
[70345]: rust-lang/rust#70345
[70048]: rust-lang/rust#70048
[70081]: rust-lang/rust#70081
[70156]: rust-lang/rust#70156
[71269]: rust-lang/rust#71269
[69838]: rust-lang/rust#69838
[69929]: rust-lang/rust#69929
[69661]: rust-lang/rust#69661
[69778]: rust-lang/rust#69778
[69494]: rust-lang/rust#69494
[69403]: rust-lang/rust#69403
[69033]: rust-lang/rust#69033
[68692]: rust-lang/rust#68692
[68334]: rust-lang/rust#68334
[67502]: rust-lang/rust#67502
[cargo/8062]: rust-lang/cargo#8062
[`PathBuf::with_capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.with_capacity
[`PathBuf::capacity`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.capacity
[`PathBuf::clear`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.clear
[`PathBuf::reserve`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve
[`PathBuf::reserve_exact`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.reserve_exact
[`PathBuf::shrink_to_fit`]: https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.shrink_to_fit
[`f32::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f32.html#method.to_int_unchecked
[`f64::to_int_unchecked`]: https://doc.rust-lang.org/std/primitive.f64.html#method.to_int_unchecked
[`Layout::align_to`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.align_to
[`Layout::pad_to_align`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.pad_to_align
[`Layout::array`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.array
[`Layout::extend`]: https://doc.rust-lang.org/std/alloc/struct.Layout.html#method.extend
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants