Skip to content

DISASSEMBLE fails for byte-compiled function defined in REPL

I defined a simple function in the REPL and it was byte-compiled. When I DISASSEMBLE it, I expected to see a bytecode listing, but an error condition is signaled instead:

alan@imber:~/ecl-21.2.1$ LD_LIBRARY_PATH=$HOME/.local/lib ecl
ECL (Embeddable Common-Lisp) 21.2.1 (git:UNKNOWN)
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2013 Juan J. Garcia-Ripoll
Copyright (C) 2018 Daniel Kochmanski
Copyright (C) 2021 Daniel Kochmanski and Marius Gerbershagen
ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help.
Top level in: #<process TOP-LEVEL 0x56086bb42f80>.
> (defun foo (x) (1+ x))

FOO
> (disassemble 'foo)

Condition of type: FILE-ERROR
Filesystem error with pathname #P"SYS:CMP.NEWEST".
Either
 1) the file does not exist, or
 2) we are not allowed to access the file, or
 3) the pathname points to a broken symbolic link.

Available restarts:

1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.

Broken at SI:BYTECODES. [Evaluation of: (DISASSEMBLE 'FOO)] In: #<process TOP-LEVEL 0x56086bb42f80>.

I'm using ECL 21.2.1 on Debian 10 on WSL2 (Windows Linux Subsystem).