Stream: t-compiler

Topic: weekly meeting 2019-08-15 #54818


nikomatsakis (Aug 15 2019 at 13:05, on Zulip):

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

nikomatsakis (Aug 15 2019 at 13:06, on Zulip):

I will be doing pre-triage in a parallel topic

davidtwco (Aug 15 2019 at 13:07, on Zulip):

@nikomatsakis just in case you missed it while away, working group check-ins are on the website now: https://rust-lang.github.io/compiler-team/about/triage-meeting/

nikomatsakis (Aug 15 2019 at 13:07, on Zulip):

Cool, I was just looking for that

nikomatsakis (Aug 15 2019 at 13:09, on Zulip):

@davidtwco that said, it seems to be off by a week?

nikomatsakis (Aug 15 2019 at 13:09, on Zulip):

maybe it needs to be "regenerated" once a week or something?

davidtwco (Aug 15 2019 at 13:10, on Zulip):

It's all generated in your browser, I must have an off-by-one somewhere. :face_palm:

nikomatsakis (Aug 15 2019 at 13:10, on Zulip):

:) I'll go by the dates in any case, I presume

nikomatsakis (Aug 15 2019 at 13:10, on Zulip):

This week the check-in schedule suggests checkins from:

davidtwco (Aug 15 2019 at 13:16, on Zulip):

:slight_smile: I'll go by the dates in any case, I presume

(I've put a PR up that fixes the website)

eddyb (Aug 15 2019 at 13:37, on Zulip):

oops, for some reason I thought it was still Wednesday :D

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

Hello @T-compiler/meeting =) meeting starting

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

Let's start with a few minutes for announcements

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

while people accumulate.

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

anything fun/interesting/boring going on? :)

eddyb (Aug 15 2019 at 14:03, on Zulip):

probably the biggest thing is people coming back from vacations :D

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

I'm debating if :tada: is appropriate for this

oli (Aug 15 2019 at 14:04, on Zulip):

Place 2.0 (spearheaded by @Santiago Pastorino ) is now a WIP PR: https://github.com/rust-lang/rust/pull/63420

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

1.37.0 is being released as we speak.

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

async-await is very close to stabilizing on nightly

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

at least last time I checked :)

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

ye

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

crater is slow

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

I bumped the PR to the top of the queue, crater is testing it now

eddyb (Aug 15 2019 at 14:05, on Zulip):

more seriously: I'm finally starting to upstream the new demangler to tools, there will be a few small patches to GCC then the actual big patch (I don't want to do it all at once because GNU has no nice concept of revision history within a patch...)

Pietro Albini (Aug 15 2019 at 14:05, on Zulip):

hopefully we should get more crater capacity soonish

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

( Running (38%) )

eddyb (Aug 15 2019 at 14:05, on Zulip):

this is from yesterday: https://gcc.gnu.org/ml/gcc-patches/2019-08/msg01007.html

eddyb (Aug 15 2019 at 14:05, on Zulip):

if someone wants to help review my C code, they're welcome :P

eddyb (Aug 15 2019 at 14:06, on Zulip):

what will eventually be upstreamed is this: https://gist.github.com/eddyb/c41a69378750a433767cf53fe2316768

eddyb (Aug 15 2019 at 14:07, on Zulip):

to GCC (which flows into binutils and gdb), valgrind, linux-perf and, somehow, lldb (not sure yet where that belongs lol)

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

OK, let's get started.

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

Agenda:

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

Not sure who's doing those check-ins yet :)

eddyb (Aug 15 2019 at 14:07, on Zulip):

(oh, I could ask WG-llvm about lldb :P)

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

So I had a few issues that I thought might be worth raising that come up during pre-triage

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

segfault with target-feature=+soft-float #63466

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

@Nikita Popov left a comment there indicating that soft-float may require more flags

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

ah @rkruppe too

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

Seems our static semantics are wrong then?

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

It seems like the question here then is more "can we document these gotchas somewhere"

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

i.e. if something requires a flag then the absence of said flag should result in a compilation failure of some sort

nagisa (Aug 15 2019 at 14:10, on Zulip):

/me appears

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

target features are a bit of a tricky issue

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

but yes perhaps we could add some kind of sanity check

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

@nagisa you may have informed opinions on this :)

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

but maybe better not to dig too far into the weeds here -- let me ask this -- does somebody want to try and draw up what possible actions we could take?

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

I don't have much of an opinion but the current situation seems ungreat

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

of course maybe there are docs, I guess, I didn't even look

nagisa (Aug 15 2019 at 14:12, on Zulip):

My overall opinion is that target-features are semi-unsafe and need to be used in an informed manner. This applies to most of them.

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

this is also my opinion

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

but I would like to help people become informed where we can...

nagisa (Aug 15 2019 at 14:13, on Zulip):

you can find a bunch of ways to make produced artifacts fail in ways after sticking in an unusual flag in rustc.

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

I guess emitting some sort of warning on rustc -Chelp etc would be maybe good

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

but unlikely to have prevented this bug from being filed

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

