I think, Erik, you should review the PicoLisp Reference about evaluation.
In PicoLisp, everything is interpreted except primitive functions which are
either implemented in C (32-bit) or assembly (64-bit). So the source you
see in the lisp files is the same as what the compiler will execute, except
that data structures are built and symbols resolved during (read).

The relevant part of the manual is here:


On Wed, Aug 26, 2015 at 1:00 AM, Alexander Burger <a...@software-lab.de>

> Hi Erik,
> > 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.
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

John Duncan

Reply via email to