java.lang.VerifyError with PROGN

Eric Marsden <[email protected]> Sat, 14 Dec 2019 10:43:58 +0100
Newsgroups gmane.editors.j.devel
Message-ID <fc5e598e-b35a-da8f-4993-5f56319152b2__36210.3099397913$1576316672$gmane$org@free.fr>
Hi,

Compiling the loading the code below (a simplified extract of SBCL's
codebase, found attempting to crossbuild SBCL with ABCL) results in a
VerifyError, possibly related to the implementation of PROGN. Using
1.6.1-dev-svn-15217.

java.lang.VerifyError: (class: org/armedbear/lisp/foo_1, method: execute signature: (Lorg/armedbear/lisp/LispObject;)Lorg/armedbear/lisp/LispObject;) Expecting to find object/array on stack
	at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3137)
	at java.base/java.lang.Class.getConstructor0(Class.java:3342)
	at java.base/java.lang.Class.newInstance(Class.java:556)
	at org.armedbear.lisp.FaslClassLoader.loadFunction(FaslClassLoader.java:130)
	at org.armedbear.lisp.FaslClassLoader$pf_get_fasl_function.execute(FaslClassLoader.java:165)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:832)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:582)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:577)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Lisp.progn(Lisp.java:709)
	at org.armedbear.lisp.SpecialOperators$sf_progn.execute(SpecialOperators.java:273)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:530)
	at org.armedbear.lisp.Load.faslLoadStream(Load.java:667)
	at org.armedbear.lisp.Load$init_fasl.execute(Load.java:457)


---
(in-package :cl-user)

(progn
   (defvar*sxhash-crosscheck*  nil)
   (defun sxhash (x)
     (let ((answer (if (string= x "NIL") (ash 1343225879 (- 1)))))
       (push (cons x answer)*sxhash-crosscheck*)
       answer)))


-- Eric Marsden https://risk-engineering.org/