Stream: t-compiler

Topic: weekly meeting 2019-09-12 #54818


pnkfelix (Sep 12 2019 at 10:59, on Zulip):

Hi @T-compiler/meeting ; the triage meeting will be starting in about 3 hours

pnkfelix (Sep 12 2019 at 10:59, on Zulip):

I will be doing pre-triage in a parallel topic

pnkfelix (Sep 12 2019 at 11:00, on Zulip):

According to the current WG checkin schedule, we are supposed to hear from WG Polonius and WG RFC 2229 this week

pnkfelix (Sep 12 2019 at 11:02, on Zulip):

(i'm digging this "new" rust-lang.github.io/compiler-team site that has arisen in my absence, by the way. Good job to everyone who has been working on that.)

pnkfelix (Sep 12 2019 at 11:03, on Zulip):

@nikomatsakis will you have anything to report regarding the above two WG's? (I'll also ping @blitzerr in case they would like to present on behalf of WG RFC 2229)

blitzerr (Sep 12 2019 at 11:29, on Zulip):

@pnkfelix unfortunately, I won't be available then. I would let Niko take it over.

pnkfelix (Sep 12 2019 at 12:11, on Zulip):

:exclamation: lets make sure we look at nominated issue "Make the generator-locals debuginfo test resilient to re-ordering." #63742 today (at request of @mw , who will unfortunately be absent from the meeting itself.)

nikomatsakis (Sep 12 2019 at 12:19, on Zulip):

I can prep a short report on both wgs

nikomatsakis (Sep 12 2019 at 12:23, on Zulip):

:exclamation: lets make sure we look at nominated issue "Make the generator-locals debuginfo test resilient to re-ordering." #63742 today (at request of mw , who will unfortunately be absent from the meeting itself.)

hmm I see why @mw was concerned; not sure why we didn't discuss this earlier, I think I somehow failed to understand the concern. It'd be good if @tmandry were able to dig into it more deeply.

Or perhaps @eddyb could take a look? My hunch is that this is something related to debuginfo.

I guess the hypothesis is that LLVM is re-ordering some writes without realizing that those reorders are visible to debuginfo?

Put another way: we have no evidence that these "intermediate states" are visible to Rust code outside of a debugger, right? If so, it seems like a bug, but not a stability concern.

eddyb (Sep 12 2019 at 12:25, on Zulip):

given what @vext01 aka @Edd Barrett has been doing... it wouldn't surprise me if that's a bug in their MIR pass

eddyb (Sep 12 2019 at 12:26, on Zulip):

I agree with @mw, this is debuginfo test, it shouldn't be optimizing anything

mw (Sep 12 2019 at 12:26, on Zulip):

Yep, I mostly wanted to make sure the folks working on generators take a look at this.

eddyb (Sep 12 2019 at 12:26, on Zulip):

pretty much everything would show <optimized out> in a debugger if we did enable optimizations

eddyb (Sep 12 2019 at 12:28, on Zulip):

@mw some context: @Edd Barrett is working on some tracing-JIT type stuff, not that different from holyJIT IIRC

eddyb (Sep 12 2019 at 12:29, on Zulip):

I doubt what they're observing can be triggered without their pass because I doubt LLVM does anything to this code

eddyb (Sep 12 2019 at 12:30, on Zulip):

also, LLVM likely doesn't even have enough information to know that the generator state isn't aliased, so it's likely writes to the variable in question can't even be optimized by LLVM even if optimizations were enabled (cc @tmandry) EDIT: okay it could just inline everything first

pnkfelix (Sep 12 2019 at 12:38, on Zulip):

:exclamation: anyone here have access to an arm/musl system? This is regarding P-high: "Stable rustc always panics on arm/musl" #60297

Edd Barrett (Sep 12 2019 at 12:43, on Zulip):

given what @vext01 aka Edd Barrett has been doing... it wouldn't surprise me if that's a bug in their MIR pass

This is entirely possible.

FWIW, here's the pass:
https://github.com/softdevteam/ykrustc/blob/master/src/librustc_mir/transform/add_yk_swt_calls.rs

eddyb (Sep 12 2019 at 12:45, on Zulip):

(deleted)

eddyb (Sep 12 2019 at 12:45, on Zulip):

(deleted)

eddyb (Sep 12 2019 at 12:49, on Zulip):

@Edd Barrett does your pass run before or after the generator transform pass? can you move it to be just before/after (the opposite of what it was) and try that test again?

Edd Barrett (Sep 12 2019 at 12:52, on Zulip):

