Opened 7 years ago

Closed 7 years ago

#334 closed defect (fixed)

Forms evaluated with `--eval` not in a "correct" interpreter environment

Reported by: Mark Evenson Owned by:
Priority: major Milestone: 1.3.0
Component: other Version: 1.3.0-dev
Keywords: asdf Cc:
Parent Tickets:

Description

[As part of debugging ASDF 3.0.3, Faré found http://article.gmane.org/gmane.lisp.armedbear.devel/3015] the following problem:

cd ~/cl/asdf/

make 

abcl --noinform --eval '(or`#.(load(string`|test/script-support.lisp|)`:verbose():print())#.(asdf-test::exit-lisp`0))'

Failed to require  LOOP because 'Illegal function object: (bqv).'

Maximum error depth exceeded (11 nested errors) with 'Illegal function
object: (bqv).'.

The error message erroneously points to the backquote form being not interpreted incorrectly. But the same form runs just fine from the REPL. And if you change the file being loaded to something containing a "simple" form like

(defun foo () 42)

the use of --eval with the hairy looking backquote succeeds.

What is apparently happening is that the environment in which the --eval environment is executed is "incorrect" in some way, to the point that the LOOP macro is not able to be autoloaded.

Attachments (1)

ticket-334.diff (1.3 KB) - added by Mark Evenson 7 years ago.
Establish debugger for '--eval' arguments.

Download all attachments as: .zip

Change History (3)

Changed 7 years ago by Mark Evenson

Attachment: ticket-334.diff added

Establish debugger for '--eval' arguments.

comment:1 Changed 7 years ago by Mark Evenson

The attached patch now correctly throws an semi-intelligble error on the Java side when a SHARPSIGN-DOT macro is passed as part of an '--eval' argument.

This confirms that the problem seems to lie in the use of REQUIRE forms within '--eval' args.

quoth:~/work/asdf$     abcl --noinit --eval '`#.(load (string `|test/script-support.lisp|) :verbose t :print t)'
Armed Bear Common Lisp 1.3.0-dev
Java 1.7.0_45 Oracle Corporation
Java HotSpot(TM) 64-Bit Server VM
Low-level initialization completed in 0.475 seconds.
Startup completed in 2.41 seconds.
; Loading /Users/evenson/work/asdf/test/script-support.lisp ...
#<PACKAGE ASDF-TEST>
#<PACKAGE ASDF-TEST>
NIL
NIL
*TRACE-SYMBOLS*
*DEBUG-ASDF*
*QUIT-WHEN-DONE*
VERBOSE
NIL
NIL
ASYM
ACALL
ASYMVAL
ASYMVAL
Failed to require  LOOP because 'Illegal function object: (bqv).'

Maximum error depth exceeded (11 nested errors) with 'Illegal function object: (bqv).'.
CL-USER(1):

comment:2 Changed 7 years ago by Mark Evenson

Resolution: fixed
Status: newclosed

Problem resolved to properly initialization of the *BACKQUOTE-COUNT* special in subsequent FASL loads. See r14591

http://abcl.org/trac/changeset/14591

Note: See TracTickets for help on using tickets.