Stream: t-compiler

Topic: weekly meeting 2019-06-20 #54818


pnkfelix (Jun 20 2019 at 13:28, on Zulip):

Hi @T-compiler/meeting ; the triage meeting will be starting in about 32 minutes.

pnkfelix (Jun 20 2019 at 13:29, on Zulip):

I will be doing pre-triage in a parallel topic

pnkfelix (Jun 20 2019 at 14:00, on Zulip):

Hi again @T-compiler/meeting

pnkfelix (Jun 20 2019 at 14:00, on Zulip):

I forgot to check in about WG-checkin

pnkfelix (Jun 20 2019 at 14:01, on Zulip):

but given how many beta regressions and nominations and P-highs we have

pnkfelix (Jun 20 2019 at 14:01, on Zulip):

(and the fact that @nikomatsakis is out at the Moz All Hands and presumably not attending this meeting)

pnkfelix (Jun 20 2019 at 14:01, on Zulip):

lets not do WG check-in today, and just focus on issue triage, nominations,. etc.

pnkfelix (Jun 20 2019 at 14:02, on Zulip):

but first of all: Any announcements ?? Lets wait a few minutes and see

oli (Jun 20 2019 at 14:03, on Zulip):

I will be offline for the first two July weeks and have reduced rustc time afterwards since I'm starting a new job

pnkfelix (Jun 20 2019 at 14:03, on Zulip):

ah sad news is not allowed @oli !

pnkfelix (Jun 20 2019 at 14:03, on Zulip):

but I kid of course. Half kid.

eddyb (Jun 20 2019 at 14:03, on Zulip):

so we done did the 'gcx removal already

pnkfelix (Jun 20 2019 at 14:04, on Zulip):

and you beta-nominated the 'gcx removal I assume ( :lol: )

pnkfelix (Jun 20 2019 at 14:04, on Zulip):

/me is in a jovial mood today

oli (Jun 20 2019 at 14:04, on Zulip):

/me is in a jovial mood today

the best mood of them all

eddyb (Jun 20 2019 at 14:04, on Zulip):

so I started to pursuit some AST/HIR restructuring, with #61968

eddyb (Jun 20 2019 at 14:05, on Zulip):

I'm not sure that should've been merged already :|

eddyb (Jun 20 2019 at 14:05, on Zulip):

since it kinda conflicted with @Zoxc's own work in this area

pnkfelix (Jun 20 2019 at 14:05, on Zulip):

where did @Zoxc register their concerns? Just in private messages or irc or discord or something?

eddyb (Jun 20 2019 at 14:05, on Zulip):

but either way I think we should move towards respecting AST/HIR integrity and not go around cloning or mutating nodes all over the place

eddyb (Jun 20 2019 at 14:06, on Zulip):

we were talking over Discord and I forgot to leave a note on-thread last night

pnkfelix (Jun 20 2019 at 14:06, on Zulip):

i see

eddyb (Jun 20 2019 at 14:06, on Zulip):

one thing I noticed that concerned me is that diagnostic code and other pieces of the compiler were cloning the HIR instead of passing around references, even if they had no need to actually keep a separate copy of anything

pnkfelix (Jun 20 2019 at 14:06, on Zulip):

I assume whatever the concerns were, they wouldn't justify backing the PR out

eddyb (Jun 20 2019 at 14:07, on Zulip):

yeah it just means they have to adjust their own PR further

centril (Jun 20 2019 at 14:08, on Zulip):

Speaking of AST/HIR restructuring, I could use your eyes on https://github.com/rust-lang/rust/pull/61988 @pnkfelix :slight_smile:

eddyb (Jun 20 2019 at 14:08, on Zulip):

oh yeah @centril has been trying to push for a more desugared HIR for a while now

eddyb (Jun 20 2019 at 14:08, on Zulip):

@centril would you like to present this stuff on a friday "design" meeting?

pnkfelix (Jun 20 2019 at 14:09, on Zulip):

yeah it might be good to make some sort of proposal for that

eddyb (Jun 20 2019 at 14:09, on Zulip):

I should too, except right now I'm mostly doing small things here and there and have no concrete plans yet

pnkfelix (Jun 20 2019 at 14:09, on Zulip):

the design meeting process is documented at #58850

eddyb (Jun 20 2019 at 14:09, on Zulip):

(other than we should do arenas and "persistent collections"-like handling of the AST - at least the HIR is already created immutable)

pnkfelix (Jun 20 2019 at 14:09, on Zulip):

