Stream: t-compiler

Topic: weekly meeting 2020-01-23 #54818


pnkfelix (Jan 23 2020 at 13:27, on Zulip):

Hi @T-compiler/meeting ; the triage meeting will be starting in 1 hour 33 minutes

pnkfelix (Jan 23 2020 at 13:27, on Zulip):

I will be doing pre-triage in a parallel topic

pnkfelix (Jan 23 2020 at 13:28, on Zulip):

This week we are scheduled to hear from @WG-profile-guided-optimization (which is ... heh, retired. Gotta change that part of the scheduler), and @WG-pipelining .

pnkfelix (Jan 23 2020 at 13:29, on Zulip):

Will @Alex Crichton be around to provide an update? (nnethercote is on PTO until Jan 28).

Alex Crichton (Jan 23 2020 at 14:33, on Zulip):

@pnkfelix I can yeah, but there is also no update to give! It's likely safe to archive the WG now

pnkfelix (Jan 23 2020 at 14:33, on Zulip):

okay thanks @Alex Crichton !

Alex Crichton (Jan 23 2020 at 14:33, on Zulip):

Or at least no update that I know of

pnkfelix (Jan 23 2020 at 15:01, on Zulip):

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

pnkfelix (Jan 23 2020 at 15:01, on Zulip):

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

pnkfelix (Jan 23 2020 at 15:01, on Zulip):

wow what is up with duplication...

pnkfelix (Jan 23 2020 at 15:02, on Zulip):

(is it just on my zulip client? Or do others see the duplicate messages?)

simulacrum (Jan 23 2020 at 15:02, on Zulip):

I do as well.

pnkfelix (Jan 23 2020 at 15:03, on Zulip):

okay well if its just on the initial one I wrote, then I won't worry about it

pnkfelix (Jan 23 2020 at 15:03, on Zulip):

so lets start with five minutes for ...

pnkfelix (Jan 23 2020 at 15:03, on Zulip):

Announcements

pnkfelix (Jan 23 2020 at 15:04, on Zulip):

First up: no design meeting tomorrow

pnkfelix (Jan 23 2020 at 15:04, on Zulip):

(@nikomatsakis reached out and @Vadim Petrochenkov cannot make either date, and then we failed to follow-up beyond there.)

nikomatsakis (Jan 23 2020 at 15:05, on Zulip):

I think the plan is that we'll discuss compiler-team#237 on Feb 7

nikomatsakis (Jan 23 2020 at 15:05, on Zulip):

but we have to make the announcement, indeed

nikomatsakis (Jan 23 2020 at 15:06, on Zulip):

The subject is "parser library-ification", and I would encourage folks to take a look at the existing write-ups that @matklad and others have prepared there

nikomatsakis (Jan 23 2020 at 15:06, on Zulip):

We would specifically like to discuss the proposal to extract out a portion of the parser that can be shared, to see whether that scheme could work and what complications might arise from it

pnkfelix (Jan 23 2020 at 15:07, on Zulip):

also: The next release is scheduled for January 30th (a week from today), and "no breakage week" started yesterday. See https://forge.rust-lang.org/

mw (Jan 23 2020 at 15:08, on Zulip):

what exactly does "no breakage week" mean?

pnkfelix (Jan 23 2020 at 15:08, on Zulip):

no tool breakage, I think.

simulacrum (Jan 23 2020 at 15:08, on Zulip):

you cannot land a change breaking clippy, rls, rustfmt

simulacrum (Jan 23 2020 at 15:08, on Zulip):

(miri can be broken I believe)

mw (Jan 23 2020 at 15:08, on Zulip):

ah ok

mw (Jan 23 2020 at 15:09, on Zulip):

so PRs would be reverted?

centril (Jan 23 2020 at 15:09, on Zulip):

no they would not land

centril (Jan 23 2020 at 15:09, on Zulip):

in the first place

mw (Jan 23 2020 at 15:09, on Zulip):

