Stream: t-compiler

Topic: weekly meeting 2019-08-29 #54818


nikomatsakis (Aug 29 2019 at 13:34, on Zulip):

Hi @T-compiler/meeting; the triage meeting will be starting in 30 minutes

nikomatsakis (Aug 29 2019 at 13:35, on Zulip):

I will be doing pre-triage in a parallel topic

nikomatsakis (Aug 29 2019 at 13:37, on Zulip):

Today's working groups are:

Last week (which we missed) was, if anybody would care to give brief updates on these topics:

nikomatsakis (Aug 29 2019 at 13:37, on Zulip):

Announcements

nikomatsakis (Aug 29 2019 at 13:38, on Zulip):

In the run-up to the meeting, feel free to leave announcements, but try to keep discussion relatively minimal to help ensure everyone sees the updates themselves. :)

nikomatsakis (Aug 29 2019 at 14:01, on Zulip):

Hello @T-compiler/meeting -- triage meeting starting now

nikomatsakis (Aug 29 2019 at 14:01, on Zulip):

Feel free to leave announcements for the next few minutes as folks arrive

oli (Aug 29 2019 at 14:02, on Zulip):

I'll do wg-mir-opt updates

nikomatsakis (Aug 29 2019 at 14:03, on Zulip):

OK, let's get started I guess.

nikomatsakis (Aug 29 2019 at 14:04, on Zulip):

First off, in the pre-triage effort, I didn't even manage to make it through the list of nominated issues.

nikomatsakis (Aug 29 2019 at 14:04, on Zulip):

So we may return to that later on :)

nikomatsakis (Aug 29 2019 at 14:04, on Zulip):

But we did see something of a trend. There were at least two issues that seemed to be due to an LLVM upgrade:

nikomatsakis (Aug 29 2019 at 14:06, on Zulip):

We've talked on and off about this idea of an "ICE-breaker" effort -- I think it would make sense to try and "repurpose" @WG-llvm to help out with tracking and resolving this issues? This probably doesn't mean that much but maybe we can promote the concept and get a few more people beyond @Nikita Popov and @nagisa, and create an official github team so it can be easily cc'd

nikomatsakis (Aug 29 2019 at 14:06, on Zulip):

I'm not even sure if this is repurposing exactly

mw (Aug 29 2019 at 14:07, on Zulip):

it seems in line with the WG's current goals

nikomatsakis (Aug 29 2019 at 14:07, on Zulip):

Anyway assuming nobody objects I'm going to try to do that later on :)

nikomatsakis (Aug 29 2019 at 14:07, on Zulip):

I think this mostly means creating the GH team and making an announcement asking for folks who are interested to "sign up" for notifications

nikomatsakis (Aug 29 2019 at 14:07, on Zulip):

OK, moving on.

nikomatsakis (Aug 29 2019 at 14:08, on Zulip):

