16:03 | <ystartsev> | incubator call? ping ljharb shu |
16:04 | <ystartsev> | leobalter: also |
16:04 | <shu> | ystartsev: i am in the call |
16:05 | <shu> | ystartsev: are you in a different call? |
16:05 | <ystartsev> | yes |
16:05 | <ystartsev> | it looks like we have 2 |
16:05 | <shu> | ystartsev: i am in https://meet.google.com/sao-fyma-sxe |
16:05 | <leobalter> | ystartsev shu I've been waiting forsomeome to allow me in the call |
16:05 | <leobalter> | this is a different link that what we have |
16:05 | <ystartsev> | we are on our way |
16:05 | <leobalter> | I'll ping caridy |
16:18 | <ljharb> | oops, i didn’t have it in my calendar |
16:18 | <ljharb> | is it now? |
16:36 | <ljharb> | apparently google meet's web app doesn't show presented screen contents; i had to switch to the ios app to see it :-/ |
21:55 | <davepoole> | ljharb: I'm going through our next agenda, and I'm curious about something in Ergo checks for private fields. What's the benefit to this instead of instanceof? |
21:58 | <ljharb> | davepoole: instanceof is brittle, and can be faked with `Symbol.hasInstance` |
21:59 | <ljharb> | davepoole: also it doesn't work cross-realm for builtins (not that that applies to private fields) so i reflexively am repulsed by it in code review :-) |
21:59 | <ljharb> | davepoole: iow any use case for the "private" in private fields also needs it to be robust, which means anything forgeable is out |
22:00 | <davepoole> | gotcha, thanks! |
22:52 | <Bakkot> | devsnek: https://github.com/tc39/proposal-record-tuple/issues/65#issuecomment-634321864 is pretty rude. |
22:53 | <devsnek> | hm? it seemed like a reasonable compromise to me |
22:54 | <Bakkot> | you're asserting that the semantics littledan and erights and and I have been arguing for are broken. |
22:54 | <Bakkot> | they are different from the semantics you want |
22:54 | <devsnek> | I mean, they are |
22:55 | <Bakkot> | :| |
22:55 | <Bakkot> | no |
22:55 | <Bakkot> | they are different from the semantics you want |
22:55 | <devsnek> | and also don't compare numbers correctly |
22:55 | <devsnek> | according to === |
22:56 | <devsnek> | so we could just add a new thing |
22:56 | <Bakkot> | we are discussing how to compare structures. IEEE does not mandate a particular semantics for comparing data structures containing numbers. |
22:56 | <Bakkot> | there is no objective notion of "correctness" to appeal to here. |
22:57 | <Bakkot> | there are different possible semantics, with different justifications. |
22:57 | <devsnek> | not the structure, the numbers in the structure |
22:57 | <Bakkot> | asserting that your preferred semantics are the only correct semantics, and all other semantics are broken, is rude. |
22:58 | <devsnek> | "if it doesn't work on numbers" |
22:58 | <devsnek> | I'm not entirely sure how to phrase it |
22:58 | <littledan> | I disagree with this kind of categorical phrasing like "it doesn't work on numbers" |
22:59 | <devsnek> | if === does your behaviour |
22:59 | <devsnek> | we still need the one that compares them how numbers are supposed to be compared |
22:59 | <littledan> | yes I think I know what you're getting at and I disagree |
22:59 | <devsnek> | we shouldn't provide it at all? |
22:59 | <Bakkot> | (gotta run to a meeting) |
23:01 | <devsnek> | littledan: you don't think that js should include a comparison that compares the numbers according to their spec |
23:01 | <devsnek> | and should leave that to userland |
23:02 | <littledan> | well, I don't have a very strong reason why it'd be fatal; we could put it on Record. |
23:02 | <devsnek> | well it should be more general |
23:02 | <devsnek> | I'd want to use it in place of === |
23:03 | <littledan> | yeah, it'd work on Tuples as well |
23:03 | <littledan> | and all values I guess |
23:03 | <devsnek> | cool |
23:03 | <littledan> | but, I don't really understand where you'd want to use it, beyond simple point/complex number examples. I don't understand why you'd want to use it in place of === in general. |
23:04 | <devsnek> | id want to use it everywhere for everything |
23:04 | <littledan> | why? |
23:04 | <devsnek> | because the semantics you're proposing don't work |
23:04 | <devsnek> | unless you're memoizing things I guess |
23:04 | <devsnek> | but I can't imagine that's the common case here |
23:06 | <devsnek> | in any case I reached the point where I want to stop arguing about this more than I want js to be a good language so I'll just make an eslint rule for whatever method we add |
23:38 | <littledan> | yeah sorry I guess I'm fine with stopping arguing too... what do you mean by an eslint rule? |
23:39 | <devsnek> | littledan: to say that occurances of === should be replaced with Object.strictEquals or whatever it is called |