in my ideal world, the rustc book would discuss target features and some common gotchas

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

i.e., I'd like to be able to close with a link to a section explaining the dangers

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

even if that section were pretty short to start

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

I'll leave comments that we consider the features semi unsafe and would like to document for now, mark as p-medium I guess, doesn't seem p-high

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

maybe close in favor of an issue saying to document them this way

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

documenting may be p-high?

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

I'll nominate :)

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

ok, jotted that down for after meeting

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

next bug:

Stable rustc always panics on arm/musl #60297

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

I think the last time we talked about this, we talked about trying to setup some kind of virtualization setup?

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

to help in reproducing these sorts of things?

nagisa (Aug 15 2019 at 14:18, on Zulip):

/me points out https://cfarm.tetaneutral.net/machines/list/ again.

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

can anybody leave any notes on how one might do that? even just a few high-levle things like "use qemu" -- I could maybe pursue..

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

ok, or that :)

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

it feels like we should be able to fix this bug :) I feel like arm and musl may not technically be tier 1 (prob not..) but still feel like important targets we should be able to test

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

well, let's highlight it for a "call for volunteers" section at least

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

(ps @Wesley Wiser are you going to be making minutes?)

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

Yes

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

I'll be sure to include it

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

next up, a question: there are a few p-high issues (e.g., #42516, #21934) that seem like they are p-high for diagnostics more than p-high in general

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

I guess this comes down to us needing to discuss further our labeling schemes

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

let's leave that topic for now but I wanted to plan the seed that we should continu to look for a more useful priority system

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

beta nominations

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

(ooh, zulip respects # now...)

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

(are we doing this with polls now?)

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

(or do they continue to not work on mobile?)

oli (Aug 15 2019 at 14:22, on Zulip):

probably don't work

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

:/

Wesley Wiser (Aug 15 2019 at 14:22, on Zulip):

(Is anyone on mobile?)

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

usually some people are, don't know

eddyb (Aug 15 2019 at 14:22, on Zulip):

Zulip mobile is dead to me anyway because it destroys the battery

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

Point at the right enclosing scope when using await in non-async fn #63509

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

Do not ICE when synthesizing spans falling inside unicode chars #63508

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

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

nagisa (Aug 15 2019 at 14:24, on Zulip):

Note that beta has been uplifted very recently

nagisa (Aug 15 2019 at 14:25, on Zulip):

I believe?

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

so some of these may be outdated?

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

indeed, you are correct

nagisa (Aug 15 2019 at 14:25, on Zulip):

Yeah, I was going to make exactly that point.

oli (Aug 15 2019 at 14:25, on Zulip):

#62982 has already been backported

oli (Aug 15 2019 at 14:26, on Zulip):

it already has a beta-accepted label

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

oops, missed that, sorry

nagisa (Aug 15 2019 at 14:26, on Zulip):

With that in mind I’d :back: all of them. If something did not make the cut, then backporting would give that code a full cycle of eyeballs anyway

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

yeah, sounds fine

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

ok, marking as beta-accepted

eddyb (Aug 15 2019 at 14:27, on Zulip):

if something didn't make the cut... isn't it going to be in beta soon anyway?

eddyb (Aug 15 2019 at 14:27, on Zulip):

since it presumably was already in nightly

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

in about 6 weeks :)

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

it makes no sense to beta backport https://github.com/rust-lang/rust/pull/63509

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

at least #63508 landed yesterday

eddyb (Aug 15 2019 at 14:27, on Zulip):

oh I guess there is that race condition

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

it makes no sense to beta backport https://github.com/rust-lang/rust/pull/63509

oh right, because it's about async-await?

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

yep

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

ok, rejecting

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

I meant to ask about that but forgot

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

compiler meeting day being release day is kind of bad from this perspective huh

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

well the beta branched a few days back

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

tuesday, I think

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

I'm not enough of a monster to suggest we should hold meetings on monday,

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

anyway, that's it for beta things

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

OK, shall we do WG checkin?

Santiago Pastorino (Aug 15 2019 at 14:31, on Zulip):

I can give the learning wg one when you want

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

@WG-learning

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

ok :)

Santiago Pastorino (Aug 15 2019 at 14:31, on Zulip):

For the ones that don't remember/don't know, wg-learning objective is to make the compiler easier to learn by ensuring that rustc-guide and api docs are "complete".

In that front right now we are mainly working on three things:

1. Get more compiler lectures from people that know some part of the compiler and want to share the knowledge, it doesn't need to be a very fancy thing. We have done video sessions and chat sessions on Zulip. If someone is interested in giving a lecture please let me know.
2. Summarize exising lectures into rustc-guide chapters.
3. Triage and keep working on issues and pull requests.
To keep track of points 1 and 2 we are using this Github project and there's this youtube playlist with existing lectures.

We are making good progress, but help is always needed :).

Giving a lecture, helping to summarize existing lectures, writing rustc-guide chapters and getting more people involved in this effort are things that would be great for the working group.

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

Is there an easy way to see which lectures have been given, which are in progress, ec?

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

I've obviously been out for a while so I'm interested in coming back up to speed

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

