> I imagine something like CL's 'disassemble' that, given an arbitrary lisp
> expression, returns the sequence of VM instructions the expression maps to.
To extend a little what Tomas and Andreas said:
I think it is not so very useful to look at the generated native ASM
code, as it more or less maps 1:1 to the PicoLisp assembly, and the
latter is more readable.
Still, you can easily disassemble the executable:
$ objdump -S bin/picolisp |view -
When looking at the sources with 'vi', e.g. extending Andreas' example
$ pil +
: (vi 'vi)
you can navigate by moving the cursor to some identifier and hit Shift-K. Then
vi will jump to *that* source. This will give access to all Lisp and ASM code
reachable from that point.
In case of the 'vi' code above, you may press Shift-K on 'call', then move down
to 'execArgsE_SXZ' and press Shift-K again
With Shift-Q you can pop back.