# For Reference: Roadmap 2021
### Q1:
Release of Solidity 0.8.0 (but we think it will be out before New Year)
Conduct the Language Survey
Full language coverage of SMTChecker
New language features
### Q2:
Language Server prototype
Complete language coverage in the IR
Support for all artefacts via the IR (e.g. various debugging outputs)
New language features
### Q3:
Release of Solidity 0.9.0
Solving the stack pressure issue with the Yul optimiser
First preview/release of a “standard library”
New language features
In the field you should be at least 75% certain about the achievability of the given milestone.
### Q4:
Gas costs of new IR on par with old codegen or better
(Prototypal) support of non-mainnet and cross-chain applications (i.e. rollups)
New language features
In the field you should be at least 50% certain about the achievability of the given milestone.
# Milestones Solidity 2022
### Q1:
- Mark IR non-experimental (not default)
- IR as efficient as old codegen
- [CP] Language Server released (symbolic renaming and syntax highlighting)
- [AB] Preview of standard library
- [CR] User-defined types and operators and conversion from literals
### Q2:
- [CR] SMT+LP solver used in optimizer
- [CP] further LSP features
### Q3:
- [DK] Compile-time-constant expression evaluation (concept; initial implementation for simple functions - e.g. immediate return + arithmetic and casting; will interact with generics)
- [HM] finish / implement memory management / allocation (research on solving this at the codegen or a higher level by introducing something like a mixed IR.)
### Q4:
- [DK CR] first experimental implementation of generics (unless it turns out it is not possible)
- [CP] code completion for LSP
## Heap
Wishlist:
- *Doing research on libraries*: if we want to make away with libraries, need to do research on how it's used, and how to convince OZ to switch.
- Upstream integration of grammar based fuzzer
- Enums with data (plus match)
- Catching custom errors and general improvements of error handling.
- Optimize the default optimizer sequence using yul phaser (needs corpus of contracts to run on)
- LSP: Refactor import wildcards to explicit import statements
- Technical debt: Rewrite cli using standard json
- Technical debt: Switch to nlohman-json
- Find out what additional debug info is needed
- *Debug mode from the compiler*. Initial idea for stack traces: using an event or a call to a precompile at the beginning of each internal / external functions. Use tracing in VM to generate a stack trace.