Oh, I guess that's the Github Project you linked to

Santiago Pastorino (Aug 15 2019 at 14:32, on Zulip):

yeah, click on the github project link

Santiago Pastorino (Aug 15 2019 at 14:32, on Zulip):

there you will see progress and things assigned

Santiago Pastorino (Aug 15 2019 at 14:32, on Zulip):

and in the youtube playlist you will find most of the lectures

Santiago Pastorino (Aug 15 2019 at 14:32, on Zulip):

because we had one that was chat based

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

very cool

Santiago Pastorino (Aug 15 2019 at 14:33, on Zulip):

anyway you can also see the given lectures as the union of all the things in the github project maybe that's a better source of knowledge

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

I see about 3 open PRs to the rustc-guide; I'm curious whether merging and editing has been difficult. In the past I know that it's sometimes been hard to get feedback etc

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

or have most of the lectures not yet gotten to that stage?

Santiago Pastorino (Aug 15 2019 at 14:36, on Zulip):

right now I don't remember very well

Santiago Pastorino (Aug 15 2019 at 14:36, on Zulip):

would need to check those particular prs

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

(We have a new release, https://blog.rust-lang.org/2019/08/15/Rust-1.37.0.html)

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

OK, great, then let's turn to WG-llvm

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

WG-LLVM

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

@nagisa or @Nikita Popov -- any updates there?

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

OK!

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

I'm going to assume not :)

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

So we have 20 minutes remaining

rkruppe (Aug 15 2019 at 14:42, on Zulip):

I'm not either one but I'd like to point out this LLVM patch https://reviews.llvm.org/D65718 which is related to #28728 (either documenting the LLVM semantics we have to work around to fix that issue, or perhaps finally causing LLVM to allow us to opt out of those semantics without adding @llvm.sideeffect calls everywhere)

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

Interesting. I was just going to bring up that PR

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

to ask whether any measurements had happened

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

If I understand that patch, it sounds like it is saying "llvm.sideeffect" is the answer

nagisa (Aug 15 2019 at 14:43, on Zulip):

There were much confusion about these guarantees recently. E.g. there was a differential that added another optimisation that assumed such guarantees

nagisa (Aug 15 2019 at 14:43, on Zulip):

but @Nikita Popov will know better what’s happening there.

nagisa (Aug 15 2019 at 14:43, on Zulip):

I didn’t follow it too closely

rkruppe (Aug 15 2019 at 14:44, on Zulip):

"llvm.sideeffect is the answer" is the current diff and initial intent, but some discussion hints that there's perhaps a desire to settle this properly instead of documenting an unclear/inconsistent status quo

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

( PR in question: Add llvm.sideeffect to potential infinite loops and recursions #59546 )

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

I see

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

it sounds like somebody ran the benchmarks, but we didn't quite get the point of doing comparisons :)

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

ok, I left a few comments

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

we'll see if we can push that along

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

OK, we've got 10 minutes left.

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

let me call attention to a few more P-high bugs

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

and I suggest people review the list to look for things either assigned to you, unassigned, or which potentially don't belong :)

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

@nagisa, @rkruppe or @Nikita Popov:

I wanted to call attention to this bug, which looks like an LLVM misoptimization?

Weird compiler behavior with in-lining of a function -> constant value arbitrary changed #63516

mw (Aug 15 2019 at 14:50, on Zulip):

we might also want to make this p-high: https://github.com/rust-lang/rust/issues/57822

mw (Aug 15 2019 at 14:51, on Zulip):

it seems to be very disruptive for some people and it is my highest priority at the moment

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

done

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

any idea what's the cause?

mw (Aug 15 2019 at 14:51, on Zulip):

I'm currently trying to find out

mw (Aug 15 2019 at 14:52, on Zulip):

some edge case in LLDBs code that rustc triggers but clang doesn't

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

nagisa, rkruppe or Nikita Popov:

I wanted to call attention to this bug, which looks like an LLVM misoptimization?

Weird compiler behavior with in-lining of a function -> constant value arbitrary changed #63516

on this note, at some point I recall @pnkfelix talking about coming up with some guidelines for how to try to narrow down LLVM failures, but that never happened, right? This seems like a case where that'd be useful

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

I guess we'll settle for calling attention to it as well ("calling LLVM specialists")

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

ok, let's call it for the day then. thanks all! :)

rkruppe (Aug 15 2019 at 14:54, on Zulip):

Definitely needs a smaller MCVE before I can say anything more. I glanced at the repo a bit and it's big enough I wouldn't be surprised if it's something else (e.g. UB in a dependency or a mistake in the linker script or other build system parts)

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

it almost sounds like the value flows into something that adds that 0x8 value, but maybe that part is caused by UB

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

I definitely don't trust assembly to tell us much

nagisa (Aug 15 2019 at 15:21, on Zulip):

that was my first thought as well

nagisa (Aug 15 2019 at 15:21, on Zulip):

like being inlined into the code whhich can infer that the 0x8 bit is definitely set

Last update: Nov 22 2019 at 05:10UTC