libera/#commonlisp - IRC Chatlog

Search
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?
15:25:40 Josh_2 or not :(
15:58:06 Shinmera madnificent: hayley might have some stuff from her work on lockless hash tables.
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:34:44 Shinmera ? not to my knowledge?
16:35:09 Shinmera I didn't end up using it myself, so it's not on ql yet.
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:53:00 Shinmera *the library being Luckless.
16:54:13 Shinmera lockless vector would also be great
16:54:24 Shinmera (though probably as difficult as the hash table, so)
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:08:25 pjb drmeister: there's a pro CL mailing list. pro@common-lisp.net
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?
19:16:16 drmeister jackdaniel, hayley, pjb - thank you.
19:16:23 White_Flame Josh_2: package problem with 'txn?
19:16:54 Josh_2 ha yeh it was
19:24:20 pjb Josh_2: possibly. Do you mean <instance of a class of your own metaclass> ?
19:24:29 pjb Otherwise, indeed, package.
19:24:38 Josh_2 It was the package
19:24:50 Josh_2 I thought I'd broken something, fortunately not :)
21:27:11 Lord_of_Life_ ** NICK Lord_of_Life
21:32:57 Josh_2 Is it possible to garbage collect keywords?
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:38:44 semz Or hm, the inaccessibility part might actually be key
21:39:12 Josh_2 That was my thinking
21:46:30 Josh_2 Seems all the symbols I would be interested in garbage collecting start with a $ sign
21:47:43 semz Is it possible to just keep them uninterned and work with that?
21:48:23 Josh_2 Well its jojo thats interning them
21:48:52 Josh_2 Okay word of advice, dont unintern all symbols starting with & :joy:
21:49:16 semz RIP
21:58:05 Josh_2 Is 14k keywords gonna take up much space?
22:00:19 Josh_2 https://imgur.com/tnHl7JV.png wheres my garbage collector :joy:
22:05:01 Josh_2 single jojo:parse operation
22:07:51 Josh_2 260mb of simple-character-string :joy:
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:48:57 Josh_2 Thats what I thought
22:49:00 Josh_2 White_Flame:
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.
22:56:42 hayley Josh_2: cons harder, git gud skrub
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.)
3:01:28 beach Good morning everyone!