cool. sweet. nice. sold on this whole rust business.
@jonny if you are trying to pass things around without having to make snapshots or take locks, may I introduce you to our lord and savior, the im crate
re: self-congratulatory, benchmarking, not important
@ricci
wat is dat lemme see
@jonny here's what you get to do: taking a new reference to an im data structure, like passing it through a channel, basically gives you a whole ass atomic snapshot, for "free" (okay not free but surprisingly cheap). You can keep working on it in one thread, the other sees a consistent view, when you're ready to update it, just pass another reference through the channel
re: self-congratulatory, benchmarking, not important
@ricci
That's awesome. We have sort of gone the other direction of "design away shared objects and declare ordering and dependencies directly" but I want to see this thing anyway
re: self-congratulatory, benchmarking, not important
so our graph processing lib has something like 30 microseconds of overhead per call, about a quarter of that can be trivially trimmed, and another quarter can be written out. and that's without using any of the yno graph parts whose whole purpose is to make it easy to run graphs of operations p close to optimally concurrent. So its looking sorta sweet I think
re: self-congratulatory, benchmarking, not important
Gonna see if I can move the event store to rust so I can do post-run copying out of the GIL so we can do full on time travel too