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

perf: Unify the undo log of all snapshot types #69464

Merged
merged 22 commits into from
May 6, 2020

Conversation

Marwes
Copy link
Contributor

@Marwes Marwes commented Feb 25, 2020

Extracted from #69218 and extended to all the current snapshot types.

Since snapshotting is such a frequent action in the compiler and many of the scopes execute so little work, the act of creating the snapshot and rolling back empty/small snapshots end up showing in perf. By unifying all the logs into one the creation of snapshots becomes significantly cheaper at the cost of some complexity when combining the log with the specific data structures that are being mutated.

Depends on rust-lang/ena#29

@rust-highfive
Copy link
Collaborator

The job mingw-check 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-25T16:51:54.5581801Z ========================== Starting Command Output ===========================
2020-02-25T16:51:54.5586161Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/a628b7a4-f95a-420e-b4f9-e0dfc4568beb.sh
2020-02-25T16:51:54.5586676Z 
2020-02-25T16:51:54.5592066Z ##[section]Finishing: Disable git automatic line ending conversion
2020-02-25T16:51:54.5613909Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69464/merge to s
2020-02-25T16:51:54.5617614Z Task         : Get sources
2020-02-25T16:51:54.5617954Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-25T16:51:54.5618282Z Version      : 1.0.0
2020-02-25T16:51:54.5618531Z Author       : Microsoft
---
2020-02-25T16:51:55.5415009Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-02-25T16:51:55.5436748Z ##[command]git config gc.auto 0
2020-02-25T16:51:55.5442017Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-02-25T16:51:55.5445942Z ##[command]git config --get-all http.proxy
2020-02-25T16:51:55.5453056Z ##[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/69464/merge:refs/remotes/pull/69464/merge
---
2020-02-25T16:54:50.1037001Z 
2020-02-25T16:54:50.1302019Z ##########################################                                59.1%
2020-02-25T16:54:50.1304899Z ######################################################################## 100.0%
2020-02-25T16:54:50.4398454Z extracting /checkout/obj/build/cache/2020-01-31/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz
2020-02-25T16:54:50.5041017Z     Updating git repository `https://github.com/Marwes/ena`
2020-02-25T16:54:50.9078092Z error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
2020-02-25T16:54:50.9078619Z Caused by:
2020-02-25T16:54:50.9078969Z   failed to load source for a dependency on `ena`
2020-02-25T16:54:50.9079180Z 
2020-02-25T16:54:50.9079315Z Caused by:
2020-02-25T16:54:50.9079315Z Caused by:
2020-02-25T16:54:50.9079603Z   Unable to update https://github.com/Marwes/ena?branch=detach_undo_log#da974876
2020-02-25T16:54:50.9080006Z Caused by:
2020-02-25T16:54:50.9080006Z Caused by:
2020-02-25T16:54:50.9080646Z   revspec 'da974876317c95a0fb797e45530cacf383fa873b' not found; class=Reference (4); code=NotFound (-3)
2020-02-25T16:54:50.9087905Z Build completed unsuccessfully in 0:00:12
2020-02-25T16:54:50.9152280Z == clock drift check ==
2020-02-25T16:54:50.9192886Z   local time: Tue Feb 25 16:54:50 UTC 2020
2020-02-25T16:54:51.0737367Z   network time: Tue, 25 Feb 2020 16:54:51 GMT
2020-02-25T16:54:51.0737367Z   network time: Tue, 25 Feb 2020 16:54:51 GMT
2020-02-25T16:54:51.0741587Z == end clock drift check ==
2020-02-25T16:54:58.6049682Z 
2020-02-25T16:54:58.6131197Z ##[error]Bash exited with code '1'.
2020-02-25T16:54:58.6150648Z ##[section]Finishing: Run build
2020-02-25T16:54:58.6198174Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69464/merge to s
2020-02-25T16:54:58.6203407Z Task         : Get sources
2020-02-25T16:54:58.6203740Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-25T16:54:58.6204062Z Version      : 1.0.0
2020-02-25T16:54:58.6204276Z Author       : Microsoft
2020-02-25T16:54:58.6204276Z Author       : Microsoft
2020-02-25T16:54:58.6204618Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-02-25T16:54:58.6205029Z ==============================================================================
2020-02-25T16:54:58.9871388Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-02-25T16:54:58.9917788Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/69464/merge to s
2020-02-25T16:54:59.0004434Z Cleaning up task key
2020-02-25T16:54:59.0005633Z Start cleaning up orphan processes.
2020-02-25T16:54:59.0196655Z Terminate orphan process: pid (3706) (python)
2020-02-25T16:54:59.0326721Z ##[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)

