freenode/#clasp - IRC Chatlog
Search
21:01:04
drmeister
That's the hashtable problem that you pointed out with MPS that shows up when you use compile-file-parallel.
21:02:21
drmeister
Ok - with MPS objects move around. If you lookup a key in an EQ hashtable you may get a miss because the object has been moved in memory since it was added to the hashtable.
21:02:55
drmeister
So for MPS we have to check this thing called the location_dependency to see if the key has become stale. If it does you have to rehash the hashtable.
21:03:12
drmeister
This means upgrading the lock from a read lock (for gethash) to a write lock (for rehash).
21:04:54
drmeister
Parallel compilation of asdf.lisp is Time real(178.025 secs) run(178.023 secs) consed(2123097968 bytes)
21:05:51
drmeister
Parallel... Compile-file-parallel seconds real(178.0) run(178.0) llvm(78.9) link(3.6) (llvm+link)/real(46%)
21:06:05
drmeister
Serial... Compile-file seconds real(208.2) run(208.2) llvm(76.7) link(100.4) (llvm+link)/real(85%)
21:11:17
drmeister
kpoeck_: There may still be a problem. I tried your test code and it hangs after output of a few lines. I can control-c it though.
22:17:48
jackdaniel
I've mentioned in the comment, that in jd's ideal world you'd also test with ecl, but I took care of that myself ,)
22:19:04
drmeister
kpoeck_: I'm rebuilding MPS now as well. I can't rule out that the current problem running your test code isn't due to an unclean build.
22:19:38
drmeister
I'm surprised that you were able to get it to work with (stress-2 300) - I can't do anything over (stress-2 18) without a problem.
22:29:34
kpoeck_
And there is one (declare (fixnum ...)) for the result of a sxhash, but i didn‘t had much success with pr #628 yet
22:56:07
Bike
hashes are fixnums. i mean, from sxhash. it's not defined for internal hashes but we probably want fixnums there too.
22:56:33
drmeister
Ok, so this will limit the hash to 61bits - this will fit into a positive fixnum.
23:17:26
drmeister
Yeah - but you have to do that conditionally. I thought a bitwise and would simplify the code.