Skip to content

Commit 9b88ff7

Browse files
authored
Merge pull request #132 from lqd/hugo_rendering
Update Polonius meeting notes
2 parents 609d448 + 7cc7d0a commit 9b88ff7

File tree

9 files changed

+38
-12
lines changed

9 files changed

+38
-12
lines changed

content/docs/working-groups/polonius/_index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ crate to define the full borrow check analysis.
2424
- [2019.05.07 Meeting]({{< relref "/docs/working-groups/polonius/minutes/2019.05.07-meeting" >}})
2525
- [2019.05.14 Meeting]({{< relref "/docs/working-groups/polonius/minutes/2019.05.14-meeting" >}})
2626
- [2019.05.28 Meeting]({{< relref "/docs/working-groups/polonius/minutes/2019.05.28-meeting" >}})
27+
- [2019.06.04 Meeting]({{< relref "/docs/working-groups/polonius/minutes/2019.06.04-meeting" >}})
28+
- [2019.06.11 Meeting]({{< relref "/docs/working-groups/polonius/minutes/2019.06.11-meeting" >}})
2729
- **Screencasts**: [YouTube Playlist](https://www.youtube.com/playlist?list=PL85XCvVPmGQitE2CBzf-gERSqeXo59NQG)
2830
- **FAQ:** [FAQ]({{< relref "/docs/working-groups/polonius/FAQ" >}})
2931

content/docs/working-groups/polonius/minutes/2019.03.07-meeting.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
---
33

44
Relevant links:
5+
56
- The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E03.2E07)
67
- A [Paper document](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) for the WIP roadmap
78

@@ -16,6 +17,7 @@ We then described a possible follow-up task, focusing on Polonius completeness:
1617
We also spent time talking about next steps in documentation, whether in talks ([Niko]) or written docs ([Rémy]).
1718

1819
Possible talks:
20+
1921
- a walkthrough of a more complex theoretical example.
2022
- a more practical walkthrough with a focus on the concrete parts of the Polonius computation: interfacing with rustc and transferring data, computing the analysis' datalog rules, how datafrog works, etc.
2123

@@ -25,6 +27,7 @@ The final points were more about cross-cutting concerns applicable to all WGs: h
2527

