De-bounce cascading module compilation
- Dominant language
- Bicep
- Stars
- 3.6k
- Forks
- 830
- Avg merge
- 1d 21m
- Merged PRs (30d)
- 79
Description
If you imagine a file structure like the following:
```
main.bicep
- abc.bicep
- def.bicep
+ ghi.bicep
```
If `main.bicep` and `ghi.bicep` are both present in the workspace, a modification to `ghi.bicep` will trigger a synchronous recompilation of `main.bicep`. Arguably instant feedback isn't super important on `main.bicep` as it is not the active document. We could probably avoid constantly recompiling it on every keypress with a debouncing strategy (such as - wait ~X seconds after the last `ghi.bicep` modification before triggering a cascading recompilation).
See #3636 for discussion on an example perf problem which this could help alleviate.
Contributor guide
Research direction
Start by reproducing the cascading compilation scenario described with main.bicep, abc.bicep, def.bicep, and ghi.bicep, then read the performance discussion in #3636. Confirm when editing ghi.bicep recompiles main.bicep synchronously, and define completion as debounced recompilation after edits settle without removing needed feedback.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers, performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100