Stream: t-compiler/meetings

Topic: [weekly meeting] 2020-08-20 #54818


Santiago Pastorino (Aug 19 2020 at 16:12, on Zulip):

Hi @T-compiler/meeting; the triage meeting will happen tomorrow at 2pm UTC

Santiago Pastorino (Aug 19 2020 at 16:12, on Zulip):

The @WG-prioritization have done pre-triage in #t-compiler/wg-prioritization/alerts

Santiago Pastorino (Aug 19 2020 at 16:12, on Zulip):

@WG-prioritization have prepared the meeting agenda

Santiago Pastorino (Aug 19 2020 at 16:12, on Zulip):

We will have checkin from @WG-traits

Santiago Pastorino (Aug 19 2020 at 16:13, on Zulip):

@nikomatsakis and @Jack Huey do you have something you want to share about @WG-traits?

Jack Huey (Aug 19 2020 at 16:17, on Zulip):

Uh, I don't think there's been any real updates since last time. Wg-traits has been on vacation/break

Santiago Pastorino (Aug 19 2020 at 16:17, on Zulip):

@T-compiler/meeting please consider nominating issues that you want to discuss or move forward tomorrow

Joshua Nelson (Aug 19 2020 at 16:18, on Zulip):

Old MCPs (not seconded, take a look)
“Set ninja=true by default” compiler-team#339

It looks like that one has already been accepted

Joshua Nelson (Aug 19 2020 at 16:20, on Zulip):

same for https://github.com/rust-lang/compiler-team/issues/340, https://github.com/rust-lang/compiler-team/issues/337

Santiago Pastorino (Aug 19 2020 at 21:23, on Zulip):

@Matthew Jasper little question, is this #75494 meant to be applied to master and then backported to beta?

Santiago Pastorino (Aug 19 2020 at 21:24, on Zulip):

it seems like that but just want to be 100% sure given that in your previous comment, it seemed that you were going to provide a backport only

Matthew Jasper (Aug 19 2020 at 22:22, on Zulip):

Yes, it needs applying to master.

Santiago Pastorino (Aug 20 2020 at 13:22, on Zulip):

Hi @T-compiler/meeting, triage meeting will be starting in ~ 37 minutes

Santiago Pastorino (Aug 20 2020 at 13:22, on Zulip):

Check out the meeting agenda

pnkfelix (Aug 20 2020 at 14:03, on Zulip):

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

pnkfelix (Aug 20 2020 at 14:03, on Zulip):

we will start off with 5 minutes for ...

Announcements

pnkfelix (Aug 20 2020 at 14:03, on Zulip):
pnkfelix (Aug 20 2020 at 14:03, on Zulip):
pnkfelix (Aug 20 2020 at 14:03, on Zulip):
pnkfelix (Aug 20 2020 at 14:04, on Zulip):
pnkfelix (Aug 20 2020 at 14:04, on Zulip):
pnkfelix (Aug 20 2020 at 14:04, on Zulip):
pnkfelix (Aug 20 2020 at 14:04, on Zulip):
pnkfelix (Aug 20 2020 at 14:04, on Zulip):
pnkfelix (Aug 20 2020 at 14:04, on Zulip):
pnkfelix (Aug 20 2020 at 14:05, on Zulip):

WG checkins

@WG-traits checkin by @nikomatsakis and @Jack Huey:

WG-traits has been on vacation/break

pnkfelix (Aug 20 2020 at 14:06, on Zulip):

(anyone have anything else they want to announce themselves?)

pnkfelix (Aug 20 2020 at 14:07, on Zulip):

Beta-nominations

T-compiler

nikomatsakis (Aug 20 2020 at 14:07, on Zulip):

I'm reading now but planning to r+

nikomatsakis (Aug 20 2020 at 14:07, on Zulip):

I would like to understand it a bit better

pnkfelix (Aug 20 2020 at 14:08, on Zulip):

