[tinaa-devel] Bug with MAKE-ITERATOR

Gary King gwking at metabang.com
Sat Nov 22 21:02:42 UTC 2008


Hi Leslie,

I was just looking at this and I'm confused.

I'm stumbling through getting weblocks installed (far too difficult.  
sigh) but I don't get the error you are reporting using Allegro CL. (I  
still can't get weblocks to install using SBCL because I get all of  
these such and such is not a valid logical pathname errors).

In any case , the error you saw seems to be caused by a call to make- 
iterator with `nil` as its parameter. This leaves make-iterator  
feeling sad. But I don't understand how it happened since the make- 
iterator is guarded by a `awhen` that should mean that it is only  
executed if `it` isn't `nil`. Your patch certainly prevents the error  
but it shouldn't be needed. After all, the expansion is something like:

>
> (let ((it (default-initargs (instance part))))
>   (when it
>     (html ((:div :class "table-summary") (:h3 "Default initargs")
>            ((:table :id "default-initargs")
>             (let ((iterator (make-iterator it)) (count 1))
>
> ...
>
> ))

Can you see how the awhen expands in your environment; perhaps that's  
where the problem is actually occurring. I'd certainly like to get to  
the bottom of this.

I could also alter make-iterator so that it just returns nil if passed  
nil -- which makes a sort of sense. But before I do that, I'd like to  
understand what is going wrong here.

thanks,
--
Gary Warren King, metabang.com
Cell: (413) 559 8738
Fax: (206) 338-4052
gwkkwg on Skype * garethsan on AIM








More information about the tinaa-devel mailing list