Stream: t-compiler/meetings

Topic: [weekly meeting] 2020-05-28 #54818


Santiago Pastorino (May 27 2020 at 19:04, on Zulip):

Hi @T-compiler/meeting; the triage meeting will be starting in ~ 19 hours

Santiago Pastorino (May 27 2020 at 19:05, on Zulip):

The @WG-prioritization will be doing pre-triage in #t-compiler/wg-prioritization > pre-meeting triage 2020-05-28 #54818

Santiago Pastorino (May 27 2020 at 19:05, on Zulip):

During pre-triage we will be preparing the meeting agenda

Santiago Pastorino (May 27 2020 at 19:05, on Zulip):

We will have checkins from @WG-rustc-dev-guide and @WG-llvm

Santiago Pastorino (May 27 2020 at 19:06, on Zulip):

I'm going to share some progress we had on @WG-rustc-dev-guide

Santiago Pastorino (May 27 2020 at 19:06, on Zulip):

@nagisa do you have something you want to share about @WG-llvm ?

simulacrum (May 27 2020 at 19:08, on Zulip):

we should maybe talk a bit about the llvm update (I known @Nicholas Nethercote had thoughts, at least, seems like maybe Niko did too). If we do want to revert then we have around a week until beta branches.

simulacrum (May 27 2020 at 19:08, on Zulip):

well, actually, just a few days - Monday?

Santiago Pastorino (May 27 2020 at 19:20, on Zulip):

yep I have that as todo add llvm stuff in the agenda

Santiago Pastorino (May 27 2020 at 19:20, on Zulip):

@simulacrum once I build the agenda I will let you know in case you want to check we cover all that stuff

simulacrum (May 27 2020 at 19:21, on Zulip):

thanks! I don't personally have any particular concerns

nagisa (May 28 2020 at 12:21, on Zulip):

Don’t have much to say past the fact that there has been a bump, there are concerns about perf impact and that @Nikita Popov wrote a stellar post on tracking perf.

pnkfelix (May 28 2020 at 14:02, on Zulip):

Hi @T-compiler/meeting! Add a :wave: emoji to show you're here :)

nikomatsakis (May 28 2020 at 14:02, on Zulip):

@nagisa link to post?

pnkfelix (May 28 2020 at 14:02, on Zulip):

we will start off with 5 minutes for ...

pnkfelix (May 28 2020 at 14:02, on Zulip):

Announcements

pnkfelix (May 28 2020 at 14:03, on Zulip):

first from agenda ...

pnkfelix (May 28 2020 at 14:03, on Zulip):
pnkfelix (May 28 2020 at 14:03, on Zulip):
pnkfelix (May 28 2020 at 14:03, on Zulip):

note especially that we have a lot of seconded proposals this week

Santiago Pastorino (May 28 2020 at 14:04, on Zulip):

nikomatsakis said:

nagisa link to post?

isn't it #67759 ?

nikomatsakis (May 28 2020 at 14:04, on Zulip):
simulacrum (May 28 2020 at 14:04, on Zulip):
simulacrum (May 28 2020 at 14:04, on Zulip):

https://nikic.github.io/2020/05/10/Make-LLVM-fast-again.html for the llvm post

oli (May 28 2020 at 14:04, on Zulip):

Not sure if announcement worthy: I'm very inactive right now due to thesis stuff. I can only promise to do reviews, but discussions and any work assigned to me will suffer and I'll likely miss a lot of pings and notifications that I may never be able to catch up to.

pnkfelix (May 28 2020 at 14:05, on Zulip):

yeah we'll be talking more about LLVM stuff later in meeting, I think, as part of a new "performance review" section that wg-prioritization added based on the work done by @Nicholas Nethercote

pnkfelix (May 28 2020 at 14:05, on Zulip):

nikomatsakis said:

link?

Santiago Pastorino (May 28 2020 at 14:06, on Zulip):

https://blog.rust-lang.org/inside-rust/2020/05/27/contributor-survey.html

pnkfelix (May 28 2020 at 14:07, on Zulip):

also I just want to re-iterate: We have a lot of seconded MCP's this week. More than I think we ever have (for this new MCP system, I mean)

Santiago Pastorino (May 28 2020 at 14:07, on Zulip):

Santiago Pastorino said:

https://blog.rust-lang.org/inside-rust/2020/05/27/contributor-survey.html

125 responses by yesterday night

pnkfelix (May 28 2020 at 14:07, on Zulip):

and since this is a "assume good until proven otherwise", its up to each of us to make sure we at least skim the list of MCPs

pnkfelix (May 28 2020 at 14:08, on Zulip):

okay, what's next on the agenda ...

pnkfelix (May 28 2020 at 14:08, on Zulip):

Beta-nominations

No beta nominations this time for T-compiler and libs-impl.

Stable-nominations

No stable nominations this time for T-compiler and libs-impl.

