Skip to content

Commit 0cb5f28

Browse files
authored
Merge pull request #225 from davidtwco/polymorphization-wg
Add polymorphization working group.
2 parents bcf8dec + 3eaaff6 commit 0cb5f28

File tree

3 files changed

+43
-17
lines changed

3 files changed

+43
-17
lines changed

content/_index.md

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -74,23 +74,10 @@ Name | Status | Short
7474
[Rustc pipelining](working-groups/pipelining/) | Active | Enable Cargo to invoke rustc in a pipelined fashion, speeding up crate graph compiles. | [#t-compiler/wg-pipelining][pipelining-stream]
7575
[Polonius](working-groups/polonius/) | Active | Exploring the integration of the "NLL 2.0"-like ["Polonius analysis"][Polonius] into rustc | [#t-compiler/wg-polonius][polonius_stream]
7676
[Learning](working-groups/learning/) | Active | Make the compiler easier to learn by ensuring that rustc-guide and api docs are "complete" | [#t-compiler/wg-learning][learning_stream]
77-
[Diagnostics](working-groups/diagnostics/) | Active | Use crates.io crates for diagnostics rendering and make emitting diagnostics nicer. | [#t-compiler/wg-diagnostics][diagnostics-stream]
77+
[Diagnostics](working-groups/diagnostics/) | Active | Use crates.io crates for diagnostics rendering and make emitting diagnostics nicer. | [#t-compiler/wg-diagnostics][diagnostics_stream]
78+
[Polymorphization](working-groups/polymorphization/) | Active | Implement an analysis to detect when functions can remain polymorphic during code generation. | [#t-compiler/wg-polymorphization][polymorphization_stream]
7879
[Profile-Guided Optimization](working-groups/pgo/) | Retired | Implementing profile-guided optimization for rustc | [#t-compiler/wg-profile-guided-optimization][pgo_stream]
7980

80-
[nikomatsakis]: https://github.com/nikomatsakis
81-
[cramertj]: https://github.com/cramertj
82-
[matklad]: https://github.com/matklad
83-
[pnkfelix]: https://github.com/pnkfelix
84-
[davidtwco]: https://github.com/davidtwco
85-
[spastorino]: https://github.com/spastorino
86-
[wesleywiser]: https://github.com/wesleywiser
87-
[michaelwoerister]: https://github.com/michaelwoerister
88-
[nagisa]: https://github.com/nagisa
89-
[Zoxc]: https://github.com/Zoxc
90-
[blitzerr]: https://github.com/blitzerr
91-
[oli-obk]: https://github.com/oli-obk
92-
[estebank]: https://github.com/estebank
93-
9481
[Weekly, in Zulip]: #meeting-calendar
9582
[nll_stream]: https://rust-lang.zulipchat.com/#narrow/stream/122657-t-compiler.2Fwg-nll
9683
[llvm_stream]: https://rust-lang.zulipchat.com/#narrow/stream/187780-t-compiler.2Fwg-llvm
@@ -105,9 +92,10 @@ Name | Status | Short
10592
[mir-opt-stream]: https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt
10693
[pipelining-stream]: https://rust-lang.zulipchat.com/#narrow/stream/195180-t-compiler.2Fwg-pipelining
10794
[polonius_stream]: https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius
95+
[polymorphization_stream]: https://rust-lang.zulipchat.com/#narrow/stream/216091-t-compiler.2Fwg-polymorphization
10896
[learning_stream]: https://rust-lang.zulipchat.com/#narrow/stream/196385-t-compiler.2Fwg-learning
10997
[Polonius]: https://github.com/rust-lang/polonius
110-
[diagnostics-stream]: https://rust-lang.zulipchat.com/#narrow/stream/147480-t-compiler.2Fwg-diagnostics
98+
[diagnostics_stream]: https://rust-lang.zulipchat.com/#narrow/stream/147480-t-compiler.2Fwg-diagnostics
11199

112100
## Expert Map
113101

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
title: Polymorphization Working Group
3+
type: docs
4+
---
5+
# Polymorphization Working Group
6+
![working group status: active][status]
7+
8+
This working group aims to implement an analysis to detect when functions could remain polymorphic
9+
during code generation.
10+
11+
- **Leads:** [@nikomatsakis][nikomatsakis] and [@davidtwco][davidtwco]
12+
13+
[status]: https://img.shields.io/badge/status-active-brightgreen.svg?style=for-the-badge
14+
15+
## What is the goal of this working group?
16+
This working group aims to accomplish the following:
17+
18+
- Initially, implement an analysis to detect when type parameters are unused in functions, closures
19+
and methods; and integrate this analysis into the monomorphization infrastructure so that less
20+
copies of functions are redundantly made (this addresses rust-lang/rust#46477).
21+
- Experiment and investigate extending the analysis to more advanced cases where functions could
22+
be kept polymorphic. For example, if a function only uses the size of a type parameter, rustc
23+
could create a copy for each distinct size of type (rather than each type).
24+
25+
# How can I get involved?
26+
The scope of this working group is quite limited and the project is part
27+
of [davidtwco][davidtwco]'s Master's Thesis, so there aren't many opportunities to get involved.
28+
If you have any questions, feel free to drop them in the Zulip stream.
29+
30+
- **Desired experience level:** N/A
31+
- **Relevant repositories:** [`rust-lang/rust`][repo]
32+
- **Zulip stream:** [`#t-compiler/wg-polymorphization`][zulip] on Zulip
33+
34+
[repo]: https://github.com/rust-lang/rust
35+
[zulip]: https://rust-lang.zulipchat.com/#narrow/stream/216091-t-compiler.2Fwg-polymorphization
36+
37+
[nikomatsakis]: https://github.com/nikomatsakis
38+
[davidtwco]: https://github.com/davidtwco

layouts/shortcodes/checkin-schedule.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
var wgs = [
2121
"Async/Await", "Diagnostics", "Learning", "LLVM", "Meta", "MIR Optimizations", "NLL",
2222
"Parallel Rustc", "PGO", "Pipelining", "Polonius", "RFC 2229", "RLS 2.0", "Self-Profile",
23-
"Traits",
23+
"Traits", "Polymorphization",
2424
];
2525
var count = wgs.length % 2 === 0 ? wgs.length : wgs.length + 1;
2626

0 commit comments

Comments
 (0)