Shammer's Philosophy

My private adversaria

clisp ext:*args* bug?

I could not use ext:*args* with Quicklisp. My example is consist of 2 lisp files.
The first file is args.lisp, this is a copy of http://e-arrows.sakura.ne.jp/2010/11/common-lisp-script.html

(defun args ()
  #+allegro (system:command-line-arguments)
  #+sbcl sb-ext:*posix-argv*
  #+clisp ext:*args*
  #+ecl (si:command-args)
  #+cmu ext:*command-line-words*
  #+ccl ccl:*command-line-argument-list*
  #+lispworks system:*line-arguments-list*)

The second file is args-test.lisp.

(ql:quickload :cl-markup)
(load "args.lisp")
(let ((arg-list (args)))
  (dolist (i arg-list)
    (format t "~a~%" i)))

The result of execution of args-test.lisp is below.

$ clisp args-test.lisp 555
*** - READ from #<INPUT BUFFERED FILE-STREAM CHARACTER #P"args-test.lisp" @1>: there is no package with name "QL"

If removing the line "(ql:quickload :cl-markup)", there is no problem.

$ clisp args-test.lisp 555
555

I guess this seems to be a bug. The function of clisp "ext:*args*" can not be used with other packages function. If the program requires with ext:*args* and other packages simultaneously, using read function instead of ext:*args*. The following command line is

$ clisp foo.lisp x y

replaced by below.

(ql:quickload :cl-markup)
(defparameter x (read))
(defparameter y (read))
...