pnkfelix (May 28 2020 at 14:08, on Zulip):

PR's S-waiting-on-team

T-compiler S-waiting-on-team

No PR’s waiting on libs-impl this time.

pnkfelix (May 28 2020 at 14:09, on Zulip):

Issues of Note

Short Summary

There are 3 more P-critical issues and 1 less P-high issues in comparison with last week.

pnkfelix (May 28 2020 at 14:10, on Zulip):

P-critical

pnkfelix (May 28 2020 at 14:10, on Zulip):

(we'll go through these one by one)

pnkfelix (May 28 2020 at 14:10, on Zulip):
pnkfelix (May 28 2020 at 14:11, on Zulip):
pnkfelix (May 28 2020 at 14:11, on Zulip):
pnkfelix (May 28 2020 at 14:12, on Zulip):

(I personally find it super weird that a bug supposedly caused by invalid MIR for generators is only occurring on Windows ...?)

simulacrum (May 28 2020 at 14:12, on Zulip):

well, unwinding is platform-dependent

nikomatsakis (May 28 2020 at 14:13, on Zulip):

Do we know if @Matthew Jasper will be able to investigate? I guess not

pnkfelix (May 28 2020 at 14:13, on Zulip):

that is in part why I haven't assigned it to @Matthew Jasper outright

simulacrum (May 28 2020 at 14:13, on Zulip):

it sounds like we should maybe revert the PR? It'll hit beta on tuesday

pnkfelix (May 28 2020 at 14:13, on Zulip):

oh. I hadn't considered that option

simulacrum (May 28 2020 at 14:13, on Zulip):

otherwise we'll be backporting mir changes which just feels scary

simulacrum (May 28 2020 at 14:14, on Zulip):

(we can also wait and revert the PR on beta, for example)

pnkfelix (May 28 2020 at 14:14, on Zulip):

lets see, the injecting PR says its fixing #47949 ...

pnkfelix (May 28 2020 at 14:14, on Zulip):

which can cause some destructors to be skipped ...

Santiago Pastorino (May 28 2020 at 14:14, on Zulip):

a very old bug

pnkfelix (May 28 2020 at 14:14, on Zulip):

but it is indeed also ancient

Santiago Pastorino (May 28 2020 at 14:14, on Zulip):

Heh, this even happens on Rust 1.0

pnkfelix (May 28 2020 at 14:15, on Zulip):

okay

simulacrum (May 28 2020 at 14:15, on Zulip):

well, I'm okay waiting till @Matthew Jasper can take a look, too

pnkfelix (May 28 2020 at 14:15, on Zulip):

I'll take this bug

pnkfelix (May 28 2020 at 14:15, on Zulip):

and handle reverting

pnkfelix (May 28 2020 at 14:15, on Zulip):

the injecting PR

simulacrum (May 28 2020 at 14:15, on Zulip):

okay, thanks!

simulacrum (May 28 2020 at 14:15, on Zulip):

obviously if we just fix it before tuesday that's fine too (or revert just on future beta, w/e)

pnkfelix (May 28 2020 at 14:15, on Zulip):

sure

nikomatsakis (May 28 2020 at 14:15, on Zulip):

I would be good with reverting

nikomatsakis (May 28 2020 at 14:16, on Zulip):

(presuming we don't have a fix)

pnkfelix (May 28 2020 at 14:16, on Zulip):

I just doubt i'll have time to do more than revert before tuesday

pnkfelix (May 28 2020 at 14:16, on Zulip):

especially given that it only replicates on windows

pnkfelix (May 28 2020 at 14:16, on Zulip):

which i am ... not an expert dev on ...

pnkfelix (May 28 2020 at 14:16, on Zulip):

next up

pnkfelix (May 28 2020 at 14:16, on Zulip):
pnkfelix (May 28 2020 at 14:17, on Zulip):

@Santiago Pastorino and I were just discussing this one; the P-critical aspect of it is in hand, we think/hope

pnkfelix (May 28 2020 at 14:17, on Zulip):
pnkfelix (May 28 2020 at 14:18, on Zulip):

there is very active recent discussion on the issue

nikomatsakis (May 28 2020 at 14:18, on Zulip):

this seems like it was a bug fix

pnkfelix (May 28 2020 at 14:18, on Zulip):

do we have results of crater run ?

nikomatsakis (May 28 2020 at 14:18, on Zulip):

but it's affecting key crates in ecosystem

nikomatsakis (May 28 2020 at 14:19, on Zulip):

wasm-bindgen, syn, and proc-macro-hack is ... a mighty list

pnkfelix (May 28 2020 at 14:19, on Zulip):

okay according to crater run linked on #72622 , the crater run is not done yet.

nikomatsakis (May 28 2020 at 14:20, on Zulip):

there seems to be a kind of loose consensus towards a crater run, but I'm wondering if we have time for before next release

nikomatsakis (May 28 2020 at 14:20, on Zulip):

or if we should revert and do the crater run for a "pending PR" instead

pnkfelix (May 28 2020 at 14:20, on Zulip):

in any case, it does seem like @Aaron Hill is on top of it

simulacrum (May 28 2020 at 14:20, on Zulip):

crater will be done tonight

nikomatsakis (May 28 2020 at 14:20, on Zulip):

/me realizes he had not read all the comments yet

Santiago Pastorino (May 28 2020 at 14:20, on Zulip):

#72388 is turning out to have an unexpectedly large amount of fallout. While I believe the change itself is definitely correct (the alternative is to pass the unspanned re-parsed tokens to proc-macros), several crates seem to be running into problems due to differences in the captured vs reparsed tokens.

pnkfelix (May 28 2020 at 14:21, on Zulip):

lets maybe plan to discuss this again tomorrow after the crater run is done?

pnkfelix (May 28 2020 at 14:21, on Zulip):

at start of steering meeting?

nikomatsakis (May 28 2020 at 14:21, on Zulip):

sounds plausible

nikomatsakis (May 28 2020 at 14:22, on Zulip):

it seems like some comments from @David Tolnay were somewhat disputing the new behavior, but I can't quite tell what they are suggesting --

pnkfelix (May 28 2020 at 14:22, on Zulip):

( @nikomatsakis is there a hackmd for tomorrow's meeting? The issue at compiler-team#287 doesn't have one )

nikomatsakis (May 28 2020 at 14:23, on Zulip):

hackmd is here

nikomatsakis (May 28 2020 at 14:23, on Zulip):

nikomatsakis said:

it seems like some comments from David Tolnay were somewhat disputing the new behavior, but I can't quite tell what they are suggesting --

in particular I am wondering if this change ought to be written up as an MCP at minimum

pnkfelix (May 28 2020 at 14:23, on Zulip):

pnkfelix said:

( nikomatsakis is there a hackmd for tomorrow's meeting? The issue at compiler-team#287 doesn't have one )

(we can also discuss details of meeting tomorrow in its dedicated channel: https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bproposal.5D.20roadmap.202020-2021.20compiler-team.23287/near/196911664 , yay! )

nikomatsakis (May 28 2020 at 14:23, on Zulip):

it feels like we should have some docs for proc macro authors to refer to

nikomatsakis (May 28 2020 at 14:23, on Zulip):

but i guess I will comment on the tracking issue to that effect

pnkfelix (May 28 2020 at 14:24, on Zulip):

Okay. That's all the P-critical issues

pnkfelix (May 28 2020 at 14:25, on Zulip):

Unassigned P-high regressions

pnkfelix (May 28 2020 at 14:25, on Zulip):

(too bad that we don't know if PR #72506 indeed fixes it )

pnkfelix (May 28 2020 at 14:26, on Zulip):

but hopefully it will

pnkfelix (May 28 2020 at 14:26, on Zulip):

Performance logs

Triage done by njn.

Regressions

Improvements

Wesley Wiser (May 28 2020 at 14:26, on Zulip):

Is it worth having someone test (#72467 after applying #72506)?

pnkfelix (May 28 2020 at 14:26, on Zulip):

Wesley Wiser said:

Is it worth having someone test?

I don't know if we need to task someone with that

pnkfelix (May 28 2020 at 14:27, on Zulip):

worst case scenario, it will come up again at next week's prioiritization (I think)

nikomatsakis (May 28 2020 at 14:27, on Zulip):

(we can just @bors try and install the toolchain, right?)

Santiago Pastorino (May 28 2020 at 14:27, on Zulip):

@Wesley Wiser I thought about testing that one and also the P-critical but these things will land maybe before I can do that?

Santiago Pastorino (May 28 2020 at 14:27, on Zulip):

but if we have a release it may make sense to try this out

Santiago Pastorino (May 28 2020 at 14:28, on Zulip):

I was mentioning Felix if it worth prioritizing in the queue PRs that fix p-critical issues and maybe also regressions

Santiago Pastorino (May 28 2020 at 14:28, on Zulip):

as a general practice

pnkfelix (May 28 2020 at 14:28, on Zulip):

my current attitude is that, close to a release, it would definitely make sense to prioritize PR's that fix P-critical things

pnkfelix (May 28 2020 at 14:29, on Zulip):

I'm not as sure about other times

pnkfelix (May 28 2020 at 14:29, on Zulip):

its unfortunate how long our bors cycle time is

pnkfelix (May 28 2020 at 14:29, on Zulip):

but with it as long as it is, I am adverse to finding more ways to further delay existing PR's from landing

Santiago Pastorino (May 28 2020 at 14:29, on Zulip):

pnkfelix said:

my current attitude is that, close to a release, it would definitely make sense to prioritize PR's that fix P-critical things

yeah this case for sure, but also as soon as this things get merged, as soon as they are tested and also the less stuff there is for this meeting

pnkfelix (May 28 2020 at 14:30, on Zulip):

the current system at least tries to be "fair" in the sense that an old PR gets inherent priority in the sort order

pnkfelix (May 28 2020 at 14:30, on Zulip):

(now, is that actually "fair", compared to say sorting by when the r+ was added? Probably not)

pnkfelix (May 28 2020 at 14:30, on Zulip):

(but it is easy to understand!)

nagisa (May 28 2020 at 14:30, on Zulip):

nikomatsakis said:

nagisa link to post?

https://nikic.github.io/2020/05/10/Make-LLVM-fast-again.html

pnkfelix (May 28 2020 at 14:31, on Zulip):

oh thanks @nagisa

pnkfelix (May 28 2020 at 14:31, on Zulip):

if for no other reason than that acts as a great segue back to the topic of @Nicholas Nethercote 's performance review

pnkfelix (May 28 2020 at 14:32, on Zulip):

which they discussed in much more detail over here: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Weekly.20perf.20check/near/198708926

pnkfelix (May 28 2020 at 14:33, on Zulip):

so the improvements I am happy to see, of course.

pnkfelix (May 28 2020 at 14:33, on Zulip):

I was especially tickled by the dumb NRVO one

pnkfelix (May 28 2020 at 14:33, on Zulip):

(thanks @ecstatic-morse !)

nagisa (May 28 2020 at 14:33, on Zulip):

As far as LLVM performance regressions are concerned, I don’t think we can do much about them for this version of LLVM. They might improve for LLVM 11 or future releases (or they might regress even further), and its mostly up to ourselves to make sure they don”t go by undetected (which is what @Nikita Popov is working on)

pnkfelix (May 28 2020 at 14:34, on Zulip):

and the regressions are, as expected, troubling

pnkfelix (May 28 2020 at 14:34, on Zulip):

yeah, so lets talk about LLVM 10, since that's the next topic on Nominated Issues

pnkfelix (May 28 2020 at 14:34, on Zulip):
nikomatsakis (May 28 2020 at 14:34, on Zulip):

So I nominated this because I thought it was worth talking about

pnkfelix (May 28 2020 at 14:35, on Zulip):

(@Santiago Pastorino did I get that right? Its both slowing down the compiler and generating slower code in its output???)

nikomatsakis (May 28 2020 at 14:35, on Zulip):

I think in general I am of the opinion that we ought to closely track LLVM, for good or ill, but it'd be good to discuss some of the reasons why and/or alternatives

pnkfelix (May 28 2020 at 14:35, on Zulip):

pnkfelix said:

(Santiago Pastorino did I get that right? Its both slowing down the compiler and generating slower code in its output???)

I was expecting the former but not the latter

nikomatsakis (May 28 2020 at 14:35, on Zulip):

I believe that was based on @Eric Rahm's assertion that they have to back out using clang

Santiago Pastorino (May 28 2020 at 14:35, on Zulip):

oh sorry, I wrote that in a confusing way

nagisa (May 28 2020 at 14:35, on Zulip):

Do we anticipate fixing these regressions somehow? If we back-out we effectively position ourselves to having much more trouble when we want to start tracking again.

pnkfelix (May 28 2020 at 14:35, on Zulip):

there are indeed "optimization regressions" noted in #67759

nikomatsakis (May 28 2020 at 14:36, on Zulip):

For what it's worth, we ended up backing out our clang-10 upgrade on the Firefox side due to the severity of the compile time (14%) and runtime performance (11%) regressions.

nikomatsakis (May 28 2020 at 14:36, on Zulip):

Note the 11% runtime perf regression

nikomatsakis (May 28 2020 at 14:36, on Zulip):

link to Eric's comment

pnkfelix (May 28 2020 at 14:36, on Zulip):

would it be worth considering backing it out from the beta ?

nikomatsakis (May 28 2020 at 14:36, on Zulip):

It seems to me that we will not fix the regressions -- the only real option would be to wait and stay with LLVM 9 and skip to LLVM 11 or something

pnkfelix (May 28 2020 at 14:37, on Zulip):

so that we actually have six weeks to see if we can cherry-pick LLVM performance tweaks to nightly in the meantime?

nikomatsakis (May 28 2020 at 14:37, on Zulip):

At least, I don't know how we would fix them apart from landing code upstream and then incorporating it

pnkfelix (May 28 2020 at 14:37, on Zulip):

nikomatsakis said:

At least, I don't know how we would fix them apart from landing code upstream and then incorporating it

(yeah, I was here hoping that either we or someone else would identify performance fixes in LLVM upstream that we could cherry-pick)

nikomatsakis (May 28 2020 at 14:37, on Zulip):

Are there even such fixes available?

pnkfelix (May 28 2020 at 14:38, on Zulip):

I got impression that there might be pending PR's on LLVM's side?

pnkfelix (May 28 2020 at 14:38, on Zulip):

/me skims back

nagisa (May 28 2020 at 14:38, on Zulip):

The blog posts mentions some of those, but they won’t be awfully pleasant to backport.

Wesley Wiser (May 28 2020 at 14:38, on Zulip):

So from the conclusion of https://nikic.github.io/2020/05/10/Make-LLVM-fast-again.html, it sounds like LLVM 11 is currently 10% faster than LLVM 10. Would it be reasonable to say we're going to skip 10 and go to 11 when it ships?

Wesley Wiser (May 28 2020 at 14:38, on Zulip):

Or perhaps use LLVM master now?

pnkfelix (May 28 2020 at 14:38, on Zulip):

oh I see, the fixes in question may be on LLVM 11, but not on LLVM 10 ?

nagisa (May 28 2020 at 14:39, on Zulip):

most likely. We could try to petition for upstream to backport those into a patch release of 10-series.

pnkfelix (May 28 2020 at 14:39, on Zulip):

okay. it would be interesting to consider jumping straight to 11

Esteban Küber (May 28 2020 at 14:39, on Zulip):

Are there any stakeholders that need 10?

Esteban Küber (May 28 2020 at 14:39, on Zulip):

Other than more work for us

Esteban Küber (May 28 2020 at 14:40, on Zulip):

Is there any feature or user that will be blocked by us not upgrading?

nagisa (May 28 2020 at 14:40, on Zulip):

I remember there being some blurbs about people asking when 10 will be in rust so that they could do their own work that depends on features available in 10

simulacrum (May 28 2020 at 14:40, on Zulip):

there's the LVI injection stuff that is nice for intel sgx I think?

pnkfelix (May 28 2020 at 14:40, on Zulip):

/me tries to skim #67759 to see if any bugs say they were fixed by it

nikomatsakis (May 28 2020 at 14:40, on Zulip):

I guess another question is: how much work/pain is involved in trying to back out 10 and land 10.5, versus incrementally upgrading from 10 to 10.5

simulacrum (May 28 2020 at 14:40, on Zulip):

but yeah, there's a few things in the pipeline and we've closed a few codegen bugs etc

simulacrum (May 28 2020 at 14:41, on Zulip):

I don't think 10.5 is happening as a performance fix

pnkfelix (May 28 2020 at 14:41, on Zulip):

/me did not know there was a 10.5

nikomatsakis (May 28 2020 at 14:41, on Zulip):

Sorry, that was a shorthand

nikomatsakis (May 28 2020 at 14:41, on Zulip):

I meant "either 11 or cherry-picked fixes"

nikomatsakis (May 28 2020 at 14:41, on Zulip):

Not meant as an actual version number :)

simulacrum (May 28 2020 at 14:41, on Zulip):

like, we can back out, but then we're waiting until 11, I don't personally get the impression cherry-picking is viable

nikomatsakis (May 28 2020 at 14:41, on Zulip):

I guess I feel like

nikomatsakis (May 28 2020 at 14:41, on Zulip):

upgrading LLVM tends to be pretty disruptive

nikomatsakis (May 28 2020 at 14:41, on Zulip):

I am worried that trying to do a "big jump" from 9 to 11 would be "even more disruptive"

nikomatsakis (May 28 2020 at 14:42, on Zulip):

but maybe that's not true

pnkfelix (May 28 2020 at 14:42, on Zulip):

I still think we should back this out from beta

nikomatsakis (May 28 2020 at 14:42, on Zulip):

that seems reasonable, to give us a bit more time to consider

Nikita Popov (May 28 2020 at 14:42, on Zulip):

The main problem is that if we don't upgrade LLVM is that we get an increasing large number of increasingly large (many kloc) backports from newer versions.

pnkfelix (May 28 2020 at 14:42, on Zulip):

LIke, this upgrade only landed 8 days ago

simulacrum (May 28 2020 at 14:43, on Zulip):

I am okay backing out of beta

simulacrum (May 28 2020 at 14:43, on Zulip):

(well, not putting it into beta)

Nikita Popov (May 28 2020 at 14:43, on Zulip):

By the way, as far as I'm aware the issues with LLVM 10 are exclusively related to compile-time performance, not run-time performance. (IIRC check builds improved a couple percent, which is a proxy for run-time performance.)

nikomatsakis (May 28 2020 at 14:43, on Zulip):

I wanted to ask whether we meant backing out on nightly and re-introducing

nikomatsakis (May 28 2020 at 14:43, on Zulip):

or something else

simulacrum (May 28 2020 at 14:43, on Zulip):

I think landing the revert direct to beta

pnkfelix (May 28 2020 at 14:43, on Zulip):

Nikita Popov said:

By the way, as far as I'm aware the issues with LLVM 10 are exclusively related to compile-time performance, not run-time performance.

but I thought even your PR said there were optimization regressions ?

simulacrum (May 28 2020 at 14:44, on Zulip):

I would not change nightly, we want to maximize testing

nikomatsakis (May 28 2020 at 14:44, on Zulip):

it also just seems like more work

pnkfelix (May 28 2020 at 14:44, on Zulip):

hmm

pnkfelix (May 28 2020 at 14:44, on Zulip):

okay

nikomatsakis (May 28 2020 at 14:44, on Zulip):

I'm going to try to draw up a few notes

pnkfelix (May 28 2020 at 14:44, on Zulip):

I don't object to a revert direct to beta, if @simulacrum thinks that is best

nikomatsakis (May 28 2020 at 14:44, on Zulip):

from this conversation

Esteban Küber (May 28 2020 at 14:44, on Zulip):

Bifurcating nightly and beta for too long is a recipe for trouble

nikomatsakis (May 28 2020 at 14:44, on Zulip):

in this hackmd

simulacrum (May 28 2020 at 14:44, on Zulip):

@Esteban Küber well to be clear this would be a one cycle thing

pnkfelix (May 28 2020 at 14:44, on Zulip):

Esteban Küber said:

Bifurcating nightly and beta for too long is a recipe for trouble

this is why I said "hmmm"

simulacrum (May 28 2020 at 14:44, on Zulip):

and it's just making beta be nightly - 13 days or so

simulacrum (May 28 2020 at 14:45, on Zulip):

(in terms of just LLVM)

Nikita Popov (May 28 2020 at 14:45, on Zulip):

pnkfelix said:

but I thought even your PR said there were optimization regressions ?

There were some regressions, but they became non-visible for us due to stdlib changes. It's the usual issue with RangeInclusive in rust being broken by design.

pnkfelix (May 28 2020 at 14:45, on Zulip):

is it worth considering bracnhing beta from 13 days ago?

simulacrum (May 28 2020 at 14:45, on Zulip):

I don't think we need to be that harsh, there's really not that much point imo

pnkfelix (May 28 2020 at 14:45, on Zulip):

and cherry-picking actually fixes to regressions?

pnkfelix (May 28 2020 at 14:45, on Zulip):

okay

Esteban Küber (May 28 2020 at 14:45, on Zulip):

Buying ourselves one cycle is good, but I can see us having the same conversation in 6 weeks and delaying again, and again

pnkfelix (May 28 2020 at 14:46, on Zulip):

We should revisit this topic again

pnkfelix (May 28 2020 at 14:46, on Zulip):

maybe in a Friday meeting

Esteban Küber (May 28 2020 at 14:46, on Zulip):

But yeah, agree that buying time now is very useful

nagisa (May 28 2020 at 14:46, on Zulip):

Esteban Küber said:

Buying ourselves one cycle is good, but I can see us having the same conversation in 6 weeks and delaying again, and again

There will be significantly more pushback to the idea of backporting a revert as time goes on

simulacrum (May 28 2020 at 14:46, on Zulip):

to be clear the only reason why I'm okay reverting on beta is because we just haven't had that much testing

nikomatsakis (May 28 2020 at 14:46, on Zulip):

At the moment my opinion remains that we have to eventually track LLVM

nikomatsakis (May 28 2020 at 14:46, on Zulip):

we just can't "stall" on some older version for very long

nikomatsakis (May 28 2020 at 14:47, on Zulip):

holding off a cycle seems fine; I don't know what it buys us, but maybe something

pnkfelix (May 28 2020 at 14:47, on Zulip):

okay

Wesley Wiser (May 28 2020 at 14:47, on Zulip):

I guess I'm confused why we're talking about reverting this on beta then

pnkfelix (May 28 2020 at 14:47, on Zulip):

can we move along then?

Nikita Popov (May 28 2020 at 14:47, on Zulip):

I don't think we really buy anything by waiting another 6 weeks, unless we specifically decide to track LLVM master instead. (I'd be really happy to bump to master, but there are people who want to use released versions due to cross-language LTO concerns.)

pnkfelix (May 28 2020 at 14:47, on Zulip):

okay wait then

pnkfelix (May 28 2020 at 14:47, on Zulip):

if there's objections to this plan then lets keep discussing

Wesley Wiser (May 28 2020 at 14:47, on Zulip):

Is it just so we have more time to try the change out before it hits stable?

Wesley Wiser (May 28 2020 at 14:47, on Zulip):

Or are we trying to delay the performance implications?

simulacrum (May 28 2020 at 14:47, on Zulip):

well, my current plan is:

simulacrum (May 28 2020 at 14:48, on Zulip):

(e.g. LLVM asserts or w/e)

pnkfelix (May 28 2020 at 14:48, on Zulip):

oh interesting

pnkfelix (May 28 2020 at 14:48, on Zulip):

@simulacrum when you say regressions, you're not talking about performance regressions, just correctness ones?

simulacrum (May 28 2020 at 14:48, on Zulip):

yes

pnkfelix (May 28 2020 at 14:48, on Zulip):

wow that was not how I interpreted the plan

nikomatsakis (May 28 2020 at 14:49, on Zulip):

me either :)

nikomatsakis (May 28 2020 at 14:49, on Zulip):

but it seems like a sensible one

nikomatsakis (May 28 2020 at 14:49, on Zulip):

do we have any reason to expect regressions of that kind?

pnkfelix (May 28 2020 at 14:49, on Zulip):

so my thought was: Revert to LLVM 9 (either on beta alone after branching, or on nightly before beta branch)

simulacrum (May 28 2020 at 14:49, on Zulip):

we usually hit similar regressions after llvm upgrades

nikomatsakis (May 28 2020 at 14:49, on Zulip):

ok

nikomatsakis (May 28 2020 at 14:49, on Zulip):

ps, still tracking the conversation here

nikomatsakis (May 28 2020 at 14:50, on Zulip):

let me know if you see points that are missing, or feel free to add

Nikita Popov (May 28 2020 at 14:50, on Zulip):

Yes, miscompiles are somewhat common after LLVM upgrades. This time we'll probably see less than usual, because we did the update much later (we're nearly on 10.0.1 now).

