01:23:28  * not-an-aardvarkjoined
01:29:39  * frankdreyjoined
03:43:34  * AtumTquit (Remote host closed the connection)
04:20:52  * not-an-aardvarkquit (Quit: Connection closed for inactivity)
04:33:20  * jmdyckquit (Remote host closed the connection)
08:40:31  * gskachkovquit (Quit: gskachkov)
08:41:23  * gskachkovjoined
08:50:32  * gskachkovquit (Quit: gskachkov)
09:16:09  * gskachkovjoined
09:18:49  * gskachkovquit (Client Quit)
09:27:15  * gskachkovjoined
10:25:11  * mylesborinsquit (Quit: farewell for now)
10:25:42  * mylesborinsjoined
10:44:41  * pandemquit (Ping timeout: 240 seconds)
10:45:47  * pandemjoined
11:39:52  * jmdyckjoined
13:55:13  * abernixjoined
14:06:46  * AtumTjoined
15:15:24  * abernixquit (Quit: Sleepin')
15:21:56  * abernixjoined
15:29:31  * abernixquit (Quit: Sleepin')
15:40:23  <Bakkot>Huh. There's no way to make an immutable hash map, is there?
15:41:02  <Bakkot>(That is: immutable in the sense of "immutable data structure", i.e., you can still perform operations on it, you just get back a new object instead of mutating the old one.)
15:46:28  <Bakkot>er
15:46:40  <Bakkot>s/immutable hash map/immutable *weak* map/
16:24:11  <ljharb>Bakkot: there's no way to make a Map or Set or WeakMap or WeakSet immutable, no - in the sense of an immutable API, nor in the sense of preventing mutations to it
17:20:34  <Bakkot>That's unfortunate.
17:22:09  <ljharb>very. even `Object.freeze(new Map())` can still be mutated.
17:22:35  <Bakkot>Well, you can always wrap it and not expose anything allowing mutation.
17:22:36  <ljharb>we could/should add an immutable API, of course, but that doesn't change that there's no way to actually freeze a Map unless we make a new ImmutableMap primitive
17:22:49  <ljharb>Bakkot: i can grab Map.prototype.set from another realm, and .call it on your map
17:22:53  <ljharb>because it's internal slots
17:22:56  <Bakkot>Not if you can't get my map.
17:23:00  <ljharb>oh, sure
17:23:15  <ljharb>you'd have to wrap it in a non-map, but then it'd not be a map
17:23:32  <ljharb>`Object.getOwnPropertyDescriptor(Map.prototype, 'size').get.call` would throw
17:23:41  <ljharb>(and for it to be a map, that has to work)
17:24:05  <Bakkot>wouldn't be a Map, but would be a map, which is what I actually care about for most of my life.
17:24:18  <ljharb>fair
17:25:18  <Bakkot>a Map.prototype.close() wouldn't be a bad addition, though.
17:26:07  <Bakkot>but what I actually want is ImmutableWeakMap, because you can't even polyfill that (without leaking memory).
17:26:27  <ljharb>adding some kind of "seal" method to all 4 collections would be great
17:26:39  <ljharb>there'd be no practical way to polyfill it, of course
17:27:37  <Bakkot>I can fake ImmutableMap with arrays pretty well, if I'm willing to give up asymptotic performance characteristics (which I am willing to do), but not ImmutableWeakMap. Maybe someone from immutable.js at facebook wants to make a proposal? :D
18:19:13  * wadadlijoined
18:19:25  <wadadli>pandem: ^
18:19:51  <pandem>?
18:46:37  <bterlson>Bakkot: would weak references allow userland implementation of ImmutableWeakMap?
18:57:30  * not-an-aardvarkjoined
19:18:41  * abernixjoined
19:32:45  * abernixquit (Quit: Sleepin')
19:38:44  * abernixjoined