@rust-highfive
Copy link
Collaborator

The job mingw-check 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-25T17:06:24.8872696Z ========================== Starting Command Output ===========================
2020-02-25T17:06:24.8875077Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/ec393ed9-a0db-4c4d-8940-82fd4287a9bd.sh
2020-02-25T17:06:24.8875322Z 
2020-02-25T17:06:24.8879808Z ##[section]Finishing: Disable git automatic line ending conversion
2020-02-25T17:06:24.8897461Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69464/merge to s
2020-02-25T17:06:24.8900949Z Task         : Get sources
2020-02-25T17:06:24.8901376Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-25T17:06:24.8901629Z Version      : 1.0.0
2020-02-25T17:06:24.8901795Z Author       : Microsoft
---
2020-02-25T17:06:26.0469435Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-02-25T17:06:26.0480701Z ##[command]git config gc.auto 0
2020-02-25T17:06:26.0487795Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-02-25T17:06:26.0494668Z ##[command]git config --get-all http.proxy
2020-02-25T17:06:26.0504649Z ##[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/69464/merge:refs/remotes/pull/69464/merge
---
2020-02-25T17:09:12.0911306Z 
2020-02-25T17:09:12.0915582Z ########################################################                  78.9%
2020-02-25T17:09:12.0916014Z ######################################################################## 100.0%
2020-02-25T17:09:12.2488550Z extracting /checkout/obj/build/cache/2020-01-31/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz
2020-02-25T17:09:12.3276911Z     Updating git repository `https://github.com/Marwes/ena`
2020-02-25T17:09:12.7543016Z error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
2020-02-25T17:09:12.7543576Z Caused by:
2020-02-25T17:09:12.7543926Z   failed to load source for a dependency on `ena`
2020-02-25T17:09:12.7544135Z 
2020-02-25T17:09:12.7544269Z Caused by:
2020-02-25T17:09:12.7544269Z Caused by:
2020-02-25T17:09:12.7544557Z   Unable to update https://github.com/Marwes/ena?branch=detach_undo_log#da974876
2020-02-25T17:09:12.7544964Z Caused by:
2020-02-25T17:09:12.7544964Z Caused by:
2020-02-25T17:09:12.7545871Z   revspec 'da974876317c95a0fb797e45530cacf383fa873b' not found; class=Reference (4); code=NotFound (-3)
2020-02-25T17:09:12.7552194Z Build completed unsuccessfully in 0:00:13
2020-02-25T17:09:12.7625584Z == clock drift check ==
2020-02-25T17:09:12.7637507Z   local time: Tue Feb 25 17:09:12 UTC 2020
2020-02-25T17:09:13.3037844Z   network time: Tue, 25 Feb 2020 17:09:13 GMT
2020-02-25T17:09:13.3037844Z   network time: Tue, 25 Feb 2020 17:09:13 GMT
2020-02-25T17:09:13.3038180Z == end clock drift check ==
2020-02-25T17:09:20.8677402Z 
2020-02-25T17:09:20.8771239Z ##[error]Bash exited with code '1'.
2020-02-25T17:09:20.8787798Z ##[section]Finishing: Run build
2020-02-25T17:09:20.8834123Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69464/merge to s
2020-02-25T17:09:20.8840048Z Task         : Get sources
2020-02-25T17:09:20.8840501Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-25T17:09:20.8840777Z Version      : 1.0.0
2020-02-25T17:09:20.8840974Z Author       : Microsoft
2020-02-25T17:09:20.8840974Z Author       : Microsoft
2020-02-25T17:09:20.8841307Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-02-25T17:09:20.8841749Z ==============================================================================
2020-02-25T17:09:21.2242588Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-02-25T17:09:21.2293401Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/69464/merge to s
2020-02-25T17:09:21.2384011Z Cleaning up task key
2020-02-25T17:09:21.2385121Z Start cleaning up orphan processes.
2020-02-25T17:09:21.2650691Z Terminate orphan process: pid (3787) (python)
2020-02-25T17:09:21.2680434Z ##[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)

