![](https://secure.gravatar.com/avatar/13ca49a56fc15df7ac6b50b568eb627c.jpg?s=120&d=mm&r=g)
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.