On 24 Jan 2018, at 15:39, Ilya Perminov wrote:

Hi Robert,

To "revert" my patch manually just revert this change:

--- old-iterate/iterate.lisp 2018-01-15 16:49:24.171636397 -0800
+++ new-iterate/iterate.lisp 2018-01-15 16:49:24.171636397 -0800
@@ -3374,7 +3374,7 @@
(if (not (and (integerp n) (> n 0)))
(clause-error "~a should be a positive integer" n-expr)
;; Here, n is a positive integer.
- (let* ((p-i (intern-previous-info var))
+ (let* ((p-i (intern-previous-info var :next))
(init-val (make-initial-value default default? (var-type var)))
(temp (if (not (duplicable? init-val))
(make-var-and-default-binding

i.e. remove :next from (intern-previous-info var :next).
I only tested my patch on SBCL 1.3.0 and it did not break any tests. The BUG
tests failed, but everything else passed.

Ilya

On MacOS, with SBCL 1.3.14, I get 5 failures:

5 out of 268 total tests failed: ITERATE.TEST::ALWAYS.FINALLY, 
   ITERATE.TEST::NEVER.FINALLY, ITERATE.TEST::THEREIS.FINALLY, 
   ITERATE.TEST::BUG/WALK.2, ITERATE.TEST::BUG/COLLECT-AT-BEGINNING.;

I also see this:

; caught STYLE-WARNING:
; undefined function: ITERATE:MULTIPLYING
;
; compilation unit finished
; Undefined function:
; ITERATE:MULTIPLYING
; caught 1 ERROR condition
; caught 1 WARNING condition
; caught 1 STYLE-WARNING condition

This is from loading the test system -- iterate itself loads without problems.

I'm not sure why this happens: I see this:
```
iterate.lisp
2872:(defsynonym multiplying multiply)

and `multiplying` seems to be exported from package.lisp.

The error occurs in `bug/macrolet.2`

One thing I don't understand -- the test suite seems to use `:SB-RT` on SBCL, which is *not* the same as the `RT` package.  Any idea what's going on here?  Definitely caused me some confusion as a not-normally-SBCL user.