Stream: t-compiler

Topic: weekly meeting 2019-05-23 #54818


pnkfelix (May 23 2019 at 12:03, on Zulip):

Hi @T-compiler/meeting ; the triage meeting will be starting in a little less than two hours. (For some reason the google calendar lost the recurring meeting; either I or niko will try to look into that.) I'll be doing pre-triage in a parallel topic in the meantime.

pnkfelix (May 23 2019 at 12:04, on Zulip):

The WG checkin page needs to be updated with more planned meetings, but I'll wing it for now.

pnkfelix (May 23 2019 at 12:05, on Zulip):

(I guess compiler-team PR #67 is relevant here...)

pnkfelix (May 23 2019 at 12:09, on Zulip):

(added some entries)

pnkfelix (May 23 2019 at 12:10, on Zulip):

:question: @mw want to have another go this week at doing a checkin from WG-pgo?

pnkfelix (May 23 2019 at 12:10, on Zulip):

:question: @nikomatsakis would you be able to represent @WG-traits for a checkin on that front?

pnkfelix (May 23 2019 at 13:32, on Zulip):

:note: I have closed "Borrow checker on beta rejects code accepted on stable." #60927 as "expected, acceptable [breaking-change]fallout from a soundness fix." @centril has independently decided not to add mention of this to the relnotes/blog.

pnkfelix (May 23 2019 at 13:34, on Zulip):

:exclamation: We'll be talking about "ICE with incorrect turbofish" #60989 during the meeting, but if someone has time right now (as in, next few hours0 to try to make a backportable fix, we might be able to get it into the release.

mw (May 23 2019 at 13:48, on Zulip):

@pnkfelix yes, I can do that

pnkfelix (May 23 2019 at 14:02, on Zulip):

Okay, hi @T-compiler/meeting , lets get this started

pnkfelix (May 23 2019 at 14:03, on Zulip):

we have ten unassigned P-high issues

pnkfelix (May 23 2019 at 14:03, on Zulip):

three of them are nominated for discussion (so I'll wait to talk about them later)

pnkfelix (May 23 2019 at 14:04, on Zulip):

six of the rest are ICE's

pnkfelix (May 23 2019 at 14:04, on Zulip):

and then there's this last one: "llvm lint: "Undefined behavior: Call argument type mismatches callee parameter type" with mixing debug and release" #48310

centril (May 23 2019 at 14:05, on Zulip):

Let's deal with https://github.com/rust-lang/rust/issues/60989 first of the nominated issues?

pnkfelix (May 23 2019 at 14:05, on Zulip):

its nominated

pnkfelix (May 23 2019 at 14:06, on Zulip):

regarding #48310, we need to resolve whether it is indeed an LLVM bug, and if so, file a bug against LLVM.

varkor (May 23 2019 at 14:06, on Zulip):

(I can look into #60989 tonight)

pnkfelix (May 23 2019 at 14:06, on Zulip):

I don't know whom of the people present is most adept at such. Feel free to raise your hand and/or assign yourself.

pnkfelix (May 23 2019 at 14:06, on Zulip):

I just realized, I should have waited for start the P-high stuff

pnkfelix (May 23 2019 at 14:06, on Zulip):

And give people a few minutes for announcements

centril (May 23 2019 at 14:06, on Zulip):

@varkor if you can look at it right after the meeting that would be optimal :slight_smile: -- it's blocking 1.35.0 release atm

pnkfelix (May 23 2019 at 14:07, on Zulip):

So: Any announcements beyond the ones I posted up above?

pnkfelix (May 23 2019 at 14:08, on Zulip):

So: Any announcements beyond the ones I posted up above?

looks like the answer there is "no"

varkor (May 23 2019 at 14:09, on Zulip):

@centril: I'm not at my computer, and won't be for several hours, so unfortunately I can't look at it immediately — if anyone else can look at it sooner, you're welcome to

pnkfelix (May 23 2019 at 14:09, on Zulip):

okay, so lets look first at the P-high nominated issues

pnkfelix (May 23 2019 at 14:09, on Zulip):

first up, as you can see from ongoing dialogue, is: "ICE with incorrect turbofish #60989

oli (May 23 2019 at 14:09, on Zulip):

@varkor I'm currently looking into it, but am pretty stumped

Pietro Albini (May 23 2019 at 14:10, on Zulip):

ok, so if we can get a PR r+ed in an hour or two we can include it in 1.35.0

pnkfelix (May 23 2019 at 14:11, on Zulip):

lets discuss briefly what happens if we don't have a PR in the next two hours

pnkfelix (May 23 2019 at 14:11, on Zulip):

would this bug warrant delaying the release?

Pietro Albini (May 23 2019 at 14:11, on Zulip):

I don't think this is bad enough to delay the release

pnkfelix (May 23 2019 at 14:11, on Zulip):

okay, any one want to argue the other side?

Pietro Albini (May 23 2019 at 14:12, on Zulip):

it would be the first time we do that, and it's "just" an error->ICE, which is really bad for UX but it's not breaking any existing code

pnkfelix (May 23 2019 at 14:12, on Zulip):

if not, then we can just see how things go for the next few hours. (and if a fix takes longer, we'll decide later whether to do a backport to stable, and likewise let T-release decide on whether a point release is warranted.)

centril (May 23 2019 at 14:12, on Zulip):

I think we can wait a bit more than 1-2 hours =P -- end of day maybe

varkor (May 23 2019 at 14:13, on Zulip):

the original error isn't even visible, which is unfortunate

varkor (May 23 2019 at 14:13, on Zulip):

it's an entirely unilluminating crash for users

pnkfelix (May 23 2019 at 14:13, on Zulip):

I think we can wait a bit more than 1-2 hours =P -- end of day maybe

understanding the actual time limits may be important

pnkfelix (May 23 2019 at 14:13, on Zulip):

for the people who are searching for a fix

Esteban Küber (May 23 2019 at 14:13, on Zulip):

It does have a high chance of being hit by rls as it is reasonable looking code

pnkfelix (May 23 2019 at 14:13, on Zulip):

in terms of knowing at what point to give up stop sprinting

Esteban Küber (May 23 2019 at 14:13, on Zulip):

That anyone could write during development

pnkfelix (May 23 2019 at 14:14, on Zulip):

@Pietro Albini can you provide some idea as to timeline here?

Pietro Albini (May 23 2019 at 14:14, on Zulip):

it's always 4 hours from the PR being r+ed and the release coming out

Pietro Albini (May 23 2019 at 14:14, on Zulip):

with 3 for the CI build and 1 for the release itself

centril (May 23 2019 at 14:14, on Zulip):

@oli I have a slight reduction for you: https://play.rust-lang.org/?version=beta&mode=debug&edition=2018&gist=7ef6eb4016a801be15ff1df321094ef5 if that helps

pnkfelix (May 23 2019 at 14:15, on Zulip):

and release is supposed to come out at what time, relative to now?

Pietro Albini (May 23 2019 at 14:15, on Zulip):

usually in two hours, but we don't say explicitly when

pnkfelix (May 23 2019 at 14:15, on Zulip):

so waiting until end of day for a fix would represent a (short) delay of the release?

Pietro Albini (May 23 2019 at 14:15, on Zulip):

yeah, but it's not a big deal

Pietro Albini (May 23 2019 at 14:16, on Zulip):

I won't be available after 21 UTC though, so unless we find someone else to run the release (alex?) the time limit is 17 UTC for the PR to be r+ed

pnkfelix (May 23 2019 at 14:16, on Zulip):

okay. I'll let @oli @varkor and @Pietro Albini negotiate beyond this point, then.

pnkfelix (May 23 2019 at 14:16, on Zulip):

okay?

centril (May 23 2019 at 14:16, on Zulip):

ping @Alex Crichton on that ^

pnkfelix (May 23 2019 at 14:17, on Zulip):

@oli can I add you to assignee list (in addition to @varkor ) on #60989 ?

pnkfelix (May 23 2019 at 14:17, on Zulip):

I think we've discussed enough that I can remove nomination label from #60989

pnkfelix (May 23 2019 at 14:18, on Zulip):

next nominated P-high issue: "[LLVM] Segmentation fault on MacOS with > 1 codegen units and optimization > 0" #60925

pnkfelix (May 23 2019 at 14:19, on Zulip):

this one is pretty awesome

pnkfelix (May 23 2019 at 14:19, on Zulip):

the going theory is that its caused by LLVM mishandling symbols that have .llvm. embedded in them.

pnkfelix (May 23 2019 at 14:19, on Zulip):

cc @eddyb and @mw ^

oli (May 23 2019 at 14:19, on Zulip):

I added myself to #60989

mw (May 23 2019 at 14:19, on Zulip):

looks like a duplicate of https://github.com/rust-lang/rust/issues/53912

pnkfelix (May 23 2019 at 14:19, on Zulip):

yes, but that one got some workaround plugged in for it, according to the discussion?

pnkfelix (May 23 2019 at 14:21, on Zulip):

anyway

mw (May 23 2019 at 14:21, on Zulip):

there are several workarounds

pnkfelix (May 23 2019 at 14:21, on Zulip):

what should our short term response to this be?

mw (May 23 2019 at 14:21, on Zulip):

the OP lists them already

pnkfelix (May 23 2019 at 14:21, on Zulip):

yes, but for a user

mw (May 23 2019 at 14:21, on Zulip):

the real fix would be switching to the new mangling scheme

pnkfelix (May 23 2019 at 14:21, on Zulip):

are they expected to know how to deal with this?

pnkfelix (May 23 2019 at 14:22, on Zulip):

ah the new mangling scheme will cope with this, automatically?

mw (May 23 2019 at 14:22, on Zulip):

yes, the new mangling won't produce . chars

pnkfelix (May 23 2019 at 14:22, on Zulip):

even so, the new mangling scheme is a merged RFC but not implemented

mw (May 23 2019 at 14:22, on Zulip):

so there can be no .llvm. substrings in normal symbol names

pnkfelix (May 23 2019 at 14:22, on Zulip):

ah but there is PR #57967

pnkfelix (May 23 2019 at 14:22, on Zulip):

so okay

mw (May 23 2019 at 14:22, on Zulip):

I'd be fine with adding a runtime check for the offending substring

mw (May 23 2019 at 14:23, on Zulip):

and issuing a warning with link

pnkfelix (May 23 2019 at 14:23, on Zulip):

well

pnkfelix (May 23 2019 at 14:23, on Zulip):

what is likely timeline for #57967 ?

mw (May 23 2019 at 14:23, on Zulip):

the new mangling scheme won't be the default for a while

mw (May 23 2019 at 14:23, on Zulip):

there are still some performance issues

pnkfelix (May 23 2019 at 14:23, on Zulip):

okay then

pnkfelix (May 23 2019 at 14:23, on Zulip):

lets add at least a lint or something then

mw (May 23 2019 at 14:23, on Zulip):

and not all external tools can deal with the new scheme yet

pnkfelix (May 23 2019 at 14:23, on Zulip):

right? Because the results are so very bad

pnkfelix (May 23 2019 at 14:24, on Zulip):

when one hits this, right?

mw (May 23 2019 at 14:24, on Zulip):

sounds good to me

pnkfelix (May 23 2019 at 14:24, on Zulip):

okay

mw (May 23 2019 at 14:25, on Zulip):

maybe that's something @davidtwco wants to look into? (since they are looking for something to do)

davidtwco (May 23 2019 at 14:25, on Zulip):

Performance issues with the mangling scheme?

centril (May 23 2019 at 14:26, on Zulip):

I snatched @davidtwco for https://github.com/rust-lang/rust/issues/49147 already =P

mw (May 23 2019 at 14:26, on Zulip):

implementing a lint/warning

davidtwco (May 23 2019 at 14:26, on Zulip):

I have time.

pnkfelix (May 23 2019 at 14:26, on Zulip):

okay. removing nominated tag from #60925

mw (May 23 2019 at 14:26, on Zulip):

that shouldn't take a lot of time

pnkfelix (May 23 2019 at 14:26, on Zulip):

@davidtwco do you have a Mac? That bug claims it only repro's there

davidtwco (May 23 2019 at 14:27, on Zulip):

Oh, I do not.

mw (May 23 2019 at 14:27, on Zulip):

I'm pretty sure it repros on other platforms too

pnkfelix (May 23 2019 at 14:27, on Zulip):

okay. well maybe you can prototype and I can test. :)

mw (May 23 2019 at 14:27, on Zulip):

it's related to ThinLTO

pnkfelix (May 23 2019 at 14:27, on Zulip):

anyway lets move along

mw (May 23 2019 at 14:27, on Zulip):

which works the same everywhere, I think

pnkfelix (May 23 2019 at 14:27, on Zulip):

last P-high I-nominated issue: "forego caching cycles leads to a severe perf regression" #60846

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

so we had thought that the fallout from this would be limited

mw (May 23 2019 at 14:29, on Zulip):

that one also makes bootstrapping the parallel compiler impossible

pnkfelix (May 23 2019 at 14:29, on Zulip):

though that was based in part on this comment: https://github.com/rust-lang/rust/pull/60444#issuecomment-490897465

pnkfelix (May 23 2019 at 14:29, on Zulip):

which said the impact was bounded by (I think) a multiplication by N, where N is the length of the cycle.

pnkfelix (May 23 2019 at 14:30, on Zulip):

maybe we are hitting such a long cycle that it manifest as a 16x slowdown end-to-end...?

pnkfelix (May 23 2019 at 14:31, on Zulip):

I'm guessing the best people to investigate this are probably @Ariel Ben-Yehuda , @nikomatsakis , or me

centril (May 23 2019 at 14:32, on Zulip):

(where is Ariel anyways...)

pnkfelix (May 23 2019 at 14:33, on Zulip):

Given the burdens that the other two already have

pnkfelix (May 23 2019 at 14:33, on Zulip):

I'll assign #60846 to myself

pnkfelix (May 23 2019 at 14:33, on Zulip):

(I doubt I'll be able to fix it on my own, but it doesn't need to take up more meeting time.)

pnkfelix (May 23 2019 at 14:34, on Zulip):

okay. there still remain seven unassigned P-high issues

pnkfelix (May 23 2019 at 14:35, on Zulip):

most of them are ICE's.

pnkfelix (May 23 2019 at 14:35, on Zulip):

People looking for work: ICE's can be fun to fix! Really!

pnkfelix (May 23 2019 at 14:35, on Zulip):

/me tries to grin a little less manically

oli (May 23 2019 at 14:35, on Zulip):

I know, I'm doing a fun one right now :P

pnkfelix (May 23 2019 at 14:36, on Zulip):

lets move along now though

pnkfelix (May 23 2019 at 14:36, on Zulip):

we have two beta nominations

pnkfelix (May 23 2019 at 14:36, on Zulip):

first: "Fix ICE with inconsistent macro matchers" #61046

centril (May 23 2019 at 14:37, on Zulip):

@pnkfelix We should give out t-shirts for people who fix ICEs that say "ICE ICE baby" =P

pnkfelix (May 23 2019 at 14:37, on Zulip):

/me has been hearing that joke for almost 18 years

pnkfelix (May 23 2019 at 14:38, on Zulip):

gotta adapt the rest of the rap to the back of the T-shirt

pnkfelix (May 23 2019 at 14:39, on Zulip):

huh: "I'm killin' your brain like a poisonous mushroom"

lqd (May 23 2019 at 14:39, on Zulip):

check out this fix while my rustc compiles it

pnkfelix (May 23 2019 at 14:40, on Zulip):

okay, anyway

pnkfelix (May 23 2019 at 14:40, on Zulip):

looks like #61046 is approved

pnkfelix (May 23 2019 at 14:40, on Zulip):

next: "debuginfo: Revert to old/more verbose behavior for -Cdebuginfo=1" #61007

pnkfelix (May 23 2019 at 14:41, on Zulip):

looks fine to me

pnkfelix (May 23 2019 at 14:43, on Zulip):

okay that's all the beta-nominations

pnkfelix (May 23 2019 at 14:44, on Zulip):

okay, stable-to-beta regressions

Esteban Küber (May 23 2019 at 14:44, on Zulip):

#60710?

pnkfelix (May 23 2019 at 14:44, on Zulip):

#60710 was already beta-accepted

Esteban Küber (May 23 2019 at 14:45, on Zulip):

ah, ok

pnkfelix (May 23 2019 at 14:45, on Zulip):

(the link above isn't smart and doesn't filter out the beta-accepted issues; it probably should)

pnkfelix (May 23 2019 at 14:45, on Zulip):

for stable-to-beta regressions, we already discussed #60989

pnkfelix (May 23 2019 at 14:46, on Zulip):

I'm going to try to look at " Overflowing literal lint is silenced in range literals in loops on nightly" #60459

pnkfelix (May 23 2019 at 14:46, on Zulip):

but I won't have time to actually do so until tomorrow at the earliest

pnkfelix (May 23 2019 at 14:46, on Zulip):

so if anyone has free time, that bug is high-priority for the release team.

pnkfelix (May 23 2019 at 14:47, on Zulip):

(luckily, it is a stable-to-beta regression that doesn't impact the pending release.)

pnkfelix (May 23 2019 at 14:47, on Zulip):

and "reached the type-length limit while instantiating" #58952 is explicitly P-medium

pnkfelix (May 23 2019 at 14:48, on Zulip):

there are three remaining nominated items

varkor (May 23 2019 at 14:48, on Zulip):

I think @Esteban Küber had a suggestion for #60459?

Esteban Küber (May 23 2019 at 14:48, on Zulip):

I thought I had replied to that issue with a link to the code that needs to change... I'll post shortly, it can be a two line change for fixing this with low potential fallout

Esteban Küber (May 23 2019 at 14:48, on Zulip):

Yeah, I was convinced I had written it in the ticket

Esteban Küber (May 23 2019 at 14:48, on Zulip):

I'll do so now

varkor (May 23 2019 at 14:49, on Zulip):

(I saw the comment on Zulip)

pnkfelix (May 23 2019 at 14:49, on Zulip):

PR "Allow lifetime elision in arbitrary_self_types" #60944 is nominated

pnkfelix (May 23 2019 at 14:49, on Zulip):

but maybe it was nominated for T-lang. @centril can you maybe try to leave comments when you nominate?

centril (May 23 2019 at 14:50, on Zulip):

yeah sure

centril (May 23 2019 at 14:50, on Zulip):

it was for t-lang

pnkfelix (May 23 2019 at 14:50, on Zulip):

(just to provide more context for the discussion you expect to occur when you nominate; even when only one team is tagged)

pnkfelix (May 23 2019 at 14:50, on Zulip):

thanks

pnkfelix (May 23 2019 at 14:50, on Zulip):

"crater run to estimate impact of full NLL transition" #60680 is nominated but I think that's leftover

pnkfelix (May 23 2019 at 14:51, on Zulip):

or wait it was renominated, never mind

centril (May 23 2019 at 14:51, on Zulip):

no =P

pnkfelix (May 23 2019 at 14:51, on Zulip):

(again for lang team, and maybe eventually compiler team)

pnkfelix (May 23 2019 at 14:51, on Zulip):

last: "Panics in destructors can cause the return value to be leaked" #47949

centril (May 23 2019 at 14:51, on Zulip):

I did leave a comment this time around :D

pnkfelix (May 23 2019 at 14:52, on Zulip):

last: "Panics in destructors can cause the return value to be leaked" #47949

@Matthew Jasper , I think there's some followup questions to your post here?

pnkfelix (May 23 2019 at 14:52, on Zulip):

but also: should this remain P-medium? Or is it higher priority to fix?

pnkfelix (May 23 2019 at 14:53, on Zulip):

I suspect, as a long-standing bug, it can probably remain P-medium

pnkfelix (May 23 2019 at 14:53, on Zulip):

Okay

pnkfelix (May 23 2019 at 14:53, on Zulip):

Next up, @mw , you get a chance to fill us in with a WG-pgo checkin!

mw (May 23 2019 at 14:53, on Zulip):

sure

pnkfelix (May 23 2019 at 14:53, on Zulip):

with a whopping seven minutes to do it in

mw (May 23 2019 at 14:54, on Zulip):

As a reminder: PGO stands for Profile Guided Optimization and is an advanced optimization technique offered by most mature compiler toolchains.

mw (May 23 2019 at 14:54, on Zulip):

It tries to facilitate more intelligent optimization decisions by taking information about a programs runtime behavior into account.

mw (May 23 2019 at 14:54, on Zulip):

The main update for the "working group" is that PGO support is basically done :tada:

mw (May 23 2019 at 14:54, on Zulip):

working group is in quotes, because it's just me :)

mw (May 23 2019 at 14:55, on Zulip):

I'll be putting the feature's stabilization to a vote for y'all soon.

mw (May 23 2019 at 14:55, on Zulip):

There is a tracking issue that lists the things that still need to be done before stabilization here:

mw (May 23 2019 at 14:55, on Zulip):

https://github.com/rust-lang/rust/issues/59913

mw (May 23 2019 at 14:55, on Zulip):

What's left to do is basically documenting the commandline flags and moving them from -Z to -C.

mw (May 23 2019 at 14:55, on Zulip):

There's already is documentation on how PGO is implemented in rustc in the guide:
:+1: https://rust-lang.github.io/rustc-guide/profile-guided-optimization.html :+1:

mw (May 23 2019 at 14:55, on Zulip):

I'd also like to do some more testing of this via using it for Firefox. Also, this is pretty much ready for being tried out by anybody whose interested.

mw (May 23 2019 at 14:56, on Zulip):

@Alex Crichton also suggested writing a cargo subcommand that would do this mostly transparently, which sounds awesome :heart_eyes:

mw (May 23 2019 at 14:56, on Zulip):

that's pretty much it from me

mw (May 23 2019 at 14:56, on Zulip):

would be awesome to try out if this could speed up the compiler

mw (May 23 2019 at 14:57, on Zulip):

but that would be non-trivial to integrate into our CI, I think

pnkfelix (May 23 2019 at 14:57, on Zulip):

okay that's great

mw (May 23 2019 at 14:57, on Zulip):

there, I did it in 4 minutes, @pnkfelix :)

pnkfelix (May 23 2019 at 15:03, on Zulip):

Thanks to everyone in @T-compiler/meeting for attending!

pnkfelix (May 23 2019 at 15:04, on Zulip):

Hope to see many of you at the steering meeting tomorrow

pnkfelix (May 23 2019 at 15:04, on Zulip):

where the topic will be ...

pnkfelix (May 23 2019 at 15:04, on Zulip):

/me consults notes

pnkfelix (May 23 2019 at 15:04, on Zulip):

hmm

pnkfelix (May 23 2019 at 15:04, on Zulip):

no meeting scheduled?

pnkfelix (May 23 2019 at 15:05, on Zulip):

is there a holiday or something? What happened here: https://github.com/rust-lang/compiler-team/#steering-meeting

mw (May 23 2019 at 15:05, on Zulip):

I think we decided not to do one, since Niko can't attend

pnkfelix (May 23 2019 at 15:05, on Zulip):

Ah

pnkfelix (May 23 2019 at 15:05, on Zulip):

that makes a lot of sense, okay.

pnkfelix (May 23 2019 at 15:06, on Zulip):

In that case: I hope to see none of you in 24 hours

pnkfelix (May 23 2019 at 15:06, on Zulip):

lets all enjoy the weekend instead

pnkfelix (May 23 2019 at 15:06, on Zulip):

(and the release, right?)

Esteban Küber (May 23 2019 at 15:07, on Zulip):

May the release be speedy and free of errors

eddyb (May 23 2019 at 17:43, on Zulip):

oh good thing about the steering meeting, since I still have nothing prepared aaaaa

eddyb (May 23 2019 at 17:44, on Zulip):

@davidtwco @mw btw, I don't like the lint idea :P <https://github.com/rust-lang/rust/issues/60925#issuecomment-495316206>

davidtwco (May 23 2019 at 17:44, on Zulip):

I saw your comment. I’m happy to implement another solution if you and/or @mw have a better idea?

eddyb (May 23 2019 at 17:45, on Zulip):

my idea is in that comment :P

eddyb (May 23 2019 at 17:46, on Zulip):

https://github.com/rust-lang/rust/blob/master/src/librustc_codegen_utils/symbol_names.rs#L596

eddyb (May 23 2019 at 17:47, on Zulip):

I guess it's be easier to check for temp_buf.ends_with(".llv") when you hit an m :P

davidtwco (May 23 2019 at 17:48, on Zulip):

I can experiment with doing that.

mw (May 24 2019 at 09:46, on Zulip):

I'm fine with that

Last update: Nov 22 2019 at 05:25UTC