Edd Barrett does your pass run before or after the generator transform pass? can you move it to be just before/after (the opposite of what it was) and try that test again?

It runs as the last pass (besides dumping MIR):
https://github.com/softdevteam/ykrustc/blob/bf7c6f32c1c4d520213f8236582c53ec7f2887ee/src/librustc_mir/transform/mod.rs#L292

We kind of need to it be there, but I can try moving it temporarily if it helps with diagnosis.

nikomatsakis (Sep 12 2019 at 13:02, on Zulip):

:exclamation: anyone here have access to an arm/musl system? This is regarding P-high: "Stable rustc always panics on arm/musl" #60297

@pnkfelix yeah that feels like one that should be good to draw attention to outside of this meeting. That's been on my list forever.

nikomatsakis (Sep 12 2019 at 13:02, on Zulip):

Honestly maybe just tweeting about it.

nikomatsakis (Sep 12 2019 at 13:03, on Zulip):

I can just do that right now.

nikomatsakis (Sep 12 2019 at 13:04, on Zulip):

https://twitter.com/nikomatsakis/status/1172133974715637765

eddyb (Sep 12 2019 at 13:10, on Zulip):

@Amanieu d'Antras ^^ do you still do stuff with ARM?

pnkfelix (Sep 12 2019 at 13:12, on Zulip):

before I go AFK, let me go ahead and list the beta nomination ahead of time, to get them in peoples heads. (But without the voting emoji's; I'll put those on the messages I post during the meeting itself)

pnkfelix (Sep 12 2019 at 13:12, on Zulip):

well maybe that's silly

pnkfelix (Sep 12 2019 at 13:13, on Zulip):

I'll just post the link to the list for now: beta-noms (has three issues as of this posting)

pnkfelix (Sep 12 2019 at 14:03, on Zulip):

okay back again

pnkfelix (Sep 12 2019 at 14:03, on Zulip):

Hi @T-compiler/meeting

nagisa (Sep 12 2019 at 14:03, on Zulip):

o/

pnkfelix (Sep 12 2019 at 14:04, on Zulip):

I didn't quite make it through all the P-high issues in the parallel pre-triage topice

pnkfelix (Sep 12 2019 at 14:04, on Zulip):

but 75% ain't too shabby

centril (Sep 12 2019 at 14:04, on Zulip):

Nice to have you back @pnkfelix

pnkfelix (Sep 12 2019 at 14:05, on Zulip):

its good to be back!

pnkfelix (Sep 12 2019 at 14:05, on Zulip):

so lets seeeeee

pnkfelix (Sep 12 2019 at 14:06, on Zulip):

we have twelve unassigned P-high bugs

pnkfelix (Sep 12 2019 at 14:07, on Zulip):

perhaps of slightly higher priority, we have three beta regressions; they're all currently assigned to me ...

pnkfelix (Sep 12 2019 at 14:08, on Zulip):

lets just make sure we review those quickly, because if I can offload two of these, it would be better all around I think

pnkfelix (Sep 12 2019 at 14:08, on Zulip):

1/3: "Regression: Matching on function pointers fails when one of the formal params implements custom PartialEq" #63479

pnkfelix (Sep 12 2019 at 14:08, on Zulip):

I do think I can keep this for now; I have the custom PartialEq stuff sort of in my mental cache, somehow

nikomatsakis (Sep 12 2019 at 14:09, on Zulip):

I don't think I fully processed that this was a regression -- or at least that it might be considered urgent

pnkfelix (Sep 12 2019 at 14:09, on Zulip):

2/3: "Segfault compiling libc on nightly-armv7-unknown-linux-gnueabihf" #62896

pnkfelix (Sep 12 2019 at 14:09, on Zulip):

I don't think I fully processed that this was a regression -- or at least that it might be considered urgent

maybe we can double-back later and check that it deserves that prioritiation? Certainly the filer said it was a regression and it mattered to their crate, I think.

pnkfelix (Sep 12 2019 at 14:10, on Zulip):

regarding #62896, I didn't really have time to digest the whole comment thread there

pnkfelix (Sep 12 2019 at 14:10, on Zulip):

its not clear to me what platforms are affected by this

pnkfelix (Sep 12 2019 at 14:11, on Zulip):

but it sounds like the claim is that the build infrastructure we are using is somehow yielding binaries that don't behave well?

nikomatsakis (Sep 12 2019 at 14:11, on Zulip):

yeah, I'm skimming it now and it's a bit confusing

pnkfelix (Sep 12 2019 at 14:11, on Zulip):

