There is a reason why *loop-keywords* was declared with defvar
and not defparameter, but I can't remember what it was.

Daniel

On Sun, Jan 6, 2013 at 6:33 PM, Canhua <dreameration@gmail.com> wrote:
I find that it is because the parenscript's *loop-keyword* is not
effective when macro expanding loop-case,
it seems that the common lisp's loop keywords is effective. In the
ps-loop.lisp source, changing

(defvar *loop-keywords* ..)

into

(defparameter *loop-keywords* ...)

would solve the problem.



On Sat, Jan 5, 2013 at 6:33 PM, Canhua <dreameration@gmail.com> wrote:
> Following is errors when loading ps-loop.lisp
>
>
> ; file: /root/vendor-src/parenscript/src/lib/ps-loop.lisp
> ; in: DEFUN FOR-CLAUSE
> ;     (PARENSCRIPT::LOOP-CASE PARENSCRIPT::TERM
> ;       (:FROM (PARENSCRIPT::FOR-FROM PARENSCRIPT::PLACE PARENSCRIPT::STATE))
> ;       (:= (PARENSCRIPT::FOR-= PARENSCRIPT::PLACE PARENSCRIPT::STATE))
> ;       ((:IN :ACROSS) (PARENSCRIPT:FOR-IN PARENSCRIPT::PLACE
> PARENSCRIPT::STATE))
> ;       (:ON (PARENSCRIPT::FOR-ON PARENSCRIPT::PLACE PARENSCRIPT::STATE))
> ;       (:OF (PARENSCRIPT::FOR-KEYS-OF PARENSCRIPT::PLACE PARENSCRIPT::STATE))
> ;       (OTHERWISE
> ;        (ERROR "FOR ~s ~s is not valid in PS-LOOP." PARENSCRIPT::PLACE
> ;               PARENSCRIPT::TERM)))
> ;
> ; caught ERROR:
> ;   during macroexpansion of
> ;   (LOOP-CASE TERM
> ;     (:FROM #)
> ;     ...).
> ;   Use *BREAK-ON-SIGNALS* to intercept:
> ;
> ;    OF isn't a recognized loop keyword.
>

_______________________________________________
parenscript-devel mailing list
parenscript-devel@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel