Greetings all,
I can't seem to get iterate to work. After configuring my init file, and using the relevant ASDF commands, I've successfully installed, loaded, and used libraries like cl-ppcre, but iterate fails to work.
My setup is Mac OS X 10.4.10 on PPC G5 running: - Aquamacs 1.0b (Emacs 22.1) - Slime 2.0 - SBCL 1.0.2
I read the [iterate-devel] list and found someone who had a similar problem:
[iterate-devel] Problem with new iterate install
Phil pbpublist at comcast.net Sat Mar 18 16:17:42 EST 2006
Previous message: [iterate-devel] Count is a CL function Next message: [iterate-devel] Problem with new iterate install Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I am attempting to get iterate (1.4 from common-lisp.net page) going and could use some help. I've followed the docs on common-lisp.net and d/l'd the package and loaded with asdf but when I attempt something simple like (iter (for i from 1 to 10) (collect i)) to verify the installation, errors are received (undefined variable i) which I'm interpreting as the iterate install has something wrong. I'm having these problems both on Lispworks and OpenMCL. Any pointers are appreciated...
Here's what I get when I try the same thing:
CL-USER> (iter (for i from 1 to 10) (collect i)) ; in: LAMBDA NIL ; (COLLECT I) ; ; caught STYLE-WARNING: ; undefined function: COLLECT
; (FOR I FROM 1 TO 10) ; ; caught STYLE-WARNING: ; undefined function: FOR ; ; caught WARNING: ; undefined variable: FROM ; ; caught WARNING: ; undefined variable: I
; (ITER (FOR I FROM 1 TO 10) (COLLECT I)) ; ; caught STYLE-WARNING: ; undefined function: ITER
; (FOR I FROM 1 TO 10) ; ; caught WARNING: ; undefined variable: TO
; ; caught WARNING: ; These variables are undefined: ; FROM I TO
; ; caught STYLE-WARNING: ; These functions are undefined: ; COLLECT FOR ITER ; ; compilation unit finished ; caught 4 WARNING conditions ; caught 4 STYLE-WARNING conditions
And, to be exhaustive:
Restarts: 0: [ABORT-REQUEST] Abort handling SLIME request. 1: [ABORT] Exit debugger, returning to top level.
Backtrace: 0: (SB-INT:SIMPLE-EVAL-IN-LEXENV I #<NULL-LEXENV>) 1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (FOR I FROM 1 TO 10) #<NULL- LEXENV>) 2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ITER (FOR I FROM 1 TO 10) (COLLECT I)) #<NULL-LEXENV>) 3: (SWANK::EVAL-REGION "(iter (for i from 1 to 10) (collect i)) " T) 4: ((LAMBDA NIL)) 5: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (T)) #<unused argument> #<unused argument> #<CLOSURE (LAMBDA NIL) {119CD9E5}>) 6: (SWANK::CALL-WITH-BUFFER-SYNTAX #<CLOSURE (LAMBDA NIL) {119CD9E5}>) 7: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(iter (for i from 1 to 10) (collect i)) ") #<NULL-LEXENV>) 8: ((LAMBDA NIL)) 9: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL) {119CD37D}>) 10: ((LAMBDA NIL)) 11: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- DEBUGGER-HOOK> #<FUNCTION (LAMBDA NIL) {12870435}>) 12: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {124976B1}
#<CLOSURE (LAMBDA NIL) {119CA8AD}>)
13: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {124976B1}> #<FUNCTION (LAMBDA NIL) {12870435}>) 14: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {124976B1}>) 15: (SWANK::PROCESS-AVAILABLE-INPUT #<SB-SYS:FD-STREAM for "a constant string" {1286FFE1}> #<CLOSURE (LAMBDA NIL) {119CA895}>) 16: ((FLET SWANK::HANDLER)) 17: ((LAMBDA (SWANK-BACKEND::_)) #<unused argument>) 18: (SB-IMPL::SUB-SERVE-EVENT NIL 0) 19: (SB-SYS:WAIT-UNTIL-FD-USABLE 0 :INPUT NIL) 20: (SB-IMPL::REFILL-BUFFER/FD #<SB-SYS:FD-STREAM for "standard input" {1249A891}>) 21: (SB-IMPL::INPUT-CHAR/UTF-8 #<SB-SYS:FD-STREAM for "standard input" {1249A891}> NIL #:EOF-OBJECT) 22: (READ-CHAR #<SB-SYS:FD-STREAM for "standard input" {1249A891}> NIL #:EOF-OBJECT #<unused argument>) 23: (READ-CHAR #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {1000C9D1}> NIL #:EOF-OBJECT #<unused argument>) 24: (READ-CHAR #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD- INPUT* {124970E9}> NIL #:EOF-OBJECT #<unused argument>) 25: (READ-PRESERVING-WHITESPACE #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {124970E9}> NIL (NIL) T) 26: (READ-PRESERVING-WHITESPACE #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {124970E9}> NIL (NIL) NIL) 27: (READ #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {124970E9}> NIL (NIL) NIL) 28: (SB-IMPL::REPL-READ-FORM-FUN #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {124970E9}> #<unavailable argument>) 29: (SB-IMPL::REPL-FUN NIL) 30: (SB-IMPL::REPL-FUN NIL) 31: ((LAMBDA NIL)) 32: ((LAMBDA NIL)) 33: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<CLOSURE (LAMBDA NIL) {1249709D}>) 34: (SB-IMPL::TOPLEVEL-REPL NIL) 35: (SB-IMPL::TOPLEVEL-INIT) 36: ((LABELS SB-IMPL::RESTART-LISP))
Also, trying "(use-package :iter)", as suggested by Jorg Hohle, does not help:
USE-PACKAGE #<PACKAGE "ITERATE"> causes name-conflicts in #<PACKAGE "COMMON-LISP-USER"> between the following symbols: ITERATE:FOR, FOR [Condition of type SB-INT:NAME-CONFLICT]
See also: Common Lisp Hyperspec, 11.1.1.2.5 [section]
Restarts: 0: [RESOLVE-CONFLICT] Resolve conflict. 1: [ABORT-REQUEST] Abort handling SLIME request. 2: [ABORT] Exit debugger, returning to top level.
Backtrace: 0: (SB-INT:NAME-CONFLICT #<PACKAGE "COMMON-LISP-USER"> USE- PACKAGE #<PACKAGE "ITERATE">) 1: (USE-PACKAGE :ITER #<PACKAGE "COMMON-LISP-USER">) 2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (USE-PACKAGE :ITER) #<NULL-LEXENV>) 3: (SWANK::EVAL-REGION "(use-package :iter) " T) 4: ((LAMBDA NIL)) 5: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (T)) #<unused argument> #<unused argument> #<CLOSURE (LAMBDA NIL) {12DEF7ED}>) 6: (SWANK::CALL-WITH-BUFFER-SYNTAX #<CLOSURE (LAMBDA NIL) {12DEF7ED}>) 7: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(use- package :iter) ") #<NULL-LEXENV>) 8: ((LAMBDA NIL)) 9: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL) {12DEF185}>) 10: ((LAMBDA NIL)) 11: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- DEBUGGER-HOOK> #<FUNCTION (LAMBDA NIL) {118EABED}>) 12: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {118BF9A9}
#<CLOSURE (LAMBDA NIL) {12DEC9B5}>)
13: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {118BF9A9}> #<FUNCTION (LAMBDA NIL) {118EABED}>) 14: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {118BF9A9}>) 15: (SWANK::PROCESS-AVAILABLE-INPUT #<SB-SYS:FD-STREAM for "a constant string" {118EA761}> #<CLOSURE (LAMBDA NIL) {12DEC99D}>) 16: ((FLET SWANK::HANDLER)) 17: ((LAMBDA (SWANK-BACKEND::_)) #<unused argument>) 18: (SB-IMPL::SUB-SERVE-EVENT NIL 0) 19: (SB-SYS:WAIT-UNTIL-FD-USABLE 0 :INPUT NIL) 20: (SB-IMPL::REFILL-BUFFER/FD #<SB-SYS:FD-STREAM for "standard input" {118BF3B9}>) 21: (SB-IMPL::INPUT-CHAR/UTF-8 #<SB-SYS:FD-STREAM for "standard input" {118BF3B9}> NIL #:EOF-OBJECT) 22: (READ-CHAR #<SB-SYS:FD-STREAM for "standard input" {118BF3B9}> NIL #:EOF-OBJECT #<unused argument>) 23: (READ-CHAR #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {1000C9D1}> NIL #:EOF-OBJECT #<unused argument>) 24: (READ-CHAR #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD- INPUT* {118BF299}> NIL #:EOF-OBJECT #<unused argument>) 25: (READ-PRESERVING-WHITESPACE #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {118BF299}> NIL (NIL) T) 26: (READ-PRESERVING-WHITESPACE #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {118BF299}> NIL (NIL) NIL) 27: (READ #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {118BF299}> NIL (NIL) NIL) 28: (SB-IMPL::REPL-READ-FORM-FUN #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {118BF299}> #<unavailable argument>) 29: (SB-IMPL::REPL-FUN NIL) 30: (SB-IMPL::REPL-FUN NIL) 31: ((LAMBDA NIL)) 32: ((LAMBDA NIL)) 33: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<CLOSURE (LAMBDA NIL) {118BF15D}>) 34: (SB-IMPL::TOPLEVEL-REPL NIL) 35: (SB-IMPL::TOPLEVEL-INIT) 36: ((LABELS SB-IMPL::RESTART-LISP))
I hope my problem is trivial. Many thanks for your consideration in helping me find it,
Olivier Drolet
Hi,
Olivier Drolet wrote:
I can't seem to get iterate to work. ... using the relevant ASDF commands, I hope my problem is trivial.
It is. You need to learn more about packages.
(iter (for ...) ...) ; undefined function: FOR
This is the typical warning when something is evaluated like a function, because its macro definition is not known.
Also, trying "(use-package :iter)", as suggested by Jorg Hohle, does not help: USE-PACKAGE #<PACKAGE "ITERATE"> causes name-conflicts in #<PACKAGE "COMMON-LISP-USER"> between the following symbols: ITERATE:FOR, FOR [Condition of type SB-INT:NAME-CONFLICT]
See also: Common Lisp Hyperspec, 11.1.1.2.5 [section]
Restarts: 0: [RESOLVE-CONFLICT] Resolve conflict.
Did you go and read section 11.1.1.2.5 of CLHS? I believe either Edit Weitz or Peter Seibel are said to have written an excellent introduction to packages, which you may check if the standard is too tough.
Did you consider learning about your debugger? It offers you to resolve the conflict. Please try it out. This is not Python or Java.
The above errors clearly says that there's a conflict: You cannot say (use-package ...) when your current package and the package to use contain different symbols of the same name.
Since you typed in (iter (for ...)) this automatically created symbols named "ITER" and "FOR", hence the conflict with the symbols from the Iterate package of the same name.
Either resovle the conflict, or quit your Lisp, restart, then enter (use-package) *before* your write (iter (for ...)).
Or stay in that original Lisp, write (iter:iter (iter:for ...)).
You see, you have plenty of solutions...
Regards, Jörg Höhle