slime 2.30: Error when evaluating multi-dimensional array literals.

Mark Harig <[email protected]> Thu, 30 Jan 2025 18:20:02 +0000 (UTC)
Newsgroups gmane.lisp.slime.devel
Message-ID <[email protected]>
Slime Developers,

   There appears to be a problem with Slime=E2=80=99s 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 =E2=80=98slime-interactive-eval=E2=80=99, no =
error:

   M-x slime-interactive-eval
   Slime Eval: #(1 2 3)
   =3D> #(1 2 3)

   M-x slime-interactive-eval
   Slime Eval: #2A((1 2 3) (4 5 6))
   =3D> #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
   =E2=80=98slime-eval-last-expression=E2=80=99), then the 1-D array litera=
l 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)
   =3D> #(x y z)

   #2A((1 2) (3 4))
   =3D>
   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
=E2=80=98slime-eval-region=E2=80=99 is invoked, then the evaluation does no=
t
not trigger the error, above.

   This problem is occurring with slime 2.30, Emacs 29.4,
and SBCL 2.3.11.

--