Gary Zu clstoreuser at gmail.com
Tue Dec 8 01:25:56 UTC 2009

On Mon, Dec 7, 2009 at 4:38 PM, szergling <senatorzergling at gmail.com> wrote:

> >Hi Gary, just a quick question.
> >
> >It looks like you are trying to restore a hash-table whose size is
> >nil. Does (hash-table-size <any-hash-table>) ever return nil (that's
> >what gets stored previously, see the defstore-cl-store code for
> >hash-tables)?  CLHS says that SIZE is a non-negative integer. Any
> >ideas how this could happen?  Are you hash-tables ever empty?
> >
> >If this is a Lispworks bug, perhaps you could redefine the restorer to
> >default to :size 0 when this happens? (just a workaround)
> >
> >Yong.

Thanks! I have no idea how the (hash-table-size <any-hash-table>) ever
returned nil in Lispworks ( Besides size, I logged out all
parameters restored for the saved hash table. They read as follows:

[DEBUG] : rehash-size = NIL
[DEBUG] : rehash-threshold = 7
[DEBUG] : size = NIL
[DEBUG] : test = EQL
[DEBUG] : count = 601

rehash-size and rehash-threshold are both wrong, too. If I make an empty
hash table, the Lispworks gives size=37, rehash-size=2.0,
rehash-threshold=1.0 - surely they got them all right.

You can see that my hash table got 601 entries. I indeed got them all
restored using your workaround idea. Still not sure how those bad parameter
values got stored in the first place.

Pointing me to the source code is a great help. Many thanks again!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cl-store-devel/attachments/20091207/11dbabcb/attachment.html>

More information about the cl-store-devel mailing list