Skip to content

v0.0.203: [Interpreter] Fix strings with length exceeding `uint8_t`.

Compare
Choose a tag to compare
@mirror-releases mirror-releases released this 12 Apr 10:06
· 101 commits to main since this release
a973045
Prior to this commit, the string length was encoded into
the opcode of the `StackMachine` instructions `St_Tup_s`,
`Ld_s`, and `St_s`. However, this encoding was done using
the opcode type which is stored in a `uint8_t` internally.
Thus, strings exceeding the length of 255 characters let
the encoded length overflow.
To circumvent this issue, we now store the string length
in the stack machine's context which is able to hold
values up to `uint64_t`. Accessing the length is then done
via the stack itself.