(If this works out, maybe that's something we can do more of -- creating "ICE-breaker" teams focused on particular areas of the compiler)

nikomatsakis (Aug 29 2019 at 14:08, on Zulip):

So let's look at

Beta Nominations

nikomatsakis (Aug 29 2019 at 14:08, on Zulip):

List of nominated PRs

nikomatsakis (Aug 29 2019 at 14:09, on Zulip):

I'm going to write out the nominated PRs one after the other, then people can add emojis, and/or leave comments about particular PRs

nikomatsakis (Aug 29 2019 at 14:09, on Zulip):

Account for doc comments coming from proc macros without spans #63930

mw (Aug 29 2019 at 14:09, on Zulip):

this is missing a PR I nominated today...

nikomatsakis (Aug 29 2019 at 14:09, on Zulip):

fix nounwind attribute logic #63909

nikomatsakis (Aug 29 2019 at 14:09, on Zulip):

Fix nested eager expansions in arguments of format_args #63717

nikomatsakis (Aug 29 2019 at 14:09, on Zulip):

Don't access a static just for its size and alignment #62982

centril (Aug 29 2019 at 14:10, on Zulip):

fix nounwind attribute logic #63909

i-nominated for t-lang (beta-nominated for t-compiler)

nikomatsakis (Aug 29 2019 at 14:10, on Zulip):

OK, I left that as just X since I guess there's still some decision making required

nikomatsakis (Aug 29 2019 at 14:11, on Zulip):

debuginfo: give unique names to closure and generator types #63875

nikomatsakis (Aug 29 2019 at 14:12, on Zulip):

@mw is that the one that was missing? the GH query seems to not be showing me closed things... even though I think it should...?

nikomatsakis (Aug 29 2019 at 14:12, on Zulip):

OK that's a lot, I'm going to take a minute to read the PRs now :P

mw (Aug 29 2019 at 14:13, on Zulip):

that's the one, yes. I added the t-compiler tag just now.

nikomatsakis (Aug 29 2019 at 14:14, on Zulip):

OK, I don't see any X marks

mw (Aug 29 2019 at 14:14, on Zulip):

wasn't #62982 already voted on before ?

nikomatsakis (Aug 29 2019 at 14:14, on Zulip):

so I'm going to mark them all as accepted unless somebody complains :)

nikomatsakis (Aug 29 2019 at 14:15, on Zulip):

wasn't #62982 already voted on before ?

if so, it's missing a beta-accepted label

centril (Aug 29 2019 at 14:15, on Zulip):

fix nounwind attribute logic #63909

My X is for real there

centril (Aug 29 2019 at 14:15, on Zulip):

This is not getting beta accepted until T-Lang says that's OK

nikomatsakis (Aug 29 2019 at 14:17, on Zulip):

Sorry, that one I already x'd off mentally

nikomatsakis (Aug 29 2019 at 14:17, on Zulip):

I was referring to the others

centril (Aug 29 2019 at 14:17, on Zulip):

ah

centril (Aug 29 2019 at 14:17, on Zulip):

carry on =P

nikomatsakis (Aug 29 2019 at 14:17, on Zulip):

if so, it's missing a beta-accepted label

oh, I think you are correct @mw, it's because of a rollup maybe.

nikomatsakis (Aug 29 2019 at 14:20, on Zulip):

OK, done with that.

nikomatsakis (Aug 29 2019 at 14:20, on Zulip):

Stable nominated

None.

nikomatsakis (Aug 29 2019 at 14:20, on Zulip):

Stable to beta regressions

nikomatsakis (Aug 29 2019 at 14:21, on Zulip):

I didn't get to these in pre-triage but there seem to be a bunch

nikomatsakis (Aug 29 2019 at 14:21, on Zulip):

Almost all opened by @Vadim Petrochenkov =)

centril (Aug 29 2019 at 14:21, on Zulip):

and almost all will probably be fixed by petrochenkov =P

centril (Aug 29 2019 at 14:21, on Zulip):

and/or matthewjasper

nikomatsakis (Aug 29 2019 at 14:22, on Zulip):

Let's spend a bit of time going through them

nikomatsakis (Aug 29 2019 at 14:22, on Zulip):

[1.38] Regression: custom attribute panicked #63895

nikomatsakis (Aug 29 2019 at 14:22, on Zulip):

Seems like this is because some procedural macro was relying on the output from pretty-printing

nikomatsakis (Aug 29 2019 at 14:23, on Zulip):

Which I guess raises the question to what extent the byte representation of the input tokens is defined

nikomatsakis (Aug 29 2019 at 14:23, on Zulip):

[1.38] Regression: proc macro panicked #63894

is similar but in that case we are retaining the r# in a string literal

nikomatsakis (Aug 29 2019 at 14:24, on Zulip):

Sort of t-lang calls as well

nikomatsakis (Aug 29 2019 at 14:24, on Zulip):

[1.38] Regression: cannot determine resolution for the derive macro Debug #63893

