libera/commonlisp - IRC Chatlog
Search
15:00:22
Josh_2
Okay MOP question. I have a library that heavily relies on a metaclass I have made, however when I first load the library I have to make an instance of a class that uses my metaclass 3 times before the slots are initialize properly
15:03:05
Josh_2
Man I get some weird behaviour with MOP until I go and recompile that specific class
15:16:45
Josh_2
Okay now I'm really confused. When I make-instance my my repl and check the slot-values in its superclass they all look how I expect them
15:17:04
Josh_2
however when I make an instance of the same class within a function call none of the slot-values exist
15:24:03
Josh_2
well my execution function is getting double called, I'll have to figure that one out
15:25:20
madnificent
Any benchmark comparisons including Common Lisp (SBCL preferably) containing many threads and if possible containing GC intensive workloads?
16:04:02
madnificent
Related to netfarm perhaps? Anything is welcome hayley and I should see DMs arrive too.
16:07:46
Shinmera
I don't know the broader context. I wrote the initial lockless hash table implementation, and she's been hammering away at it for a while.
16:34:09
madnificent
Shinmera: was that incompatible with later SBCL releases? I checked something about it but dismissed it for some reason.
16:51:23
Gnuxie
she will explain it when she wakes up, but as i understand it Threadmill only works with older versions of SBCL, and she doesn't recommend her portable hash table library over luckless yet.
16:52:52
Shinmera
If anyone wants to pick up the slack and document the library + add some more small useful primitives like a queue and a stack, that would be great
16:58:16
Gnuxie
Also madnificent, if you need a portable mailbox and queue library "safe-queue" by deadtrickster is good, but it isn't lockless or anything fancy iirc.
19:14:02
Josh_2
I am trying to (setf (slot-value <instance with my own superclass> 'txn) 0) and I keep getting the condition that slot is missing. I have checked both the direct and effective slots
19:14:14
Josh_2
its not missing. Do I have to provide a method for something like slot-value-using-class?
21:37:31
semz
The only way I can think of is to unintern it and make it inaccessible (latter probably not a big concern for keywords), but that probably causes all kinds of problems unless you know a lot about how the keyword came to be and will be used.
21:46:30
Josh_2
Seems all the symbols I would be interested in garbage collecting start with a $ sign
22:24:32
Josh_2
Just gonna keep using jojo, seems that if I *really* want to clean up the keywords package I can just unintern symbols starting with & that are exactly 44 long
22:45:20
White_Flame
44 chars * 8 bytes per char worst case * 14000 keywords = "only" 4.7MB of raw string text
22:46:30
hayley
madnificent: Well, some of the decentralise2 benchmarks are CPU and GC heavy (particuarly network simulations).
22:49:56
hayley
What's funny is that hash table benchmarks tend to try really hard to _not_ allocate. But my code is evil and hammers on some mailboxes and even deletes from hash tables (gasp!), which tends to give the GC a bad time.
22:50:53
hayley
I believe safe-queue is lockless on SBCL, but otherwise it falls back to lparallel which might or might not lock.
22:52:07
hayley
And I don't recommend Threadmill because it only seems to work well on UMA machines with < 40 threads or so. Else the SIMD lookup becomes a problem.
22:53:00
hayley
In testing, it also very rarely drops messages (1 in 10 million-ish) so I've apparently done something wrong.
23:00:21
hayley
(Oh, and Threadmill works on newer versions of SBCL, I just had problems w.r.t fixing a bug in how AVX instructions are assembled. But I found SSE2 to be no slower, and heisig fixed that recently, so it should be unnecessary.)