Apologies for cross posting, but I am not sure where this problem belongs (iterage or gsll).  I use slime (updated a few days ago) on sbcl 1.031 on linux.   I have problems compiling the following file:<br><br>>>><br>
(in-package :grid)<br><br>(defun foo ()<br>  (iter:iter (iter:for e :Matrix-row grid::*array-3-4-double-float*)<br>         (princ e) (princ " ")))<br><<<<br>(the code is from the iterate.lisp file of the distribution)<br>
<br>Now in slime, I have problems.  Evaluation works:<br><br>I can do C-x C-e to compile `foo'<br>I can also do C-M-x<br><br>But compilation does not.  Both C-c C-c and C-c C-k will flag a compiler error: <br>  note: <br>
    The first argument never returns a value.<br>    --> LET* BLOCK TAGBODY PROGN SETQ THE FUNCALL SB-C::%FUNCALL THE <br>    ==><br>      (SB-KERNEL:%COERCE-CALLABLE-TO-FUN #<FUNCTION # {10030285A9}>)<br><br>
Same story in raw sbcl.<br><br>I looked at the iterate.lisp source code and see nothing obvious.  But, I am not sure what to make of the following:  If I macro-expand the above code (iter:iter ... (iter:for ... :matrix-row ...(...)))  I get the following expansion.  The puzzling thing is thta the first argument to `funcall' is a single hash character `#':<br>
<br>(let* ((#:sequence208 nil) (#:limit209 nil) (e nil) (#:index207 nil))<br>  (block nil<br>    (tagbody<br>       (progn<br>     (setq #:sequence208 *array-3-4-double-float*)<br>     (setq #:limit209 (funcall # #:sequence208))  ;;  <-----<br>
     (setq #:index207 -1))<br>     loop-top-nil<br>       (progn<br>     (setq #:index207 (+ #:index207 1))<br>     (if (>= #:index207 #:limit209)<br>         (go loop-end-nil))<br>     (setq e (funcall # #:sequence208 #:index207)) ;; <-----<br>
     (princ e)<br>     (princ " "))<br>       (progn)<br>       (go loop-top-nil)<br>     loop-end-nil<br>       (progn))<br>    nil))<br><br>Instead of the single hash mark, I would have expected the :access-fn and :size-fn `lambda's from the (defclause-sequence matrix-row matrix-row-index ...) in iterate.lisp.<br>
<br>So, lots of puzzles.  Not sure where this bug belongs: iterate or grid?<br><br>Thanks,<br><br>Mirko<br>