a subtle name resolution change

centril (Aug 29 2019 at 14:24, on Zulip):

Which I guess raises the question to what extent the byte representation of the input tokens is defined

I'd be inclined to close this for now; I agree the check is unreliable and badly written in that crate

centril (Aug 29 2019 at 14:25, on Zulip):

is similar but in that case we are retaining the r# in a string literal

Feels like a straight up bugfix

nikomatsakis (Aug 29 2019 at 14:26, on Zulip):

Yes. I'm skimming a bit ahead

nikomatsakis (Aug 29 2019 at 14:26, on Zulip):

[1.38] Regression: expected module, found unresolved item crate::mod #63891

nikomatsakis (Aug 29 2019 at 14:26, on Zulip):

I think this is also a bug fix

nikomatsakis (Aug 29 2019 at 14:27, on Zulip):

What is the policy here -- if something is expected breakage, do we just closure?

nikomatsakis (Aug 29 2019 at 14:27, on Zulip):

*close?

oli (Aug 29 2019 at 14:27, on Zulip):

we've done that before at least

nikomatsakis (Aug 29 2019 at 14:27, on Zulip):

[1.38] Regression: expected open delimiter #63889

nikomatsakis (Aug 29 2019 at 14:27, on Zulip):

e.g. that one

nikomatsakis (Aug 29 2019 at 14:28, on Zulip):

[1.38] Regression: cannot find macro trace! in this scope #63888

is a genuine regr but has a pending fix

nikomatsakis (Aug 29 2019 at 14:28, on Zulip):

assigned to @Vadim Petrochenkov

nikomatsakis (Aug 29 2019 at 14:29, on Zulip):

[1.38] Regression: attributes starting with rustc are reserved for use by the rustc compiler #63887

nikomatsakis (Aug 29 2019 at 14:30, on Zulip):

closing as expected

nikomatsakis (Aug 29 2019 at 14:30, on Zulip):

[1.38] Regression: lifetime name 's declared twice in the same scope #63886

mw (Aug 29 2019 at 14:30, on Zulip):

I just dug up this: https://github.com/rust-lang/rfcs/blob/master/text/1122-language-semver.md

mw (Aug 29 2019 at 14:30, on Zulip):

is that our policy?

centril (Aug 29 2019 at 14:30, on Zulip):

it is, but it is rather open to interpretation re. handling

nikomatsakis (Aug 29 2019 at 14:31, on Zulip):

This particular one is explained as a consequence of https://github.com/rust-lang/rust/pull/63083, but it'd be maybe nice to see the code example in question.

mw (Aug 29 2019 at 14:31, on Zulip):

I think we had some other kind of document that said: help broken crates fix their code

nikomatsakis (Aug 29 2019 at 14:31, on Zulip):

rustc bug fix procedure, you are probably referring to.

mw (Aug 29 2019 at 14:31, on Zulip):

this one: https://forge.rust-lang.org/rustc-bug-fix-procedure.html ?

centril (Aug 29 2019 at 14:32, on Zulip):

It depends on a) how unreasonable it is to maintain this in the compiler (temporarily!), b) how easy it is to fix for folks, c) how many regressions there are

mw (Aug 29 2019 at 14:32, on Zulip):

anyway, don't let me hijack the meeting

nikomatsakis (Aug 29 2019 at 14:32, on Zulip):

that's the one

nikomatsakis (Aug 29 2019 at 14:33, on Zulip):

I'm going to revisit #63886 in a bit, leave it for now, but I think no immediate action from this team required

nikomatsakis (Aug 29 2019 at 14:33, on Zulip):

[1.38] Regression: failed to resolve: could not find rustc_serialize in {{root}} #63885

nikomatsakis (Aug 29 2019 at 14:33, on Zulip):