(as an aside, when I was reading over this patch, I was wondering if there exists a clippy lint that warns you if you have a function that returns bool that doesn't have any documentation. :smile: )

nikomatsakis (Aug 20 2020 at 14:09, on Zulip):

and doesn't have a name like is_ maybe :)

Santiago Pastorino (Aug 20 2020 at 14:09, on Zulip):

a 150 lines backport of something sensible and last minute is not ideal but I guess it's better to fix the P-critical

pnkfelix (Aug 20 2020 at 14:09, on Zulip):

yeah fair enogh

pnkfelix (Aug 20 2020 at 14:09, on Zulip):

Its true. Some of the changes are clean up

pnkfelix (Aug 20 2020 at 14:10, on Zulip):

(e.g. thechanges to visibility of poly_project_and_unify_type

Santiago Pastorino (Aug 20 2020 at 14:10, on Zulip):

I don't remember exactly but isn't it possible to rollback whatever caused the original problem and have this just ride the trains?

nikomatsakis (Aug 20 2020 at 14:10, on Zulip):

this is (imo) not an entirely trivial PR

pnkfelix (Aug 20 2020 at 14:10, on Zulip):

whoops I forgot to add my standard set of emojis to the backport nom

pnkfelix (Aug 20 2020 at 14:10, on Zulip):

i'll do that now

nikomatsakis (Aug 20 2020 at 14:10, on Zulip):

I could imagine an unexpected interaction

nikomatsakis (Aug 20 2020 at 14:10, on Zulip):

(not sure if @Matthew Jasper is around)

Santiago Pastorino (Aug 20 2020 at 14:10, on Zulip):

nikomatsakis said:

I could imagine an unexpected interaction

and the problem is that stable is out in 1 week

Santiago Pastorino (Aug 20 2020 at 14:11, on Zulip):

so this will be in beta for one week and then in stable

pnkfelix (Aug 20 2020 at 14:11, on Zulip):

hmm. Why didn't we just rollback PR #73452?

pnkfelix (Aug 20 2020 at 14:11, on Zulip):

It doesn't say that it fixes any bugs...

nikomatsakis (Aug 20 2020 at 14:11, on Zulip):

the PR message kind of implies that it does

nikomatsakis (Aug 20 2020 at 14:11, on Zulip):

but idk

pnkfelix (Aug 20 2020 at 14:12, on Zulip):

It added some tests...

Wesley Wiser (Aug 20 2020 at 14:12, on Zulip):

If it (#73452) fixes query cycles, there might be some interactions with any later const-generic PRs that have landed.

Wesley Wiser (Aug 20 2020 at 14:12, on Zulip):

Just a thought

pnkfelix (Aug 20 2020 at 14:12, on Zulip):

I think all the tests it added were overflow tests

lcnr (Aug 20 2020 at 14:12, on Zulip):

I don't think this interacts with const generic cycle errors

Wesley Wiser (Aug 20 2020 at 14:13, on Zulip):

Ah ok

nikomatsakis (Aug 20 2020 at 14:14, on Zulip):

maybe the most imp't question is how imp't the regression is

pnkfelix (Aug 20 2020 at 14:14, on Zulip):

So as I understand it, our choices are either:

  1. Do nothing (accept the breakage injected by PR #73452)
  2. Rollback PR #73452 on beta
  3. Beta-backport PR #75494
pnkfelix (Aug 20 2020 at 14:14, on Zulip):

1 and 2 have somewhat known consequences

pnkfelix (Aug 20 2020 at 14:15, on Zulip):

3 leads to fewest known bugs, but most risky in terms of unknowns. Right?

nikomatsakis (Aug 20 2020 at 14:15, on Zulip):

sounds correct

pnkfelix (Aug 20 2020 at 14:16, on Zulip):

Ah. At the very least, rolling back PR #73452 will probably cause breakage that is mentioned on PR #73335

nikomatsakis (Aug 20 2020 at 14:17, on Zulip):

OK, I've read over the PR and I think I understand what it's doing

nikomatsakis (Aug 20 2020 at 14:18, on Zulip):

I stand by my assessment that it could have some unexpected consequences, though I think now that I understand it better my prediction is that these might take the form of induced ambiguitues

pnkfelix (Aug 20 2020 at 14:18, on Zulip):

okay.

nikomatsakis (Aug 20 2020 at 14:18, on Zulip):

(I'm not so worried about accepting broken programs, for example)

pnkfelix (Aug 20 2020 at 14:18, on Zulip):

and we have only heard about one instance of breakage from PR #73452, right?

pnkfelix (Aug 20 2020 at 14:19, on Zulip):

maybe we should nonetheless let this (PR #75494) ride the trains, and just accept wundergraph breakage (#74868) on next stable?

Wesley Wiser (Aug 20 2020 at 14:20, on Zulip):

I looked through the crater report and I think wundergraph is the only crate that is broken because of this.

simulacrum (Aug 20 2020 at 14:20, on Zulip):

There was quite a few crates that broke in crater as a result of that, though I think all were reverse dependencies of wundergraph

lcnr (Aug 20 2020 at 14:20, on Zulip):

The only behavior change would be in src/librustc_trait_selection/traits/project.rs if I am not missing something here, so it's a 3 line change

pnkfelix (Aug 20 2020 at 14:20, on Zulip):

@lcnr which is only a three-line change? PR #75494 ?

nikomatsakis (Aug 20 2020 at 14:20, on Zulip):

(I just gave it r=me, fyi)

nikomatsakis (Aug 20 2020 at 14:21, on Zulip):

given the breakage in crater, I might be inclined to go for it

lcnr (Aug 20 2020 at 14:21, on Zulip):

#73452 I was looking at the wrong PR :laughter_tears:

lcnr (Aug 20 2020 at 14:21, on Zulip):

uff

nikomatsakis (Aug 20 2020 at 14:21, on Zulip):

but I guess this is just a hard call to make

pnkfelix (Aug 20 2020 at 14:21, on Zulip):

nikomatsakis said:

given the breakage in crater, I might be inclined to go for it

go for the backport, you mean?

nikomatsakis (Aug 20 2020 at 14:21, on Zulip):

correct

nikomatsakis (Aug 20 2020 at 14:21, on Zulip):

I guess it depends on what @simulacrum meant by "quite a few"

pnkfelix (Aug 20 2020 at 14:22, on Zulip):

too bad we don't have time to do a crater run

pnkfelix (Aug 20 2020 at 14:22, on Zulip):

I guess we could/should have done one on PR #75494 back 7 days ago ?

pnkfelix (Aug 20 2020 at 14:22, on Zulip):

/me is trying to do retrospective on-the-fly ...

simulacrum (Aug 20 2020 at 14:23, on Zulip):

There were maybe 10 or so

simulacrum (Aug 20 2020 at 14:23, on Zulip):

But not sure how related or popular they were

pnkfelix (Aug 20 2020 at 14:23, on Zulip):

@nikomatsakis when you say you're worried about induced ambiguities

pnkfelix (Aug 20 2020 at 14:24, on Zulip):

you're basically anticipating that we'll start rejecting code that we previously accepted, right?

nikomatsakis (Aug 20 2020 at 14:24, on Zulip):

plausibly

pnkfelix (Aug 20 2020 at 14:24, on Zulip):

(i.e. it will be trait resolution ambiguities? Will users be able to revise their code to make the resolution explicit in cases where that arises?)

nikomatsakis (Aug 20 2020 at 14:25, on Zulip):

maybe

nikomatsakis (Aug 20 2020 at 14:25, on Zulip):

basically what's happening here is that

pnkfelix (Aug 20 2020 at 14:25, on Zulip):

basically I think I'd be willing to accept either a backport or riding the trains if either one of them actually has some workaround for someone to do in their source code

pnkfelix (Aug 20 2020 at 14:25, on Zulip):

(but I don't think I see a workaround for wundergraph)

nikomatsakis (Aug 20 2020 at 14:25, on Zulip):

if we encounter a cycle resolving T::Foo = X, we kind of "push that cycle" back to the caller -- essentialyl saying "T::Foo = X is true if T::Foo = X is true"

nikomatsakis (Aug 20 2020 at 14:26, on Zulip):

well wait

nikomatsakis (Aug 20 2020 at 14:26, on Zulip):

I guess that in the case of cycle we always aborted before

nikomatsakis (Aug 20 2020 at 14:26, on Zulip):

so maybe I take that back

nikomatsakis (Aug 20 2020 at 14:26, on Zulip):

maybe this would only effect programs that would have failed with a cycle error anyway

nikomatsakis (Aug 20 2020 at 14:26, on Zulip):

which makes it much less concerning :)

pnkfelix (Aug 20 2020 at 14:27, on Zulip):

but that brings us back to the question if this could cause us to start accepting code that we should (continue) rejecting?

pnkfelix (Aug 20 2020 at 14:27, on Zulip):

though I think that is not the case from my reading...

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

I believe the risk is low

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

I mean never say never

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

Sure

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

but I feel pretty confident that won't happen

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

we have had some egg on our face on recent releases

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

(or if it did that it would reflect some other bug)

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

due to perhaps overly aggressive backporting

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

so it doesn't hurt to be wary

pnkfelix (Aug 20 2020 at 14:29, on Zulip):

back to my question above though: It sounds niko like you do not think that user will have any recourse if they do hit some problem introduced by backporting this?

pnkfelix (Aug 20 2020 at 14:30, on Zulip):

i..e there is unlikely to be an "obvious" way for them to change their code to work-around new problems

nikomatsakis (Aug 20 2020 at 14:30, on Zulip):

well I was imagining that it could induce an ambiguiuty in some parts of the trait checker where there isn't as much input

nikomatsakis (Aug 20 2020 at 14:30, on Zulip):

(but I'm not sure if I think that's true anymore)

pnkfelix (Aug 20 2020 at 14:30, on Zulip):

okay

pnkfelix (Aug 20 2020 at 14:31, on Zulip):

I think I'm okay with a backport

pnkfelix (Aug 20 2020 at 14:31, on Zulip):

but its a tough call.

pnkfelix (Aug 20 2020 at 14:31, on Zulip):

too bad @Matthew Jasper isn't here.

Santiago Pastorino (Aug 20 2020 at 14:31, on Zulip):

how long it takes a crater run? I meant, if we backport and do a crater run when do we get results?

simulacrum (Aug 20 2020 at 14:31, on Zulip):

I don't think we have time for a crater run, this close to a release

nikomatsakis (Aug 20 2020 at 14:32, on Zulip):

I'm roughly where @pnkfelix is

nikomatsakis (Aug 20 2020 at 14:32, on Zulip):

I feel fairly confident but it's a subtle change to subtle code

Santiago Pastorino (Aug 20 2020 at 14:32, on Zulip):

even if that happens after the release it may be a good idea to do it anyway?, maybe better to see some bad consequences a day or two after rather than waiting?

pnkfelix (Aug 20 2020 at 14:33, on Zulip):

so that we'll hopefully actually know to issue a point release quickly? I guess that could make sense.

Santiago Pastorino (Aug 20 2020 at 14:33, on Zulip):

right, rather than waiting for someone to upgrade and then report an issue

Santiago Pastorino (Aug 20 2020 at 14:33, on Zulip):

we can preemptively fix something if there's something to fix

simulacrum (Aug 20 2020 at 14:33, on Zulip):

I don't mind kicking one off

pnkfelix (Aug 20 2020 at 14:33, on Zulip):

okay I guess it sounds like no one present is going to argue strongly against a backport

pnkfelix (Aug 20 2020 at 14:33, on Zulip):

so I say "backport-approved", lets move on

simulacrum (Aug 20 2020 at 14:34, on Zulip):

It'll probably be done in time for the release, just we won't have time to change anything I suspect

pnkfelix (Aug 20 2020 at 14:34, on Zulip):

well if the results are truly horrendous we could delay release

Santiago Pastorino (Aug 20 2020 at 14:34, on Zulip):

right :)

pnkfelix (Aug 20 2020 at 14:34, on Zulip):

.... or ... build two sets of release artifacts in parallel?

pnkfelix (Aug 20 2020 at 14:34, on Zulip):

and dispatch deployment accordingly

pnkfelix (Aug 20 2020 at 14:35, on Zulip):

boy that's a terrible precedent to set, though.

nikomatsakis (Aug 20 2020 at 14:35, on Zulip):

I guess the other alternative is to let the bug ride the trains and consider a point release

nikomatsakis (Aug 20 2020 at 14:35, on Zulip):

if it turns out to be more serious

nikomatsakis (Aug 20 2020 at 14:35, on Zulip):

I don't know which is worse :)

pnkfelix (Aug 20 2020 at 14:35, on Zulip):

yeah its a struggle.

nikomatsakis (Aug 20 2020 at 14:35, on Zulip):

but I think we should just approve

simulacrum (Aug 20 2020 at 14:35, on Zulip):

Let's just backport and run crater

pnkfelix (Aug 20 2020 at 14:35, on Zulip):

okay well lets move along. backport approved.

simulacrum (Aug 20 2020 at 14:36, on Zulip):

A check run should be sufficient right?

pnkfelix (Aug 20 2020 at 14:36, on Zulip):

libs-impl

T-rustdoc

nikomatsakis (Aug 20 2020 at 14:36, on Zulip):

YOLO

nikomatsakis (Aug 20 2020 at 14:36, on Zulip):

@simulacrum yeah I imagine so

pnkfelix (Aug 20 2020 at 14:36, on Zulip):

simulacrum said:

A check run should be sufficient right?

(I think so?)

pnkfelix (Aug 20 2020 at 14:36, on Zulip):

Stable-nominations

T-compiler

libs-impl

T-rustdoc

nikomatsakis (Aug 20 2020 at 14:36, on Zulip):

nikomatsakis said:

YOLO

just what you want your compiler team co-lead saying :)

pnkfelix (Aug 20 2020 at 14:36, on Zulip):

PRs S-waiting-on-team

T-compiler
No PRs waiting on T-compiler this time.

libs-impl
No PRs waiting on libs-impl this time.

pnkfelix (Aug 20 2020 at 14:36, on Zulip):

It stands for "You Oughta Look Out!", right?

pnkfelix (Aug 20 2020 at 14:36, on Zulip):

:wink:

pnkfelix (Aug 20 2020 at 14:37, on Zulip):

reference: https://www.youtube.com/watch?v=z5Otla5157c

pnkfelix (Aug 20 2020 at 14:37, on Zulip):

Issues of Note

Short Summary

pnkfelix (Aug 20 2020 at 14:37, on Zulip):

P-critical

T-compiler

pnkfelix (Aug 20 2020 at 14:37, on Zulip):
pnkfelix (Aug 20 2020 at 14:38, on Zulip):

(did I take time to look more at this? No I did not. It has been a busy week at home.)

pnkfelix (Aug 20 2020 at 14:38, on Zulip):

at this point I think I'm just going to treat this as something we need to fix in LLVM. I don't think I'm going to spend time investigating whether a change to range.rs is worth it.

nikomatsakis (Aug 20 2020 at 14:38, on Zulip):

I think I agree

pnkfelix (Aug 20 2020 at 14:39, on Zulip):

(So does that mean we close this bug? Or just downgrade its priority? I cannot recall how we've typically treated bugs that expose upstream LLVM bugs in the past.)

pnkfelix (Aug 20 2020 at 14:39, on Zulip):

I wouldn't be opposed to downgrading to P-high. I don't think we need to check in on it every week in this meeting.

Santiago Pastorino (Aug 20 2020 at 14:40, on Zulip):

agreed P-high seems good

pnkfelix (Aug 20 2020 at 14:40, on Zulip):

(I do hope to further investigate an LLVM fix. For all I know, the llvm-devs may have come up with one in the meantime...)

pnkfelix (Aug 20 2020 at 14:41, on Zulip):

pnkfelix said:

(I do hope to further investigate an LLVM fix. For all I know, the llvm-devs may have come up with one in the meantime...)

but accordingly to https://bugs.llvm.org/show_bug.cgi?id=46943, they have been silent.

pnkfelix (Aug 20 2020 at 14:41, on Zulip):

anyway lets downgrade to P-high

pnkfelix (Aug 20 2020 at 14:41, on Zulip):
pnkfelix (Aug 20 2020 at 14:41, on Zulip):

this is the one we were just discussing for ages. :)

pnkfelix (Aug 20 2020 at 14:42, on Zulip):

Its unfortunate we don't have an MCVE. (Or did @Matthew Jasper construct one in their PR? I didn't notice.)

nikomatsakis (Aug 20 2020 at 14:42, on Zulip):

there was one (link)

pnkfelix (Aug 20 2020 at 14:43, on Zulip):

oh okay great

pnkfelix (Aug 20 2020 at 14:43, on Zulip):

nothing else to do there then, I think

pnkfelix (Aug 20 2020 at 14:43, on Zulip):
pnkfelix (Aug 20 2020 at 14:44, on Zulip):

this likewise doesn't need further discussion. (it just wasn't yet unilaterally accepted when agenda was constructed, and I was on a mobile device up until exactly at meeting start time so I couldn't effectively edit agenda to remove it)

pnkfelix (Aug 20 2020 at 14:44, on Zulip):

libs-impl

T-rustdoc

pnkfelix (Aug 20 2020 at 14:44, on Zulip):

Unassigned P-high regressions

Beta regressions

pnkfelix (Aug 20 2020 at 14:44, on Zulip):

being specific to QEMU makes this significantly less scary to me

pnkfelix (Aug 20 2020 at 14:45, on Zulip):

but it is still a pain

pnkfelix (Aug 20 2020 at 14:45, on Zulip):

Though the fact that it is lock poisoning probably means that this is just a racy bug, right?

nikomatsakis (Aug 20 2020 at 14:46, on Zulip):

I guess so

nikomatsakis (Aug 20 2020 at 14:46, on Zulip):

probably lock poisoning doing its job in some sense

pnkfelix (Aug 20 2020 at 14:46, on Zulip):

i.e. the failure to reproduce on hardware doesn't mean that some different scheduler will reproduce it?

pnkfelix (Aug 20 2020 at 14:46, on Zulip):

I suppose

simulacrum (Aug 20 2020 at 14:46, on Zulip):

Or the panic impl is broken

nikomatsakis (Aug 20 2020 at 14:46, on Zulip):

yeah, I was just thinking...

pnkfelix (Aug 20 2020 at 14:46, on Zulip):

hmm

simulacrum (Aug 20 2020 at 14:47, on Zulip):

But I have no good ideas on how to track that down

pnkfelix (Aug 20 2020 at 14:47, on Zulip):

should we consider rolling back PR #72746 ?

nikomatsakis (Aug 20 2020 at 14:48, on Zulip):

I mean man -- removing symbols from build => lock poisoning

nikomatsakis (Aug 20 2020 at 14:48, on Zulip):

that's an epic bug :)

nikomatsakis (Aug 20 2020 at 14:48, on Zulip):

I would be inclined not to revert

nikomatsakis (Aug 20 2020 at 14:48, on Zulip):

on the basis of a QEMU specific failure..I think

pnkfelix (Aug 20 2020 at 14:49, on Zulip):

okay

nikomatsakis (Aug 20 2020 at 14:49, on Zulip):

too bad nobody from ARM group has any input yet

pnkfelix (Aug 20 2020 at 14:49, on Zulip):

well they bisected it, no?

pnkfelix (Aug 20 2020 at 14:49, on Zulip):

@Jamie Cunliffe bisected, in particular.

pnkfelix (Aug 20 2020 at 14:49, on Zulip):

but yeah

nikomatsakis (Aug 20 2020 at 14:49, on Zulip):

true, I meant more like

nikomatsakis (Aug 20 2020 at 14:49, on Zulip):

has any idea how to fix :)

pnkfelix (Aug 20 2020 at 14:50, on Zulip):

okay well I guess we'll just let the bug hit stable

pnkfelix (Aug 20 2020 at 14:50, on Zulip):

Hopefully it only causes problems for #[should_panic] tests, and doesn't represent a more fundamental bug in our panic system there. :scared:

pnkfelix (Aug 20 2020 at 14:51, on Zulip):

Nightly regressions

pnkfelix (Aug 20 2020 at 14:51, on Zulip):

We don't have much time left

pnkfelix (Aug 20 2020 at 14:51, on Zulip):

so i'm going to skip discussion of rust#74400

pnkfelix (Aug 20 2020 at 14:52, on Zulip):

Performance logs

This week was quite noisy, with many small regressions and improvements.
Overall, instruction counts have increased somewhat, while max RSS remains the
same. There were several updates to core data structures (HashMap,
IndexMap), which contributed to some of the noise.

Triage done by @ecstaticmorse.
Revision range: 8b84156c6ee2b4e707dc32f5a516e3143ab924d3..67e7b9b8cf776222825dbbd4cb1e39b7765ef27c

4 Regressions, 3 Improvements, 4 Mixed, 0 of them in rollups.

pnkfelix (Aug 20 2020 at 14:52, on Zulip):

4 Regressions

#73851 Remove most specialization use in serialization

#75048 Prevent __rust_begin_short_backtrace frames from being tail-call optimised away

#75306 Hash parent ExpnData

#73656 move Deaggregate pass to post\_borrowck\_cleanup

pnkfelix (Aug 20 2020 at 14:52, on Zulip):

3 Improvements

#74512 Put panic code path from copy_from_slice into cold function

#74877 Implement the min_const_generics feature gate

#75121 Avoid unwrap_or_else in str indexing

pnkfelix (Aug 20 2020 at 14:52, on Zulip):

4 Mixed

#70052 Update hashbrown to 0.8.1

#75278 Upgrade indexmap and use it more

#75306 Update hashbrown to 0.8.2

#75382 First iteration of simplify match branches

pnkfelix (Aug 20 2020 at 14:52, on Zulip):

Nags requiring follow up

pnkfelix (Aug 20 2020 at 14:53, on Zulip):

what I realy want to get to

pnkfelix (Aug 20 2020 at 14:53, on Zulip):

is the nominated issue

pnkfelix (Aug 20 2020 at 14:53, on Zulip):

so let me post that

pnkfelix (Aug 20 2020 at 14:53, on Zulip):

and see if we can resolve it in seven minutes

pnkfelix (Aug 20 2020 at 14:53, on Zulip):

Nominated Issues

T-compiler

pnkfelix (Aug 20 2020 at 14:53, on Zulip):

so as noted above, @simulacrum has suggested disabling zlib entirely

pnkfelix (Aug 20 2020 at 14:54, on Zulip):

the problem is that, as I understand it, disabling zlib will break linking to object code produced by e.g. gcc (at least with default options) on certain tier 1 targets?

pnkfelix (Aug 20 2020 at 14:54, on Zulip):

that doesn't sound ideal to me

simulacrum (Aug 20 2020 at 14:54, on Zulip):

Not sure about tier 1

pnkfelix (Aug 20 2020 at 14:54, on Zulip):

oh I thought it was like ubuntu 18 or something

simulacrum (Aug 20 2020 at 14:55, on Zulip):

I think I'm in favor of latest proposal to just support tier 1 for sure and be okay with disabling elsewhere as needed

pnkfelix (Aug 20 2020 at 14:55, on Zulip):

https://github.com/rust-lang/rust/pull/72696#issuecomment-637403199

You're right the Rust compiler doesn't do this. But C compilers do, for example I believe GCC does this by default on Ubuntu 18.04. So if you're trying to link native code _and_ you're using rust-lld, you'll run into this issue. I don't think this is related to SGX in particular, except that it uses rust-lld by default so the issue is more apparent.

pnkfelix (Aug 20 2020 at 14:55, on Zulip):

we could have it off by default

simulacrum (Aug 20 2020 at 14:55, on Zulip):

Ah, right, you need to use the lld we build

pnkfelix (Aug 20 2020 at 14:56, on Zulip):

and turn it on only for specific targets where we know it arises

simulacrum (Aug 20 2020 at 14:56, on Zulip):

Which isn't currently the default on tier 1 targets

pnkfelix (Aug 20 2020 at 14:56, on Zulip):

ah

pnkfelix (Aug 20 2020 at 14:56, on Zulip):

i see

simulacrum (Aug 20 2020 at 14:56, on Zulip):

Anyway I think the main question for this meeting is whether we're okay with diverging behavior between tier 1 and 2 (and 3) without bugs filed to fix that

simulacrum (Aug 20 2020 at 14:56, on Zulip):

I think my answer is yes personally

pnkfelix (Aug 20 2020 at 14:56, on Zulip):

Well yeah we probably should file bugs

pnkfelix (Aug 20 2020 at 14:57, on Zulip):

right?

nikomatsakis (Aug 20 2020 at 14:57, on Zulip):

I'm having a bit of trouble following this

pnkfelix (Aug 20 2020 at 14:57, on Zulip):

oh sorry

pnkfelix (Aug 20 2020 at 14:57, on Zulip):

some compilers in some contexts produce object code with (zlib) compressed sections

pnkfelix (Aug 20 2020 at 14:57, on Zulip):

to properly link to such object code, you need to build LLVM a certain way

pnkfelix (Aug 20 2020 at 14:57, on Zulip):

we added support for building LLVM with such support

nikomatsakis (Aug 20 2020 at 14:58, on Zulip):

it sounds to me like this is very tied to the expectations in particular environments

pnkfelix (Aug 20 2020 at 14:58, on Zulip):

but doing that, i.e. adding that config flag to the LLVM build by default, caused a number of our (less-important tier) targets to fail to build

nikomatsakis (Aug 20 2020 at 14:58, on Zulip):

but basically we're saying "supporting zlib-compressed libraries is a feature of some platforms but not all"?

nikomatsakis (Aug 20 2020 at 14:58, on Zulip):

and we're wanting to require that for tier 1?

simulacrum (Aug 20 2020 at 14:59, on Zulip):

yeah

Wesley Wiser (Aug 20 2020 at 14:59, on Zulip):

simulacrum said:

Anyway I think the main question for this meeting is whether we're okay with diverging behavior between tier 1 and 2 (and 3) without bugs filed to fix that

This seems ok to me provided we document tier 1 support requires zlib support.

simulacrum (Aug 20 2020 at 14:59, on Zulip):

to be clear all platforms "can" support this, it's just a matter of figuring out the magic linker flags to get llvm to build

pnkfelix (Aug 20 2020 at 14:59, on Zulip):

hmm yes okay. That way, a prereq for going from tier2 to tier1 will be adding such support

pnkfelix (Aug 20 2020 at 15:00, on Zulip):

(by "that way", I meant what wesley said above)

simulacrum (Aug 20 2020 at 15:00, on Zulip):

essentially that's the requirement I think we'd have. obviously we'd accept patches to fix tier-2/3 targets as well

nikomatsakis (Aug 20 2020 at 15:00, on Zulip):

I guess I feel like filing bugs per platform for this is overkill

nikomatsakis (Aug 20 2020 at 15:00, on Zulip):

tier 2 / tier 3 platforms are kind of expected to have bugs

nikomatsakis (Aug 20 2020 at 15:00, on Zulip):

I mean if people file bugs that's ok :)

simulacrum (Aug 20 2020 at 15:00, on Zulip):

yes I don't want to file bugs per platform personally

nikomatsakis (Aug 20 2020 at 15:00, on Zulip):

but I don't know that we have to go out of our way to do so

pnkfelix (Aug 20 2020 at 15:00, on Zulip):

yeah okay, I'm alright with not requiring bugs to be filed as long as the requirement for tier 1 is documented.

nikomatsakis (Aug 20 2020 at 15:00, on Zulip):

(would be nice if we had tests....mind you)

pnkfelix (Aug 20 2020 at 15:00, on Zulip):

so it seems like everyone is in sync with that plan then?

simulacrum (Aug 20 2020 at 15:01, on Zulip):

I will follow-up

pnkfelix (Aug 20 2020 at 15:01, on Zulip):

fantastic

pnkfelix (Aug 20 2020 at 15:01, on Zulip):

okay well I'm sorry we didn't have time to look at that P-high issue nor the performance report

pnkfelix (Aug 20 2020 at 15:01, on Zulip):

(though I think the performance report didn't contain any show-stoppers. I hope!)

pnkfelix (Aug 20 2020 at 15:01, on Zulip):

so thank you to everyone in @T-compiler/meeting for attending! Hope to be able to see some of you at virtual rustconf later. :)

nagisa (Aug 20 2020 at 15:11, on Zulip):

my take on llvm zlib thing: figure out how to get it linked statically.

nagisa (Aug 20 2020 at 15:13, on Zulip):

I know llvm build system is doing something weird that makes it always use dynamic zlib, but there's no reason we couldn't look into making a patch for upstream.

pnkfelix (Aug 20 2020 at 16:04, on Zulip):

nagisa said:

I know llvm build system is doing something weird that makes it always use dynamic zlib, but there's no reason we couldn't look into making a patch for upstream.

yeah I think this suggestion was made somewhere in the github issue(s) ... and maybe someone provided a demo patch? Not sure.

simulacrum (Aug 20 2020 at 16:17, on Zulip):

@mati865 tried to but failed, I believe

simulacrum (Aug 20 2020 at 21:37, on Zulip):

@nagisa indeed, https://github.com/rust-lang/rust/issues/74420#issuecomment-660186236

nagisa (Aug 20 2020 at 21:38, on Zulip):

ugh

Last update: Nov 25 2020 at 01:30UTC