do we check tool breakage before landing?

centril (Jan 23 2020 at 15:09, on Zulip):

yes

mw (Jan 23 2020 at 15:09, on Zulip):

cool! I never saw that

pnkfelix (Jan 23 2020 at 15:10, on Zulip):

so really its not anything you need to actually think about. Yay!

centril (Jan 23 2020 at 15:10, on Zulip):

/me doesn't have such fortunes =D

pnkfelix (Jan 23 2020 at 15:11, on Zulip):

okay lets get started

pnkfelix (Jan 23 2020 at 15:11, on Zulip):

today's agenda items are on this hackmd: https://hackmd.io/YBpyTmQ7S_uPhScJWDwBag?both

pnkfelix (Jan 23 2020 at 15:11, on Zulip):

(they are, as usual, derived from the list at #54818)

pnkfelix (Jan 23 2020 at 15:11, on Zulip):

we have two beta backport nominations

pnkfelix (Jan 23 2020 at 15:12, on Zulip):

beta nom: "Do not ICE on malformed suggestion spans" #68256

centril (Jan 23 2020 at 15:13, on Zulip):

(that code-path is pretty ICE happy... I fixed an ICE there a while ago as well)

pnkfelix (Jan 23 2020 at 15:14, on Zulip):

(I sort of shrug on this. Its fine, but the original bug showed that you got useful diagnostics before the ICE occurred, so it was only P-medium priority in the first place.)

pnkfelix (Jan 23 2020 at 15:14, on Zulip):

but if no one objects, then we might as well backport.

pnkfelix (Jan 23 2020 at 15:15, on Zulip):

unless we want to try to encourage a policy that beta-backports a week before release should be reserved for higher priority items?

nikomatsakis (Jan 23 2020 at 15:16, on Zulip):

Interesting

nikomatsakis (Jan 23 2020 at 15:16, on Zulip):

That might indeed make sense

nikomatsakis (Jan 23 2020 at 15:16, on Zulip):

Since said backports will hit stable with relatively little testing

centril (Jan 23 2020 at 15:17, on Zulip):

hmm; it seems to me that higher risk backports are the ones that should be avoided especially near release

centril (Jan 23 2020 at 15:17, on Zulip):

does higher prio mean higher risk / impact?

pnkfelix (Jan 23 2020 at 15:17, on Zulip):

no, not necessarily

pnkfelix (Jan 23 2020 at 15:18, on Zulip):

at least, in my mind, there are some changes that obviously do not inject new faults

nikomatsakis (Jan 23 2020 at 15:18, on Zulip):

I definitely think we should avoid higher risk, but I would guess higher priority would take both priority and risk into account; i.e., a high priority bug would probably make a higher level of risk acceptable

nikomatsakis (Jan 23 2020 at 15:18, on Zulip):

(since the alternative, a known and terrible bug, is clearly worse)

centril (Jan 23 2020 at 15:19, on Zulip):

@nikomatsakis that seems like the practice we do have , e.g. remember the lifetime elision thing we backported

centril (Jan 23 2020 at 15:19, on Zulip):

(which was high risk but also high priority)

pnkfelix (Jan 23 2020 at 15:19, on Zulip):

there is one more point to be made here: I think @Esteban K├╝ber claimed on PR #68256 that the PR is also fixing the quality of some spans that were being ill-constructed.

centril (Jan 23 2020 at 15:20, on Zulip):

but I personally don't see much wrong with backporting very low risk & low reward PRs (although I'm not sure how that applies to this PR) near release

pnkfelix (Jan 23 2020 at 15:20, on Zulip):

so its possible that I was wrong in my claim that the currently issued diagnostic is good enough

centril (Jan 23 2020 at 15:22, on Zulip):

...it sounds like we are a go for backport?

pnkfelix (Jan 23 2020 at 15:22, on Zulip):

Yeah I think I've talked myself into believing that we should probably approve beta-backport here

pnkfelix (Jan 23 2020 at 15:22, on Zulip):

