| 09:18 | <Andreu Botella> | Hey, I noticed that the spec says [[IsLockFree1]] and [[IsLockFree2]] must be set for an agent cluster and can't change, but it doesn't say anything about [[IsLockFree8]] |
| 09:19 | <Andreu Botella> | I thought this must have been intentional, but then I realized that BigInt64Array was of course added after the rest of TypedArrays |
| 09:19 | <Andreu Botella> | so was this an oversight? or is it intended for some reason? |
| 09:20 | <Andreu Botella> | also, there are two notes on the meaning of those slots that seem to contradict each other |
| 09:21 | <Andreu Botella> | 9.7 says they're set "if atomic operations on 1/2/8-byte values are lock-free", "if an atomic operation is implemented with any type of lock the operation is not lock-free" |
| 09:21 | <Andreu Botella> | but the note in the definition of Atomics.isLockFree() says |
| 09:22 | <Andreu Botella> |
|
| 09:22 | <Andreu Botella> | those don't seem to be equivalent |
| 09:24 | <Andreu Botella> | I don't know too much about memory models, so I might very well be missing stuff, but if so, that could use more clarification |
| 09:28 | <annevk> | Andreu Botella: there are some (or maybe just one) open issues around the memory model, though I don't recall seeing this particular one being raised |
| 09:29 | <annevk> | In general the formality around agents also leaves a lot to be desired (also filed) |
| 13:59 | <annevk> | Has Map.prototype.extend() or equivalent ever been discussed? |
| 16:03 | <shu> | Andreu Botella: sounds like an oversight to me |
| 16:36 | <shu> | those are both in non-normative notes, but they also seem roughly equivalent to me for building intuition |
| 16:37 | <shu> | can you expand on what the confusion is? |
| 16:37 | <Andreu Botella> | one is "atomic operations of size n will be performed without acquiring a lock, at all", the other is "without acquiring a lock outside of those specific n bytes" |
| 16:38 | <shu> | agreed the second one is more confusing, don't recall why we called out "specific N bytes", that doesn't seem useful to call out |
| 16:39 | <shu> | our original intention of the meaning of "lock-free" is the formal one |
| 16:40 | <shu> | i.e. isLockFree(n) means n-byte atomics guarantees progress for at least 1 thread after bounded time when T threads are concurrently accessing the same memory via n-byte atomics |
| 16:40 | <shu> | and for notes we just want to say "don't actually worry about that formalism, just think of it as not using mutexes to implement" |
| 17:02 | <yulia> | What's needed to get an event on the TC39 calendar? |
| 19:21 | <ljharb> | Has Map.prototype.extend() or equivalent ever been discussed? |