nikomatsakis (May 28 2020 at 14:50, on Zulip):

btw are we aware of any efforts on LLVM's side to release a "point release" to address perf problems in 10.x series

nikomatsakis (May 28 2020 at 14:51, on Zulip):

slash what is the schedule around LLVM 11?

nikomatsakis (May 28 2020 at 14:51, on Zulip):

(I think they do train releases every 6 months? I forget.)

pnkfelix (May 28 2020 at 14:51, on Zulip):

(Part of my thinking was that other changes we make to the compiler in nightly could be deliberately targeted to lessen the compile-time impact that LLVM 10 upgrade has caused.)

Nikita Popov (May 28 2020 at 14:51, on Zulip):

No, as far as I'm aware there are no performance related fixes on the 10.x branch. And yes, it's every 6 months.

Wesley Wiser (May 28 2020 at 14:51, on Zulip):

Seems like a release every 6 months or so

Wesley Wiser (May 28 2020 at 14:51, on Zulip):

10 was released in March

Wesley Wiser (May 28 2020 at 14:51, on Zulip):

So 11 should be around September?

pnkfelix (May 28 2020 at 14:51, on Zulip):

(but that only works if we give ourselves the time to make such follow-on changes, and if we actually have the work resources to make such changes)

pnkfelix (May 28 2020 at 14:52, on Zulip):

