summaryrefslogtreecommitdiff
path: root/Notes/todo.txt
blob: a368f614add36aeca9d22007de5c5491b6af281d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
TODO:
- Get all run-pass and run-fail tests passing resolve
 - Lots of fixes to do here
- Audit TODOs in codebase
- MIR Optimisations
 - Remove variables that are just assigned from arguments
- Clean up AST
 - Almost done, just a few little niggles left
- Split arg patterns and arg types up for cleaner serialisation
 - Could be a good idea to do as part of changing HIR::TraitImpl to only contain the impl data
 - May not be too useful due to argument monomorphisation.
- Optimise typecheck.


## Big change TODOs
- Support MIR-only RLibs
- Fix Span annotations
- Refactor parse to use a consume model lexer
- Optimise optimise (and typecheck)
- Complete structed C codegen

## Smaller changes
- Only generate destructors if needed (removes C warnings)
- Cache specialisation tree
- Dependency files from mrustc
- Allow disabling C codegen (and/or emitting a makefile stub for it)


## Optimisations
- Argument propagation: replace assignments from Argument(_) if target is only
  written once
- Dead assignment removal (Delete `<val> = Use(<val>)`
- Tuple destructure removal
 - Spot `#1 = (...,)`, `#2 = (#1).n` where #1 is Write-once, borrow-none