do we have any idea about who has been able to actually reproduce the issue?

pnkfelix (Sep 12 2019 at 14:11, on Zulip):

is it just fenhl ?

pnkfelix (Sep 12 2019 at 14:12, on Zulip):

and is it just ... arm hosts?

nikomatsakis (Sep 12 2019 at 14:12, on Zulip):

maybe @Nikita Popov ? it sounded like they saw crashes but I guess they were unrelated to root cause

pnkfelix (Sep 12 2019 at 14:13, on Zulip):

oconnor663 also saw issues, I wonder what platform they were on

pnkfelix (Sep 12 2019 at 14:14, on Zulip):

okay I guess no one present feels like they could take charge on trying to reproduce locally?

pnkfelix (Sep 12 2019 at 14:14, on Zulip):

in which case ... I'll move along to the last bug

pnkfelix (Sep 12 2019 at 14:14, on Zulip):

3/3: "Undefined symbol _fltused when compiling to x86_64-unknown-uefi" #62785

pnkfelix (Sep 12 2019 at 14:14, on Zulip):

this one is marked E-needs-bisection

pnkfelix (Sep 12 2019 at 14:15, on Zulip):

so it seems like anyone with a machine could priobably make progress

nikomatsakis (Sep 12 2019 at 14:15, on Zulip):

both of these things raise the usual questions of "how much do we prioritize these targets"

eddyb (Sep 12 2019 at 14:15, on Zulip):

anyone willing to reboot their machine? :P

nikomatsakis (Sep 12 2019 at 14:15, on Zulip):

it feels like if we're going to prioritize bugs, we need to have an easy way to reproduce problems

eddyb (Sep 12 2019 at 14:16, on Zulip):

(okay presumably you don't need to actually run the UEFI executable to get that error)

pnkfelix (Sep 12 2019 at 14:16, on Zulip):

I had assumed target meant you could cross compile

nikomatsakis (Sep 12 2019 at 14:16, on Zulip):

but that's a topic for the meeting with @Josh Triplett, I suppose :)

nikomatsakis (Sep 12 2019 at 14:16, on Zulip):

yeah, if cross-compile produces the error that's good

pnkfelix (Sep 12 2019 at 14:16, on Zulip):

so ... anyone ? Bueller?

pnkfelix (Sep 12 2019 at 14:17, on Zulip):

okay well I'm going to move along then

pnkfelix (Sep 12 2019 at 14:17, on Zulip):

beta-nominations

pnkfelix (Sep 12 2019 at 14:17, on Zulip):

https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=label%3Abeta-nominated+label%3AT-compiler

pnkfelix (Sep 12 2019 at 14:18, on Zulip):

beta-nom: "Update LLVM submodule" #64317

pnkfelix (Sep 12 2019 at 14:19, on Zulip):

so, just to play devils advocate

nikomatsakis (Sep 12 2019 at 14:19, on Zulip):

one of the riskier backports :)

pnkfelix (Sep 12 2019 at 14:19, on Zulip):

during the P-high review I saw a few bugs that end up blaming LLVM upgrades

centril (Sep 12 2019 at 14:19, on Zulip):

but also closes 2 soundness holes

Nikita Popov (Sep 12 2019 at 14:19, on Zulip):

Multiple people reported the issue with armv7-unknown-linux-gnueabihf, and it seems to only affect that target. Cause is unknown, apart from being due to an LLVM upgrade.

nikomatsakis (Sep 12 2019 at 14:20, on Zulip):

@Nikita Popov i.e., possibly due to this upgrade?

Nikita Popov (Sep 12 2019 at 14:20, on Zulip):

Due to the LLVM 9 upgrade. The beta-nom one is only backports of LLVM 9 fixes.

pnkfelix (Sep 12 2019 at 14:21, on Zulip):

right, context: https://github.com/rust-lang/rust/issues/62896#issuecomment-515621347

pnkfelix (Sep 12 2019 at 14:22, on Zulip):

but also closes 2 soundness holes

sure, I'm just saying: one major point of asking these questions is to try to avoid causing even more harm with the supposed fix

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

having said that, if this beta-nom is solely backporting fixes, then that seems pretty well focused

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

and I'm personally willing to trust the LLVM devs if they've narrowed things down in such a fashion

nikomatsakis (Sep 12 2019 at 14:23, on Zulip):

yeah, I was going to say the same

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

okay. SOunds good. Approvided for backport then,.

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

:+1:

pnkfelix (Sep 12 2019 at 14:24, on Zulip):