(I'm basically skimming to find things we should consider trying to assign)

nikomatsakis (Aug 29 2019 at 14:34, on Zulip):

[1.38] #[bench] accepted on stable but not beta #63798

nikomatsakis (Aug 29 2019 at 14:34, on Zulip):

lots of discussion there

nikomatsakis (Aug 29 2019 at 14:35, on Zulip):

OK, I'll revisit those post meeting, but none of them jumped out at me

nikomatsakis (Aug 29 2019 at 14:35, on Zulip):

Mostly policy questions and known outcomes

centril (Aug 29 2019 at 14:35, on Zulip):

[1.38] #[bench] accepted on stable but not beta #63798

For this one if we are going to fix this then I think a warning has to be there as well

varkor (Aug 29 2019 at 14:36, on Zulip):

re. the changes that caused #63887, where rustc is a reserved start of an attribute – do we have any sort of documentation about rustc-specific behaviour (compared to some other Rust compiler implementation)?

centril (Aug 29 2019 at 14:36, on Zulip):

@varkor sometimes; the rustc guide is the best place to fill more in

varkor (Aug 29 2019 at 14:36, on Zulip):

although it feels reasonable to have some special-casing in the compiler, this is rustc-specific and probably wouldn't be handled in any "Rust specification"

varkor (Aug 29 2019 at 14:36, on Zulip):

and it'd be nice to keep track of exactly what the differences are

nikomatsakis (Aug 29 2019 at 14:37, on Zulip):

we did historically make rustc_X (pre-namespacing) nightly-only, but I don't see any RFC for that, I guess we just decided to do it

nikomatsakis (Aug 29 2019 at 14:38, on Zulip):

(anyway I think it'd be reasonable to note in the lang spec myself, though we wouldn't want to document the behavior of said attributes; simply that the prefix is reserved)

nikomatsakis (Aug 29 2019 at 14:38, on Zulip):

OK, it's 10:38, we've gone over the most burning categories, let's do some check-ins

nikomatsakis (Aug 29 2019 at 14:38, on Zulip):

I'll do wg-mir-opt updates

@oli care to give an update?

nikomatsakis (Aug 29 2019 at 14:39, on Zulip):

wg-mir-opt update

centril (Aug 29 2019 at 14:39, on Zulip):

@varkor (and other rust compiler impls could also use the rustc_ prefix ^,-)

varkor (Aug 29 2019 at 14:40, on Zulip):

@centril: agreed – though it would be good to decide/make note of whether this is a language detail or a compiler detail

oli (Aug 29 2019 at 14:41, on Zulip):

@Santiago Pastorino got Place2.0 (with slices) working, and it only regressed a very macro heavy memory test by 10 or 15%

oli (Aug 29 2019 at 14:41, on Zulip):

they're now checking out how to unregress that and then we're ready to merge

centril (Aug 29 2019 at 14:41, on Zulip):

(I'm inclined to say it is a language spec hack that all rust compilers must "support" :P)

oli (Aug 29 2019 at 14:41, on Zulip):

@Wesley Wiser split our promoted items out of the mir::Body in order to prevent cycles in our optimization pipeline

oli (Aug 29 2019 at 14:42, on Zulip):

we now have a mir_promoted query that gives you all promotes for a DefId

oli (Aug 29 2019 at 14:42, on Zulip):

while mir_optimized gives you the mir::Body directly

oli (Aug 29 2019 at 14:42, on Zulip):

that's it from WG-mir-opt for now

nikomatsakis (Aug 29 2019 at 14:42, on Zulip):

that's awesome

nikomatsakis (Aug 29 2019 at 14:43, on Zulip):

it'd be good to talk -- not in this mtg -- about the overall plan. e.g., do we have specific optimizations we are working towards first?

nikomatsakis (Aug 29 2019 at 14:43, on Zulip):

might be an interesting thing to do a design meeting about

oli (Aug 29 2019 at 14:43, on Zulip):

note that the promoted change also makes sure that inlining doesn't clone promoteds, so we preemptively eliminated memory regressions in the inliner that could happen in the future

oli (Aug 29 2019 at 14:43, on Zulip):

right now we're just looking at const_prop wrt optimizations

oli (Aug 29 2019 at 14:44, on Zulip):

we talked at the all hands about other optimizations

nikomatsakis (Aug 29 2019 at 14:44, on Zulip):

seems like a reasonable choice; that or inlinign

oli (Aug 29 2019 at 14:44, on Zulip):

oh, you mean which ones to enable by default at some point?

nikomatsakis (Aug 29 2019 at 14:44, on Zulip):

OK, to what extent is there a plan with "known steps"? I guess maybe I need to review the minutes from all hands and refresh my memory :) (I wasn't at those meetings as I recall)

nikomatsakis (Aug 29 2019 at 14:45, on Zulip):

no, I guess that's a separate decision

nikomatsakis (Aug 29 2019 at 14:45, on Zulip):

I meant more like "what are we focusing our engineering efforts on"

oli (Aug 29 2019 at 14:45, on Zulip):

yea, iirc we just discussed what we can do

oli (Aug 29 2019 at 14:45, on Zulip):

right now it's mostly driven by @Wesley Wiser who's fixing up const_prop to be equal in capabilites to const eval

nikomatsakis (Aug 29 2019 at 14:46, on Zulip):

very interesting

oli (Aug 29 2019 at 14:46, on Zulip):

(while deduplicating logic at the same time)

nikomatsakis (Aug 29 2019 at 14:46, on Zulip):

is it trying to make use or miri?

oli (Aug 29 2019 at 14:46, on Zulip):

we're essentially running const eval on polymorphic non-const MIR

oli (Aug 29 2019 at 14:46, on Zulip):

and ignore a bunch of errors and report a bunch of other errors as warnings

oli (Aug 29 2019 at 14:46, on Zulip):

and anyhting that succeeds, is written back to the MIR

nikomatsakis (Aug 29 2019 at 14:47, on Zulip):

neat

nikomatsakis (Aug 29 2019 at 14:47, on Zulip):

OK. Thanks for the updates, @oli !

nikomatsakis (Aug 29 2019 at 14:47, on Zulip):

wg-nll

nikomatsakis (Aug 29 2019 at 14:48, on Zulip):

maybe we can discuss this a bit briefly? I don't think there's anyone to give a dedicated report

centril (Aug 29 2019 at 14:48, on Zulip):

We closed a few fixed-by-NLL soundness holes recently

nikomatsakis (Aug 29 2019 at 14:48, on Zulip):

but last I heard, we had done a crater run, and we are basically looking at how to encourage migration and warning fixes

centril (Aug 29 2019 at 14:48, on Zulip):

and then we're trying to stabilize bind-by-move-pattern-guards

centril (Aug 29 2019 at 14:48, on Zulip):

and then there's the aforementioned crater run

nikomatsakis (Aug 29 2019 at 14:48, on Zulip):

yes -- that's right -- so we've also been doing the migration in a more fine-grained way

centril (Aug 29 2019 at 14:48, on Zulip):

I'm doing a new crater run

Pietro Albini (Aug 29 2019 at 14:49, on Zulip):

(poor crater queue...)

varkor (Aug 29 2019 at 14:49, on Zulip):

what's blocking bind-by-move right now?

eddyb (Aug 29 2019 at 14:49, on Zulip):

crater rollups when

centril (Aug 29 2019 at 14:49, on Zulip):

@varkor a single checkbox

nikomatsakis (Aug 29 2019 at 14:50, on Zulip):

OK. Seems like we should get moving on the "stronger steps to encourage fixes in dependencies" conversation, but that's for later.

( And yes @centril I remember your PR :P )

nikomatsakis (Aug 29 2019 at 14:51, on Zulip):

(Same issue came up in one of the other regressions too, as I recall...)

nikomatsakis (Aug 29 2019 at 14:51, on Zulip):

wg-parallel-rustc

nikomatsakis (Aug 29 2019 at 14:52, on Zulip):

so @Aaron Turon has been doing an audit of the various changes, looking particularly as shared state and lock semantics

nikomatsakis (Aug 29 2019 at 14:52, on Zulip):

I don't think he's awake yet :)

nikomatsakis (Aug 29 2019 at 14:52, on Zulip):

you can see his comment here

nikomatsakis (Aug 29 2019 at 14:52, on Zulip):

in particular, he was looking into some issues such as fine-grained locking that could give rise to deadlocks

centril (Aug 29 2019 at 14:52, on Zulip):

@nikomatsakis "Do you have a moment to talk about our lord and savior PR #59658 ?" xD

nikomatsakis (Aug 29 2019 at 14:53, on Zulip):

the idea was to spin out refactorings

nikomatsakis (Aug 29 2019 at 14:53, on Zulip):

to try and eliminate locks and shared mutable state outside the query system, ideally, or to do more targeted fixes, secondarily

nikomatsakis (Aug 29 2019 at 14:53, on Zulip):

that said, I don't know how much progress he's made lately; probably not much last week owing to rust conf

nikomatsakis (Aug 29 2019 at 14:54, on Zulip):

I guess I don't have much to add beyond that

nikomatsakis (Aug 29 2019 at 14:54, on Zulip):

End of meeting? Any final comments?

centril (Aug 29 2019 at 14:55, on Zulip):

Any final comments?

Thanks all!

nikomatsakis (Aug 29 2019 at 14:55, on Zulip):

(Also, I'm going to spend a bit of time going over nominated issues + beta regressions, I think, in the pre-meeting triage stream, at some point today --- maybe now :)

nikomatsakis (Aug 29 2019 at 14:55, on Zulip):

@Wesley Wiser are you going to summarize these minutes?

eddyb (Aug 29 2019 at 14:56, on Zulip):

I'm really glad we have @Aaron Turon back working on the compiler :D

varkor (Aug 29 2019 at 14:56, on Zulip):

@oli: it sounds like these const prop changes lay the groundwork for more sophisticated symbolic evaluation..?

oli (Aug 29 2019 at 14:56, on Zulip):

not really, we don't have symbols yet

Wesley Wiser (Aug 29 2019 at 14:56, on Zulip):

Yes, but it will probably be later tonight or tomorrow before they're up.

oli (Aug 29 2019 at 14:57, on Zulip):

@Christian Poveda has started some symbol work a while back, but they are currently busy with other things I believe

Vadim Petrochenkov (Aug 29 2019 at 15:03, on Zulip):

I'm really glad we have @Aaron Turon back working on the compiler :D

I only wish the breaks between all those conferences and all-hands aturon has to participate in were longer.

Christian Poveda (Aug 29 2019 at 15:08, on Zulip):

Christian Poveda has started some symbol work a while back, but they are currently busy with other things I believe

If you have any evil plans regarding symbolic execution count me in :D

nagisa (Aug 29 2019 at 15:47, on Zulip):

We've talked on and off about this idea of an "ICE-breaker" effort -- I think it would make sense to try and "repurpose" @WG-llvm to help out with tracking and resolving this issues? This probably doesn't mean that much but maybe we can promote the concept and get a few more people beyond Nikita Popov and nagisa, and create an official github team so it can be easily cc'd

Good morning! IMO the concept between WG-llvm and ICE breakers differs substantially enough that people interested in the first might not be interested in the 2nd or vice vrsa.

nikomatsakis (Aug 29 2019 at 16:01, on Zulip):

@nagisa good feedback; I'm happy to create a second group. I sort of want it to include the term "ICE-breakers" anyway

nikomatsakis (Aug 29 2019 at 16:01, on Zulip):

I'll make a separate topic to discuss perhaps

Last update: Nov 16 2019 at 02:15UTC