[cl-store-devel] CL-STORE:RESTORE-ERROR - ILLEGAL-KEYWORD-VALUE
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)
Thanks! I have no idea how the (hash-table-size <any-hash-table>) ever
returned nil in Lispworks (1.6.0.01). 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...
More information about the cl-store-devel