I guess any such follow-on changes could be backported to beta if they are truly amazing

nikomatsakis (May 28 2020 at 14:52, on Zulip):

@Nikita Popov Just out of curiosity, "how much" harder do you think it would be to upgrade directly from LLVM 9 to LLVM 11, in terms of tracking down and handling regressions and the like? Do you have any sense for that?

nikomatsakis (May 28 2020 at 14:53, on Zulip):

I guess I'm trying to figure out if that is at all a viable option -- it of course assumes LLVM 11 will be better, which isn't entirely clear or known.

pnkfelix (May 28 2020 at 14:53, on Zulip):

we're going to run out of time at this rate, so I'm struggling to decide whether to cut this conversation off or not

Santiago Pastorino (May 28 2020 at 14:54, on Zulip):

@pnkfelix I'd skip the rest of the nominations and continue with this

pnkfelix (May 28 2020 at 14:54, on Zulip):

I want to at least point at the WG checkins on the agenda

Wesley Wiser (May 28 2020 at 14:54, on Zulip):

Maybe it's worth scoping the conversation to just what we want to do about a possible revert on the beta branch?

pnkfelix (May 28 2020 at 14:54, on Zulip):

the other nominated issues can wait until next week, hopefully

Santiago Pastorino (May 28 2020 at 14:54, on Zulip):

