Open
Description
Currently, if core
finds an opcode it cannot handle, it will Trap
first, and then Runtime
will attempt to eval it. This is rather inefficient.
Instead, core
should expose the eval table (which is just 256-item fn pointers), to allow Runtime
to customize it. Machine
would now take a generic parameter stateS
(with default ()
), and then pass it as the final parameter to eval fns. Runtime
then should fully build with that, and only trap for CALL
/CREATE
. Gasometer
should be the only thing that wraps a Machine
.
This should make it more predictable when reasoning about performance, while not losing much abstractions.
Metadata
Metadata
Assignees
Labels
No labels