@jonas-schievink
Copy link
Contributor

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion

@bors
Copy link
Contributor

bors commented Feb 25, 2020

⌛ Trying commit 69b7d39760d805044dba740fb9c3a070b649deeb with merge f4486cad865fa25ef7774494f2b0ee7e404db653...

@rust-highfive
Copy link
Collaborator

The job mingw-check 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-25T17:40:36.2556915Z ========================== Starting Command Output ===========================
2020-02-25T17:40:36.2559377Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/0d459a57-569a-4995-8a32-15f98c3f08e7.sh
2020-02-25T17:40:36.2559657Z 
2020-02-25T17:40:36.2562927Z ##[section]Finishing: Disable git automatic line ending conversion
2020-02-25T17:40:36.2580993Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69464/merge to s
2020-02-25T17:40:36.2584009Z Task         : Get sources
2020-02-25T17:40:36.2584300Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-25T17:40:36.2584589Z Version      : 1.0.0
2020-02-25T17:40:36.2584794Z Author       : Microsoft
---
2020-02-25T17:40:37.2397094Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-02-25T17:40:37.2405179Z ##[command]git config gc.auto 0
2020-02-25T17:40:37.2408566Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-02-25T17:40:37.2411601Z ##[command]git config --get-all http.proxy
2020-02-25T17:40:37.2416992Z ##[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/69464/merge:refs/remotes/pull/69464/merge
---
2020-02-25T17:43:20.4820524Z 
2020-02-25T17:43:20.5207578Z ###########                                                               16.5%
2020-02-25T17:43:20.5209059Z ######################################################################## 100.0%
2020-02-25T17:43:20.7890262Z extracting /checkout/obj/build/cache/2020-01-31/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz
2020-02-25T17:43:20.8567733Z     Updating git repository `https://github.com/Marwes/ena`
---
2020-02-25T17:46:17.8315837Z     Checking atty v0.2.11
2020-02-25T17:46:17.9278391Z    Compiling memoffset v0.5.1
2020-02-25T17:46:18.0422197Z    Compiling parking_lot_core v0.6.2
2020-02-25T17:46:19.3472068Z    Compiling parking_lot v0.9.0
2020-02-25T17:46:19.4122589Z     Checking ena v0.13.1 (https://github.com/Marwes/ena?branch=detach_undo_log#9c416dc2)
2020-02-25T17:46:19.8960300Z     Checking rustc_apfloat v0.0.0 (/checkout/src/librustc_apfloat)
2020-02-25T17:46:20.4993175Z     Checking rustc-hash v1.0.1
2020-02-25T17:46:20.5653150Z    Compiling quote v1.0.2
2020-02-25T17:46:20.6999987Z     Checking flate2 v1.0.12
---
2020-02-25T17:49:20.9913280Z configure: build.locked-deps    := True
2020-02-25T17:49:20.9913555Z configure: llvm.ccache          := sccache
2020-02-25T17:49:20.9913999Z configure: build.cargo-native-static := True
2020-02-25T17:49:20.9914448Z configure: dist.missing-tools   := True
2020-02-25T17:49:20.9914998Z configure: build.configure-args := ['--enable-sccache', '--disable-manage-submodu ...
2020-02-25T17:49:20.9915526Z configure: writing `config.toml` in current directory
2020-02-25T17:49:20.9915752Z configure: 
2020-02-25T17:49:20.9916122Z configure: run `python /checkout/x.py --help`
2020-02-25T17:49:20.9916349Z configure: 
---
2020-02-25T17:52:15.3830628Z    Compiling rustc_version v0.2.3
2020-02-25T17:52:16.3055560Z     Checking crossbeam-queue v0.1.2
2020-02-25T17:52:17.6917816Z     Checking rustc_index v0.0.0 (/checkout/src/librustc_index)
2020-02-25T17:52:23.6593035Z     Checking num_cpus v1.10.1
2020-02-25T17:52:23.7218237Z     Checking ena v0.13.1 (https://github.com/Marwes/ena?branch=detach_undo_log#9c416dc2)
2020-02-25T17:52:24.2075610Z     Checking rustc-hash v1.0.1
2020-02-25T17:52:24.2743063Z    Compiling quote v1.0.2
2020-02-25T17:52:27.9500925Z    Compiling memoffset v0.5.1
2020-02-25T17:52:27.9504452Z    Compiling parking_lot_core v0.6.2
---
2020-02-25T17:53:59.9732196Z     Checking rustc_infer v0.0.0 (/checkout/src/librustc_infer)
2020-02-25T17:53:59.9733423Z error[E0433]: failed to resolve: maybe a missing crate `rustc_data_structures`?
2020-02-25T17:53:59.9810676Z   --> src/librustc_infer/infer/outlives/obligations.rs:67:12
2020-02-25T17:53:59.9811212Z    |
2020-02-25T17:53:59.9812135Z 67 | use crate::rustc_data_structures::undo_log::UndoLogs;
2020-02-25T17:53:59.9813035Z    |            ^^^^^^^^^^^^^^^^^^^^^ maybe a missing crate `rustc_data_structures`?
2020-02-25T17:53:59.9813439Z 
2020-02-25T17:54:01.4709189Z error[E0599]: no method named `push` found for struct `infer::undo_log::InferCtxtUndoLogs<'tcx>` in the current scope
2020-02-25T17:54:01.4710051Z    --> src/librustc_infer/infer/outlives/obligations.rs:91:24
2020-02-25T17:54:01.4710554Z     |
2020-02-25T17:54:01.4711227Z 91  |         inner.undo_log.push(UndoLog::PushRegionObligation);
2020-02-25T17:54:01.4712616Z     |                        ^^^^ method not found in `infer::undo_log::InferCtxtUndoLogs<'tcx>`
2020-02-25T17:54:01.4713351Z     | 
2020-02-25T17:54:01.4713887Z    ::: src/librustc_infer/infer/undo_log.rs:128:1
2020-02-25T17:54:01.4714369Z     |
2020-02-25T17:54:01.4714955Z 128 | pub(crate) struct InferCtxtUndoLogs<'tcx> {
2020-02-25T17:54:01.4715768Z     | ----------------------------------------- method `push` not found for this
2020-02-25T17:54:01.4716973Z     = help: items from traits can only be used if the trait is in scope
2020-02-25T17:54:01.4717834Z     = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
2020-02-25T17:54:01.4717834Z     = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
2020-02-25T17:54:01.4718521Z             `use ena::undo_log::UndoLogs;`
2020-02-25T17:54:02.3540739Z     Checking rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
2020-02-25T17:54:02.7542526Z error: aborting due to 2 previous errors
2020-02-25T17:54:02.7542860Z 
2020-02-25T17:54:02.7548374Z Some errors have detailed explanations: E0433, E0599.
2020-02-25T17:54:02.7548374Z Some errors have detailed explanations: E0433, E0599.
2020-02-25T17:54:02.7554724Z For more information about an error, try `rustc --explain E0433`.
2020-02-25T17:54:02.7609738Z error: could not compile `rustc_infer`.
2020-02-25T17:54:02.7610362Z warning: build failed, waiting for other jobs to finish...
2020-02-25T17:54:03.4587925Z error: build failed
2020-02-25T17:54:03.4607247Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "check" "-Zconfig-profile" "--target" "i686-pc-windows-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" " llvm" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json-render-diagnostics"
2020-02-25T17:54:03.4617829Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu
2020-02-25T17:54:03.4618320Z Build completed unsuccessfully in 0:02:53
2020-02-25T17:54:03.4673480Z == clock drift check ==
2020-02-25T17:54:03.4687472Z   local time: Tue Feb 25 17:54:03 UTC 2020
2020-02-25T17:54:03.4687472Z   local time: Tue Feb 25 17:54:03 UTC 2020
2020-02-25T17:54:03.7592069Z   network time: Tue, 25 Feb 2020 17:54:03 GMT
2020-02-25T17:54:03.7600667Z == end clock drift check ==
2020-02-25T17:54:04.3928048Z 
2020-02-25T17:54:04.3993522Z ##[error]Bash exited with code '1'.
2020-02-25T17:54:04.4029187Z ##[section]Finishing: Run build
2020-02-25T17:54:04.4069209Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/69464/merge to s
2020-02-25T17:54:04.4073938Z Task         : Get sources
2020-02-25T17:54:04.4074277Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-02-25T17:54:04.4074577Z Version      : 1.0.0
2020-02-25T17:54:04.4074787Z Author       : Microsoft
2020-02-25T17:54:04.4074787Z Author       : Microsoft
2020-02-25T17:54:04.4075130Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-02-25T17:54:04.4075513Z ==============================================================================
2020-02-25T17:54:04.7362762Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-02-25T17:54:04.7411011Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/69464/merge to s
2020-02-25T17:54:04.7509728Z Cleaning up task key
2020-02-25T17:54:04.7511020Z Start cleaning up orphan processes.
2020-02-25T17:54:04.7685006Z Terminate orphan process: pid (4911) (python)
2020-02-25T17:54:04.7896581Z ##[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)

@jonas-schievink
Copy link
Contributor

@bors try-

@jonas-schievink
Copy link
Contributor

(feel free to ping me when this builds so I can run perf)

@Marwes
Copy link
Contributor Author

Marwes commented Feb 25, 2020

@jonas-schievink It should work now, only ran --stage=1 testing which apparently accepted the mistake in importing.

@jonas-schievink
Copy link
Contributor

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion

@bors
Copy link
Contributor

bors commented Feb 25, 2020

⌛ Trying commit 74de8bf0a52995872f7d6cfb8d7944ef9a74f73e with merge 31cb5bb74c1da46506a981c0625fa5ff2d1a6115...

@bors
Copy link
Contributor

bors commented Feb 26, 2020

☀️ Try build successful - checks-azure
Build commit: 31cb5bb74c1da46506a981c0625fa5ff2d1a6115 (31cb5bb74c1da46506a981c0625fa5ff2d1a6115)

@rust-timer
Copy link
Collaborator

Queued 31cb5bb74c1da46506a981c0625fa5ff2d1a6115 with parent 6fd8798, future comparison URL.

@rust-timer
Copy link
Collaborator

Finished benchmarking try commit 31cb5bb74c1da46506a981c0625fa5ff2d1a6115, comparison URL.

@bors
Copy link
Contributor

bors commented Mar 1, 2020

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

@bors bors added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Mar 1, 2020
@rust-highfive

This comment has been minimized.

@Marwes
Copy link
Contributor Author

Marwes commented Mar 5, 2020

I believe this should be marked as waiting for review? I don't think there is anything else for me to do here at this stage?

@JohnCSimon JohnCSimon 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 9, 2020
@JohnCSimon
Copy link
Member

@cramertj - moved this to review as per Marwes

@cramertj
Copy link
Member

cramertj commented Mar 9, 2020

r? @nikomatsakis
cc @eddyb

(adding because they reviewed #69218)

@Marwes
Copy link
Contributor Author

Marwes commented May 5, 2020

bors r+

@mati865
Copy link
Contributor

mati865 commented May 5, 2020

@Marwes you should use @bors r=nikomatsakis.

@bors
Copy link
Contributor

bors commented May 5, 2020

@mati865: 🔑 Insufficient privileges: Not in reviewers

@Dylan-DPC-zz
Copy link

don't worry, got your back xD

@bors r=nikomatsakis

@bors
Copy link
Contributor

bors commented May 5, 2020

📌 Commit 3f85338 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-blocked Status: Blocked on something else such as an RFC or other implementation work. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 5, 2020
@bors
Copy link
Contributor

bors commented May 6, 2020

⌛ Testing commit 3f85338 with merge 8da5869...

@bors
Copy link
Contributor

bors commented May 6, 2020

☀️ Test successful - checks-actions, checks-azure
Approved by: nikomatsakis
Pushing 8da5869 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 6, 2020
@bors bors merged commit 8da5869 into rust-lang:master May 6, 2020
@Marwes Marwes deleted the detach_undo_log branch May 6, 2020 11:13
@ecstatic-morse
Copy link
Contributor

@Marwes This slows down clean check builds of inflate and keccak by a little under 10%. Any idea why?

@nikomatsakis
Copy link
Contributor

Hmm! I don't think we saw that on the initial round of perf runs, right?

@Marwes
Copy link
Contributor Author

Marwes commented May 7, 2020

Must have made a mistake in one of the rebases. I think this is the cause #71996 .

bors added a commit to rust-lang-ci/rust that referenced this pull request May 27, 2020
perf: Revert accidental inclusion of a part of rust-lang#69218

This was accidentally included in rust-lang#69464 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 Aug 6, 2020
While here clean up all pkglint warnings.  Changes since 1.44.1:

Version 1.45.2 (2020-08-03)
==========================

* [Fix bindings in tuple struct patterns][74954]
* [Fix track_caller integration with trait objects][74784]

[74954]: rust-lang/rust#74954
[74784]: rust-lang/rust#74784

Version 1.45.1 (2020-07-30)
==========================

* [Fix const propagation with references.][73613]
* [rustfmt accepts rustfmt_skip in cfg_attr again.][73078]
* [Avoid spurious implicit region bound.][74509]
* [Install clippy on x.py install][74457]

[73613]: rust-lang/rust#73613
[73078]: rust-lang/rust#73078
[74509]: rust-lang/rust#74509
[74457]: rust-lang/rust#74457

Version 1.45.0 (2020-07-16)
==========================

Language
--------
- [Out of range float to int conversions using `as` has been defined as a saturating
  conversion.][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.
- [`mem::Discriminant<T>` now uses `T`'s discriminant type instead of always
  using `u64`.][70705]
- [Function like procedural macros can now be used in expression, pattern, and  statement
  positions.][68717] This means you can now use a function-like procedural macro
  anywhere you can use a declarative (`macro_rules!`) macro.

Compiler
--------
- [You can now override individual target features through the `target-feature`
  flag.][72094] E.g. `-C target-feature=+avx2 -C target-feature=+fma` is now
  equivalent to `-C target-feature=+avx2,+fma`.
- [Added the `force-unwind-tables` flag.][69984] This option allows
  rustc to always generate unwind tables regardless of panic strategy.
- [Added the `embed-bitcode` flag.][71716] This codegen flag allows rustc
  to include LLVM bitcode into generated `rlib`s (this is on by default).
- [Added the `tiny` value to the `code-model` codegen flag.][72397]
- [Added tier 3 support\* for the `mipsel-sony-psp` target.][72062]
- [Added tier 3 support for the `thumbv7a-uwp-windows-msvc` target.][72133]

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


Libraries
---------
- [`net::{SocketAddr, SocketAddrV4, SocketAddrV6}` now implements `PartialOrd`
  and `Ord`.][72239]
- [`proc_macro::TokenStream` now implements `Default`.][72234]
- [You can now use `char` with
  `ops::{Range, RangeFrom, RangeFull, RangeInclusive, RangeTo}` to iterate over
  a range of codepoints.][72413] E.g.
  you can now write the following;
  ```rust
  for ch in 'a'..='z' {
      print!("{}", ch);
  }
  println!();
  // Prints "abcdefghijklmnopqrstuvwxyz"
  ```
- [`OsString` now implements `FromStr`.][71662]
- [The `saturating_neg` method as been added to all signed integer primitive
  types, and the `saturating_abs` method has been added for all integer
  primitive types.][71886]
- [`Arc<T>`, `Rc<T>` now implement  `From<Cow<'_, T>>`, and `Box` now
  implements `From<Cow>` when `T` is `[T: Copy]`, `str`, `CStr`, `OsStr`,
  or `Path`.][71447]
- [`Box<[T]>` now implements `From<[T; N]>`.][71095]
- [`BitOr` and `BitOrAssign` are implemented for all `NonZero`
  integer types.][69813]
- [The `fetch_min`, and `fetch_max` methods have been added to all atomic
  integer types.][72324]
- [The `fetch_update` method has been added to all atomic integer types.][71843]

Stabilized APIs
---------------
- [`Arc::as_ptr`]
- [`BTreeMap::remove_entry`]
- [`Rc::as_ptr`]
- [`rc::Weak::as_ptr`]
- [`rc::Weak::from_raw`]
- [`rc::Weak::into_raw`]
- [`str::strip_prefix`]
- [`str::strip_suffix`]
- [`sync::Weak::as_ptr`]
- [`sync::Weak::from_raw`]
- [`sync::Weak::into_raw`]
- [`char::UNICODE_VERSION`]
- [`Span::resolved_at`]
- [`Span::located_at`]
- [`Span::mixed_site`]
- [`unix::process::CommandExt::arg0`]

Cargo
-----

Misc
----
- [Rustdoc now supports strikethrough text in Markdown.][71928] E.g.
  `~~outdated information~~` becomes "~~outdated information~~".
- [Added an emoji to Rustdoc's deprecated API message.][72014]

Compatibility Notes
-------------------
- [Trying to self initialize a static value (that is creating a value using
  itself) is unsound and now causes a compile error.][71140]
- [`{f32, f64}::powi` now returns a slightly different value on Windows.][73420]
  This is due to changes in LLVM's intrinsics which `{f32, f64}::powi` uses.
- [Rustdoc's CLI's extra error exit codes have been removed.][71900] These were
  previously undocumented and not intended for public use. Rustdoc still provides
  a non-zero exit code on errors.

Internals Only
--------------
- [Make clippy a git subtree instead of a git submodule][70655]
- [Unify the undo log of all snapshot types][69464]

[73420]: rust-lang/rust#73420
[72324]: rust-lang/rust#72324
[71843]: rust-lang/rust#71843
[71886]: rust-lang/rust#71886
[72234]: rust-lang/rust#72234
[72239]: rust-lang/rust#72239
[72397]: rust-lang/rust#72397
[72413]: rust-lang/rust#72413
[72014]: rust-lang/rust#72014
[72062]: rust-lang/rust#72062
[72094]: rust-lang/rust#72094
[72133]: rust-lang/rust#72133
[71900]: rust-lang/rust#71900
[71928]: rust-lang/rust#71928
[71662]: rust-lang/rust#71662
[71716]: rust-lang/rust#71716
[71447]: rust-lang/rust#71447
[71269]: rust-lang/rust#71269
[71095]: rust-lang/rust#71095
[71140]: rust-lang/rust#71140
[70655]: rust-lang/rust#70655
[70705]: rust-lang/rust#70705
[69984]: rust-lang/rust#69984
[69813]: rust-lang/rust#69813
[69464]: rust-lang/rust#69464
[68717]: rust-lang/rust#68717
[`Arc::as_ptr`]: https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.as_ptr
[`BTreeMap::remove_entry`]: https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html#method.remove_entry
[`Rc::as_ptr`]: https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.as_ptr
[`rc::Weak::as_ptr`]: https://doc.rust-lang.org/stable/std/rc/struct.Weak.html#method.as_ptr
[`rc::Weak::from_raw`]: https://doc.rust-lang.org/stable/std/rc/struct.Weak.html#method.from_raw
[`rc::Weak::into_raw`]: https://doc.rust-lang.org/stable/std/rc/struct.Weak.html#method.into_raw
[`sync::Weak::as_ptr`]: https://doc.rust-lang.org/stable/std/sync/struct.Weak.html#method.as_ptr
[`sync::Weak::from_raw`]: https://doc.rust-lang.org/stable/std/sync/struct.Weak.html#method.from_raw
[`sync::Weak::into_raw`]: https://doc.rust-lang.org/stable/std/sync/struct.Weak.html#method.into_raw
[`str::strip_prefix`]: https://doc.rust-lang.org/stable/std/primitive.str.html#method.strip_prefix
[`str::strip_suffix`]: https://doc.rust-lang.org/stable/std/primitive.str.html#method.strip_suffix
[`char::UNICODE_VERSION`]: https://doc.rust-lang.org/stable/std/char/constant.UNICODE_VERSION.html
[`Span::resolved_at`]: https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.resolved_at
[`Span::located_at`]: https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.located_at
[`Span::mixed_site`]: https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.mixed_site
[`unix::process::CommandExt::arg0`]: https://doc.rust-lang.org/std/os/unix/process/trait.CommandExt.html#tymethod.arg0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. relnotes Marks issues that should be documented in the release notes of the next release. relnotes-perf Performance improvements that should be mentioned in the release notes. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.