Santiago Pastorino said:

pnkfelix I'd skip the rest of the nominations and continue with this

the rest are not urgent, and can wait

nikomatsakis (May 28 2020 at 14:55, on Zulip):

I guess we can probably cut off the conversation and see what the results of the beta crater run are

Nikita Popov (May 28 2020 at 14:55, on Zulip):

@nikomatsakis In terms of technical effort, going directly to LLVM 11 should not cause particular problems. This does mean that any regressions (to run-time performance, or miscompiles) will come from a twice as large time range. In that case I'd prefer to instead do an upgrade to current LLVM master and let people who want cross language LTO use their own toolchain.

nikomatsakis (May 28 2020 at 14:56, on Zulip):

To be clear, @Nikita Popov, do you mean to do an upgrade to LLVM master now?

nikomatsakis (May 28 2020 at 14:56, on Zulip):

(or, perhaps, post-release?)

Nikita Popov (May 28 2020 at 14:56, on Zulip):

In case we want to revert the LLVM 10 upgrade now, I'd go for an LLVM master upgrade post-release.

pnkfelix (May 28 2020 at 14:56, on Zulip):

Nikita Popov said:

In that case I'd prefer to instead do an upgrade to current LLVM master and let people who want cross language LTO use their own toolchain.

:sad:

