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.