---
# System prepended metadata

title: 'For Reference: Roadmap 2021'

---

# 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.
