Slime Developers,
There appears to be a problem with Slime’s evaluation of multi-dimensional array literals in some buffers. Evaluation of 1-dimensional array literals does not trigger this problem.
1. At the Slime REPL, no error:
CL-USER> #(1 2 3) #(1 2 3) CL-USER> #2A((1 2 3) (4 5 6)) #2A((1 2 3) (4 5 6))
2. Using the Slime command ‘slime-interactive-eval’, no error:
M-x slime-interactive-eval Slime Eval: #(1 2 3) => #(1 2 3)
M-x slime-interactive-eval Slime Eval: #2A((1 2 3) (4 5 6)) => #2A((1 2 3) (4 5 6))
However, if these array literals are evaluated in the *slime-scratch* buffer using C-x C-e (bound to ‘slime-eval-last-expression’), then the 1-D array literal is evaluated as expected, while the 2-D array literal triggers an error.
3. *slime-scratch* buffer (or any Lisp buffer associated with a Lisp source file):
#(x y z) => #(x y z)
#2A((1 2) (3 4)) => Execution of a form compiled with errors. Form: ((1 2) (3 4)) Compile-time error: illegal function call [Condition of type SB-INT:COMPILED-PROGRAM-ERROR]
Note that if the multi-dimensional array literal is marked in an Emacs buffer and the command ‘slime-eval-region’ is invoked, then the evaluation does not not trigger the error, above.
This problem is occurring with slime 2.30, Emacs 29.4, and SBCL 2.3.11.
--