-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Open
Labels
breaking change ⚠️ethdebughigh impactChanges are very prominent and affect users or the project in a major way.Changes are very prominent and affect users or the project in a major way.medium effortDefault level of effortDefault level of effortmust haveSomething we consider an essential part of Solidity 1.0.Something we consider an essential part of Solidity 1.0.protocol design 🔮Potential changes to ABI, meta data, standard JSONPotential changes to ABI, meta data, standard JSON
Description
The source maps currently contain one item per opcode, instead of one item per byte in the assembly. This kind of makes sense because it allows the source maps to be flexible about which push
opcode is used for a constant, but it makes it also more difficult because the "pseudo-opcode" AssignImmutable results in multiple opcodes in the end. To make things worse: As soon as one uses verbatim
, it is taken as a single opcode by the compiler, but when just seeing the bytecode, it is impossible to tell whether a sequence of opcodes came from a single verbatim
or multiple opcodes.
Because of that I would propose to make the source maps byte-based starting from Solidity 0.9.0.
Metadata
Metadata
Assignees
Labels
breaking change ⚠️ethdebughigh impactChanges are very prominent and affect users or the project in a major way.Changes are very prominent and affect users or the project in a major way.medium effortDefault level of effortDefault level of effortmust haveSomething we consider an essential part of Solidity 1.0.Something we consider an essential part of Solidity 1.0.protocol design 🔮Potential changes to ABI, meta data, standard JSONPotential changes to ABI, meta data, standard JSON