libera/commonlisp - IRC Chatlog
Search
12:30:58
hayley
madnificent: Another difference is that resizing in Threadmill is not lock free, whereas it is in Luckless.
12:32:24
hayley
I basically made up the resize logic on the spot, so I'm not so sure it's correct...but it should be, based on what I watched about NonBlockingHashMap.
12:33:11
hayley
I think there might be a bug because decentralise2 sometimes drops like 1 in 10 million messages when using Threadmill, but not any other table. I'll test again tomorrow.
12:40:30
hayley
Really, I do need to get my shit together w.r.t Telekons projects. There is also the concurrent-hash-tables portability library (which is portable in that it handles Luckless, Threadmill, and a table with sharded locks), but I haven't thought of a way to specify which table implementation to use at system load time.
13:01:41
madnificent
hayley: for mu-cl-resources the drops wouldn't be the worst. this is about caching so if a cache isn't stored it'll be calculated again at another time. not clearing would be more challenging.
13:02:42
hayley
And FWIW I don't exactly know that "it drops values randomly"; I only know that decentralise2 drops messages, which might or might not have to do with the table dropping values.
13:03:11
hayley
It might not even have to do with the table at all - just going faster with concurrent programs might lead to more opportunities to expose a bug.
13:04:05
hayley
Oh, well, such is life. And I intend to simplify the code around the table, so we'll get to find out where the bug lays.
13:05:46
madnificent
also, i failed to find the time to further check out your work, but we're running a company around distributed web tech. mostly knowledge sharing with linked data, which is what ActivityPub is built on. we also co-run ipfs-search. if these 90's buzzwords or hipster-tech ring a bell and relate to your work do ping.
13:07:33
hayley
I guess so - Netfarm is what you'd get if you gave IPFS schemas and some methods, and I've written a few (not very nice) things about the Fediverse.
13:17:38
madnificent
so we do a lot in terms of letting people define knowledge in a distributed fashion and sharing that. for instance, adding data to legislation. we have no clue what they'll add, but we can make sure they'll understand each other after the fact. that seems an important piece for distributed knowledge. would love to read about your negs as it helps me see faster where you want to go to :D
13:19:13
hayley
Okay, I wrote something about protocol translation (rather than schema translation, which looked hyped at one time), but it's not very good.
13:19:39
mfiano
hayley: If it's the table it shouldn't be difficult to produce an isolated test for that
13:20:14
hayley
mfiano: Yeah, probably. Wouldn't hurt to port the Luckless tests to my portability library.
13:21:07
hayley
http://lettingthedaysgoby.altervista.org/translate-what-data/ and http://lettingthedaysgoby.altervista.org/translate-what-data/the-drive-to-2021.html
13:21:55
hayley
Right. I only use one AVX2 instruction (VPBROADCASTB) with 128 bit code, and I hope that's not buggy :)
13:23:05
mfiano
Also i would read conditionalize that library. Having something SBCL specific isn't much use, as its a moving target as it is lately
13:24:36
hayley
It's SBCL-specific for the foreseeable future (no SIMD anywhere else?) so I would advise using Luckless instead.
13:28:24
hayley
The only thing going for Threadmill, now that Luckless is catching up in performance, is that I find Threadmill to work better with a lot of "churn" in adding and removing new mappings.
13:47:05
hayley
The SIMD probing lets you skip over a lot of dead entries (which I can't reuse sadly - tried it, proof doesn't hold up), so you can run with a larger load factor and probe length with no problems.
14:09:14
lisp123
pjb: Thanks, that makes sense (leaving it client code) and definitely some advanced use cases, I guess not for daily use otherwise
18:20:06
lisp123
Is there a way to get the compiler notes from SLIME (that pop up when one C-c C-k's a file) during the ASDF load-file process?
18:32:56
scymtym
the *slime-compilation* buffer generally contains printed representations of these conditions (and can visit the corresponding source locations)
19:48:44
varjag
let's say i have a list of pairs in some container P, and these individual pairs can also be referenced elsewhere
19:49:33
varjag
i then have some 'child' container C, that can shadow some of these pairs (because its car or cdr are changed)
19:51:11
varjag
and i want the code referencing pairs in P use the values that are shadowed by C if C is supplied
19:52:50
varjag
rn am thinking to do shadowing in C via alist (keyed by original pairs of P) but it's not very pretty
19:58:06
Alfr
varjag, if P doesn't change while C is relevant, you could equip C with the same interface as P but with modifications only stored in C and reads backed by P if there's nothing appropriate in C.
20:06:04
Alfr
varjag, you might want to look up persistent data structures; maybe there's something suitable out there already?
20:07:22
varjag
well i can surely graft something but would really love some memory efficient solution
20:52:48
nature
Is there a way to change the permission bits of a UNIX file other than with (uiop:run-program "chmod something something") ?
21:48:25
MichaelRaskin
Also note, that when you do use command line tools, (uiop:run-program (list "chmod" "u+r" "filename.ext")) is better because no catches with spaces in filenames
21:53:45
fitzsim
UIOP is supposed to be for this type of thing, but symlinks seem to be so difficult to deal with in CL
22:26:18
Xach
fitzsim: iolib and osicat make some tricky assumptions about the availability of either specific foreign libraries or the ability to run a C compiler
22:37:47
fe[nl]ix
you can't really have it any other way without being willing to hand-maintain struct and constant definitions
22:49:41
defaultxr
hi, is anyone aware of anything like py4cl or burgled-batteries but for interfacing with lua code instead of python? i'm considering attempting something along those lines but want to make sure there isn't prior art i'd be uselessly duplicating. neither cliki nor google seem to turn up any project that sounds relevant; the closest result is
22:49:43
defaultxr
https://stackoverflow.com/questions/48353172/calling-lua-from-common-lisp which basically just suggests C FFI as an option.
22:51:34
MetaYan
Xach: Had a look at the quicklisp Failure report and noticed that SBCL 2.1.7.62 is used. For example adw-charting compiles cleanly with SBCL 2.1.9.
22:53:39
defaultxr
^in addition to my question, does anyone have any suggestions for libraries that might be of use in implementing such a thing?
23:04:05
hayley
mfiano: As far as I can tell, the bug in decentralise2 is due to a bad hash function, and the hash table trying to resize indefinitely. Not a fun combination.
23:05:06
hayley
With the feature :LOG-COPYING I get hundreds of messages all reading "Creating a 1048576 element storage vector Finished copying 29783 entries after 1.667e-2 seconds"
23:10:35
hayley
Though...the decentralise2 benchmark is pretty damn fast even with the segmented lock table. Guess I did something right.
23:12:45
hayley
One trick I could use would be to randomize the initial state of the hash function on each resize, to get a different key distribution, but I'd have to write all the hash functions myself, as no one does that.
23:30:02
MetaYan
Xach: Alright, I understand now. ql:quickload passes, but asdf:load-system fails. Thanks.