Skip to content

Rustup to rustc 1.60.0-nightly (a00e130da 2022-01-29) #122

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

Merged
merged 17 commits into from
Feb 1, 2022

Conversation

bjorn3
Copy link
Member

@bjorn3 bjorn3 commented Jan 30, 2022

This PR must not be squashed when merging.

erikdesjardins and others added 12 commits December 29, 2021 15:47
Now that deferred inlining has been disabled in LLVM,
this shouldn't cause catastrophic size blowup.
Mark drop calls in landing pads `cold` instead of `noinline`

Now that deferred inlining has been disabled in LLVM (#92110), this shouldn't cause catastrophic size blowup.

I confirmed that the test cases from rust-lang/rust#41696 (comment) still compile quickly (<1s) after this change. ~Although note that I wasn't able to reproduce the original issue using a recent rustc/llvm with deferred inlining enabled, so those tests may no longer be representative. I was also unable to create a modified test case that reproduced the original issue.~ (edit: I reproduced it on CI by accident--the first commit timed out on the LLVM 12 builder, because I forgot to make it conditional on LLVM version)

r? `@nagisa`
cc `@arielb1` (this effectively reverts #42771 "mark calls in the unwind path as !noinline")
cc `@RalfJung` (fixes #46515)

edit: also fixes #87055
Replace `-Z symbol-mangling-version=v0` with `-C symbol-mangling-version=v0`.

Replace `-Z symbol-mangling-version=legacy` with
`-Z unstable-options -C symbol-mangling-version=legacy`.
The field is also renamed from `ident` to `name. In most cases,
we don't actually need the `Span`. A new `ident` method is added
to `VariantDef` and `FieldDef`, which constructs the full `Ident`
using `tcx.def_ident_span()`. This method is used in the cases
where we actually need an `Ident`.

This makes incremental compilation properly track changes
to the `Span`, without all of the invalidations caused by storing
a `Span` directly via an `Ident`.
This saves a couple of Symbol::intern calls
Given that these instructions are diverging, not every codegen backend
may be able to produce a return value for them.
Some codegen backends may require all handlers to be immediately known
@bjorn3
Copy link
Member Author

bjorn3 commented Jan 30, 2022

I'm locally getting several errors about traits not being implemented despite there clearly being a derive for them. For example

error[E0308]: mismatched types
  --> iter/adapters/intersperse.rs:79:30
   |
79 |         .intersperse_with(|| NotClone { u: 2 })
   |                              ^^^^^^^^^^^^^^^^^
   |                              |
   |                              expected `&intersperse::test_intersperse_with::NotClone`, found struct `intersperse::test_intersperse_with::NotClone`
   |                              help: consider borrowing here: `&NotClone { u: 2 }`

@antoyo
Copy link
Contributor

antoyo commented Jan 30, 2022

Strange.
I'm not sure what is going on.

@bjorn3
Copy link
Member Author

bjorn3 commented Feb 1, 2022

Fixed it. Had to switch coretests to the 2021 edition.

Copy link
Contributor

@antoyo antoyo left a comment

Choose a reason for hiding this comment

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

Great job!
Only one thing to fix.

@bjorn3 bjorn3 force-pushed the rustup branch 2 times, most recently from bdbb749 to abee9ce Compare February 1, 2022 16:52
@antoyo antoyo merged commit b4ad63c into rust-lang:master Feb 1, 2022
@antoyo
Copy link
Contributor

antoyo commented Feb 1, 2022

Thanks a lot!

@bjorn3 bjorn3 deleted the rustup branch February 1, 2022 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants