02:50
<shu>
i haven't done much work on the proposal since TC39. does anyone have topics they want to talk about tomorrow? happy to cancel otherwise
03:41
<rbuckton>
I had a chat with Sulekha the other day about a few tangential things to this proposal that might be helpful in tandem with shared structs. One of the things I needed to put together for TS was a concurrent map, and a missing building block I had to work around was the lack of an identity-hash API in the standard library. It's something I've thought about proposing in the past as well
03:43
<rbuckton>
It might be worth some time discussing what other things are missing that might need a follow-on proposal
03:54
<rbuckton>

Either the building blocks for, or complete implementations of, concurrent multi-producer/multi-consumer maps, sets, and bags, thread-safe deques, shared mutexes (multi-reader/single-writer), RAII locking primitives, efficient spin waiting for lock-free algorithms to reduce contention.

Userland implementations can't build a true identity hash efficiently, nor fast string hashing w/o resorting to WASM or native code, nor can they implement spin-waiting efficiently.

04:02
<rbuckton>
It might also be good to come up with a different namespace for concurrency primitives if we do pursue those as follow-ons, rather than abuse the Atomics namespace like we are for Mutex/Condition.
04:03
<rbuckton>
(and, in fact, move Mutex/Condition off Atomics since they don't quite belong there).
04:08
<rbuckton>
And speaking of RAII locking, I'd like to discuss the feasibility of including a Uniquelock-like primitive in the origin trial, even if it's too early to expect Symbol.dispose to ship. For the purpose of the trial, it could simply have a public dispose() method on its prototype and I could patch in a [Symbol.dispose]() method onto it's prototype to work with the TS down-leveling of using
14:59
<shu>
okay, does sound like we have items to discuss then