beta-nom: "fix nounwind attribute logic" #63909

pnkfelix (Sep 12 2019 at 14:25, on Zulip):

hmm, which is somehow coupled with beta-nominated PR #62603, which is assigned to T-lang?

nikomatsakis (Sep 12 2019 at 14:26, on Zulip):

Seems correct

nikomatsakis (Sep 12 2019 at 14:26, on Zulip):

That said, I think the lang decision was to go ahead and backport (both) and push hard on reaching a better fix

pnkfelix (Sep 12 2019 at 14:26, on Zulip):

there's a lot of discussion

nikomatsakis (Sep 12 2019 at 14:26, on Zulip):

But we can nominate for lang meeting if we like

nikomatsakis (Sep 12 2019 at 14:26, on Zulip):

We should at least reach a technical decision here

centril (Sep 12 2019 at 14:27, on Zulip):

@nikomatsakis I changed my mind since based on the RFC discussion

nikomatsakis (Sep 12 2019 at 14:27, on Zulip):

from a technical perspective, I think these would be safe to backport

nikomatsakis (Sep 12 2019 at 14:27, on Zulip):

(which I guess is the major decision we need to make here?)

centril (Sep 12 2019 at 14:28, on Zulip):

is the PR sufficiently tested?

pnkfelix (Sep 12 2019 at 14:29, on Zulip):

I am still playing catch up here; I cannot immediate tell from the description alone what change is implemented by PR #63909.

pnkfelix (Sep 12 2019 at 14:29, on Zulip):

Is it that it removes an implicitly injected nounwind for extern fn ?

pnkfelix (Sep 12 2019 at 14:30, on Zulip):

and ... what beta regression, if any, is this fixing?

centril (Sep 12 2019 at 14:30, on Zulip):

it's not fixing a beta regression

pnkfelix (Sep 12 2019 at 14:30, on Zulip):

and ... if it hasn't landed on nightly, we certainly can't backport it

pnkfelix (Sep 12 2019 at 14:30, on Zulip):

right?

nikomatsakis (Sep 12 2019 at 14:30, on Zulip):

Is it that it removes an implicitly injected nounwind for extern fn ?

correct

centril (Sep 12 2019 at 14:30, on Zulip):

@pnkfelix my thoughts exactly re. not having landed on nightly

nikomatsakis (Sep 12 2019 at 14:30, on Zulip):

and ... what beta regression, if any, is this fixing?

it's not fixing a beta regression exactly

centril (Sep 12 2019 at 14:30, on Zulip):

(i.e. this might not even be the final state of the PR)

pnkfelix (Sep 12 2019 at 14:32, on Zulip):

I think my inclination, based on what I've seen, would be to decline beta-acceptance of this for now, but invite people to re-nominate it after it has landed in nightly ...?

pnkfelix (Sep 12 2019 at 14:32, on Zulip):

but I say this while also saying that I am really out of the loop here

centril (Sep 12 2019 at 14:33, on Zulip):

sounds good (...assuming it will land on nightly, which isn't clear it will do)

nikomatsakis (Sep 12 2019 at 14:33, on Zulip):

What happens is this:

the discussion we had in the lang team was basically about how to handle this. At the time, there was a (loose, I would say) agreement that:

That said, I don't have a strong opinion about this, except that I definitely think we should get out story in order and stop revisiting this question. I kind of think it's ok to live in ambiguity for the time being though, it's been that way a long time.

pnkfelix (Sep 12 2019 at 14:33, on Zulip):

okay, sure. But #62603 hasn't been approved for backport yet anyway

nikomatsakis (Sep 12 2019 at 14:33, on Zulip):

anyway, I think it's ok to decline to beta nominate, as long as we're clear on the reason ("not on nightly")

pnkfelix (Sep 12 2019 at 14:33, on Zulip):

so that's another approach, is to punt the decision here until that #62603 decision has been made.

centril (Sep 12 2019 at 14:35, on Zulip):

in the interest of time, let's move on to something else?

nikomatsakis (Sep 12 2019 at 14:35, on Zulip):

I say we punt for now and revisit.

centril (Sep 12 2019 at 14:35, on Zulip):

(where that can be 62603)

pnkfelix (Sep 12 2019 at 14:36, on Zulip):

okay, so ...

pnkfelix (Sep 12 2019 at 14:36, on Zulip):

last beta-nom: "pprust: Do not print spaces before some tokens" #63897

centril (Sep 12 2019 at 14:37, on Zulip):

feels safe

pnkfelix (Sep 12 2019 at 14:37, on Zulip):

yeah I agree

pnkfelix (Sep 12 2019 at 14:37, on Zulip):

sort of weird it was causing assert fails

pnkfelix (Sep 12 2019 at 14:37, on Zulip):

but I guess I can understand

pnkfelix (Sep 12 2019 at 14:37, on Zulip):

in terms of the legacy code involved here

centril (Sep 12 2019 at 14:38, on Zulip):

tho I'm wondering why the PR uses two nested matches... (not important re. beta backport... more a stylistic thing)

centril (Sep 12 2019 at 14:38, on Zulip):

(and that comment could be made into a doc comment -- strictly C-enhancement tho)

pnkfelix (Sep 12 2019 at 14:39, on Zulip):

okay so

pnkfelix (Sep 12 2019 at 14:39, on Zulip):

no stable nominations, good

centril (Sep 12 2019 at 14:40, on Zulip):

(Also unnominating for lang team)

pnkfelix (Sep 12 2019 at 14:40, on Zulip):

so there are four I-nominated

pnkfelix (Sep 12 2019 at 14:40, on Zulip):

but only 20 minutes left

pnkfelix (Sep 12 2019 at 14:40, on Zulip):

there was the one that @mw wanted us to talk about

pnkfelix (Sep 12 2019 at 14:40, on Zulip):

(see start of topic)

pnkfelix (Sep 12 2019 at 14:41, on Zulip):

I-nominated: "Make the generator-locals debuginfo test resilient to re-ordering." #63742

pnkfelix (Sep 12 2019 at 14:43, on Zulip):

well if nothing else, it seems like the people working on generators and such have been alerted to an issue here

pnkfelix (Sep 12 2019 at 14:43, on Zulip):

so maybe we can let that slide

pnkfelix (Sep 12 2019 at 14:43, on Zulip):

and I'd rather focus on the WG check-in

pnkfelix (Sep 12 2019 at 14:43, on Zulip):

rather than the other three nominated issues right now

pnkfelix (Sep 12 2019 at 14:44, on Zulip):

(and also my son is attempting to type on my keyboard, so its a good time for me to hand off the controls)

pnkfelix (Sep 12 2019 at 14:44, on Zulip):

@nikomatsakis you want to tell us what's up with Polonius and RFC 2229?

nikomatsakis (Sep 12 2019 at 14:44, on Zulip):

Sure--

nikomatsakis (Sep 12 2019 at 14:45, on Zulip):

Polonius WG checking

cc @WG-polonius

nikomatsakis (Sep 12 2019 at 14:45, on Zulip):

We are "rebooting" after a long hiatus. In general, our focus at present is on expanding the Polonius coverage so that it includes not just the "core" of borrow check but also things like the initialization checks and more of region subtyping.

nikomatsakis (Sep 12 2019 at 14:45, on Zulip):

We've made some progress on the code there, but we also decided to step back and start writing a polonius book that helps to document the rules. This is partly because it's hard to review the code in isolation, it'd be nice to be able to read the book first as a kind of spec and then compare to the code. But it will also make the system better documented and make it easier for people to get involved.

nikomatsakis (Sep 12 2019 at 14:45, on Zulip):

On a related note, @Albin Stjerna has been working on their master's thesis, which includes a lot of great coverage.

nikomatsakis (Sep 12 2019 at 14:45, on Zulip):

Other areas of effort worth noting:

nikomatsakis (Sep 12 2019 at 14:46, on Zulip):
nikomatsakis (Sep 12 2019 at 14:47, on Zulip):
nikomatsakis (Sep 12 2019 at 14:47, on Zulip):
nikomatsakis (Sep 12 2019 at 14:47, on Zulip):
nikomatsakis (Sep 12 2019 at 14:48, on Zulip):

one of the things we decided in our last meeting was that we need to settle also our vocabulary :)

centril (Sep 12 2019 at 14:48, on Zulip):

provs / lifetimes / regions ... ?

nikomatsakis (Sep 12 2019 at 14:48, on Zulip):

we've got some burning issues, like what to call region ... (leading candidates are origin or provenance, I believe)

nikomatsakis (Sep 12 2019 at 14:48, on Zulip):

but anyway we expect to iron that out as part of the book chapter reviews, then bring code in sync

pnkfelix (Sep 12 2019 at 14:48, on Zulip):

any chance this might be handled via .. i dunno, some sort of change in representation?

nikomatsakis (Sep 12 2019 at 14:49, on Zulip):