pnkfelix (May 28 2020 at 14:57, on Zulip):

that somewhat undermines our "adopt Rust piecewise as you need it" story

pnkfelix (May 28 2020 at 14:58, on Zulip):

but I guess everything's a tradeoff; no one's going to adopt it if compiles never finish

nikomatsakis (May 28 2020 at 14:58, on Zulip):

I don't know who is using cross-lang LTO, the only consumer I know of is FF, and they at least are sticking with LLVM 9, so I guess they need their own toolchain anyhow?

nikomatsakis (May 28 2020 at 14:58, on Zulip):

(Not sure how that works...)

pnkfelix (May 28 2020 at 14:58, on Zulip):

oh jeez I hadn't even thought of that

Nikita Popov (May 28 2020 at 14:58, on Zulip):

Me neither...

pnkfelix (May 28 2020 at 14:58, on Zulip):

in terms of the implication of them not upgrading their version of clang

Nikita Popov (May 28 2020 at 14:59, on Zulip):

(Ideally we'd fix our LTO model to be linker plugin based and avoid the whole problem, but that's not a short term thing)

nikomatsakis (May 28 2020 at 15:00, on Zulip):

So here are the options I have seen

pnkfelix (May 28 2020 at 15:00, on Zulip):

@simulacrum so if we wait until the beta crater run, that will only start after the beta branch, which will be ... Monday? Is that right? So the beta crater run might be done by next Thursday's meeting?

simulacrum (May 28 2020 at 15:00, on Zulip):

no

simulacrum (May 28 2020 at 15:00, on Zulip):

beta crater is probably something like 2 weeks out

pnkfelix (May 28 2020 at 15:00, on Zulip):

so nice to have clear definite answers. :)

nikomatsakis (May 28 2020 at 15:00, on Zulip):

it seems like we're deciding mostly between "backout from beta" and "do nothing"

pnkfelix (May 28 2020 at 15:00, on Zulip):

(even if they're not the ones I wanted)

nikomatsakis (May 28 2020 at 15:01, on Zulip):

(I guess that deciding whether to backout from beta or to upgrade nightly to LLVM master are orthogonal, really)

simulacrum (May 28 2020 at 15:01, on Zulip):

otoh beta crater run will be faster because we have 4 crater machines vs 3 -- https://crater.rust-lang.org/agents -- so who knows.

nikomatsakis (May 28 2020 at 15:01, on Zulip):

but it does seem like we don't want to backout altogether

nikomatsakis (May 28 2020 at 15:01, on Zulip):

which is probably the only thing we had to decide now

pnkfelix (May 28 2020 at 15:02, on Zulip):

okay

pnkfelix (May 28 2020 at 15:02, on Zulip):

maybe we leave this topic on the nominated issues list

pnkfelix (May 28 2020 at 15:02, on Zulip):

so that we can circle back to it next week?

pnkfelix (May 28 2020 at 15:02, on Zulip):

Or would it be better to allocate a Friday meeting to discuss in more depth?

pnkfelix (May 28 2020 at 15:03, on Zulip):

(when is our next planning meeting ...)

simulacrum (May 28 2020 at 15:03, on Zulip):

/me is not really sure we'll have any data by next week's meeting

simulacrum (May 28 2020 at 15:03, on Zulip):

but we can briefly discuss next week and then decide if it runs long if we should allocate a friday meeting perhaps?

pnkfelix (May 28 2020 at 15:04, on Zulip):

next planning meeting will be June 5th

pnkfelix (May 28 2020 at 15:04, on Zulip):

so maybe I'll try to write up a meeting proposal doc before then

pnkfelix (May 28 2020 at 15:04, on Zulip):

we'll see

Wesley Wiser (May 28 2020 at 15:04, on Zulip):

If I'm reading this right, beta releases the day before on June 4 https://forge.rust-lang.org/

pnkfelix (May 28 2020 at 15:04, on Zulip):

okay we're out of time. But, this was an awesome meeting you all, Thanks to everyone in @T-compiler/meeting for attending!

pnkfelix (May 28 2020 at 15:05, on Zulip):

Wesley Wiser said:

If I'm reading this right, beta releases the day before on June 4 https://forge.rust-lang.org/

yeah my take is that if we decide to revert on beta, we can do that on the beta branch after June 4th)

Wesley Wiser (May 28 2020 at 15:05, on Zulip):

Ah ok :thumbs_up:

simulacrum (May 28 2020 at 15:05, on Zulip):

yep!

Last update: Nov 25 2020 at 03:00UTC