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)) ...