anyone want to object given issues raised above?

pnkfelix (Jan 23 2020 at 15:23, on Zulip):

beta-approved

pnkfelix (Jan 23 2020 at 15:24, on Zulip):

beta nom: "Revert parts of #66405." #67471

pnkfelix (Jan 23 2020 at 15:24, on Zulip):

this is a high priority item. Or at least, @nnethercote (PTO Dec 23 - Jan 28) 's intention was that this land in time to avoid the perf regressions hitting stable...

nikomatsakis (Jan 23 2020 at 15:25, on Zulip):

The changes here are larger, but they are reverts

nikomatsakis (Jan 23 2020 at 15:25, on Zulip):

I'd be inclined to backport

pnkfelix (Jan 23 2020 at 15:25, on Zulip):

yeah I think backport too

pnkfelix (Jan 23 2020 at 15:26, on Zulip):

okay beta-accepted

pnkfelix (Jan 23 2020 at 15:27, on Zulip):

there is one new PR that is tagged S-waiting-on-team

pnkfelix (Jan 23 2020 at 15:27, on Zulip):

" rustc_hir: add Expr! pattern macro and try it out in a couple places." #68320

oli (Jan 23 2020 at 15:28, on Zulip):

cc @eddyb

nikomatsakis (Jan 23 2020 at 15:28, on Zulip):

I definitely feel the motivation, but I do worry that this will be a obfuscating pattern that we come to regret over time.

centril (Jan 23 2020 at 15:29, on Zulip):

I think the IDE support isn't there yet also

centril (Jan 23 2020 at 15:29, on Zulip):

not being able to do F12 would be frustrating

centril (Jan 23 2020 at 15:31, on Zulip):

