Andreas Fuchs wrote:
I suspect that the COND form that appears so often in the backtrace is not macroexpanded correctly (or treated as a special form by allegro7 again - there is a comment indicating that in the "old" iterate distribution).
Yes, cond seems to be treated as a special form by acl 7.0 beta: (special-operator-p 'cond) returns T. But (macro-function 'cond) also returns a macro expansion function for cond.
I'll need to know which values
(macroexpand (cond ((>= value 10) nil (collect (cons key (next i))))) nil)
returns on your allegro 7 installation.
If I wrap a quote around your cond form above (I'm pretty sure that's what you really meant), I get (COND ((>= VALUE 10) NIL (COLLECT (CONS KEY (NEXT I))))) NIL which confirms your suspicion, I suppose.
Also, you are welcome to try the patch I suspect will fix the problem:
Thanks, that solves the problem. Regards, Arthur