Disasm - Geomol/World GitHub Wiki
Usage
disasm code
Description
Translates a compiled function or block into assembly language. disasm is a function!
Arguments
code -- [function! block!]
Example
w> code: [a: 1 b: 2 a + b]
== [a: 1 b: 2 a + b]
w> disasm code
** Script error: block hasn't been compiled yet
** Near: disasm code
w> compile code
== [a: 1 b: 2 a + b]
w> disasm code
0 LOADK 0 1
1 SET_TVALUE 946126009473010 0
2 LOADK 0 2
3 SET_TVALUE 946f728 0
4 GET_TVALUE 0 9473010
5 GET_TVALUE 1 4c0e2ed80946f728
6 ADD 0 0 1
7 END 0
w> do code
== 3
World code blocks are reduced to VM instructions on-demand. The first call to disasm failed as the value of code was a simple block! datum. After compile (or do, on-demand), disasm has VM instructions to decode.