Open
Description
In this release cycle we had to introduce a bunch parser hacks to avoid breaking existing code:
- In order to introduce new Yul opcodes in a non-breaking way, we had to mark them as exceptions for older EVM versions in
createReservedIdentifiers()
:basefee
prevrandao
tstore
tload
blobbasefee
blobhash
mcopy
- Existing builtins have not been made reserved yet
memoryguard
- EOF builtins/opcodes outside of EOF (see
eof_identifiers_not_reserved_in_legacy.yul
) - New keywords needed for storage layout syntax (Allow specifying storage locations #597):
at
layout
- New keywords needed for transient storage (High-Level Language Support for Transient Storage #15007)
transient
code
orcontractdata
In the next breaking release the exceptions should be removed and keywords added.