2023-12-01 [16:19:11.0540] reviewing the notes is like reliving trauma [16:19:36.0025] this is inhumane [16:20:40.0978] * ok, but reducing human use cases to percentages seems not very kind, either way :-) (i'm still convinced it's many more use cases than that considering most use cases i've run into is "a specific time" instead of "a repeating time where the precise time isn't super important") [16:38:51.0465] is 2.7 meant as `Math.ceil(2.62 * 10) / 10` [16:49:44.0790] oh right `Math.floor(Math.E)` [16:51:02.0338] did no one even _mention_ 2.62 this time though? geez, I'm hurt [16:51:29.0930] `Math.round(Math.E * 10) / 10` [16:52:30.0497] but no, the reality was far less clever [16:52:37.0143] ``` USA: CDA says, split the difference. 2.7. Perhaps we have an option C. CDA: Yeah. Would the people who prefer 2.9 be happier with 2.7 rather than 2.5? And same question reversed: for the 2.5 supporters, is 2.7 better than 2.9? WH: Let’s just do 3 temperature checks. One temperature check each of the three options. ``` [16:53:47.0253] > <@softwarechris:matrix.org> `Math.round(Math.E * 10) / 10` er yeah, dropped the 10s for some reason; coffee has not adequately entered my system yet [16:54:51.0902] So…who’s going to register `naturallog.es` and start blogging proposal advancement? [16:55:51.0520] I mean, if it's 2.7 then I think rounding is going to have to be the go-to explanation, as opposed to "so some people wanted 2.5 and some people wanted 2.9..." [16:56:12.0937] but yeah I'm just shocked that 2.62 didn't even stick in a single person's mind enough to say it out loud :( [16:56:21.0328] It’s less embarrassing. I say run with it. [16:56:35.0650] ...porque no los dos... [16:58:53.0239] > <@kriskowal:matrix.org> It’s less embarrassing. I say run with it. I think it's great ackchyually -- the folks who wanted, literally, `e`, kind of got it 🙂 [17:52:35.0962] > <@rkirsling:matrix.org> is 2.7 meant as `Math.ceil(2.62 * 10) / 10` I guess will still describe it this way because it's _literally a stage for test262_ [18:22:16.0300] > <@rkirsling:matrix.org> is 2.7 meant as `Math.ceil(2.62 * 10) / 10` * I guess I'll probably still describe it to people this way because it's _literally a stage for test262_ [22:42:11.0734] Asking seriously: Could we at the next meeting ask for consensus on renaming the stage to 2.62, because that is a _really_ good number. As in, if it had been on the table, I never would've even mentioned e. [22:44:57.0021] I mean, 2.7 is fine (it's e with an ε of under 0.7%, after all), but unlike the choices we actually talked about 2.62 isn't arbitrary. [23:53:35.0556] I made a point of saying it formally in the last meeting: https://github.com/tc39/notes/blob/df1449925841bc77574e8e127611234670275575/meetings/2023-09/september-28.md?plain=1#L1287 [06:52:48.0412] counterpoint: overloading 262 / 2.62 to refer to different things will lead to confusion [08:20:43.0376] additional counterpoint: repainting a thoroughly painted bikeshed is fun for some, but soul-crushing for others [08:59:53.0007] 2.62 is something that I'd only present if it really did feel like it could be accepted pretty much unanimously. [09:21:09.0917] Has anyone proposed adding a `String.reverse()` in the past? Basically what `string.split("").reverse().join("")` does? I tried searching the proposals repo and can't find it but not sure if maybe its somewhere else [09:29:14.0420] (And I guess if it hasn't been proposed previously then I know what my first proposal shall be 🚀) [09:35:25.0651] ethanarrowood: I think having a static `String.reverse` which is fundamentally different from `String.prototype.reverse` would be bad, but you could explore other designs [09:35:39.0325] e.g. a prototype `reverseByCodePoints` method, or a second argument to `reverse` [09:36:22.0346] that said reversing strings by code points is almost never an actually useful operation (see: combining characters, flag characters, etc), so I think you'd need a _very_ strong motivation [09:36:29.0742] Ahh I meant the later `String.prototype.reverse` [09:37:06.0331] Ohh I misread you, and assumed `String.prototype.reverse` doesn't exist [09:37:11.0522] ok cool. well, I am glad it doesn't per above [09:37:27.0195] * Ohh I misread you, and assumed `String.prototype.reverse` already existed [09:37:29.0151] Yeah I assumed it existed too, but found out it doesn't! [09:38:47.0062] It feels like something that could live on Intl together with Collator [09:39:12.0488] Does CLDR define how to reverse a string? I don't think so? [09:39:30.0255] I mean I guess you could do grapheme segmentation and then reverse that and then join, but I'm not sure that's ever useful [09:40:25.0289] More useful than reversing by codepoints, though, I guess [09:42:24.0950] I see now why strings are better in languages like Rust. Takes some of this complexity away [09:44:51.0095] https://es.discourse.group/t/string-reverse-method/620/7 [09:45:06.0097] (short convo there) [09:47:13.0132] Rust strings enforce utf8, which is certainly nice in some ways [09:47:33.0296] Yep [09:47:49.0905] though I would say that most of the complexity relevant to what it means to "reverse" a string is inherent to unicode, and/or to written language [09:48:30.0934] Okay cool so this maybe could exist on `String.prototype` it would just need to be a very smart algorithm to support complex inputs. Otherwise, it may have to exist on another construct [09:54:01.0844] It's not exactly that it needs to be smart, it's that the programmer needs to specify what they mean by "reverse" [09:54:16.0675] like, what is the correct output when you "reverse" `"🇺🇸"`? [09:55:20.0246] My assumption would be "🇺🇸" [10:02:30.0714] so you want grapheme clusters, presumably, which means that yeah it would need to live in Intl [10:04:27.0360] though also I am not sure why you would ever want this [11:24:14.0395] `String.prototype.reverse({ by })` where `by` can be `"char-code"` or `"code-point"`, and Intl can amend this to add `"grapheme-cluster"` or something. Much like `String.prototype.localeCompare` is extended/replaced by Intl? [12:38:33.0453] * `String.prototype.reverse({ by })` where `by` can be `"char-code"` or `"code-point"`, and Intl can amend this to add `"grapheme-cluster"` or something? Much like `String.prototype.localeCompare` is extended/replaced by Intl? [13:29:45.0923] Love that idea rbuckton and maybe it could also default to a "common case" 2023-12-03 [14:53:59.0827] i like that a lot [15:22:23.0774] I still do not understand why anyone wants this [15:22:26.0546] why are you reversing strings 2023-12-04 [06:56:44.0374] for coding interviews, silly ;) [07:37:06.0372] Trying to remember: do any browser engines actually support TCO right now? [08:21:34.0251] > <@anthonybullard:matrix.org> Trying to remember: do any browser engines actually support TCO right now? JSC supports PTCs [13:08:03.0162] how come `class Foo extends "bar" {}` is valid syntax given that even with return override it can't ever work? [13:09:08.0596] How come (3)() is valid syntax even though it can't ever work? [13:09:24.0161] > <@bakkot:matrix.org> I still do not understand why anyone wants this Advent of Code of course /s [13:09:50.0867] we just don't make all the runtime errors into syntax errors, in general. Tools have been doing a good job of filling the gap. [14:20:23.0539] > <@ljharb:matrix.org> how come `class Foo extends "bar" {}` is valid syntax given that even with return override it can't ever work? Because it will obviously error at runtime? Adding a syntax error would be inconsistent since `class Foo extends Bar` when `Bar` is `"bar"` *can't* be recognized as a syntax error. If we try to ban all the corner cases, we unnecessarily complicate the specification with rules that end up being inconsistent in practice. If, however, classes had been designed to be statically evaluated, such that you could only extend an identifier that is statically known to be a class, then it would have made sense to make that a syntax error. [14:21:23.0021] (and the Heritage Clause grammar would have been far more restrictive) [14:21:33.0416] * (and the HeritageClause grammar would have been far more restrictive) 2023-12-05 [17:41:56.0007] i understand the rationale, but i think it’d be better to catch as many things as possible before runtime even if we can’t catch them all. [18:19:46.0518] I think it just adds arbitrary complexity to the spec and to implementations, not to mention the additional overhead during parse and static semantics evaluation, for almost no gain. [18:28:15.0924] There's a long tail of things in JS that are syntactically valid, but otherwise incorrect, like `3()`, or `f() = 1`, or `null.x`. Banning those syntactically would significantly increase the complexity of both the existing specification text and new proposals. I'm not saying I'm opposed, just that I don't think the costs are worth the benefits. [19:44:43.0993] fully agreed with rbuckton , though pedantically: `f() = 1` is actually syntactically _invalid_ per spec but needs to be legal in engines for web-compat reasons; there is a longstanding open issue about this that no one has gotten around to fixing https://github.com/tc39/ecma262/issues/257 [19:57:24.0664] That's exactly the kind of complexity that adding additional syntactic bans would litter throughout the whole spec. [22:52:56.0729] > <@ljharb:matrix.org> how come `class Foo extends "bar" {}` is valid syntax given that even with return override it can't ever work? can you wrap try catch outside of super()? [22:54:25.0157] Yes. [22:54:50.0442] Though `class Foo extends "bar" {}` will throw on class declaration evaluation, so the constructor will never be called [22:55:09.0339] `Uncaught TypeError: Class extends value "bar" is not a constructor or null` [23:38:15.0062] > <@rbuckton:matrix.org> That's exactly the kind of complexity that adding additional syntactic bans would litter throughout the whole spec. i understand that's the choice we've made, but i'm pretty convinced that complexity would be far better in the spec/parsers than where it currently lives, inside linters and engine runtimes [05:15:55.0549] I don’t think this change would decrease complexity of engine runtimes. They would need their runtime error path anyway, in addition to a new syntax error check [10:32:52.0533] since most people (even those who care) probably don't follow the process-document repo, here is a link to the PR that implements the refactoring we discussed in plenary: https://github.com/tc39/process-document/pull/38 [11:08:54.0048] Is anyone in touch with any Tencent delegates at TC39? Ecma's having trouble getting in touch with them. [11:21:13.0199] Yeah, I'm also a long-time anti-RCVer. Approval voting gets my vote for "result qualtiy" vs "complexity to explain". [15:07:49.0886] > <@littledan:matrix.org> Is anyone in touch with any Tencent delegates at TC39? Ecma's having trouble getting in touch with them. let me try [15:20:57.0914] Thanks 2023-12-06 [20:26:09.0054] > <@ljharb:matrix.org> additional counterpoint: repainting a thoroughly painted bikeshed is fun for some, but soul-crushing for others didn't see this before, but I'm not concerned with the outcome; I was just bummed that a discussion occurred without anybody remembering it (like, even in the discussion above, nobody was like "oh yeah, that happened and we forgot about it!") [20:26:46.0024] I don't usually make a point of saying things on the record, so it would've been nice to have the idea formally shot down or something [20:28:06.0383] * it's fairly unusual that I make a point of saying things on the record, so it would've been nice to have the idea formally shot down or something [20:28:16.0573] * it's fairly unusual that I make a point of saying something on the record, so it would've been nice to have the idea formally shot down or something [10:52:45.0522] catching up reading the minutes. i confirm that i support withdrawal of the operator overloading proposal [15:56:29.0870] Michael Ficarra: FYI, I just submitted a PR for test262 tests for the Decorator Metadata proposal, so hopefully you won't need to bring it up for demotion to 2.7 in the February plenary: https://github.com/tc39/test262/pull/3971 [15:57:52.0438] @pzuraq said they wouldn't have the opportunity to look at it before then 2023-12-07 [08:55:28.0594] Where can I find the notes from 99th Plenary? [08:58:23.0311] before they're published, you'd look at the google docs linked on the reflector issue [08:58:53.0183] > <@ljharb:matrix.org> before they're published, you'd look at the google docs linked on the reflector issue Oh I see the links now for the Notes. I missed that before. Thanks! [09:12:01.0267] keep in mind that the google docs links should not be shared; they'll be formally published in the notes repo in a couple weeks once everyone has had a chance to review 2023-12-08 [10:36:17.0701] The invite for the 100th plenary meeting in San Diego is posted 🎉 - https://github.com/tc39/Reflector/issues/516 [10:49:59.0009] lol I like how the hotel recommendations are either 1) walking distance from the airport or 2) walking distance to the meeting [10:50:52.0996] I've never considered proximity to the airport when choosing a hotel before [11:56:27.0116] love to take morning walks on the tarmac myself [13:46:55.0838] > <@michaelficarra:matrix.org> I've never considered proximity to the airport when choosing a hotel before Not having to worry about traffic when you're leaving is a pretty legit benefit, I've found. But it still usually doesn't override having better convenience during the meeting, for me. 2023-12-11 [14:55:08.0009] nicolo-ribaudo "Deferred import evaluation: deferred re-exports" still needs its conclusion in the notes [14:55:14.0543] also everyone else please fix up your notes 2023-12-12 [22:20:36.0492] Oh right, thanks for the reminder! [11:09:26.0098] Sorry for anyone trying to join the R&T call. The Zoom meeting had expired 2023-12-18 [09:07:08.0930] For the San Diego TC39 meeting, would anyone be interested in sharing an Airbnb near the ServiceNow campus? I've found a "3 bedrooms · 5 beds · 2 baths · 4.86 stars" place that seems rather nice, but pretty big for just myself. 2023-12-19 [03:18:32.0343] Thanks for the offer Eemili. I don't think our company permits Airbnb or sharing so I'm still wondering whether to go for the nearby hotel or downtown. Has anyone selected so far? [03:18:56.0716] * Thanks for the offer Eemeli. I don't think our company permits Airbnb or sharing so I'm still wondering whether to go for the nearby hotel or downtown. Has anyone selected so far? [05:47:19.0612] I went for the embassy suites walking distance from service now. At a minimum this limits my daily travel to and from the event. I expect to use Lyft to get around to do other stuff! [06:10:17.0236] same [08:23:48.0492] same [08:24:15.0931] there was also a big outdoor mall nearby with a lot of dinner options that I expect I'll take advantage of [08:27:34.0401] Oh excellent! [09:34:33.0947] > <@robpalme:matrix.org> Thanks for the offer Eemeli. I don't think our company permits Airbnb or sharing so I'm still wondering whether to go for the nearby hotel or downtown. Has anyone selected so far? Love it when corporate travel policies require you to waste money. [11:41:10.0418] are you sure you can actually get to that outdoor mall [11:41:26.0537] it looks to be across the highway. crossing highways on foot in US is famously difficult and circuitous [11:42:23.0016] oh wow there's a crosswalk 2023-12-21 [03:01:28.0013] In Chrome Canary 122 you can now enable Observables. chrome://flags/#observable-api [12:15:29.0979] wow observables don't work properly with preventDefault [12:15:37.0740] kinda nuts that this moved forward lol [12:16:11.0830] it is very very early, open an issue [12:16:53.0867] i'm sure i don't have anything new to add [12:16:59.0978] it's just like two people working on it I think [12:17:05.0357] it has had basically no feedback [12:18:35.0089] https://github.com/WICG/observable/issues/65#issuecomment-1730253485 implies that at least one of the people involved thinks `preventDefault` is supposed to work https://github.com/WICG/observable/issues/65#issuecomment-1730253485 [12:19:07.0121] so they may not even know that it doesn't work in chrome's implementation [12:20:17.0590] they sometimes work and sometimes don't [12:20:21.0865] depending on which observable apis you call [12:20:26.0219] and how they interleave with the event loop [12:21:00.0509] that seems almost certainly unintentional [12:21:27.0780] its documented in the readme though [12:21:41.0354] well [12:21:45.0194] complain about it they might change it 2023-12-22 [00:23:48.0689] preventDefault not working perfectly with Observables has been well known for a long time. When using Observables there is no signal at the usage site of when async work is being introduced, so using preventDefault further down a chain creates risk that things above it will yield. [00:24:44.0217] One solution is to determine if preventDefault is required as early as possible, before combing with other observables. 2023-12-26 [12:47:56.0824] snek: "kinda nuts that this moved forward" and "i don't have anything new to add" are in conflict. If you see something wrong, open an issue; don't just complain in the chatroom. [13:30:12.0593] apologies, I'll refrain from commenting on wicg matters in the future [13:38:05.0736] heh I added issues and I didn't see a response from the repo maintainers. I don't know the right path for critical feedback on these sorts of proposals. [13:40:41.0917] (I'm still not so happy that the README implies that TC39 prefers that this be done at the web platform level, or that it was presented to the committee in 2019; the complaints in TC39 about Observables the last time it was presented, in 2016, came from me and Domenic, and they were not about that. I did file an issue about this, and this is a TC39-related observation.) [13:41:58.0598] > <@littledan:matrix.org> heh I added issues and I didn't see a response from the repo maintainers. I don't know the right path for critical feedback on these sorts of proposals. is Ben not a maintainer? [13:51:41.0471] > <@softwarechris:matrix.org> is Ben not a maintainer? OK, that's true, but it's Google employees who are doing most of the edits and merges, as well as the decisions on what to implement; I don't see a response from anyone from Google here. In TC39, we have our meetings to bring people together for these discussions; I don't know of an equivalent here. [13:53:19.0660] yeah, I don't think they have regular meetings. issues on the repo are the right place for feedback, but I'm not sure how to improve outcomes beyond perhaps `@` tagging folks but that's going to be excessive in many cases [13:55:36.0390] didn't mean to delete that message [14:13:39.0020] (what did the deleted message say?) [14:24:01.0654] oh, it wasn't particularly valuable, so I didn't rewrite it. I was merely speculating on why feedback might be slow/limited, based on my observations of repo activity [14:25:22.0629] > <@devsnek:matrix.org> apologies, I'll refrain from commenting on wicg matters in the future That's exactly the wrong thing to take from my comment, and you know that. I don't understand why you're apparently reluctant to file an issue on something that you think is wrong. [14:27:21.0818] there are a lot of wrong things in the world. i don't have the time or inclination to deal with all of them. i'm sorry i expressed my opinion that way earlier in this channel, it would have been more appropriate elsewhere. 2023-12-29 [09:36:36.0801] it would be really nice if we could get transcriptionists to stop double spacing after periods [09:54:05.0542] Shouldn't be too hard to add that to our note fix up scripts? [10:30:06.0693] for some cases yes, but it's still better if the source material needs less fixing. same thing with all the newlines hard-wrapping sentences from the same speaker [10:30:08.0968] * for some cases yes, but it's still better if the source material needs less fixing. same thing with all the newlines hard-wrapping within sentences from the same speaker [10:42:15.0740] both of those issues are already automatically fixed by the fix script [10:45:12.0549] * both of those issues are already automatically fixed by the fix script. edit: though I agree, ideally the source material would be better. there is one thing that is NOT currently fixed by the autofix, and while it could be added, it can't be done particularly cleanly, which is when they do this: ``` something . something . something something . ``` during the meeting we have to remove these lines with a `.` and it's really annoying, and we don't catch them all. there are some other issues we regularly see as well. and these idiosyncrasies are not consistent per transcriptionist either 😕 [10:58:24.0992] The full stop on its own line seems to be newer thing, maybe in the past 2 meetings [11:20:17.0914] i'm a bit confused why we're getting different transcriptionists - i thought the benefit was increasing familiarity over time by using the same person [11:36:37.0622] I think it's the same _group_ of people, but they rotate