Opened 9 months ago

Closed 9 months ago

#475 closed defect (fixed)

Loading a FASL into a package which doesn't import SETQ

Reported by: Mark Evenson Owned by:
Priority: major Milestone: 1.8.1
Component: compiler Version: 1.7.1-dev
Keywords: fasl loader package Cc:
Parent Tickets:

Description (last modified by Mark Evenson)

<https://mailman.common-lisp.net/pipermail/armedbear-devel/2020-October/004145.html>

The code below works in CCL, CLISP and SBCL, but not in ABCL.

$ echo '(cl:format cl:t "~&I am in package ~s.~%" cl:*package*)' > foo.lisp
$ java -jar abcl-1.7.1.jar
Armed Bear Common Lisp 1.7.1
Java 1.8.0_265 Oracle Corporation
OpenJDK 64-Bit Server VM
Low-level initialization completed in 0.236 seconds.
Startup completed in 0.931 seconds.
Type ":help" for a list of available commands.
CL-USER(1): (defpackage "BAR" (:use))
#<PACKAGE BAR>
CL-USER(2): (let ((*package* (find-package "BAR"))) (load (compile-file "foo")))
; Compiling /tmp/foo/abcl-bin-1.7.1/foo.lisp ...
; (COMMON-LISP:FORMAT COMMON-LISP:T ...)
; Wrote /tmp/foo/abcl-bin-1.7.1/foo.abcl (0.036 seconds)
Error loading /tmp/foo/abcl-bin-1.7.1/foo.abcl at line 4 (offset 125)
#<THREAD "interpreter" {1B31C40C}>: Debugger invoked on condition of type UNDEFINED-FUNCTION
  The function BAR::SETQ is undefined.
Restarts:
  0: CONTINUE     Try again.
  1: USE-VALUE    Specify a function to call instead.
  2: RETURN-VALUE Return one or more values from the call to SETQ.
  3: TOP-LEVEL    Return to top level.
[1] BAR(3):

Change History (6)

comment:1 Changed 9 months ago by Mark Evenson

Description: modified (diff)

comment:2 Changed 9 months ago by Mark Evenson

In <https://mailman.common-lisp.net/pipermail/armedbear-devel/2020-October/004146.html> Pascal triages as:

Indeed, there’s a bug in abcl.

$ clall -r '(defpackage "BAR" (:use))' ' (let ((*package* (find-package "BAR"))) (load (compile-file "foo.lisp")))'

Armed Bear Common Lisp         --> #<PACKAGE BAR>
Armed Bear Common Lisp         The function BAR::SETQ is undefined.
Clozure Common Lisp            --> #<Package "BAR">
Clozure Common Lisp            --> #P"/private/tmp/foo.dx64fsl"
CLISP                          --> #<PACKAGE BAR>
CLISP                          --> #P"/private/tmp/foo.fas"
ECL                            --> #<"BAR" package>
ECL                            Note:   Invoking external command:   gcc -x c-header /usr/local/include/ecl/ecl-cmp.h -I/usr/local/include/ -g -O2 -fPIC -fno-common -D_THREAD_SAFE -Ddarwin -O2 -o /var/folders/pq/82920zm125n09frk81rrtp200000gn/T/ecl-include092A/ecl-cmp.h.gch 
SBCL                           --> #<PACKAGE "BAR">
SBCL                           --> T

$ abcl --help|head -n 3
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 -Xmx6g
Armed Bear Common Lisp 1.7.1
Java 11.0.8 AdoptOpenJDK
OpenJDK 64-Bit Server VM

-- 
__Pascal J. Bourguignon__

comment:3 Changed 9 months ago by Mark Evenson

Milestone: 1.8.01.8.1

Ticket retargeted after milestone closed

comment:5 Changed 9 months ago by Mark Evenson

Current merge request that addresses this ticket <https://github.com/armedbear/abcl/pull/354>

comment:6 Changed 9 months ago by Mark Evenson

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.