From: Chris K. <ch...@ma...> - 2014-10-02 11:04:12
|
Hi, I am using SBCL 1.2.4.0 on OSX 10.9.4. I just tried to install fl-iterate from Quicklisp. Error is as shown below. ECL is fine with the same version of iterate. So the issue is unique to SBCL. I’m surprised to see this since iterate has not changed in ages. Best Regards Chris Kohlhepp CL-USER> (ql:quickload 'iterate) To load "iterate": Load 1 ASDF system: iterate ; Loading "iterate" ........................ ; file: /Users/chris/quicklisp/dists/quicklisp/software/iterate-20140211-darcs/iterate.lisp ; in: DEFUN RETURN-COLLECTION-CODE ; (ITERATE::WITH-TEMPORARY ITERATE::TEMP-VAR ; (LET* ((ITERATE::UPDATE-CODE ; `(IF ,ITERATE::COLLECT-VAR ; # ; #)) ; (ITERATE::MAIN-CODE (COND # # #))) ; (ITERATE::RETURN-CODE :BODY ; `((PROGN ,.ITERATE::MAIN-CODE ,ITERATE::COLLECT-VAR)) :FINAL ; (IF (EQ ITERATE::RESULT-TYPE 'LIST) ; NIL ; `(#))))) ; ; caught ERROR: ; during macroexpansion of ; (WITH-TEMPORARY TEMP-VAR ; (LET* # ; #)). ; Use *BREAK-ON-SIGNALS* to intercept. ; ; (SB-C::XEP ; (LAMBDA () :IN WITH-TEMPORARY)) called with invalid number of arguments: 1 . ; file: /Users/chris/quicklisp/dists/quicklisp/software/iterate-20140211-darcs/iterate.lisp ; in: ; DEFCLAUSE (ADJOINING EXPR &OPTIONAL INTO VAR AT (PLACE 'END) TEST ; (TEST '#'EQL) RESULT-TYPE (TYPE 'LIST)) ; (ITERATE::WITH-TEMPORARY ITERATE::TEMP ; (ITERATE::RETURN-COLLECTION-CODE :VARIABLE ITERATE::VAR :EXPRESSION ; ITERATE::EXPR :START-OPERATION ; `(SUBST (ITERATE::EXPR ITERATE::VAR) ; (PROGN ; ,ITERATE::TEMP ; (ADJOIN ITERATE::EXPR ITERATE::VAR :TEST ,ITERATE::TEST))) ; :TEST `(SUBST (ITERATE::VAR ITERATE::EXPR) (PROGN (SETQ #) (NOT #))) ; :END-OPERATION `(SUBST (ITERATE::VAR ITERATE::EXPR) (LIST ,ITERATE::TEMP)) ; :ONE-ELEMENT ...)) ; ; caught ERROR: ; during macroexpansion of ; (WITH-TEMPORARY TEMP ; (RETURN-COLLECTION-CODE :VARIABLE VAR ...)). ; Use *BREAK-ON-SIGNALS* to intercept. ; ; (SB-C::XEP ; (LAMBDA () :IN WITH-TEMPORARY)) called with invalid number of arguments: 1 ; in: ; DEFCLAUSE (ADJOINING EXPR &OPTIONAL INTO VAR AT (PLACE 'END) TEST ; (TEST '#'EQL) RESULT-TYPE (TYPE 'LIST)) ; (ITERATE::WITH-TEMPORARY ITERATE::TEMP ; (ITERATE::RETURN-COLLECTION-CODE :VARIABLE ITERATE::VAR :EXPRESSION ; ITERATE::EXPR :START-OPERATION ; `(SUBST (ITERATE::EXPR ITERATE::VAR) ; (PROGN ; ,ITERATE::TEMP ; (ADJOIN ITERATE::EXPR ITERATE::VAR :TEST ,ITERATE::TEST))) ; :TEST `(SUBST (ITERATE::VAR ITERATE::EXPR) (PROGN (SETQ #) (NOT #))) ; :END-OPERATION `(SUBST (ITERATE::VAR ITERATE::EXPR) (LIST ,ITERATE::TEMP)) ; :ONE-ELEMENT ...)) ; ; caught ERROR: ; during macroexpansion of ; (WITH-TEMPORARY TEMP ; (RETURN-COLLECTION-CODE :VARIABLE VAR ...)). ; Use *BREAK-ON-SIGNALS* to intercept. ; ; (SB-C::XEP ; (LAMBDA () :IN WITH-TEMPORARY)) called with invalid number of arguments: 1 … |
From: Christophe R. <cs...@ca...> - 2014-10-04 14:33:28
|
Hi! Chris Kohlhepp <ch...@ma...> writes: > I am using SBCL 1.2.4.0 on OSX 10.9.4. I just tried to install fl-iterate from Quicklisp. > Error is as shown below. ECL is fine with the same version of iterate. So the issue is unique to SBCL. > I’m surprised to see this since iterate has not changed in ages. Iterate changed in April, to fix the #L reader macro with regards to how it handles backquote. Your version of iterate predates those fixes, but your version of sbcl postdates a change to the backquote implementation. I suspect that if you use a current version of iterate, the problem will disappear. (The WITH-TEMPORARY macro uses both #L and backquote, which is why I suspect this). Best wishes, Christophe |