(the idea being:

nikomatsakis (Sep 12 2019 at 14:50, on Zulip):

@pnkfelix not sure, I've not really looked at where the error is coming from, but I would guess that it'd be handled by some more optimized variant of the rules that avoids creating tuples for some cases

centril (Sep 12 2019 at 14:50, on Zulip):

Relatedly: NLL errors that AST borrowck accepts are no longer downgraded to warnings on Rust 2018 as of 1.39.

centril (Sep 12 2019 at 14:51, on Zulip):

In 1.40 we push this to Rust 2015 as well.

centril (Sep 12 2019 at 14:51, on Zulip):

(and then we can throw out AST borrowck)

nikomatsakis (Sep 12 2019 at 14:51, on Zulip):

OK, so, RFC 2229 now?

nikomatsakis (Sep 12 2019 at 14:51, on Zulip):

RFC 2229

cc @WG-rfc-2229

nikomatsakis (Sep 12 2019 at 14:51, on Zulip):

Less to report there

nikomatsakis (Sep 12 2019 at 14:52, on Zulip):

We've basiaclly been stalled at the same spot for a while

nikomatsakis (Sep 12 2019 at 14:52, on Zulip):

@blitzerr was doing this refactoring to change how closure substitutions work so that the number of type parameters is independent of the number of captured variables

nikomatsakis (Sep 12 2019 at 14:52, on Zulip):

This is basically done but

nikomatsakis (Sep 12 2019 at 14:52, on Zulip):

It led to some minor regressions in the diagnostic output

nikomatsakis (Sep 12 2019 at 14:52, on Zulip):

Moreover, the compiler has changed a lot in the meantime

nikomatsakis (Sep 12 2019 at 14:52, on Zulip):

So it needs to be rebased

nikomatsakis (Sep 12 2019 at 14:52, on Zulip):

We were trying to fix those regressions -- basically there's an added tuple in there --

nikomatsakis (Sep 12 2019 at 14:53, on Zulip):

but it's been kind of annoying to make it go away

nikomatsakis (Sep 12 2019 at 14:53, on Zulip):

it probably just needs a few hours of concentrated time, but those have been hard to come by

nikomatsakis (Sep 12 2019 at 14:53, on Zulip):

To help everyone remember...

nikomatsakis (Sep 12 2019 at 14:53, on Zulip):

RFC 2229 is the work to change it so that closures don't capture entire variables, but rather subpaths

pnkfelix (Sep 12 2019 at 14:53, on Zulip):

is @blitzerr still actively working on this, or are you trying to revive their work?

nikomatsakis (Sep 12 2019 at 14:54, on Zulip):

They're still around, they were busy for a while

nikomatsakis (Sep 12 2019 at 14:54, on Zulip):

Every once in a while I carve out some time to look at it again and makes some suggestions

nikomatsakis (Sep 12 2019 at 14:54, on Zulip):

but my last round of tips didn't work out :) which is why we still have a few tests failing

nikomatsakis (Sep 12 2019 at 14:54, on Zulip):

I think at this point, I'm leaning towards, let's just rebase and fix the problem afresh on master

nikomatsakis (Sep 12 2019 at 14:54, on Zulip):

it's sort of an "off by one" sort of thing

nikomatsakis (Sep 12 2019 at 14:55, on Zulip):

i.e., we have some chain of types, and we need to suppress "just the right one" from the diagnostic output, but for some reason that's been surprisingly annoying :)

centril (Sep 12 2019 at 14:55, on Zulip):

Is there any low hanging fruit one could make mentoring issues for?

nikomatsakis (Sep 12 2019 at 14:55, on Zulip):

sort of yes

nikomatsakis (Sep 12 2019 at 14:55, on Zulip):

this kind of is that

nikomatsakis (Sep 12 2019 at 14:56, on Zulip):

that said, there are some other issues that need some refreshed mentoring instructions, since again the compiler changed out from under them

nikomatsakis (Sep 12 2019 at 14:56, on Zulip):

this kind of is that

that is, this is the low hanging fruit, we're following a chain of refactoring steps I wrote out some time back and added mentoring instructions for, and this is the next step

nikomatsakis (Sep 12 2019 at 14:56, on Zulip):

but it would be good to go back over those steps again and refresh them

nikomatsakis (Sep 12 2019 at 14:57, on Zulip):

that's all I got :)

pnkfelix (Sep 12 2019 at 14:57, on Zulip):

okay

pnkfelix (Sep 12 2019 at 14:57, on Zulip):

three minutes leeft

pnkfelix (Sep 12 2019 at 14:57, on Zulip):

I want to just point people at one of the other nominated issues

pnkfelix (Sep 12 2019 at 14:58, on Zulip):

:exclamation: I-nominated: "rustc_target: use Integer instead of Primitive for discriminants and niches." #63450

pnkfelix (Sep 12 2019 at 14:58, on Zulip):

any situation where @eddyb wants to ask what the right answer is

pnkfelix (Sep 12 2019 at 14:58, on Zulip):

(versus figuring it out for themself, or "just knowing"

pnkfelix (Sep 12 2019 at 14:59, on Zulip):

seems like a case worth at least pointing out to the group

pnkfelix (Sep 12 2019 at 14:59, on Zulip):

:smiley:

eddyb (Sep 12 2019 at 14:59, on Zulip):

if I "just knew" what the perfect compiler looked like, I wouldn't contribute to rustc :P

pnkfelix (Sep 12 2019 at 15:00, on Zulip):

right: You'd fork it!

eddyb (Sep 12 2019 at 15:00, on Zulip):

more seriously, that one is annoying because it's sort of a tradeoff

nikomatsakis (Sep 12 2019 at 15:00, on Zulip):

seems like a good design meeting issue

pnkfelix (Sep 12 2019 at 15:00, on Zulip):

anyway, we don't actually have time to do the discussion synchronously in this time slot

nikomatsakis (Sep 12 2019 at 15:00, on Zulip):

just sayin'

pnkfelix (Sep 12 2019 at 15:00, on Zulip):

but Iwanted to point it out

eddyb (Sep 12 2019 at 15:00, on Zulip):

it wasn't supposed to (be a tradeoff) but signed integers make life hard for everyone

nikomatsakis (Sep 12 2019 at 15:00, on Zulip):

(though maybe overkill:)

pnkfelix (Sep 12 2019 at 15:00, on Zulip):

@nikomatsakis you think its worth a design meeting slot? maybe

nikomatsakis (Sep 12 2019 at 15:01, on Zulip):

I mean I don't see why not

pnkfelix (Sep 12 2019 at 15:01, on Zulip):

i guess it would be a good use of that time slot, maybe batch together some of these nominations like this

eddyb (Sep 12 2019 at 15:01, on Zulip):

even better if you can invite @RalfJ

nikomatsakis (Sep 12 2019 at 15:01, on Zulip):

it's waited 22 days for attention here

pnkfelix (Sep 12 2019 at 15:01, on Zulip):

anyway, thanks to everyone in @T-compiler/meeting for attending!!!

nikomatsakis (Sep 12 2019 at 15:01, on Zulip):

the point of that slot was to have a space for deeper technical discussions

nikomatsakis (Sep 12 2019 at 15:01, on Zulip):

I don't think it has to be a whole compiler refactoring to qualify, personally

pnkfelix (Sep 12 2019 at 15:01, on Zulip):

it's waited 22 days for attention here

wish I could take the blame for that, but for once, it wasn't me!

nikomatsakis (Sep 12 2019 at 15:02, on Zulip):

Oh I can find a way to blame you, if you want

pnkfelix (Sep 12 2019 at 15:02, on Zulip):

/me points at his children, and French's childcare system

pnkfelix (Sep 12 2019 at 15:03, on Zulip):

speaking of which... I'm outta here! See you all later.

nikomatsakis (Sep 12 2019 at 15:03, on Zulip):

( BTW, @Wesley Wiser, are you going to make minutes here? )

nikomatsakis (Sep 12 2019 at 15:03, on Zulip):

This reminds me that

nikomatsakis (Sep 12 2019 at 15:03, on Zulip):

we are thinking of creating a "team blog" -- we could start posting working group updates and select notes from triage there

Wesley Wiser (Sep 12 2019 at 15:03, on Zulip):

Yes, I'll probably have a PR up in a few hours.

nikomatsakis (Sep 12 2019 at 15:04, on Zulip):

awesome

nikomatsakis (Sep 12 2019 at 15:04, on Zulip):

you rock

centril (Sep 12 2019 at 15:04, on Zulip):

btw, @pnkfelix if you can take a look at https://github.com/rust-lang/rust/pull/63770 for a sec that'd be nice

pnkfelix (Sep 12 2019 at 15:05, on Zulip):

/me will go through the rfcbot list later; has to go AFK. only had time for a single final :rock_on:

eddyb (Sep 12 2019 at 15:06, on Zulip):

/me points at his children, and French's childcare system

notes down: "don't have kids, never get sick"

eddyb (Sep 12 2019 at 15:06, on Zulip):

(I misread the latter as "healthcare" but still applies)

centril (Sep 12 2019 at 15:07, on Zulip):

At least there is a childcare system ;)

Josh Triplett (Sep 12 2019 at 15:14, on Zulip):

I CCed a colleague who might be able to help.

gnzlbg (Sep 12 2019 at 15:16, on Zulip):

#63909 goes further and makes those cases not UB

nitpick: those cases are still UB, that PR just removes an attribute that might cause LLVM to "optimize" them.

Josh Triplett (Sep 12 2019 at 15:19, on Zulip):

(Help with the uefi target, I mean.)

RalfJ (Sep 16 2019 at 09:42, on Zulip):

even better if you can invite RalfJ

(that was about https://github.com/rust-lang/rust/issues/63450)
Not sure what I could contribute here? All I want is for https://github.com/rust-lang/rust/pull/63448 to get merged, and at this point I think it is not appropriate to block that on resolving our enum discriminant story.

RalfJ (Sep 16 2019 at 09:43, on Zulip):

that PR fixes incorrect evaluation behavior in the Miri engine, meaning CTFE and Miri currently just evaluate programs incorrect -- a critical bug.

RalfJ (Sep 16 2019 at 09:43, on Zulip):

@eddyb given that your PR didn't move in a few weeks, what is your rationale for blocking a critical bug fix on that?

eddyb (Sep 16 2019 at 09:44, on Zulip):

aaaaaa

eddyb (Sep 16 2019 at 09:44, on Zulip):

sorry I completely forgot about it

eddyb (Sep 16 2019 at 09:45, on Zulip):

I'll try to take a look at it today

eddyb (Sep 16 2019 at 09:45, on Zulip):

(I never wanted it to be blocked for this long)

pnkfelix (Sep 16 2019 at 09:45, on Zulip):

out of curiosity, what is an example of a scenario where we currently use a pointer for the discriminant?

RalfJ (Sep 16 2019 at 09:46, on Zulip):

aaaaaa

I pinged you twice on that PR, seems like I should have pinged you... on Zulip instead?^^

RalfJ (Sep 16 2019 at 09:46, on Zulip):

I'll try to take a look at it today

thanks!

pnkfelix (Sep 16 2019 at 09:47, on Zulip):

is it for handling e.g. Option<&T> in some sort of way that LLVM likes?

RalfJ (Sep 16 2019 at 09:47, on Zulip):

out of curiosity, what is an example of a scenario where we currently use a pointer for the discriminant?

no it's not about pointers at all

RalfJ (Sep 16 2019 at 09:47, on Zulip):

it's about overflows when computing the discriminant in case there is a niche

pnkfelix (Sep 16 2019 at 09:47, on Zulip):

from the comments in the PR it sounded like the reason we use Primitive today rather than Integer was to handle Pointers

RalfJ (Sep 16 2019 at 09:48, on Zulip):

oh you mean pointer type... yeah I guess that's for Option<&T> or so

RalfJ (Sep 16 2019 at 09:48, on Zulip):

(in Miri/CTFE we also have integer vs pointer values and that's somewaht orthogonal to the types so I was confused)

eddyb (Sep 16 2019 at 09:48, on Zulip):

pointers are kinda easy to solve, the annoying one is signed integers

pnkfelix (Sep 16 2019 at 09:49, on Zulip):

ah here is a concrete example you had found earlier, @RalfJ

pnkfelix (Sep 16 2019 at 09:50, on Zulip):

namely Option<unsafe extern "C" fn(*mut u8)>

eddyb (Sep 16 2019 at 09:51, on Zulip):

we can try to land RalfJ's PR if this is not easily solvable: https://github.com/rust-lang/rust/pull/63450#issuecomment-523385921

eddyb (Sep 16 2019 at 09:51, on Zulip):

wow that was 26 days ago it feels like last week

eddyb (Sep 16 2019 at 10:04, on Zulip):

@pnkfelix do you have a plan for proceeding here? if you want I can try to fix all the signedness bugs in my PR and then we can see how bad that is

pnkfelix (Sep 16 2019 at 10:04, on Zulip):

plan? ha ha, no

pnkfelix (Sep 16 2019 at 10:09, on Zulip):

(I moved much followup discussion of #63450 over to here: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/.2363450.20tracking.20discriminant.20type.2C.20Primitive.20vs.20Integer.2Bs.2E.2E.2E/near/175797635 )

Last update: Nov 16 2019 at 01:10UTC