[tinaa-devel] Bug with MAKE-ITERATOR

Leslie P. Polzer sky at viridian-project.de
Sun Nov 23 00:24:12 UTC 2008


Hi Gary,

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

Thanks for taking time to look at it, I appreciate it.


> I'm stumbling through getting weblocks installed (far too difficult.
> sigh)

Try clbuild, you just have to do "install weblocks" with it.


> 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).

Maybe you're using a stale version of Weblocks.

We use and test it every day with SBCL.


> 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 think AWHEN is fine.

The problem is not MAKE-ITERATOR being called with NIL, but
MAKE-ITERATOR *returning* NIL.

The patch works around exactly that. I suspect some problem
with DYNAMIC-CLASS but I don't know enough of it (and
cl-containers and probably more of your stuff) to get at it
in reasonable time...

  Leslie

-- 
LinkedIn Profile: http://www.linkedin.com/in/polzer
Xing Profile: https://www.xing.com/profile/LeslieP_Polzer
Blog: http://blog.viridian-project.de/





More information about the tinaa-devel mailing list