[Bug-openmcl] type cache

bryan o'connor bryan-openmcl at lunch.org
Tue Feb 24 16:52:46 MST 2004


a funny thing happened on the way to fixing some copy-pprint-dispatch
tests, i inadvertently found the source of the problem for 5 of the
subtypep failures (SUBTYPEP.EQL.1, .EQL.2, .MEMBER.12, .MEMBER.17,
and .MEMBER.18) --

the type cache.

forms like this:
   (let ((obj '(foo bar)))
     (values
       (typep obj `(member ,obj))
       (typep obj `(eql ,obj))))

work only once because the type-spec gets cached with the stack-consed
obj.  a quick verify of the problem is to just disable the cache.

my plan is to fix it by selectively not caching certain forms and
investigating if the code with the comment about using copy-tree
"in case it was stack-consed" is part of the problem.

or.. perhaps changing the cache lookup to avoid the clash.

before i continue down this path, any suggestions or pitfalls?

			...bryan

ps.  the copy-pprint-dispatch failures most probably are still related
since they are using similar '(eql (foo bar)) type-specs.



More information about the Bug-openmcl mailing list