| 13:54 | <Chris de Almeida> | 👋 |
| 13:55 | <Chris de Almeida> | 📢 plenary begins in ~1 hr |
| 15:02 | <nicolo-ribaudo> | Be careful because Teams seems to default to having the mic on when you join |
| 15:05 | <Aki> | yeah it does, sorry about the crunching, I was sure i had muted |
| 15:08 | <Michael Ficarra> | 29th Sept to 21 Oct is a long meeting! |
| 15:10 | <eemeli> | They did advertise that length already at the last meeting, though. |
| 15:15 | <Chris de Almeida> | no crunching heard. I guess your mic has Cronch Reduction™️ |
| 15:15 | <Aki> | 😮💨 |
| 15:24 | <nicolo-ribaudo> | Chris de Almeida: I can help with notes until 66 minutes from now (30 min before lunch) |
| 15:24 | <Chris de Almeida> | thank you! 🙏 |
| 15:25 | <nicolo-ribaudo> | bakkot: I feel like this new version of the model is way too happy to add commas everywhere |
| 15:28 | <bakkot> | Yeah I've been noticing that |
| 15:30 | <bakkot> | I suspect it's an artifact of the fact that I'm using the provisional rather than finalized tokens (for latency reasons), which suggests it might be fixable in the wrapper |
| 15:30 | <bakkot> | google docs does pretty consistently offer to fix those so it's just two clicks to fix at least |
| 15:34 | <Justin Ridgewell> | OMG page is… busy today. |
| 15:34 | <Justin Ridgewell> | Definitely a Docs outage. |
| 15:36 | <Ashley Claymore> | 10 Min Doc Fixing Break 🫖 |
| 15:37 | <Ashley Claymore> | Docs are (maybe) back |
| 15:42 | <Justin Ridgewell> | Open 2 tabs? |
| 15:53 | <rbuckton> | I will be unable to attend the remainder of plenary due to a family emergency. I've spoken to Devin Rousso about my intent to block advancement to Stage 2 for Declarations in Conditionals as my concern from the November 2025 plenary has not been met. There appears to be a perspective among some in committee that Declarations in Conditionals may open the door to a different form of pattern matching than what has been discussed in the Pattern Matching champions group and as a result the two proposals are likely to conflict in some areas. As the pattern matching proposal wholly covers the capabilities introduced by Declarations in Conditionals, though with a different syntax, I still feel it is imperative that we discuss the cross-cutting concerns amongst the champions of both proposals before Declarations in Conditionals advances to Stage 2. That discussion has yet to happen since November, so my concern still stands. Without this discussion, I am unconvinced this is a preferred solution, per the description of Stage 2. If necessary, I've asked someone from the Pattern Matching champions to speak on my behalf if advancement is requested. |
| 16:12 | <nicolo-ribaudo> | As I'm next on the agenda -- my mic is being annoying right now, hopefully it's solved in the next minute |
| 16:13 | <Michael Ficarra> | reminder: there's a default saved topic in the ♻️ button on TCQ that expresses support |
| 16:13 | <nicolo-ribaudo> | Ok all good |
| 16:14 | <bakkot> | oooo |
| 16:18 | <Chris de Almeida> | we will need a new notes helper in ~10 minutes, for the final 30 minutes of this session |
| 16:18 | <bakkot> | I can do |
| 16:19 | <Chris de Almeida> | thank you! |
| 16:21 | <nicolo-ribaudo> | Ohh https://proposals.fyi is cool |
| 16:22 | <Aki> | 😬 I already have some amount of this data in a structured form… |
| 16:27 | <Aki> | (I use mine for v secretarial purposes so this isn't particularly redundant) |
| 16:28 | <Aki> | incrementing IDs or UUIDs pleeeeeease |
| 16:33 | <eemeli> | I did not expect to need to consider Classification by Compilation in this context. |
| 16:42 | <jmdyck> | should meeting notes drop filler words, e.g. "like" |
| 16:42 | <ryzokuken> | I think so |
| 16:42 | <ryzokuken> | the notes don't have to be verbatim |
| 16:42 | <jmdyck> | ok thanks |
| 18:19 | <nicolo-ribaudo> | Oh damn I was meant to replace that (???) with something for Safari and I forgot to check if it's in TP |
| 18:31 | <nicolo-ribaudo> | ljharb: If you get the slides from the agenda, it's the first section after the "implementation status" |
| 18:31 | <ljharb> | can someone post the bug here so i can look at it? |
| 18:31 | <ljharb> | ah k thanks |
| 18:31 | <nicolo-ribaudo> | The one marked a #85 |
| 18:31 | <ljharb> | in the future, please indicate on the agenda that a decision will be made - "updates" isn't an item where consensus is requested. |
| 18:40 | <dminor> | Yoshi is implementing import defer in SpiderMonkey |
| 19:03 | <ljharb> | totally agree that linters can impose any mental models they want, including that "things that won't actually be deferred shouldn't have defer" |
| 19:04 | <Bradford Smith> | One can say that 'import defer' isn't guaranteed, but if my customers within Google were using 'import defer' and it didn't actually defer when it technically could have, I'm sure they would be quite unhappy with my team, because it could have significant user experience impact. That's what 'import defer' is trying to help with after all. Their reaction would likely be "why define this at all if we cannot count on it?" |
| 19:05 | <ljharb> | it can't ever be counted on. |
| 19:05 | <ljharb> | that's just the nature of ESM |
| 19:06 | <ljharb> | so the answer is "because it's removing the requirement of eager loading" |
| 19:06 | <ljharb> | not because it's forcing delayed loading |
| 19:06 | <bakkot> | in browsers specifically it can in at least some cases be counted on |
| 19:06 | <ljharb> | only with caveats, because it could always have been loaded prior |
| 19:06 | <bakkot> | not if you control the whole application, as is common |
| 19:07 | <nicolo-ribaudo> | I think even in this case it's fulfilling its promise of making import defer * as ns from "foo" not cause evaluation (modulo TLA). It's just not guarantee that the evaluation will then happen when you do ns.something |
| 19:08 | <nicolo-ribaudo> | |
| 19:12 | <keith_miller> | I forget, did we investigate not calling a getter on then in the spec for web compatibility? I assume some then-able implementation uses getters for then? |
| 19:12 | <nicolo-ribaudo> | Svelte does iirc |
| 19:13 | <nicolo-ribaudo> | For tracking some side effects |
| 19:14 | <ljharb> | any promise polyfill will use getters to test compliance, i'm quite certain it'll be wildly web incompatible to change that |
| 19:29 | <Olivier Flückiger> | mgaudet: hmm, so maybe this case would need a "Assert does not run uc" then that would basically override the [uc] annotation and error if we do end up in user code? |
| 19:30 | <bakkot> | we do also have that annotation internally although "error if we do end up in user code" is not something that we can do statically |
| 19:30 | <mgaudet> | Yeah, I'm not entirely sure if we can talk about the UC annotation as part of the 'normative text' |
| 19:30 | <Olivier Flückiger> | right, I guess what I was trying to say is that we should make it to be so |
| 19:30 | <Olivier Flückiger> | (not saying you should do it in this proposal) |
| 19:30 | <mgaudet> | new proposal :D |
| 19:31 | <mgaudet> | "user-code-assertions" |
| 19:31 | <bakkot> | IMO it is an editorial error in the spec if the UC annotation is wrong, same as any other violated assertion in spec text |
| 19:31 | <Olivier Flückiger> | does engine262 enforce it then? |
| 19:31 | <Chris de Almeida> | fascinating how often the JSON spec gets downloaded |
| 19:31 | <nicolo-ribaudo> | No |
| 19:31 | <Chris de Almeida> | The People yearn for more JSON |
| 19:32 | <bakkot> | would be fun to make it do so though! |
| 19:33 | <Michael Ficarra> | I wonder why 402 doesn't show up in those download counts |
| 19:34 | <eemeli> | Probably because so many of its downloads are likely from https://tc39.es/ecma402/, which isn't counted by ECMA at all. |
| 19:37 | <Justin Ridgewell> | We'll need to get a cake next time we see Kevin |
| 19:38 | <Chris de Almeida> | "Kev in is Stage 4" |
| 19:39 | <Justin Ridgewell> | Tom Poral 😆 |
| 19:41 | <bakkot> | I feel like this should come with a free "advance one proposal by fiat" card |
| 19:42 | <Aki> | n.b. that beautiful thing from ISO-IEC/JCT 1 is huge |
| 19:43 | <Chris de Almeida> | need banana for scale |
| 19:43 | <Aki> | i agree |
| 19:43 | <Chris de Almeida> | these blank slides really build the tension |
| 19:44 | <Aki> | right? i love it |
| 19:44 | <Chris de Almeida> | hits me right in the anxiety |
| 19:45 | <Chris de Almeida> | next year swag: we need to finally realize the dream of the TC39 socks |
| 19:49 | <nicolo-ribaudo> | MARK it's es2015 |
| 19:50 | <Aki> | I have made socks as swag before that I was so proud of. fine knit cotton/nylon instead of dye sublimation and polyester. |
| 19:50 | <Michael Ficarra> | ES6 = ES2015 |
| 19:50 | <nicolo-ribaudo> | So what if we go sleep earlier instead |
| 19:50 | <nicolo-ribaudo> | Damn |
| 19:53 | <mgaudet> | bakkot & nicolo-ribaudo here's an attempt at the host hook: https://github.com/tc39/proposal-thenable-curtailment/pull/19 Note, I've separated out the module namespace check as it wouldn't be covered by a host hook implementation. |
| 19:53 | <nicolo-ribaudo> | I would put the namespace check together with the proxy check, and similarly do it based on an internal slot |
| 19:54 | <nicolo-ribaudo> | Note that it's only deferred namespaces that would cause user code, but it's probably good to make them behave coherently with each other |
| 19:54 | <mgaudet> | oh they do have some! (sorry, was reading https://tc39.es/ecma262/#sec-module-namespace-objects and didn't realize https://tc39.es/ecma262/#sec-module-namespace-exotic-objects had the slots) |
| 19:55 | <nicolo-ribaudo> | And maybe add an "Assert: the following step does not run user code", that we currently don't have, but so that in the future editors can fix things if we forget to list new objects there without considering it to be a normative change :) |
| 20:01 | <mgaudet> | man the module namespace object definition is kinda funky; "An object is a <dfn id="module-namespace-exotic-object" variants="module namespace exotic objects">module namespace exotic object</dfn> if its [[GetPrototypeOf]], [[SetPrototypeOf]], [[IsExtensible]], [[PreventExtensions]], [[GetOwnProperty]], [[DefineOwnProperty]], [[HasProperty]], [[Get]], [[Set]], [[Delete]], and [[OwnPropertyKeys]] internal methods use the definitions in this section" I guess I copy-paste the list eh? |
| 20:01 | <hax (HE Shi-Jun)> | Set.prototype.take() seems not very useful because set.delete already returns boolean. |
| 20:02 | <nicolo-ribaudo> | Oh well, then it's probably fine as-is, modulo reordering |
| 22:34 | <Chris de Almeida> | 📢 the schedule has shifted a bit 👀 |