2628
----
2729
The major next steps we decided on were:
30+
2831
- [Matthew] will write mentoring instructions for the [hybrid algorithm task](https://github.com/rust-lang/polonius/issues/100).
2932
- [Niko] and [Albin] will prepare the follow-up walkthrough of Polonius (the specific time, and contents).
3033
- [Niko] will review the [subset relation PR](https://github.com/rust-lang/polonius/pull/99).

content/docs/working-groups/polonius/minutes/2019.04.23-meeting.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22
---
33

44
Relevant links:
5+
56
- The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E04.2E23)
67
- A [Paper document](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) for the WIP roadmap
78

89
---
910

1011
In this meeting, we started with a short review of the previous week's work:
12+
1113
- [Albin] continued work on implementing liveness in Polonius, and finalized [#105](https://github.com/rust-lang/polonius/pull/105), which is now ready to be merged into a new `polonius-engine` release.
1214
- [Niko] wrote up [notes](https://github.com/rust-lang/polonius/issues/104#issuecomment-485011791) describing the second part of the liveness effort: modifying rustc to emit `var_used` and `var_defined` facts for the previous PR. [Albin] has already started working on these rustc steps.
1315
- [Rémy] landed the tiny [#106](https://github.com/rust-lang/polonius/pull/106).
@@ -20,6 +22,7 @@ A useful task was mentioned for the near future: going through the Polonius fail
2022

2123
----
2224
For the following week:
25+
2326
- [Albin] will continue on the liveness fact generation in rustc.
2427
- [Rémy] will continue work on the `Hybrid` variant optimization.
2528
- [@lokalmatador] will familiarize with the steps [Niko] wrote, with available help from the rest of the WG.

content/docs/working-groups/polonius/minutes/2019.04.30-meeting.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22
---
33

44
Relevant links:
5+
56
- The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E04.2E30).
67
- The [WIP Roadmap](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) Paper.
78

89
---
910

1011
In this meeting, we started with a short review of the previous week's work:
12+
1113
- [Albin] continued work on implementing liveness in [Polonius](https://github.com/rust-lang/polonius/pull/105), and opened the [rustc](https://github.com/rust-lang/rust/pull/60266) part of this work: generating the facts needed by the Polonius computation.
1214
- [Niko] wrote up some more [notes](https://github.com/rust-lang/polonius/issues/104#issuecomment-488076424) on continuing the liveness work: the next major part being computing the `region_live_at` facts in Polonius analyses instead of rustc.
1315
- [Rémy] continued the previous week's work of using the results of `LocInsensitive` in `DatafrogOpt` via the `Hybrid` analysis, especially looking for changes in behaviour using polonius and rustc's tests, and ran into the task mentioned the week before: the rustc ui test suite under polonius has more failures than expected.
@@ -16,15 +18,18 @@ In this meeting, we started with a short review of the previous week's work:
1618
Since the liveness work is a bit complex, has many moving parts, and is generally hard to test, we [talked](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E04.2E30/near/164566587) about correctness, testing, rustc's test suite and the need to have a reasonable test suite in general. A first step will be to look into rustc's test suite failures, `ignore`ing irrelevant tests or add `bless`ed output, at the very least to track changes and regressions more easily.
1719

1820
The WIP plan about polonius features and rustc integration/subsumption looks clear:
21+
1922
- liveness, which we are actively working on now.
2023
- moves, which should hopefully be smaller, has precedent in the work on Lark, and could be partially/possibly applicable to rustc.
2124
- regions and region logic, for which we have started working on the easier parts, but also crosses paths with the [traits WG and chalk effort](https://rust-lang.zulipchat.com/#narrow/stream/144729-wg-traits/topic/meeting.202019.2E04.2E29/near/164478317) for the more complex ones.
2225

2326
Useful future tasks we mentioned:
27+
2428
- after the inaugural talk, it'd be useful to continue the "explaining Polonius" series of videos/talks, focusing on the analysis rules and examples to learn, or remember, why they are the way they are.
2529

2630
----
2731
For the following week:
32+
2833
- [Albin] will continue on liveness.
2934
- [Rémy] will look at the rustc tests in more detail.
3035
- [Niko] will prepare the next steps in the liveness, to stay ahead of [Albin]'s progress.

content/docs/working-groups/polonius/minutes/2019.05.07-meeting.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,27 @@
22
---
33

44
Relevant links:
5+
56
- The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E05.2E07).
67
- The [WIP Roadmap](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) Paper.
78

89
---
910

1011
In this shorter meeting, we spent most of the time on the previous week's work:
12+
1113
- [Niko] has written more [notes](https://github.com/rust-lang/polonius/issues/104#issuecomment-489681898) and [steps](https://github.com/rust-lang/polonius/issues/104#issuecomment-489691804) for implementing liveness. With these, most of liveness is described (modulo the specifics of `drop`) :tada:.
1214
- [Albin] smoothly continued work on computing liveness in Polonius in [#105](https://github.com/rust-lang/polonius/pull/105), and rustc's [#60266](https://github.com/rust-lang/rust/pull/60266): finishing up last week's steps about the beginning of fact generation, and preparing to emit the ones needed to compute the `region_live_at` relation.
1315
- [Rémy] started looking at rustc's test suite behaviour under `--compare-mode polonius` in more detail. While initially the number of failures looked [big](https://github.com/rust-lang/rust/compare/master...lqd:polonius_tests), [Matthew] mentioned their in-review PR [#60171](https://github.com/rust-lang/rust/pull/60171), which would contain most of the differences seen in these initial runs, as it unifies the NLL mode under which both of these test modes are ran.
1416
- [@lokalmatador] successfully got rustc building and prepared for profiling.
1517

1618
Useful future tasks we mentioned:
19+
1720
- even though we always think about the topic, we noticed analyzing the test suite, tests and correctness, are tasks which should actually be mentioned in the Roadmap.
1821
- the polonius compare-mode likely has little or no documentation, fixing that would be important as part of the general documentation effort needed by the project.
1922

2023
----
2124
For the following week:
25+
2226
- [Albin] will continue on liveness.
2327
- To get ahead of the liveness game, [Niko] will look at and describe more of the `drop` specifics.
2428
- [Rémy] will continue on the rustc test suite results, especially on top of [#60171](https://github.com/rust-lang/rust/pull/60171). But also write the previous meetings' notes they forgot to do (but as you can attest, dear reader/reviewer, got done eventually).

content/docs/working-groups/polonius/minutes/2019.05.14-meeting.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,31 @@
22
---
33

44
Relevant links:
5+
56
- The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E05.2E14).
67
- The [WIP Roadmap](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) Paper.
78

89
---
910

1011
A recap of last week's work:
12+
1113
- [Niko] and [Albin] went through a lot of details of liveness, in the dedicated Zulip thread ([around this point](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/liveness.20polonius.23104/near/165238306)).
1214
- With the previous week's steps, and these conversations, [Albin] has continued the work on liveness, and is now _basically done_ :tada:. With the 2 PRs, Polonius is able to compute the same `region_live_at` facts as rustc. The remaining work being mostly clean-up, various minor fixes, more testing, and finally, reviews. The remaining tasks are listed in [this comment](https://github.com/rust-lang/polonius/issues/104#issuecomment-492380520).
1315
- [Rémy] has continued looking at the rustc test suite under Polonius. As expected, over [#60171](https://github.com/rust-lang/rust/pull/60171), there are less than 20 failures. A first pass at analyzing the results is available [here](https://hackmd.io/CjYB0fs4Q9CweyeTdKWyEg) with links to the necessary information (test source, NLL/polonius outputs, diff) to categorize the failures but the TL;DR is: some of them are trivially fixable (being artifacts of test construction, and identical under NLLs and Polonius), some are duplicates or similar to of other failures, a lot are simply different diagnostics, and a handful need more in-depth investigation to understand the difference in behaviour, if it's a bug, and so on. More information will generally be available in [the dedicated thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/rustc.20compare-mode.20polonius).
1416
- [@lokalmatador] is working through profiling tasks and may soon be able to gather benchmark data.
1517
- On the more administrative side of things, [Rémy] wrote up the meeting notes from the previous weeks, updated the roadmap to [add testing and validation](https://paper.dropbox.com/doc/Polonius-Roadmap--AdKXqkTdIxkM3zh3xZmuZ4RmAg-hk3a9ynduUN2gk1A0NNTF#:uid=569313235802426695258068&h2=Extending-Polonius-to-cover-th), as we mentioned during last week's meeting.
1618

1719
Useful information:
20+
1821
- various members will be absent at different points in the upcoming weeks. There may not necessarily be a meeting sometimes (TBD), but async updates will be available on Zulip in any case.
1922

2023
Useful future tasks we mentioned:
24+
2125
- with the liveness work about to land, we mentioned some important optimizations rustc has about liveness (in particular, trying to _avoid_ computing it unless it is necessary), and that Polonius (or its inputs) will surely need as well. This topic was discussed at [this point in the meeting thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E05.2E14/near/165653374).
2226

2327
----
2428
For the following week:
29+
2530
- [Albin] will tackle the remaining final liveness.
2631
- [Rémy] will continue on the rustc test suite results (fix the trivial differences, etc) and time permitting, help with the final liveness tasks.
2732
- [@lokalmatador] will continue their benchmarking endeavour.

content/docs/working-groups/polonius/minutes/2019.05.28-meeting.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
---
33

44
Relevant links:
5+
56
- The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E05.2E28).
67
- The [WIP Roadmap](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) Paper.
78

89
---
910

1011
This week, we discussed the following topics:
1112

12-
#### 1. Profiling and fact generation
13+
### 1. Profiling and fact generation
1314

1415
[@lokalmatador] has made some progress on the profiling tasks: WIP branch is [here](https://github.com/rust-lang/rust/compare/master...lokalmatador:polonius_profiling) gathering timing data for parts of NLLs and Polonius using rustc's `-Z self-profile` API.
1516

@@ -22,7 +23,7 @@ It was also deemed "nice to have" but not high priority compared to the rest of
2223

2324
A bug in `measureme`'s `summarize` tool seemed to be blocking progress, but was later found to be a problem in data gathering, and which has since been fixed. Complete discussion available in the dedicated Zulip thread around [this point](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/profiling/near/166400364).
2425

25-
#### 2. Liveness
26+
### 2. Liveness
2627

2728
[Albin] has been putting the finishing touches on the liveness work, which is ready to review and land.
2829

@@ -34,7 +35,7 @@ Most of the tasks mentioned in a previous meeting, and this [summary github comm
3435

3536
A summary of the liveness work is "it works but does not produce exactly the same `region_live_at` facts as rustc does today" (and this is also one of the last tasks in the list). This is because rustc also takes initialization into account, while the Polonius liveness work does not do so yet. This is indeed the next step in Polonius' roadmap, and a nice segue into the last topic discussed in this meeting.
3637

37-
#### 3. Move/overwrite analysis
38+
### 3. Move/overwrite analysis
3839

3940
As this is the next item to tackle, [Niko] and [Albin] will schedule a recorded video chat session next week, about how the current borrow checker tracks moves and initialization, and how to move this over to Polonius.
4041

content/docs/working-groups/polonius/minutes/2019.06.04-meeting.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
---
33

44
Relevant links:
5+
56
- The meeting happened in this [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/meeting.202019.2E06.2E04).
67
- The [WIP Roadmap](https://paper.dropbox.com/doc/Polonius-Roadmap--AY6C806s~AZK~e7wagmys2_wAg-hk3a9ynduUN2gk1A0NNTF) Paper.
78

89
---
910

1011
This week, we discussed the following topics:
1112

12-
#### 1. Liveness
13+
### 1. Liveness
1314

1415
To help with reviewing [polonius#105](https://github.com/rust-lang/polonius/pull/105), some last minutes changes were discussed:
1516
- the older facts recorded in the Polonius dataset (the `inputs` directory) needed regenerating. This creates a huge diff for review, so separating those out to be "rubberstamped" would be interesting.
@@ -18,17 +19,17 @@ To help with reviewing [polonius#105](https://github.com/rust-lang/polonius/pull
1819
In general, we'll still need to check rustc's testsuite when the liveness work is merged. That ties into the other ongoing work about checking our current `-Z polonius` behaviour in those tests (especially now that [#60171](https://github.com/rust-lang/rust/pull/60171) has been merged).
1920

2021

21-
#### 2. Profiling and performance
22+
### 2. Profiling and performance
2223

2324
With the previous problems related to `measureme`/`summarize` fixed, [@lokalmatador] has continued work on profiling, and has been gathering early results.
2425

25-
#### 3. Move/initialization analysis
26+
### 3. Move/initialization analysis
2627

2728
[Niko] and [Albin] have [recorded a call](https://www.youtube.com/watch?v=ilv9V-328HI) discussing how rustc ensures all data used is initialized, and how to integrate these checks in Polonius.
2829

2930
Note: the screen recording is "paused" for a bit at the beginning (until around minute 14), as notes were broadcast on the Paper website, but [this](https://paper.dropbox.com/doc/Polonius-and-initialization-mNvR4jqITCdsJDUMEhFbv) is the document they discuss and take notes in.
3031

31-
#### 4. Proposal: stop tracking subset relations along the CFG
32+
### 4. Proposal: stop tracking subset relations along the CFG
3233

3334
[Niko] and [Aaron Weiss] (who works on the [Oxide formal model](https://aaronweiss.us/pubs/draft19-oxide.pdf) of Rust's ownership and borrowing) came up with a proposal to avoid tracking `subset` relations.
3435

@@ -39,6 +40,7 @@ There are more details at the beginning of the dedicated Zulip thread — [aroun
3940
---
4041

4142
This week, the plan is:
43+
4244
- [@lokalmatador] will continue gathering profiling data.
4345
- [Niko] will review and land the liveness PR, and release the new polonius version to crates.io.
4446
- [Albin] will update the [rustc liveness PR](https://github.com/rust-lang/rust/pull/60266) after that, and mark it from "WIP" to "ready to review". They also will do a public presentation about Polonius next week and will prepare for that.

0 commit comments

Comments
 (0)