Opened 11 years ago
Closed 11 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)
Change History (3)
Changed 11 years ago by
Attachment: | ticket-334.diff added |
---|
comment:1 Changed 11 years ago by
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 11 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Problem resolved to properly initialization of the *BACKQUOTE-COUNT* special in subsequent FASL loads. See r14591
Establish debugger for '--eval' arguments.