I would be more positively inclined if we had pattern aliases (https://ghc.haskell.org/trac/ghc/wiki/PatternSynonyms) and used those, but we don't

pnkfelix (Jan 23 2020 at 15:31, on Zulip):

hir::Expr!(Lit(_)) is short-hand for Expr { kind: ExprKind::Lit(_), .. }; but the biggest pain there is what? The written-out ExprKind:: ?

centril (Jan 23 2020 at 15:31, on Zulip):

@pnkfelix I think so

pnkfelix (Jan 23 2020 at 15:31, on Zulip):

Or is even the { kind: and , .. } annoying?

pnkfelix (Jan 23 2020 at 15:31, on Zulip):

because one could obviously import the variants (of ExprKind) into scope, right?

centril (Jan 23 2020 at 15:31, on Zulip):

presumably the sum total :slight_smile:

oli (Jan 23 2020 at 15:31, on Zulip):

well in reality loads of code is matching on expr.kind instead of expr

oli (Jan 23 2020 at 15:32, on Zulip):

and this leads to nested matches

centril (Jan 23 2020 at 15:32, on Zulip):

@oli but that's mostly due to P<_> and the lack of arena allocation

oli (Jan 23 2020 at 15:32, on Zulip):

with the macro, those nested matches could become "simple" patterns

centril (Jan 23 2020 at 15:32, on Zulip):

which is fixed now, for HIR

nikomatsakis (Jan 23 2020 at 15:32, on Zulip):

another example where I could see this pattern being of use is to "group together" some of the variants of types

nikomatsakis (Jan 23 2020 at 15:32, on Zulip):

into categories

nikomatsakis (Jan 23 2020 at 15:33, on Zulip):

the alternative is to create nested enums, but that affects the memory layout

centril (Jan 23 2020 at 15:33, on Zulip):

@nikomatsakis can you give an example?

centril (Jan 23 2020 at 15:33, on Zulip):

the alternative is to create nested enums, but that affects the memory layout

Well... #[compact] could be a thing :P

nikomatsakis (Jan 23 2020 at 15:34, on Zulip):

example: compare the chalk types to rustc types

oli (Jan 23 2020 at 15:34, on Zulip):

side note before we spend too much time on this: eddy mainly wanted to throw this into the room to show that it's possible. It's a low priority thing.

nikomatsakis (Jan 23 2020 at 15:34, on Zulip):

if we solve the memory layout problem, that'd be a nice alternative (one I might prefer, even)

pnkfelix (Jan 23 2020 at 15:34, on Zulip):

yeah, I understand

pnkfelix (Jan 23 2020 at 15:35, on Zulip):

I mostly wanted to see if anyone here wants to champion this

nikomatsakis (Jan 23 2020 at 15:35, on Zulip):

in any case, even though I think I could see using it, I'm inclined to say "it's a pattern we're gonna rip out someday"

oli (Jan 23 2020 at 15:35, on Zulip):

in any case, even though I think I could see using it, I'm inclined to say "it's a pattern we're gonna rip out someday"

In that case I think putting our energies into layout opts would be a better way to spend them

pnkfelix (Jan 23 2020 at 15:35, on Zulip):

well it sounds like no one here is enthusiastic about this.

centril (Jan 23 2020 at 15:35, on Zulip):

let_chains and or_patterns should also help btw

centril (Jan 23 2020 at 15:35, on Zulip):

the latter of which we might get very soon (on nightly)

pnkfelix (Jan 23 2020 at 15:36, on Zulip):

so we can leave feedback saying so, and say that we'll close in a week unless a champion comes forward?

pnkfelix (Jan 23 2020 at 15:38, on Zulip):

okay, what next

pnkfelix (Jan 23 2020 at 15:38, on Zulip):

given that its the week before release

pnkfelix (Jan 23 2020 at 15:38, on Zulip):

lets look over the beta-regressions

centril (Jan 23 2020 at 15:39, on Zulip):

(@pnkfelix also thanks for reviewing the or-patterns MIR PR btw!)

pnkfelix (Jan 23 2020 at 15:39, on Zulip):

I'm going to go over all of them, not just T-compiler ones

pnkfelix (Jan 23 2020 at 15:39, on Zulip):

beta regression: "rustdoc only: duplicate lang item panic_halt" #68427

pnkfelix (Jan 23 2020 at 15:40, on Zulip):

@GuillaumeGomez says they are going to look into it

pnkfelix (Jan 23 2020 at 15:40, on Zulip):

beta regression: "ICE: index out of bounds: the len is 0 but the index is 0" #67945

pnkfelix (Jan 23 2020 at 15:41, on Zulip):

interesting: skiny121 had a proposal to try to sidestep these ICEs, and put up a PR

pnkfelix (Jan 23 2020 at 15:42, on Zulip):

but then @eddyb pointed out issues with that PR #68356 here: comment

pnkfelix (Jan 23 2020 at 15:43, on Zulip):

anyway we decided two weeks ago that we wouldn't block a release on #67945

pnkfelix (Jan 23 2020 at 15:43, on Zulip):

it might be interesting to try to investigate some of the alternative approaches @eddyb put forth in their comment above. But that does not need to happen in the next week.

pnkfelix (Jan 23 2020 at 15:44, on Zulip):

so lets move on

pnkfelix (Jan 23 2020 at 15:44, on Zulip):

beta regression: "not Send due to await retainment" #67611

pnkfelix (Jan 23 2020 at 15:45, on Zulip):

when I last spoke to @Matthew Jasper about this, they said they were awaiting feedback on their comment here

pnkfelix (Jan 23 2020 at 15:46, on Zulip):

there has been recent discussion with @tmandry

nikomatsakis (Jan 23 2020 at 15:46, on Zulip):

Hmm. I've been wanting to make time to dive a bit deeper into what is happening there

pnkfelix (Jan 23 2020 at 15:46, on Zulip):

but I'm still struggling to understand the outcome of that discussion

pnkfelix (Jan 23 2020 at 15:47, on Zulip):

it seemed to me like they both agreed that using the Internal flag might be a reasonable solution?

centril (Jan 23 2020 at 15:47, on Zulip):

but it seems unlikely that we would fix this in time?

GuillaumeGomez (Jan 23 2020 at 15:47, on Zulip):

Even though I said I'd look into it this week-end, I have to prepare my talk for the FOSDEM so if you don't see anything coming from me, don't hesitate to take a look!

nikomatsakis (Jan 23 2020 at 15:47, on Zulip):

it seemed to me like they both agreed that using the Internal flag might be a reasonable solution?

I think that is right, and I lean this way as well

GuillaumeGomez (Jan 23 2020 at 15:48, on Zulip):

Hum... I actually wonder if I haven't been pinged from a previous meeting... :'(

nikomatsakis (Jan 23 2020 at 15:48, on Zulip):

bottom line is that it seems like we're getting tripped up on something of an "impl detail" but I'm not sure what seems to be the best way to represent that impl detail

pnkfelix (Jan 23 2020 at 15:48, on Zulip):

@GuillaumeGomez we don't normally go over the issues tagged T-rustdoc

pnkfelix (Jan 23 2020 at 15:48, on Zulip):

but I figured with the release coming up, it would be good to do so

centril (Jan 23 2020 at 15:49, on Zulip):

(T-rustdoc might want to consider its own triage process)

GuillaumeGomez (Jan 23 2020 at 15:49, on Zulip):

@pnkfelix Putting into my high priority todo list

GuillaumeGomez (Jan 23 2020 at 15:50, on Zulip):

@centril we're basically two currently with a third suddenly appearing with a lot of fixes before disappearing

pnkfelix (Jan 23 2020 at 15:50, on Zulip):

bottom line is that it seems like we're getting tripped up on something of an "impl detail" but I'm not sure what seems to be the best way to represent that impl detail

@Matthew Jasper are you around? Do you think you'll have time in next few days to try to put together the internal approach?

GuillaumeGomez (Jan 23 2020 at 15:50, on Zulip):

(I'll stop commenting to prevent more noise, sorry!)

centril (Jan 23 2020 at 15:51, on Zulip):

I haven't read the issue in depth, but T-Lang was cced, so is there a lang question here as well?

pnkfelix (Jan 23 2020 at 15:51, on Zulip):

I'll follow up with @Matthew Jasper regarding #67611 later

pnkfelix (Jan 23 2020 at 15:51, on Zulip):

@centril I think the lang question is regarding what guarantees we provide regarding auto traits

pnkfelix (Jan 23 2020 at 15:51, on Zulip):

this in particular: https://github.com/rust-lang/rust/issues/67611#issuecomment-576003133

pnkfelix (Jan 23 2020 at 15:52, on Zulip):

(is there a typo there? Why does it use ! for *mut but no ! for *const ? )

nikomatsakis (Jan 23 2020 at 15:52, on Zulip):

It's basically about what types should appear in the generator

nikomatsakis (Jan 23 2020 at 15:52, on Zulip):

It's not really a general question about auto traits

nikomatsakis (Jan 23 2020 at 15:53, on Zulip):

That is clearly not a guarantee you get from auto traits

nikomatsakis (Jan 23 2020 at 15:53, on Zulip):

(In the general sense)

nikomatsakis (Jan 23 2020 at 15:53, on Zulip):

Since people can add their own impls, I mean

centril (Jan 23 2020 at 15:53, on Zulip):

I would argue that we're not making such (or really any) guarantees with user defined auto traits.
Yeah, I don't think auto traits should expose layout implementation details of generators.

Agree with this

pnkfelix (Jan 23 2020 at 15:54, on Zulip):

I'll follow up with Matthew Jasper regarding #67611 later

Anyway I think we can keep going, assuming I actually follow through on this promise.

pnkfelix (Jan 23 2020 at 15:54, on Zulip):

beta regression: "const_if_match ICE" #67405

pnkfelix (Jan 23 2020 at 15:55, on Zulip):

hmm I didn't record why we downgraded this to P-medium back in December

pnkfelix (Jan 23 2020 at 15:55, on Zulip):

oh is it one of those "ICE after you get warned about using an unstable feature " ?

Wesley Wiser (Jan 23 2020 at 15:55, on Zulip):

/me :clock: 5 minute warning

centril (Jan 23 2020 at 15:56, on Zulip):

@pnkfelix yea, match in const contexts is gated

centril (Jan 23 2020 at 15:56, on Zulip):

(on HIR)

pnkfelix (Jan 23 2020 at 15:56, on Zulip):

yeah okay so we can just let this slide I guess

pnkfelix (Jan 23 2020 at 15:56, on Zulip):

that or we make it a non-recoverable error

pnkfelix (Jan 23 2020 at 15:56, on Zulip):

but I suspect falling through to an ICE is better.

centril (Jan 23 2020 at 15:57, on Zulip):

error message before ICE seems good enough

centril (Jan 23 2020 at 15:57, on Zulip):

(it's a very weird edge case)

pnkfelix (Jan 23 2020 at 15:57, on Zulip):

/me :clock: 5 minute warning

(luckily both of our WG's scheduled for checkin are (effectively) retired)

pnkfelix (Jan 23 2020 at 15:58, on Zulip):

beta regression: "Usage of errorneous constant can be omitted on nightly and beta" #67083

pnkfelix (Jan 23 2020 at 15:58, on Zulip):

cc #679191

oli (Jan 23 2020 at 15:58, on Zulip):

I fixed this I think but it stays fragile

centril (Jan 23 2020 at 15:59, on Zulip):

@oli did #679191 get fixed as well?

centril (Jan 23 2020 at 15:59, on Zulip):

T-lang discussed that one and came to a conclusion

centril (Jan 23 2020 at 15:59, on Zulip):

so it's in t-compiler's court now

pnkfelix (Jan 23 2020 at 15:59, on Zulip):

namely Based on the consensus to use NLLs notion of liveness in erroring on live bad constants, I'm moving this over to the compiler team for the implementation.

oli (Jan 23 2020 at 15:59, on Zulip):

uh, that's not a valid issue id

pnkfelix (Jan 23 2020 at 15:59, on Zulip):

#67191

pnkfelix (Jan 23 2020 at 15:59, on Zulip):

sorry

oli (Jan 23 2020 at 16:00, on Zulip):

ah, no that has not been addressed yet, but that's not a regression either

pnkfelix (Jan 23 2020 at 16:00, on Zulip):

but the known regression in #67083 has been addressed, right?

oli (Jan 23 2020 at 16:00, on Zulip):

yes

oli (Jan 23 2020 at 16:01, on Zulip):

just checked on the playground

pnkfelix (Jan 23 2020 at 16:01, on Zulip):

right , fixed by PR #67134 it seems

pnkfelix (Jan 23 2020 at 16:01, on Zulip):

okay so maybe we can just close #67083 then since #67134 was backported?

pnkfelix (Jan 23 2020 at 16:02, on Zulip):

which is what the description of PR #67134 indeed implies.

centril (Jan 23 2020 at 16:03, on Zulip):

3 min over time :clock:

pnkfelix (Jan 23 2020 at 16:04, on Zulip):

right, well, the only beta-regression left is "Regression in helpful compiler error message when working with lifetimes" #66406

pnkfelix (Jan 23 2020 at 16:04, on Zulip):

so we'll just have to live with that

pnkfelix (Jan 23 2020 at 16:04, on Zulip):

and we didn't get to the nominated issues. Sorry. :sad:

pnkfelix (Jan 23 2020 at 16:04, on Zulip):

Thanks all in @T-compiler/meeting for attending!

mark-i-m (Jan 23 2020 at 17:45, on Zulip):

nnethercote is on PTO until Jan 28

Took me a second to figure out that PTO was not like PGO or LTO...

Last update: Feb 25 2020 at 04:25UTC