<div dir="ltr">Hi Madhu,<div><br></div><div> I was confused by your previous messages. You talked about patching and re-building -- all way over my head :(</div><div>Then you said to ignore it since the kludge didn't work (or something like that).</div><div><br></div><div>So your followup suggestion seems a lot clearer (though I haven't a clue what :lock-free is about - couldn't find documentation on it).</div><div><br></div><div>I have now tried the experimental code snippet first proposed by Raymond Wiker, but with (make-hash-table :lock-free nil):</div><div><br></div><div><div>(let ((h (make-hash-table :size 100000 :lock-free nil)))</div><div><span class="" style="white-space:pre"> </span> (dotimes (i (truncate (hash-table-size h) 2))</div><div><span class="" style="white-space:pre"> </span> (setf (gethash i h) i))</div><div><span class="" style="white-space:pre"> </span> (format t "~%before CLRHASH, hash-table-size = ~a" (hash-table-size h))</div><div><span class="" style="white-space:pre"> </span> (clrhash h)</div><div><span class="" style="white-space:pre"> </span> (format t "~%after CLRHASH, hash-table-size = ~a" (hash-table-size h))</div><div><span class="" style="white-space:pre"> </span> (dotimes (i (truncate (hash-table-size h) 2))</div><div><span class="" style="white-space:pre"> </span> (setf (gethash i h) i))</div><div><span class="" style="white-space:pre"> </span> (hash-table-size h))</div><div><br></div><div>before CLRHASH, hash-table-size = 100005</div><div>after CLRHASH, hash-table-size = 100005</div><div>100005</div></div><div><br></div><div>This seems to fix the problem of the hash-table shrinking. And Gail Zacharias posted that there was a bug in CLRHASH for :lock-free hash-tables</div><div>that she'd work to fix. The ticket she referenced talks about how the bug only occurs in :lock-free hash-tables.</div><div><br></div><div>I'm happy to use the :lock-free NIL hash-tables for now, but I'm wondering what the differences are, if any, in how my hash-tables</div><div>should behave with :lock-free nil. The :lock-free business is apparently CCL specific, so a pointer to documentation would be</div><div>helpful [or even better, a description of how to FIND it in the documentation so I can look for other things without bothering people :) ]</div><div><br></div><div>Thanks,</div><div>--Glenn</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 5, 2015 at 11:23 AM, Madhu <span dir="ltr"><<a href="mailto:enometh@meer.net" target="_blank">enometh@meer.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Maybe you overlooked or ignored my message on the ccl list, but did<br>
you try running your code or tests after creating the hashtables<br>
specifying :LOCK-FREE NIL ? eg.<br>
<br>
(make-hash-table :size 100000 :LOCK-FREE NIL)<br>
<span class="HOEnZb"><font color="#888888"><br>
--- Madhu<br>
</font></span></blockquote></div><br></div>