# Compiler Team Sprints
(pnkfelix, wesleywiser)
---
- Review some compiler-related sprints from 2021
- Presentation Goal: Share outcomes (positive and negative) and lessons learned
- Mull over: How to best direct synchronous coding efforts like sprints?
---
## Sprints
- Shrinkmem sprint ([retrospective mtg](https://zulip-archive.rust-lang.org/238009tcompilermeetings/97737steeringmeeting20210319memshrinkretro.html))
- wg-polonious sprints
---
## Shrinkmem
- In the first week of March, the compiler team hosted a "shrinkmem" sprint.
- Shrinkmem Goal: reduce the amount of memory the compiler uses to bootstrap itself.
- Why: for some contributors, build times can become unbearable due to swapping.
- Current mitigation: reduce number of concurrent jobs, but this has other downsides.
---
## Shrinkmem Positives
- Contributors came up with some interesting ideas to try out.
<!-- Some people looked at enabling more MIR optimizations in --release, our CGU partitioning, size of rustc data structures, etc. -->
---
## Shrinkmem Positives
- We were able to reduce max-rss in some of our perf.rlo tests.
---
## Shrinkmem Positives
- The video chat calls were generally a hit and a lot of fun!
<!-- @oli set up a video call on jitsi -->
---
## Shrinkmem Positives
- We now have docs in the rustc dev guide for doing memory profiling.
<!-- Ryan Levick and Wesley Wiser wrote docs for using Windows Performance Analyzer to profile memory allocation. -->
---
## Shrinkmem Negatives
- We didn't start the week with a list of tasks to work on, so most of the first day was spent coming up with that list.
---
## Shrinkmem Negatives
- The video calls were ad-hoc and due to timezones, some people didn't even know when they were happening.
---
## Shrinkmem Negatives
- Some of the ideas we spent the week working on never panned out.
<!-- The CGU partitioning work in particular yielded interesting data but we were not able to get a win from it. -->
---
## Shrinkmem Negatives
- Some people felt that a week was too short a sprint to make meaningful progress on a large goal like this.
<!-- Two weeks probably would have yielded better results. -->
---
## wg-polonious
- The Polonious working group has done a few sprints and have generally achieved positive results!
- Sprints were 4 hours a day for one week.
- Information in this section was gathered from wg-polonious members.
---
## wg-polonious Positives
- Working on something participants were already familiar with kept productivity high during the sprint.
---
## wg-polonious Positives
- The sprints were mostly a way to schedule dedicated time to work on the existing set of items.
---
## wg-polonious Positives
- Several participants pointed to the concrete set of work items prior to the start of the sprint as a key component of the success of the sprints.
---
## wg-polonious "Negatives"
![air quotes](https://thumbs.gfycat.com/ThreadbareFrenchCobra-max-1mb.gif)
- "the biggest problem is them [sprints] not happening more"
- Niko Matsakis
---
## What we're going to do next time
- Plan, plan, plan!
---
## What we're going to do next time
- We need to start the week with a set of tasks already in mind and people willing to work on them.
---
## What we're going to do next time
- Do a better job of coordinating conversation and status updates with the participants.
---
## What we're going to do next time
- Try to find a way to offer mentoring for interested individuals.
---
## Social hours
- A lot of people expressed interest in having a regular video call just to chat with other people work on the project.
- Maybe we should try to set something up on a recurring basis?
{"metaMigratedAt":"2023-06-16T00:18:48.211Z","metaMigratedFrom":"YAML","title":"4: Compiler team sprint retrospective","breaks":true,"contributors":"[{\"id\":\"b859b5b9-394b-4459-a237-20c3fd40c185\",\"add\":3994,\"del\":678},{\"id\":\"ebc76d8d-2914-465e-bd23-99641782eac2\",\"add\":526,\"del\":151},{\"id\":\"27d8f2ac-a5dc-4ebe-8c31-cc45bcd8447e\",\"add\":161,\"del\":60}]"}