00:09:10  * gibson042quit (Quit: Leaving.)
00:28:33  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:30:09  * keith_millerjoined
00:39:38  <Domenic>TabAtkins: why do you think proxies result in overloaded = operator?
00:40:24  <TabAtkins>`foo.bar = 1` does a specific thing, normally. When a proxy is involved, it instead calls a user-defined function that can do anything.
00:40:45  <TabAtkins>That seems like the same thing, more or less, as overloading the = operator?
00:44:25  <devsnek>technically its just always overloaded
00:44:35  <devsnek>proxies are just another exotic object
00:49:20  <Domenic>I see, I think of that as changing how . works, not =
00:49:20  <ljharb>TabAtkins: that's the same for setters tho, right?
00:51:00  <devsnek>accessors are a subset of object behaviour
01:18:47  * rmarkinsquit (Remote host closed the connection)
01:22:23  <TabAtkins>ljharb: yup, same deal
01:25:20  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:27:11  <TabAtkins>Domenic: overloading an operator either way, sure
01:29:04  * keith_millerjoined
01:35:13  * aki_joined
01:36:10  * akirosequit (Ping timeout: 250 seconds)
01:36:11  * aki_changed nick to akirose
02:08:47  * Jessidhiaquit (Disconnected by services)
02:09:01  * Jessidhiajoined
02:30:47  * cloudshuquit (Quit: Connection closed for inactivity)
02:43:05  * rmarkinsjoined
02:47:33  * rmarkinsquit (Ping timeout: 245 seconds)
02:58:16  * Jessidhiaquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:59:13  * Jessidhiajoined
02:59:41  * Jessidhiaquit (Client Quit)
03:01:19  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:02:40  * Jessidhiajoined
03:17:59  * Jessidhiaquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:18:39  * Sirisian__part
03:18:48  * Sirisianjoined
03:30:36  * keith_millerjoined
03:41:25  * aki_joined
03:42:26  * akirosequit (Ping timeout: 240 seconds)
03:42:27  * aki_changed nick to akirose
03:43:35  * Jessidhiajoined
04:08:09  * keith_millerquit (Remote host closed the connection)
04:08:15  * keith_mi_joined
04:08:36  * jwaldenquit (Quit: back tomorrow)
04:15:12  * jmdyckquit (Ping timeout: 252 seconds)
04:17:31  * jmdyckjoined
04:20:12  * keith_mi_quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:43:55  * rmarkinsjoined
04:48:08  * rmarkinsquit (Ping timeout: 250 seconds)
05:26:09  * cybai_quit (Ping timeout: 246 seconds)
05:33:36  * cybaijoined
05:36:12  <devsnek>shouldn't this change x, not add a new property to y https://gc.gy/17136350.png
05:47:35  * aki_joined
05:49:02  * akirosequit (Ping timeout: 268 seconds)
05:49:03  * aki_changed nick to akirose
06:05:22  * jmdyckquit (Quit: Leaving.)
06:12:08  * howdoijoined
06:44:46  * rmarkinsjoined
06:48:47  * rmarkinsquit (Ping timeout: 240 seconds)
07:53:22  * aki_joined
07:54:26  * akirosequit (Ping timeout: 240 seconds)
07:54:27  * aki_changed nick to akirose
08:05:44  * obensourcequit (Ping timeout: 250 seconds)
08:09:48  * Jessidhiaquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:11:58  * Jessidhiajoined
08:14:57  * Jessidhiaquit (Client Quit)
08:15:46  * Jessidhiajoined
08:19:26  * obensourcejoined
08:45:39  * rmarkinsjoined
08:49:56  * rmarkinsquit (Ping timeout: 250 seconds)
10:00:02  * aki_joined
10:00:53  * akirosequit (Ping timeout: 245 seconds)
10:00:53  * aki_changed nick to akirose
10:46:27  * rmarkinsjoined
10:51:12  * rmarkinsquit (Ping timeout: 268 seconds)
11:57:11  * cybaiquit (Ping timeout: 268 seconds)
12:06:45  * aki_joined
12:07:38  * akirosequit (Ping timeout: 244 seconds)
12:07:38  * aki_changed nick to akirose
12:21:09  * cybaijoined
12:45:43  * jmdyckjoined
12:47:19  * rmarkinsjoined
12:52:05  * rmarkinsquit (Ping timeout: 268 seconds)
12:57:04  * cybaiquit (Ping timeout: 264 seconds)
13:03:04  * cybaijoined
13:08:17  <littledan>Personally, I could go either way on user-level operator overloading vs adding more built-in types with overloaded operators, but I think TC39 is in a funny middle state where we don't have consensus on the future plans, which makes it hard for CSS units to be ergonomic either one way or the other way
13:54:15  * AtumTjoined
14:12:55  * aki_joined
14:13:56  * akirosequit (Ping timeout: 240 seconds)
14:13:56  * aki_changed nick to akirose
14:30:45  <bradleymeck>littledan: I think allowing hosts to overload is different from JS hooks though, so a 3rd option!
14:31:37  <littledan>yeah, that'd be interesting, so we could have Decimal in TC39, CSS units through host hooks, but no JS-defined stuff, and no ability to polyfill those two
14:31:50  * surma__part
14:32:02  <littledan>however, when Andrew Paprocki presented on Decimal, some people said, "this must be through JS-level operator overloading"
14:32:20  <littledan>so, I wanted to think through what that would mean, to understand whether we should go that way, or one of these other ways
14:38:40  <devsnek>i don't think host hooks would be a practical solution, at least thinking of the relationship between chromium and v8
14:39:02  <devsnek>probably worse than a pure js api
14:43:25  <bradleymeck>littledan: lots of people want to keep virtualization ;p
14:44:39  <devsnek>i'm also hopeful that now that v8 is working on a jitless mode there will be more focus on how things impact pure interpreters
14:48:10  * rmarkinsjoined
14:52:38  * rmarkinsquit (Ping timeout: 250 seconds)
15:10:33  <littledan>bradleymeck: I think my operator overloading proposal should be good with virtualization. Do you see problems?
15:11:09  <littledan>at the same time, you can't write your own Number or BigInt today, so I don't understand what the argument is that you must be able to write your own Decimal if it exists
15:11:13  <bradleymeck>littledan: nope, but the virtualization invalidates a lot of my stuff around minification XD
15:11:24  <littledan>which stuff?
15:11:49  <bradleymeck>folding +b into a number then making other things folded based upon that
15:11:55  <bradleymeck>like `typeof +b`
15:13:11  <bradleymeck>idk if unary plus actually is overloadable in your proposal (goes to check)
15:45:21  <devsnek>unary plus has to throw if ToNumber fails
15:45:23  <devsnek>for asm.js reasons
15:45:25  <devsnek>:(
16:00:38  * rmarkinsjoined
16:15:36  * rmarkinsquit (Remote host closed the connection)
16:16:11  * rmarkinsjoined
16:19:53  * aki_joined
16:20:46  * akirosequit (Ping timeout: 246 seconds)
16:20:46  * aki_changed nick to akirose
16:23:14  * AtumT_joined
16:23:40  * cloudshujoined
16:23:44  * AtumTquit (Read error: Connection reset by peer)
16:57:00  * cybaiquit (Remote host closed the connection)
17:29:51  * keith_millerjoined
18:26:48  * aki_joined
18:27:46  * cybaijoined
18:28:00  * akirosequit (Ping timeout: 250 seconds)
18:28:00  * aki_changed nick to akirose
18:34:39  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:07:21  * marxojoined
19:12:46  * marxoquit (Quit: Leaving)
19:13:21  * marxojoined
19:13:57  * isiahmeadowsjoined
19:16:54  * srl295joined
19:18:02  <isiahmeadows>So what are your thoughts on forkable generators? Generators that you could shallow-clone and re-enter from a saved state? I'm thinking of things like encoding decision trees for user actions. In case you're curious, I've got a quick little strawman proposal I scrapped together: https://github.com/isiahmeadows/proposal-generator-fork
19:39:45  <efaust>mmm, continuations :P
19:41:37  <isiahmeadows>Yeah, that was an inspiration. I just wanted to keep it mutable so it'd integrate a bit better with iteration.
20:04:01  <devsnek>isiahmeadows: might be a better thing to suggest to https://github.com/tc39/proposal-iterator-helpers
20:04:10  <devsnek>a lot of iterator libraries and interfaces already have teeing
20:05:04  <isiahmeadows>I'm not sure if it'd be a good idea to suggest as specifically an extension to `Generator` itself rather than a new subtype of it - not all generators in practice support being split like that.
20:05:42  <isiahmeadows>I can certainly file an issue over there, though.
20:05:42  <devsnek>the prototype a generator returns can override the base tee method 🤷
20:15:03  <isiahmeadows>But what about ensuring side effects in the generator side are repeated?
20:30:05  * jwaldenjoined
20:31:24  * howdoiquit (Quit: Connection closed for inactivity)
20:33:28  * aki_joined
20:34:06  * akirosequit (Ping timeout: 250 seconds)
20:34:06  * aki_changed nick to akirose
20:42:44  * isiahmeadowsquit (Quit: isiahmeadows)
20:48:46  * keith_millerjoined
20:50:27  <bradleymeck>tee though consuming the original/neutering it seems the general approach to avoid some replay confusion, the tee makes a buffered pair of 2 different iterators
20:50:38  <bradleymeck>not splitting to replay effects
20:56:24  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:57:14  * keith_millerjoined
21:28:13  * keith_millerquit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:29:10  * keith_millerjoined
21:31:42  * keith_millerquit (Client Quit)
21:59:16  * AtumT_quit (Quit: AtumT_)
22:40:21  * aki_joined
22:41:30  * akirosequit (Ping timeout: 250 seconds)
22:41:30  * aki_changed nick to akirose
23:05:21  * keith_millerjoined
23:29:38  * marxoquit (Ping timeout: 245 seconds)
23:56:26  * keith_millerquit (Ping timeout: 240 seconds)