(well, the documentation of the protocol isn't actuallyt here, but should be linked from there)

centril (Jun 20 2019 at 14:10, on Zulip):

Beyond this PR and the 2/6 PR that removes IfLet and WhileLet I think we should remove && and || as binary operators

centril (Jun 20 2019 at 14:10, on Zulip):

but that might break some const code

centril (Jun 20 2019 at 14:10, on Zulip):

due to lack of control flow in consts atm

eddyb (Jun 20 2019 at 14:11, on Zulip):

yeah we can't do that yet. and I'm not sure we should... it's inching into HIR -> MIR territory

eddyb (Jun 20 2019 at 14:11, on Zulip):

hence we should discuss how much desugaring we even want at the HIR level (in a design meeting!)

pnkfelix (Jun 20 2019 at 14:11, on Zulip):

okay hold on

pnkfelix (Jun 20 2019 at 14:11, on Zulip):

lets get back on course and do triage

eddyb (Jun 20 2019 at 14:11, on Zulip):

(deleted)

pnkfelix (Jun 20 2019 at 14:11, on Zulip):

(see my goal here is to lure you all in with @eddyb's devious plans)

pnkfelix (Jun 20 2019 at 14:12, on Zulip):

and then bait-and-switch to triage

centril (Jun 20 2019 at 14:12, on Zulip):

:D

pnkfelix (Jun 20 2019 at 14:12, on Zulip):

lets do beta-nominations first because I'm terrified we'll skip them otherwise.

Pietro Albini (Jun 20 2019 at 14:13, on Zulip):

:heart:

eddyb (Jun 20 2019 at 14:13, on Zulip):

(I'm mostly worried we'll be stepping in eachother's toes. maybe we should have a system different from the meetings to announce/track work in the compiler that's interesting/disruptive but not necessarily big enough to warrant design planning)

pnkfelix (Jun 20 2019 at 14:13, on Zulip):

beta nom: "resolve: Temporarily make panic available with no_implicit_prelude" #61971

centril (Jun 20 2019 at 14:13, on Zulip):

I don't feel I understand why we are doing this

pnkfelix (Jun 20 2019 at 14:14, on Zulip):

it seems even @Vadim Petrochenkov does not necessarily want to do this ?

centril (Jun 20 2019 at 14:14, on Zulip):

Is this a semantic change on beta?

eddyb (Jun 20 2019 at 14:14, on Zulip):

macros have a lot of historical baggage and the only thing I understand is that we're trying to skirt around breaking changes but also make progress?

Vadim Petrochenkov (Jun 20 2019 at 14:14, on Zulip):

I don't feel I understand why we are doing this

Due to a beta regression.
But yes, I'd prefer not to do it, but rather close the regression issue as wontfix.

pnkfelix (Jun 20 2019 at 14:14, on Zulip):

in particular @Vadim Petrochenkov said that they'd rather close #61567 as a wont-fix

eddyb (Jun 20 2019 at 14:15, on Zulip):

didn't we say a long time ago that we shouldn't have accidentally let #![no_implicit_prelude] be stable?

eddyb (Jun 20 2019 at 14:15, on Zulip):

I have vague memories of a meeting where that came up

centril (Jun 20 2019 at 14:15, on Zulip):

@Vadim Petrochenkov what is the behavior of other macros with no_implicit_prelude atm ?

pnkfelix (Jun 20 2019 at 14:16, on Zulip):

they are .. fixed by PR #61629 I think?

Vadim Petrochenkov (Jun 20 2019 at 14:16, on Zulip):

what is the behavior of other macros with no_implicit_prelude atm ?

Built-ins are available, but others are not (at least on 2018 edition).

centril (Jun 20 2019 at 14:16, on Zulip):

Given that panic! is not a built-in then it should not be available I think

centril (Jun 20 2019 at 14:16, on Zulip):

so I think wontfix is right

pnkfelix (Jun 20 2019 at 14:17, on Zulip):

@Vadim Petrochenkov was PR #61629 supposed to be nominated for beta-backport, given that issue #61567 is a stable-to-beta regression ?

eddyb (Jun 20 2019 at 14:17, on Zulip):

if we move the builtins to libcore, how are we going to deal with #![no_implicit_prelude]? I was hoping there was no stable way to turn the prelude off...

pnkfelix (Jun 20 2019 at 14:18, on Zulip):

/me will nominate #61629 now to make sure we get to it.

pnkfelix (Jun 20 2019 at 14:18, on Zulip):

or is #61567 specifically about panic ...

Vadim Petrochenkov (Jun 20 2019 at 14:20, on Zulip):

if we move the builtins to libcore, how are we going to deal with #![no_implicit_prelude]?

Even if the macro is introduced through macro_use, we still should be able to determine that it originally comes from #[rustc_builtin_macro = "foo"] and make an exception for no_implicit_prelude logic.

pnkfelix (Jun 20 2019 at 14:20, on Zulip):

am I being dumb here? Is panic the only one that is relevant for stable-to-beta regression ?

Vadim Petrochenkov (Jun 20 2019 at 14:21, on Zulip):

Is panic the only one that is relevant for stable-to-beta regression ?

Yes, if https://github.com/rust-lang/rust/pull/61629 is backported to beta.

eddyb (Jun 20 2019 at 14:22, on Zulip):

is it because assert_eq! is now a builtin, but panic! isn't?

pnkfelix (Jun 20 2019 at 14:22, on Zulip):

okay, that was the important "if" statement I was waiting for

eddyb (Jun 20 2019 at 14:22, on Zulip):

so it's a rare case of a built-in calling a non-built-in?

centril (Jun 20 2019 at 14:22, on Zulip):

wait... assert_eq is built-in?

centril (Jun 20 2019 at 14:23, on Zulip):

https://doc.rust-lang.org/nightly/src/core/macros.rs.html#45-78

Vadim Petrochenkov (Jun 20 2019 at 14:23, on Zulip):

so it's a rare case of a built-in calling a non-built-in?

It's a rare case of a std lib macro calling panic specifically.
https://github.com/rust-lang/rust/pull/61629 has some discussion about why panic is unique.

eddyb (Jun 20 2019 at 14:23, on Zulip):

wait why did I think assert_eq! was builtin now?

eddyb (Jun 20 2019 at 14:24, on Zulip):

oh assert! is! sorry, got confused between the two

pnkfelix (Jun 20 2019 at 14:24, on Zulip):

so, it seems we have a choice here

pnkfelix (Jun 20 2019 at 14:24, on Zulip):

either we close "regression: assert_eq cannot find panic with no_implicit_prelude" #61567 as wont-fix

pnkfelix (Jun 20 2019 at 14:25, on Zulip):

or we backport "resolve: Temporarily make panic available with no_implicit_prelude" #61971

pnkfelix (Jun 20 2019 at 14:25, on Zulip):

I don't have an opinion. It seems like everyone who has spoken up here in an actual message is in favor of closing #61567 as wont-fix (and then closing the PR #61971 without merging it)

pnkfelix (Jun 20 2019 at 14:26, on Zulip):

Is this an incorrect summary of the dialogue so far? Is there anyone who wants to speak up in favor of treating #61567 as a must-fix stable-to-beta regression ?

centril (Jun 20 2019 at 14:26, on Zulip):

Macros defined in libcore do not want to call core::panic.

Wait... these two macros are not the same? wtf...

centril (Jun 20 2019 at 14:27, on Zulip):

(std::panic and core::panic)

eddyb (Jun 20 2019 at 14:28, on Zulip):

yeah the std::panic one can make a Box<dyn Any+'static>

eddyb (Jun 20 2019 at 14:28, on Zulip):

arguably it should be in alloc. but I guess it depends on panic machinery in std

pnkfelix (Jun 20 2019 at 14:29, on Zulip):

I haven't heard anyone speak up in favor of "fixing" #61567

pnkfelix (Jun 20 2019 at 14:29, on Zulip):

so I'm going to close it as wont-fix

pnkfelix (Jun 20 2019 at 14:31, on Zulip):

okay, next beta-nom: "Fix ICE involving mut references" #61947

pnkfelix (Jun 20 2019 at 14:31, on Zulip):

okay accepting

pnkfelix (Jun 20 2019 at 14:32, on Zulip):

next beta-nom: "rustc_typeck: correctly compute Substs for Res::SelfCtor." #61896

pnkfelix (Jun 20 2019 at 14:33, on Zulip):

okay accepting

eddyb (Jun 20 2019 at 14:33, on Zulip):

(I think the feature was stabilized in beta already so this is needed)

pnkfelix (Jun 20 2019 at 14:34, on Zulip):

next beta-nom: "Fix rust-lldb wrapper scripts." #61827

pnkfelix (Jun 20 2019 at 14:34, on Zulip):

why is this beta nominated ...

pnkfelix (Jun 20 2019 at 14:34, on Zulip):

@Pietro Albini ^ ?

pnkfelix (Jun 20 2019 at 14:34, on Zulip):

oh I see, the author requested it be so

pnkfelix (Jun 20 2019 at 14:35, on Zulip):

the fact it hasn't gotten r+'ed yet makes me inclined to not approve it at this time

Pietro Albini (Jun 20 2019 at 14:35, on Zulip):

yeah, the author requested that

Pietro Albini (Jun 20 2019 at 14:35, on Zulip):

I should probably leave an explicit comment next time

pnkfelix (Jun 20 2019 at 14:35, on Zulip):

(we do accept backports of unreviewed things, but only when they are stable-to-beta regressions, I think.)

pnkfelix (Jun 20 2019 at 14:35, on Zulip):

no its okay, you were reflecting author's intent

Pietro Albini (Jun 20 2019 at 14:35, on Zulip):

I mean, it was r+ed but it got rebased, and it's currently in niko's all hands limbo

pnkfelix (Jun 20 2019 at 14:36, on Zulip):

(sorry y'all, I forgot to add the emoji vote buttons earlier)

pnkfelix (Jun 20 2019 at 14:36, on Zulip):

oh was it r+'ed?

Esteban K├╝ber (Jun 20 2019 at 14:36, on Zulip):

By niko

pnkfelix (Jun 20 2019 at 14:36, on Zulip):

I see, yes it was

pnkfelix (Jun 20 2019 at 14:36, on Zulip):

I still personally see no need

pnkfelix (Jun 20 2019 at 14:36, on Zulip):

rather have it just go through the nightly

pnkfelix (Jun 20 2019 at 14:38, on Zulip):

okay lets move along

pnkfelix (Jun 20 2019 at 14:38, on Zulip):

(I'm going to decline, with explanation that its too close to beta cutoff to land this given that its not fixing a high priorty bug)

pnkfelix (Jun 20 2019 at 14:40, on Zulip):

next beta-nom: "Fix cfg(test) build for x86_64-fortanix-unknown-sgx" #61503

pnkfelix (Jun 20 2019 at 14:40, on Zulip):

ah yes this does seem important

pnkfelix (Jun 20 2019 at 14:41, on Zulip):

(for our internal QA of release)

pnkfelix (Jun 20 2019 at 14:41, on Zulip):

next beta-nom: "Dont ICE on an attempt to use GAT without feature gate" #61118

pnkfelix (Jun 20 2019 at 14:42, on Zulip):

(good old delay_span_bug ...)

pnkfelix (Jun 20 2019 at 14:44, on Zulip):

though looking at this now, I admit I'm confused as to how #56445 ends up being related to GAT's ...

pnkfelix (Jun 20 2019 at 14:44, on Zulip):

or maybe that's the whole point; its not related to GAT's.

pnkfelix (Jun 20 2019 at 14:44, on Zulip):

but its still an issue with the early-lifetime-param stuff

pnkfelix (Jun 20 2019 at 14:44, on Zulip):

hmm

pnkfelix (Jun 20 2019 at 14:45, on Zulip):

well anyway seems safer to beta-backport

pnkfelix (Jun 20 2019 at 14:46, on Zulip):

last beta-nom: "Limit dylib symbols" #59752

centril (Jun 20 2019 at 14:46, on Zulip):

What about the hygiene PR?

pnkfelix (Jun 20 2019 at 14:47, on Zulip):

oh acutaly

pnkfelix (Jun 20 2019 at 14:47, on Zulip):

there's a bunch of beta-nom'ed PR's that I should have prep-passed to add T-compiler label

pnkfelix (Jun 20 2019 at 14:47, on Zulip):

so lets take care of that

pnkfelix (Jun 20 2019 at 14:47, on Zulip):

(I'll mark #59752 as beta-accepted.)

pnkfelix (Jun 20 2019 at 14:48, on Zulip):

okay, new first beta-nom: "create a "provisional cache" to restore performance in the case of cycles" #61754

pnkfelix (Jun 20 2019 at 14:48, on Zulip):

Some quick notes

pnkfelix (Jun 20 2019 at 14:48, on Zulip):

this may not resolve all of the performance and overflow problems

pnkfelix (Jun 20 2019 at 14:49, on Zulip):

in particular I think @matklad has noted that rust-analyzer is still having issues even on the nightly that includes #61754

pnkfelix (Jun 20 2019 at 14:49, on Zulip):

so this may not be a home-run

pnkfelix (Jun 20 2019 at 14:49, on Zulip):

also, its quite a bit bigger (and more risky) than the other PR's we've looked at so far today

Vadim Petrochenkov (Jun 20 2019 at 14:50, on Zulip):

also, its quite a bit bigger (and more risky) than the other PR's we've looked at so far today

It fixes a critical issue though.

pnkfelix (Jun 20 2019 at 14:50, on Zulip):

and finally: it hasn't had long at all to bake on Nightly

pnkfelix (Jun 20 2019 at 14:50, on Zulip):

@Pietro Albini do we have a week hypothetically to wait on a PR like this?

pnkfelix (Jun 20 2019 at 14:50, on Zulip):

to let it bake more? (that is, to let it receive more testing against Nightly)

pnkfelix (Jun 20 2019 at 14:50, on Zulip):

or is that cutting things too close?

Pietro Albini (Jun 20 2019 at 14:51, on Zulip):

dunno

centril (Jun 20 2019 at 14:51, on Zulip):

waiting a week is fine

Pietro Albini (Jun 20 2019 at 14:51, on Zulip):

I'll talk with alex once he wakes up at the all hands

pnkfelix (Jun 20 2019 at 14:52, on Zulip):

okay

pnkfelix (Jun 20 2019 at 14:52, on Zulip):

okay

pnkfelix (Jun 20 2019 at 14:52, on Zulip):

I'm going to leave this unchanged for now

pnkfelix (Jun 20 2019 at 14:52, on Zulip):

still beta-nominated

pnkfelix (Jun 20 2019 at 14:52, on Zulip):

but not beta-accepted

pnkfelix (Jun 20 2019 at 14:52, on Zulip):

and I'll leave a comment explainnig that w'ere currently predisposed to approve a backport

pnkfelix (Jun 20 2019 at 14:53, on Zulip):

but we want to wait a little while before officially marking it so, if we can

pnkfelix (Jun 20 2019 at 14:53, on Zulip):

next beta-nom: "Hygienize macros in the standard library" #61629

pnkfelix (Jun 20 2019 at 14:55, on Zulip):

oh right, I just nominated this. ha ha

pnkfelix (Jun 20 2019 at 14:55, on Zulip):

any objections? I personally am trusting @Vadim Petrochenkov here, and the only question is whether I understood them correctly above in this meeting.

pnkfelix (Jun 20 2019 at 14:57, on Zulip):

@T-compiler/meeting , anyone want to weigh in other than @centril on this?

oli (Jun 20 2019 at 14:57, on Zulip):

I'm reading the PR

pnkfelix (Jun 20 2019 at 14:58, on Zulip):

that is an excellent answer.

davidtwco (Jun 20 2019 at 14:58, on Zulip):

I'm for it, I just tend not to vote on backports because my understanding was that it was those on the compiler team's decision.

pnkfelix (Jun 20 2019 at 14:58, on Zulip):

(ah true, I probably at-signed the wrong people there)

pnkfelix (Jun 20 2019 at 14:59, on Zulip):

((though anyone in the meeting is free to express a voiced opinion that might help sway T-compiler members votes))

pnkfelix (Jun 20 2019 at 14:59, on Zulip):

okay lets accept #61629 for backport

pnkfelix (Jun 20 2019 at 15:00, on Zulip):

and with that, we're at an hour

pnkfelix (Jun 20 2019 at 15:00, on Zulip):

thanks to everyone in @T-compiler/meeting for attending.

pnkfelix (Jun 20 2019 at 15:00, on Zulip):

Sorry we didn't get to do anything but discuss beta-backports today.

oli (Jun 20 2019 at 15:01, on Zulip):

thanks for driving @pnkfelix

pnkfelix (Jun 20 2019 at 15:02, on Zulip):

(I will also just mention that there are a bunch of unassigned P-high T-compiler bugs)

nikomatsakis (Jun 20 2019 at 15:17, on Zulip):

in particular I think matklad has noted that rust-analyzer is still having issues even on the nightly that includes #61754

link?

lqd (Jun 20 2019 at 15:52, on Zulip):

link?

link

Vadim Petrochenkov (Jun 20 2019 at 18:21, on Zulip):

So, I had an idea how to fix the panic problem discussed above in a simple way.
https://github.com/rust-lang/rust/pull/62002

Vadim Petrochenkov (Jun 20 2019 at 18:23, on Zulip):

On a related note, perhaps we need to reserve identifiers starting with __rustc (or something like that).
I know at least one more situation that would benefit from the same treatment as #62002 (__rustc_dollar_crate for processed $crate).

Last update: Nov 16 2019 at 02:05UTC