Stream: t-compiler/wg-parallel-rustc

Topic: review meeting 2019-09-06


Aaron Turon (Sep 05 2019 at 22:35, on Zulip):

Hi folks! @nikomatsakis and I are planning to do a pass over the shared-state laid out in the PR audit. We plan to take a breadth-first approach, attempting to put each piece of shared state into a bucket:

In each case there are subcategories (e.g., in several places fine-grained locks around individual fields were introduced, with unclear atomicity ramifications; in many cases these could be consolidated into a single, more coarse-grained lock).

The goal of the meeting is to categorize as much of the state as we can, and hopefully get to a point where we can write up more detailed issues for what we want to do in most cases. Afterward, we can figure out how to divide up the next steps.

The meeting will be held on Zoom and recorded. The event link is here.

Aaron Turon (Sep 05 2019 at 22:35, on Zulip):

cc @simulacrum @Santiago Pastorino

simulacrum (Sep 05 2019 at 22:37, on Zulip):

Would you be interested / feel it beneficial for others to attend as well? I can make that slot.

simulacrum (Sep 05 2019 at 22:39, on Zulip):

@Aaron Turon ^

Aaron Turon (Sep 05 2019 at 22:46, on Zulip):

Ah, yes, sorry that wasn't clear! This was meant as a general invite for anybody who'd like to join, especially if you think you might like to work on the issues that will come out of it

simulacrum (Sep 05 2019 at 23:00, on Zulip):

Okay sounds good, I'll most likely be there then. Thanks for the invite!

nikomatsakis (Sep 06 2019 at 17:01, on Zulip):

On my way :)

Aaron Turon (Sep 06 2019 at 17:05, on Zulip):

https://paper.dropbox.com/doc/rustc-shared-state-audit--AkP9nsWzaezFriSbMjeLm5iJAg-zsOrKjkMZbBYZJWhgXPke

nikomatsakis (Sep 06 2019 at 17:08, on Zulip):

ps @Santiago Pastorino this meeting might interest you too, if you're avail :point_up: (happening now)

simulacrum (Sep 06 2019 at 18:13, on Zulip):

@Aaron Turon I'd personally be willing to take on work like e.g. the refactor to librustc_error::Handler and such; do we want some sort of document for this? Maybe just opening a bunch of issues on rust-lang/rust and assigning folks is a good idea

Paul Faria (Sep 06 2019 at 18:14, on Zulip):

Re: Mir Stealing, not sure if this makes sense, but would something like Event Sourcing be a viable alternative to stealing? I think this would really only be useful if the intermediate states of MIR transformation needed to be accessed after some optimizations had already been performed. Would be helpful in keeping space small-ish, but would take some (not sure if this would be small or large in the rustc scale) perf hits to recompute intermediate/final states

Aaron Turon (Sep 06 2019 at 18:14, on Zulip):

@simulacrum yeah i think we're ready to open issues for tracking. i do want to think a bit about the audit/doc strategy as well, but we can develop that organically

nikomatsakis (Sep 06 2019 at 18:16, on Zulip):

@Paul Faria what do you mean by "event sourcing"?

simulacrum (Sep 06 2019 at 18:17, on Zulip):

@Aaron Turon sounds good -- do you want to open issues? should we hold off on any work until we can have another meeting to maybe get a broader sense of goals and such?

Paul Faria (Sep 06 2019 at 18:19, on Zulip):

It's a pattern used in some backend web system for tracking lots of state changes over time. https://martinfowler.com/eaaDev/EventSourcing.html is a good reference from that perspective. Another way to think about it might be commits in a repo. You have a base state, which might be the original MIR, and you store the "patches" to the MIR. Then when you need the MIR at a specific point, you apply the patches in order. This becomes more complicated if you have to account for conflicts

Aaron Turon (Sep 06 2019 at 18:19, on Zulip):

@simulacrum I'm happy to open issues, and set up a tracking issue for the overview. my gut feeling is that we shouldn't block on another meeting, but rather get a topic here going on how we want to approach audit/documentation. i think it's best for us to dive in, see how things are feeling, and coordinate as we go on developing the approach. how does that sound to you?

Paul Faria (Sep 06 2019 at 18:19, on Zulip):

It might be overkill though for rustc's needs though.

Aaron Turon (Sep 06 2019 at 18:21, on Zulip):

@simulacrum that sounds awesome! just drop a note in the shared doc for the time being, and when i open the issue i'll go ahead and assign you :heart:

simulacrum (Sep 06 2019 at 18:23, on Zulip):

done

nikomatsakis (Sep 06 2019 at 19:32, on Zulip):

Video will go live at this URL

nikomatsakis (Sep 06 2019 at 20:03, on Zulip):

should be live now

Zoxc (Sep 06 2019 at 23:26, on Zulip):

ty::Steal cannot deadlock btw. The steal operation is bounded and borrow can only block on it.

nikomatsakis (Sep 09 2019 at 17:20, on Zulip):

@Zoxc ah, I guess it's a read/write lock, duh.

nikomatsakis (Sep 09 2019 at 17:20, on Zulip):

in that case, I agree

Last update: Nov 17 2019 at 07:00UTC