← Архив: Common Lisp

проблемы с установкой iterate

Author: · 15.09.2017 14:25
· original author: anaumov
Всем привет!
Очень расчитываю на вашу, ребята, помощь. Не могу поставить iterate. Он мне понадобился только из-за cl-tetris3d.
Ставлю вот так:
> (ql:system-apropos "iterate")
#<SYSTEM com.clearly-useful.iterate+ / com.clearly-useful.iterate-plus-20121013-git / quicklisp 2014-02-11>
#<SYSTEM generic-sequences-iterate / generic-sequences-20130128-git / quicklisp 2014-02-11>
#<SYSTEM hu.dwim.reiterate / hu.dwim.reiterate-20130312-darcs / quicklisp 2014-02-11>
#<SYSTEM hu.dwim.reiterate.test / hu.dwim.reiterate-20130312-darcs / quicklisp 2014-02-11>
#<SYSTEM iterate / iterate-20140211-darcs / quicklisp 2014-02-11>
#<SYSTEM iterate-clsql / iterate-clsql-20130312-http / quicklisp 2014-02-11>
#<SYSTEM iterate-pg / iterate-20140211-darcs / quicklisp 2014-02-11>
#<SYSTEM iterate-tests / iterate-20140211-darcs / quicklisp 2014-02-11>
#<SYSTEM x.fdatatypes-iterate / x.fdatatypes-20120703-git / quicklisp 2014-02-11>
> (ql:quickload "iterate")
To load "iterate":
  Load 1 ASDF system:
    iterate
; Loading "iterate"
......
........................; 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.
;  
;    invalid number of arguments: 1
; file: /home/alex/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.
;  
;    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.
;  
;    invalid number of arguments: 1
...
debugger invoked on a UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread
#<THREAD "main thread" RUNNING {1002A465C3}>:
  COMPILE-FILE-ERROR while compiling #<CL-SOURCE-FILE "iterate" "iterate">
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY                        ] Retry
                                     compiling #<CL-SOURCE-FILE "iterate" "iterate">.
  1: [ACCEPT                       ] Continue, treating
                                     compiling #<CL-SOURCE-FILE "iterate" "iterate">
                                     as having been successful.
  2: [ABORT                        ] Give up on "iterate"
  3:                                 Reduce debugger level (to debug level 1).
  4:                                 Retry
                                     compiling #<CL-SOURCE-FILE "iterate" "iterate">.
  5:                                 Continue, treating
                                     compiling #<CL-SOURCE-FILE "iterate" "iterate">
                                     as having been successful.
  6:                                 Retry ASDF operation.
  7: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
                                     configuration.
  8:                                 Give up on "cl-tetris3d"
  9:                                 Exit debugger, returning to top level.
(UIOP/LISP-BUILD:CHECK-LISP-COMPILE-RESULTS NIL T T "~/asdf-action::format-action/" ((#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "iterate" "iterate">)))
Это проблема Quicklisp или самого пакета iterate? Или я что-то забыл и делаю не так?
У меня SBCL версии 1.3.11.
· original author: den73
Вроде всё работает у меня, причём и в 1.3.11 только что скачал и работает. Т.е. даже нет идей. Что у тебя ещё было перед этим загружено в образ? Попробуй стереть все фаслы и загрузить только сам iterate в новый экземпляр SBCL. 
· original author: flyamt
> iterate-20140211-darcs
это старая  и всеми забытая и бажная версия.
сейчас в QL
> http://beta.quicklisp.org/archive/iterate/2016-08-25/iterate-20160825-darcs
Все обновились, у всех работает
· original author: anaumov
> (ql:system-apropos "iterate")
#<SYSTEM com.clearly-useful.iterate+ / com.clearly-useful.iterate-plus-20121013-git / quicklisp 2017-08-30>
#<SYSTEM generic-sequences-iterate / generic-sequences-20150709-git / quicklisp 2017-08-30>
#<SYSTEM hu.dwim.reiterate / hu.dwim.reiterate-20170830-darcs / quicklisp 2017-08-30>
#<SYSTEM hu.dwim.reiterate+hu.dwim.logger / hu.dwim.reiterate-20170830-darcs / quicklisp 2017-08-30>
#<SYSTEM hu.dwim.reiterate/test / hu.dwim.reiterate-20170830-darcs / quicklisp 2017-08-30>
#<SYSTEM iterate / iterate-20160825-darcs / quicklisp 2017-08-30>
#<SYSTEM iterate-clsql / iterate-clsql-20130312-http / quicklisp 2017-08-30>
#<SYSTEM iterate/tests / iterate-20160825-darcs / quicklisp 2017-08-30>
#<SYSTEM x.fdatatypes-iterate / x.fdatatypes-20150709-git / quicklisp 2017-08-30>
> (ql:quickload "iterate")
To load "iterate":
 Load 1 ASDF system:
   iterate
; Loading "iterate"
[package iterate].................................
.
("iterate")
Большое спасибо. После обновления все заработало. Я догадывался, что что-то не так с самим пакетом, но пока ни разу не обновлял систему при помощи QL. Надеюсь, обновление не поломало мой stumpwm.
Еще раз спасибо!
· original author: dima0905
В CCL 1.12-dev-r16615-trunk (LinuxARM32)  iterate-20160825-darcs не компилится. Clozure "криво" макро раскрывает. Но можно с "костылем"  заставить.
· original author: anaumov
Пишу из Fluxbox. StumpWM после обновления все же сломался... желания разбираться не было (делаю ремонт дома, был страшно уставший в тот вечер, хотел просто посмотреть какой-нить фильмец).
Если CL для хакинга, стоит разделять проекты, которые должны работать всегда (stumpwm), а которые могут и не работать (cl-tetris3d из-за iterate).
· original author: dima0905
я не нахожу функции, которая обновит только один пакет. 
· original author: dima0905
Ой, только не пакет, а систему
· original author: archimag
> я не нахожу функции, которая обновит только один пакет. 
Ну в рамках CL это фактически просто невозможно. И проблема даже не в quicklisp, а скорей в ASDF и в том как её используют.
При желании можно иметь несколько "версий" qucklisp, одну типо обновлять регулярно, а другую только по праздникам когда есть чинить если что сломается.