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

Enable NLL migrate mode on the 2015 edition #59114

Merged
merged 2 commits into from Apr 22, 2019

Conversation

@matthewjasper
Copy link
Contributor

commented Mar 11, 2019

What is in this PR?

  • Remove the -Zborrowck=ast flag option from rustc.
  • The default in the 2015 edition is now -Zborrowck=migrate.
  • The 2018 edition default is unchanged: it's still -Zborrowck=migrate.
  • Enable two-phase borrows (currently toggled via the -Ztwo-phase-borrows flag) on all editions.
  • Remove most dead code that handled these options.
  • Update tests for the above changes.

What is not in this PR?

These are left for future PRs

  • Use -Zborrowck=mir in NLL compare mode tests (#56993)
  • Remove the -Zborrowck=compare option (#59193)
  • Remove the -Ztwo-phase-borrows flag. It's kept, as a flag that does nothing so that perf.rlo has time to stop using it (cc @Mark-Simulacrum)
  • Remove MIR typeck as its own MIR pass - it's now run by NLL.
  • Enabling -Zborrowck=mir by default (#58781)
  • Replace allow_bind_by_move_patterns_with_guards and check_for_mutation_in_guard_via_ast_walk with just using the feature gate. (#59192)

Soundness issues that are fixed by NLL will stay open until full NLL is emitting hard errors. However, these diagnostics and completeness issues can now be closed:

Closes #18330
Closes #22323
Closes #23591
Closes #26736
Closes #27487
Closes #28092
Closes #28970
Closes #29733
Closes #30104
Closes #38915
Closes #39908
Closes #43407
Closes #47524
Closes #48540
Closes #49073
Closes #52614
Closes #55085
Closes #56093
Closes #56496
Closes #57804

cc #43234

r? @pnkfelix
cc @rust-lang/lang
cc @rust-lang/wg-compiler-nll

@matthewjasper matthewjasper changed the title Enable migate 2015 Enable NLL migate mode on the 2015 edition Mar 11, 2019

@Centril Centril changed the title Enable NLL migate mode on the 2015 edition Enable migrate 2015 Mar 11, 2019

@Centril Centril changed the title Enable migrate 2015 Enable NLL migrate mode on the 2015 edition Mar 11, 2019

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member

commented Mar 11, 2019

I can remove the flag from perf quickly so will do so as soon as this PR lands.

@bors try for perf

@bors

This comment has been minimized.

Copy link
Contributor

commented Mar 11, 2019

⌛️ Trying commit 4eebb5e with merge 65cb35a...

bors added a commit that referenced this pull request Mar 11, 2019

Auto merge of #59114 - matthewjasper:enable-migate-2015, r=<try>
Enable NLL migrate mode on the 2015 edition

Blocked on #58739

## What is in this PR?

* Remove the `-Zborrowck=ast` flag option from rustc.
* The default in the 2015 edition is now `-Zborrowck=migrate`.
* The 2018 edition default is unchanged: it's still `-Zborrowck=migrate`.
* Enable the `-Ztwo-phase-borrows` flag on all editions.
* Remove most dead code that handled these options.
* Update tests for the above changes.

## What is *not* in this PR?

These are left for future PRs

* Use `-Zborrowck=mir` in NLL compare mode tests
* Remove the `-Zborrowck=compare` option
* Remove the `-Ztwo-phase-borrows` flag. It's kept so that perf.rlo has time to stop using it (cc @Mark-Simulacrum)
* Remove MIR typeck as its own MIR pass - it's now run by NLL.
* Enabling `-Zborrowck=mir` by default

Soundness issues that are fixed by NLL will stay open until full NLL is emitting hard errors. However, these diagnostics and completeness issues can now be closed:

Closes #18330
Closes #22323
Closes #23591
Closes #26736
Closes #27487
Closes #28092
Closes #28970
Closes #29733
Closes #30104
Closes #38915
Closes #39908
Closes #43407
Closes #47524
Closes #48540
Closes #49073
Closes #52614
Closes #55085
Closes #56093
Closes #56496
Closes #57804

cc #43234

r? @pnkfelix
cc @rust-lang/lang
cc @rust-lang/wg-compiler-nll
@bors

This comment has been minimized.

Copy link
Contributor

commented Mar 11, 2019

☀️ Try build successful - checks-travis
Build commit: 65cb35a

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member

commented Mar 12, 2019

@rust-timer

This comment has been minimized.

Copy link

commented Mar 12, 2019

Success: Queued 65cb35a with parent e68bf8a, comparison URL.

@rust-timer

This comment has been minimized.

Copy link

commented Mar 12, 2019

Finished benchmarking try commit 65cb35a

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member

commented Mar 12, 2019

Looks like perf results are as expected - just bringing over the regressions from the NLL dashboard.

@matthewjasper matthewjasper force-pushed the matthewjasper:enable-migate-2015 branch from 4eebb5e to 3300875 Mar 12, 2019

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented Mar 12, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (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.
travis_time:end:0c62b7a0:start=1552422638011955282,finish=1552422640388468460,duration=2376513178
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
Setting environment variables from .travis.yml
---
travis_time:start:test_debuginfo
Check compiletest suite=debuginfo mode=debuginfo-both (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:21:07] 
[01:21:07] running 120 tests
[01:21:32] .iiiii...i.....i..i...i..i.i...i.ii...i.....i..i....i..........iiii..........i...ii...i.......ii.i.i 100/120
[01:21:36] .i......iii.i.....ii
[01:21:36] 
[01:21:36]  finished in 30.003
[01:21:36] travis_fold:end:test_debuginfo

---
travis_time:start:test_ui-fulldeps
Check compiletest suite=ui-fulldeps mode=ui (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:21:37] 
[01:21:37] running 20 tests
[01:21:43] F.F.................
[01:21:43] 
[01:21:43] ---- [ui] ui-fulldeps/dropck_tarena_unsound_drop.rs stdout ----
[01:21:43] diff of stderr:
[01:21:43] 
[01:21:43] 
[01:21:43] 1 error[E0597]: `arena` does not live long enough
[01:21:43] +   --> $DIR/dropck_tarena_unsound_drop.rs:41:7
[01:21:43] 3    |
[01:21:43] 3    |
[01:21:43] 4 LL |     f(&arena);
[01:21:43] -    |        ^^^^^ borrowed value does not live long enough
[01:21:43] +    |       ^^^^^^ borrowed value does not live long enough
[01:21:43] 6 LL | }
[01:21:43] -    | - `arena` dropped here while still borrowed
[01:21:43] -    |
[01:21:43] -    = note: values in a scope are dropped in the opposite order they are created
[01:21:43] +    | |
[01:21:43] +    | |
[01:21:43] +    | `arena` dropped here while still borrowed
[01:21:43] +    | borrow might be used here, when `arena` is dropped and runs the `Drop` code for type `arena::TypedArena`
[01:21:43] 11 error: aborting due to previous error
[01:21:43] 12 
[01:21:43] 
[01:21:43] 
[01:21:43] 
[01:21:43] The actual stderr differed from the expected stderr.
[01:21:43] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/dropck_tarena_unsound_drop/dropck_tarena_unsound_drop.stderr
[01:21:43] To update references, rerun the tests and pass the `--bless` flag
[01:21:43] To only update this specific test, also pass `--test-args dropck_tarena_unsound_drop.rs`
[01:21:43] error: 1 errors occurred comparing output.
[01:21:43] status: exit code: 1
[01:21:43] status: exit code: 1
[01:21:43] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/dropck_tarena_unsound_drop.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/dropck_tarena_unsound_drop/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/dropck_tarena_unsound_drop/auxiliary" "-A" "unused"
[01:21:43] ------------------------------------------
[01:21:43] 
[01:21:43] ------------------------------------------
[01:21:43] stderr:
[01:21:43] stderr:
[01:21:43] ------------------------------------------
[01:21:43] {"message":"`arena` does not live long enough","code":{"code":"E0597","explanation":"\nThis error occurs because a value was dropped while it was still borrowed\n\nExample of erroneous code:\n\n```compile_fail,E0597\nstruct Foo<'a> {\n    x: Option<&'a u32>,\n}\n\nlet mut x = Foo { x: None };\n{\n    let y = 0;\n    x.x = Some(&y); // error: `y` does not live long enough\n}\nprintln!(\"{:?}\", x.x);\n```\n\nIn here, `y` is dropped at the end of the inner scope, but it is borrowed by\n`x` until the `println`. To fix the previous example, just remove the scope\nso that `y` isn't dropped until after the println\n\n```\nstruct Foo<'a> {\n    x: Option<&'a u32>,\n}\n\nlet mut x = Foo { x: None };\n\nlet y = 0;\nx.x = Some(&y);\n\nprintln!(\"{:?}\", x.x);\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui-fulldeps/dropck_tarena_unsound_drop.rs","byte_start":1291,"byte_end":1297,"line_start":41,"line_end":41,"column_start":7,"column_end":13,"is_primary":true,"text":[{"text":"    f(&arena);","highlight_start":7,"highlight_end":13}],"label":"borrowed value does not live long enough","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui-fulldeps/dropck_tarena_unsound_drop.rs","byte_start":1300,"byte_end":1301,"line_start":42,"line_end":42,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"} //~^ ERROR `arena` does not live long enough","highlight_start":1,"highlight_end":2}],"label":"`arena` dropped here while still borrowed","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui-fulldeps/dropck_tarena_unsound_drop.rs","byte_start":1300,"byte_end":1301,"line_start":42,"line_end":42,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"} //~^ ERROR `arena` does not live long enough","highlight_start":1,"highlight_end":2}],"label":"borrow might be used here, when `arena` is dropped and runs the `Drop` code for type `arena::TypedArena`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0597]: `arena` does not live long enough\n  --> /checkout/src/test/ui-fulldeps/dropck_tarena_unsound_drop.rs:41:7\n   |\nLL |     f(&arena);\n   |       ^^^^^^ borrowed value does not live long enough\nLL | } //~^ ERROR `arena` does not live long enough\n   | -\n   | |\n   | `arena` dropped here while still borrowed\n   | borrow might be used here, when `arena` is dropped and runs the `Drop` code for type `arena::TypedArena`\n\n"}
[01:21:43] {"message":"For more information about this error, try `rustc --explain E0597`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0597`.\n"}
[01:21:43] 
[01:21:43] ------------------------------------------
[01:21:43] 
[01:21:43] 
[01:21:43] thread '[ui] ui-fulldeps/dropck_tarena_unsound_drop.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3326:9
[01:21:43] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:21:43] 
[01:21:43] ---- [ui] ui-fulldeps/dropck_tarena_cycle_checked.rs stdout ----
[01:21:43] diff of stderr:
[01:21:43] 
[01:21:43] 1 error[E0597]: `arena` does not live long enough
[01:21:43] +   --> $DIR/dropck_tarena_cycle_checked.rs:116:7
[01:21:43] 3    |
[01:21:43] 3    |
[01:21:43] 4 LL |     f(&arena);
[01:21:43] -    |        ^^^^^ borrowed value does not live long enough
[01:21:43] +    |       ^^^^^^ borrowed value does not live long enough
[01:21:43] 6 LL | }
[01:21:43] -    | - `arena` dropped here while still borrowed
[01:21:43] -    |
[01:21:43] -    = note: values in a scope are dropped in the opposite order they are created
[01:21:43] +    | |
[01:21:43] +    | |
[01:21:43] +    | `arena` dropped here while still borrowed
[01:21:43] +    | borrow might be used here, when `arena` is dropped and runs the `Drop` code for type `arena::TypedArena`
[01:21:43] 11 error: aborting due to previous error
[01:21:43] 12 
[01:21:43] 
[01:21:43] 
[01:21:43] 
[01:21:43] The actual stderr differed from the expected stderr.
[01:21:43] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/dropck_tarena_cycle_checked/dropck_tarena_cycle_checked.stderr
[01:21:43] To update references, rerun the tests and pass the `--bless` flag
[01:21:43] To only update this specific test, also pass `--test-args dropck_tarena_cycle_checked.rs`
[01:21:43] error: 1 errors occurred comparing output.
[01:21:43] status: exit code: 1
[01:21:43] status: exit code: 1
[01:21:43] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/dropck_tarena_cycle_checked.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/dropck_tarena_cycle_checked/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/dropck_tarena_cycle_checked/auxiliary" "-A" "unused"
[01:21:43] ------------------------------------------
[01:21:43] 
[01:21:43] ------------------------------------------
[01:21:43] stderr:
[01:21:43] stderr:
[01:21:43] ------------------------------------------
[01:21:43] {"message":"`arena` does not live long enough","code":{"code":"E0597","explanation":"\nThis error occurs because a value was dropped while it was still borrowed\n\nExample of erroneous code:\n\n```compile_fail,E0597\nstruct Foo<'a> {\n    x: Option<&'a u32>,\n}\n\nlet mut x = Foo { x: None };\n{\n    let y = 0;\n    x.x = Some(&y); // error: `y` does not live long enough\n}\nprintln!(\"{:?}\", x.x);\n```\n\nIn here, `y` is dropped at the end of the inner scope, but it is borrowed by\n`x` until the `println`. To fix the previous example, just remove the scope\nso that `y` isn't dropped until after the println\n\n```\nstruct Foo<'a> {\n    x: Option<&'a u32>,\n}\n\nlet mut x = Foo { x: None };\n\nlet y = 0;\nx.x = Some(&y);\n\nprintln!(\"{:?}\", x.x);\n```\n"},"level":"error","spans":[{"file_name":"/checkout/src/test/ui-fulldeps/dropck_tarena_cycle_checked.rs","byte_start":2531,"byte_end":2537,"line_start":116,"line_end":116,"column_start":7,"column_end":13,"is_primary":true,"text":[{"text":"    f(&arena);","highlight_start":7,"highlight_end":13}],"label":"borrowed value does not live long enough","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui-fulldeps/dropck_tarena_cycle_checked.rs","byte_start":2540,"byte_end":2541,"line_start":117,"line_end":117,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"} //~^ ERROR `arena` does not live long enough","highlight_start":1,"highlight_end":2}],"label":"`arena` dropped here while still borrowed","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/checkout/src/test/ui-fulldeps/dropck_tarena_cycle_checked.rs","byte_start":2540,"byte_end":2541,"line_start":117,"line_end":117,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"} //~^ ERROR `arena` does not live long enough","highlight_start":1,"highlight_end":2}],"label":"borrow might be used here, when `arena` is dropped and runs the `Drop` code for type `arena::TypedArena`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0597]: `arena` does not live long enough\n  --> /checkout/src/test/ui-fulldeps/dropck_tarena_cycle_checked.rs:116:7\n   |\nLL |     f(&arena);\n   |       ^^^^^^ borrowed value does not live long enough\nLL | } //~^ ERROR `arena` does not live long enough\n   | -\n   | |\n   | `arena` dropped here while still borrowed\n   | borrow might be used here, when `arena` is dropped and runs the `Drop` code for type `arena::TypedArena`\n\n"}
[01:21:43] {"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
[01:21:43] {"message":"For more information about this error, try `rustc --explain E0597`.","code":null,"level":"","spans":[],"children":[],"rendered":"For more information about this error, try `rustc --explain E0597`.\n"}
[01:21:43] 
[01:21:43] ------------------------------------------
---
[01:21:43] test result: FAILED. 18 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out
[01:21:43] 
[01:21:43] 
[01:21:43] 
[01:21:43] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui-fulldeps" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:21:43] 
[01:21:43] 
[01:21:43] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:21:43] Build completed unsuccessfully in 0:12:25
[01:21:43] Build completed unsuccessfully in 0:12:25
[01:21:43] make: *** [check] Error 1
[01:21:43] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:025555c2
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Tue Mar 12 21:52:35 UTC 2019
---
travis_time:end:05e85a84:start=1552427556937398663,finish=1552427556941921642,duration=4522979
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:194b913a
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:2af241f4
travis_time:start:2af241f4
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:2a50a234
$ dmesg | grep -i kill

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)

@@ -93,7 +93,7 @@ impl SuppressRegionErrors {
pub fn when_nll_is_enabled(tcx: TyCtxt<'_, '_, '_>) -> Self {
match tcx.borrowck_mode() {
// If we're on AST or Migrate mode, report AST region errors

This comment has been minimized.

Copy link
@pnkfelix

pnkfelix Mar 12, 2019

Member

might as well fix the comment to not refer to AST mode any more

```
"##,

E0500: r##"
A borrowed variable was used in another closure. Example of erroneous code:
A borrowed variable was used by a closure. Example of erroneous code:

This comment has been minimized.

Copy link
@pnkfelix

pnkfelix Mar 12, 2019

Member

are we supposed to be revising the text associated with error diagnostic codes in this manner? Was this an expected outcome of this change?

This comment has been minimized.

Copy link
@matthewjasper

matthewjasper Mar 13, 2019

Author Contributor

This is a drive by fix since the documentation for this error is very outdated. The current example gives E0524.

@pnkfelix

This comment has been minimized.

Copy link
Member

commented Mar 12, 2019

Ah this is so exciting!

@pnkfelix pnkfelix added the S-blocked label Mar 12, 2019

@pnkfelix

This comment has been minimized.

Copy link
Member

commented Mar 12, 2019

r=me once this is unblocked by PR #58739

@bors

This comment has been minimized.

Copy link
Contributor

commented Mar 14, 2019

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

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member

commented Apr 23, 2019

The relevant flags have been removed from perf, so we should be safe to remove them from master if you'd like.

@Xanewok Xanewok referenced this pull request May 1, 2019

Merged

Update RLS and Cargo #60436

kennytm added a commit to kennytm/rust that referenced this pull request May 2, 2019

Rollup merge of rust-lang#60436 - Xanewok:update-rls, r=Manishearth
Update RLS and Cargo

Fixes the `test-fail` RLS toolstate caused by rust-lang#59114.

r? @Centril @Manishearth

bors added a commit that referenced this pull request May 2, 2019

Auto merge of #60436 - Xanewok:update-rls, r=Manishearth
Update RLS and Cargo

Fixes the `test-fail` RLS toolstate caused by #59114.

r? @Centril @Manishearth

bors added a commit that referenced this pull request May 3, 2019

Auto merge of #60436 - Xanewok:update-rls, r=Manishearth
Update RLS and Cargo

Fixes the `test-fail` RLS toolstate caused by #59114.

r? @Centril @Manishearth

bors added a commit that referenced this pull request May 3, 2019

Auto merge of #60436 - Xanewok:update-rls, r=Manishearth
Update RLS and Cargo

Fixes the `test-fail` RLS toolstate caused by #59114.

r? @Centril @Manishearth

Centril added a commit to Centril/rust that referenced this pull request May 3, 2019

Rollup merge of rust-lang#60436 - Xanewok:update-rls, r=Manishearth
Update RLS and Cargo

Fixes the `test-fail` RLS toolstate caused by rust-lang#59114.

r? @Centril @Manishearth

bors added a commit that referenced this pull request May 4, 2019

Auto merge of #60436 - Xanewok:update-rls, r=Manishearth
Update RLS and Cargo

Fixes the `test-fail` RLS toolstate caused by #59114.

r? @Centril @Manishearth

bors added a commit that referenced this pull request May 6, 2019

Auto merge of #60436 - Xanewok:update-rls, r=Manishearth
Update RLS and Cargo

Fixes the `test-fail` RLS toolstate caused by #59114.

r? @Centril @Manishearth

bors added a commit that referenced this pull request May 6, 2019

Auto merge of #60436 - Xanewok:update-rls, r=Manishearth
Update RLS and Cargo

Fixes the `test-fail` RLS toolstate caused by #59114.

r? @Centril @Manishearth

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jul 5, 2019

he
Update rust to version 1.36.0
Pkgsrc changes:
 * NetBSD/sparc64 disabling of "packed" removed ("packed" removed upstream)
 * Adapt src_libstd_build.rs patch, update sed'ing of .cargo-checksum.json

Build verified on NetBSD 8.0/amd64.

Upstream changes:

Version 1.36.0 (2019-07-04)
==========================

Language
--------
- [Non-Lexical Lifetimes are now enabled on the 2015 edition.][59114]
- [The order of traits in trait objects no longer affects the semantics of that
  object.][59445] e.g. `dyn Send + fmt::Debug` is now equivalent to
  `dyn fmt::Debug + Send`, where this was previously not the case.

Libraries
---------
- [`HashMap`'s implementation has been replaced with `hashbrown::HashMap` implem
entation.][58623]
- [`TryFromSliceError` now implements `From<Infallible>`.][60318]
- [`mem::needs_drop` is now available as a const fn.][60364]
- [`alloc::Layout::from_size_align_unchecked` is now available as a const fn.][6
0370]
- [`String` now implements `BorrowMut<str>`.][60404]
- [`io::Cursor` now implements `Default`.][60234]
- [Both `NonNull::{dangling, cast}` are now const fns.][60244]
- [The `alloc` crate is now stable.][59675] `alloc` allows you to use a subset
  of `std` (e.g. `Vec`, `Box`, `Arc`) in `#![no_std]` environments if the
  environment has access to heap memory allocation.
- [`String` now implements `From<&String>`.][59825]
- [You can now pass multiple arguments to the `dbg!` macro.][59826] `dbg!` will
  return a tuple of each argument when there is multiple arguments.
- [`Result::{is_err, is_ok}` are now `#[must_use]` and will produce a warning if
  not used.][59648]

Stabilized APIs
---------------
- [`VecDeque::rotate_left`]
- [`VecDeque::rotate_right`]
- [`Iterator::copied`]
- [`io::IoSlice`]
- [`io::IoSliceMut`]
- [`Read::read_vectored`]
- [`Write::write_vectored`]
- [`str::as_mut_ptr`]
- [`mem::MaybeUninit`]
- [`pointer::align_offset`]
- [`future::Future`]
- [`task::Context`]
- [`task::RawWaker`]
- [`task::RawWakerVTable`]
- [`task::Waker`]
- [`task::Poll`]

Cargo
-----
- [Cargo will now produce an error if you attempt to use the name of a required
dependency as a feature.][cargo/6860]
- [You can now pass the `--offline` flag to run cargo without accessing the netw
ork.][cargo/6934]

You can find further change's in [Cargo's 1.36.0 release notes][cargo-1-36-0].

Clippy
------
There have been numerous additions and fixes to clippy, see [Clippy's 1.36.0 rel
ease notes][clippy-1-36-0] for more details.

Misc
----

Compatibility Notes
-------------------
- [`std::arch::x86::_rdtsc` returns `u64` instead of `i64`][stdsimd/559]
- [`std::arch::x86_64::_mm_shuffle_ps` takes an `i32` instead of `u32` for `mask
`][stdsimd/522]
- With the stabilisation of `mem::MaybeUninit`, `mem::uninitialized` use is no
  longer recommended, and will be deprecated in 1.38.0.

[60318]: rust-lang/rust#60318
[60364]: rust-lang/rust#60364
[60370]: rust-lang/rust#60370
[60404]: rust-lang/rust#60404
[60234]: rust-lang/rust#60234
[60244]: rust-lang/rust#60244
[58623]: rust-lang/rust#58623
[59648]: rust-lang/rust#59648
[59675]: rust-lang/rust#59675
[59825]: rust-lang/rust#59825
[59826]: rust-lang/rust#59826
[59445]: rust-lang/rust#59445
[59114]: rust-lang/rust#59114
[cargo/6860]: rust-lang/cargo#6860
[cargo/6934]: rust-lang/cargo#6934
[`VecDeque::rotate_left`]: https://doc.rust-lang.org/std/collections/struct.VecDeque.html#method.rotate_left
[`VecDeque::rotate_right`]: https://doc.rust-lang.org/std/collections/struct.VecDeque.html#method.rotate_right
[`Iterator::copied`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#tymethod.copied
[`io::IoSlice`]: https://doc.rust-lang.org/std/io/struct.IoSlice.html
[`io::IoSliceMut`]: https://doc.rust-lang.org/std/io/struct.IoSliceMut.html
[`Read::read_vectored`]: https://doc.rust-lang.org/std/io/trait.Read.html#method.read_vectored
[`Write::write_vectored`]: https://doc.rust-lang.org/std/io/trait.Write.html#method.write_vectored
[`str::as_mut_ptr`]: https://doc.rust-lang.org/std/primitive.str.html#method.as_mut_ptr
[`mem::MaybeUninit`]: https://doc.rust-lang.org/std/mem/union.MaybeUninit.html
[`pointer::align_offset`]: https://doc.rust-lang.org/std/primitive.pointer.html#method.align_offset
[`future::Future`]: https://doc.rust-lang.org/std/future/trait.Future.html
[`task::Context`]: https://doc.rust-lang.org/beta/std/task/struct.Context.html
[`task::RawWaker`]: https://doc.rust-lang.org/beta/std/task/struct.RawWaker.html
[`task::RawWakerVTable`]: https://doc.rust-lang.org/beta/std/task/struct.RawWakerVTable.html
[`task::Waker`]: https://doc.rust-lang.org/beta/std/task/struct.Waker.html
[`task::Poll`]: https://doc.rust-lang.org/beta/std/task/enum.Poll.html
[clippy-1-36-0]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-136
[cargo-1-36-0]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-136-2019-07-04
[stdsimd/522]: rust-lang/stdarch#522
[stdsimd/559]: rust-lang/stdarch#559
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.