03:02
<bakkot>

how do people feel about bit packing?

like if I want to represent 0, 2, or 4 booleans, I could do that by having a { length: 0 | 2 | 4, value: 0-16 } pair, or I could do it by having a single int32 where the first 2 bits indicate the number of booleans and the next 0-4 bits represent the booleans themselves

03:02
<bakkot>
this doesn't come up much (ever?) on the web platform but is very common in other spaces
03:08
<rbuckton>
We do that all the time in the TypeScript compiler, and there are more than a few packages built with TS that use bitflags-based enums
03:09
<rbuckton>
Well, not exactly as you described I suppose
03:17
<bakkot>
yeah, flags specifically is a slightly different case, I think
03:17
<bakkot>
here it's a combination of a flag-like thing and a (small) int
04:16
<bakkot>
to be clear this would be specifically for a standard library API (https://github.com/tc39/proposal-arraybuffer-base64/issues/21#issuecomment-1601938101), not just in general
06:35
<Ashley Claymore>
Genuine q: Is it common to do that in languages that don't have unions/typed-structs/low-bit-width-integers? Feels more like the type of thing I would see in C/Rust style languages, (as a first reaction)
08:09
<shu>
bakkot: bit packing into object fields?
08:09
<shu>
i think that makes more sense in structs than in ordinary objects
09:53
<Rob Palmer>

πŸ‡―πŸ‡΅πŸ‡―πŸ‡΅πŸ‡―πŸ‡΅ Reminder πŸ‡―πŸ‡΅πŸ‡―πŸ‡΅πŸ‡―πŸ‡΅

  • Please fill in the Interest Survey for the Sept/Nov in-person plenary meeting in Tokyo.

  • It only take 60s to complete. The deadline is Sunday 25th June (three days time).

  • Thank you to the 26 people who have already completed it πŸ‘

14:19
<littledan>

πŸ‡―πŸ‡΅πŸ‡―πŸ‡΅πŸ‡―πŸ‡΅ Reminder πŸ‡―πŸ‡΅πŸ‡―πŸ‡΅πŸ‡―πŸ‡΅

  • Please fill in the Interest Survey for the Sept/Nov in-person plenary meeting in Tokyo.

  • It only take 60s to complete. The deadline is Sunday 25th June (three days time).

  • Thank you to the 26 people who have already completed it πŸ‘

Note, TC39 in Japan is at risk of not happening unless we see more interest. So please fill this out.

Even if you aren’t sure about your availability, it would be good to hear that (it is an option in the survey). If you are aware of whether someone else is likely to attend, but they are unable to fill this out (e.g. they are on leave), let’s get that communicated somehow as well.

14:36
<shu>
does 262 require denormals to be supported?
14:36
<shu>
the Number section reads like yes, but https://tc39.es/ecma262/#sec-number.min_value reads like no
16:06
<bakkot>
bakkot: bit packing into object fields?
no, I mean, the options are either bit packing (into a single Number), or object fields
16:07
<bakkot>
the space of values to represent in this case is small enough to fit into a Uint32, so we could just use a Number, but that's more opaque for consumers than using separate object fields
17:29
<Michael Ficarra>
the Number section reads like yes, but https://tc39.es/ecma262/#sec-number.min_value reads like no
6.1.6.1 tells us exactly how many inhabitants the Number type has, so subnormals must be supported
17:30
<Michael Ficarra>
should we normative PR to change the Number.MIN_VALUE requirements?
17:31
<bakkot>
no, we should add a clarifying note
17:31
<bakkot>
per https://esdiscuss.org/topic/denormalized-numbers
17:32
<Michael Ficarra>
so like... if your implementation is not compliant, please make it non-compliant in this way?
17:32
<bakkot>
yes
17:32
<bakkot>
"Implementations are required to support denormalized numbers. However, non-conforming implementations which do not denormalized numbers should set Number.MIN_VALUE to the smallest value they are capable of representing"
17:33
<Michael Ficarra>
it would still be normative IMO to replace that sentence with a note
17:33
<Michael Ficarra>
we should needs-consensus PR that
17:33
<bakkot>
I really do not think that's normative
17:33
<bakkot>
it's what it already says, for one thing
17:37
<Michael Ficarra>
I guess it's fine since it is only talking about non-conforming implementations, which the committee doesn't really have any jurisdiction over
17:37
<Michael Ficarra>
and the statement it's making, on behalf of committee, is already being made today
17:54
<littledan>
I don't understand what normative change you want to make
17:54
<littledan>
couldn't we just add a note that says "hey, to be clear, denormals are really supported in JS"
17:54
<littledan>
(if we consider the current text to be unclear)
17:56
<littledan>

Note, TC39 in Japan is at risk of not happening unless we see more interest. So please fill this out.

Even if you aren’t sure about your availability, it would be good to hear that (it is an option in the survey). If you are aware of whether someone else is likely to attend, but they are unable to fill this out (e.g. they are on leave), let’s get that communicated somehow as well.

tbh I'm surprised to see not that many responses from TC39 delegates who live in East Asia. Should we do more to make this survey visible to that group?
17:59
<Michael Ficarra>
I don't understand what normative change you want to make
There is text in the Number.MIN_VALUE section that is in normative position that we would be removing (by moving to a non-normative note), though it doesn't apply to any conformant implementation, so it should be fine to do without approval by committee
18:00
<littledan>
it's kinda discouraged to say "should" in a note... but anyway, yes, I'm fine with the editors just deciding on whatever sort of change here would be the clearest
18:00
<Michael Ficarra>
tbh I'm surprised to see not that many responses from TC39 delegates who live in East Asia. Should we do more to make this survey visible to that group?
Same. The whole point of having meetings be geographically distributed was to lower the attendance barrier for people in that region. If we don't get attendance for people from that region, we should just have all the meetings on US west since that's where most delegates are.
18:02
<Michael Ficarra>
On that point, Bergen is kinda out of the way, even for Europeans, so I'm not sure how much we really succeeded with lowering the barrier with that choice of venue
18:02
<littledan>
well, we had a vote comparing multiple locations and chose Bergen, right?
18:03
<littledan>
like Barcelona was also in the running but wasn't selected
18:03
<littledan>
there are many EU-based delegates
18:03
<Michael Ficarra>
Barcelona would be way better for accomplishing the accessibility goal IMO
18:06
<Michael Ficarra>
before the venue selection goes to a vote next time, the chairs should make sure they all meet our accessibility goals (not saying they didn't here, just that for me it doesn't appear to have met the bar)
18:09
<Michael Ficarra>
Tokyo, on the other hand, should be very easy to get to from anywhere in APAC
18:15
<TabAtkins>
it's kinda discouraged to say "should" in a note... but anyway, yes, I'm fine with the editors just deciding on whatever sort of change here would be the clearest
I'll be stricter: "should" absolutely should not be used in non-normative text in anything even remotely 2119-adjacent (which JS is). There's plenty of alternate words in English that don't carry 2119 semantics.
18:16
<littledan>
Note: One shouldn't use should in non-normative text
18:40
<Michael Ficarra>
TabAtkins: We can't impose any requirements at all on non-conforming implementations, so what do you think the note should say?
18:41
<TabAtkins>
Sure you can. They just won't be a tested comformance class
18:41
<TabAtkins>
We put normative requirements on *authors* sometimes
18:42
<TabAtkins>
(not that you necessarily need to make this normative; just saying)
18:47
<bakkot>
yes sorry I did not mean a literal note
18:47
<bakkot>
I just meant that we add those sentences to the existing prose, which is not currently a note
19:06
<littledan>
yes the concept of "multiple conformance classes" is necessary to make sense of the statement currently in the spec
19:06
<littledan>
We put normative requirements on *authors* sometimes
We never do this in JS FWIW
19:45
<shu>
i don't even know what it means to put normative requirements on authors
19:45
<shu>
do i put "conformant JS dev" on my resume
19:45
<TabAtkins>
It means you tell them what to do (or more likely dont' do) and then are allowed to snark at them on social media when they do it anyway)
19:46
<shu>
but at the same time do not build such a check into the language/API itself?
19:46
<shu>
or is it like, an uncheckable requirement?
19:47
<bakkot>
I have never needed permission to snark at people though I guess I generally avoid doing so on social media
19:48
<shu>
yes, i like to do it to their face
19:54
<littledan>
remember when we almost said that JS developers should use semicolons?
19:55
<Chris de Almeida>
ASI was a mistake
19:57
<TabAtkins>
Yeah authors just aren't a testable conformance class, it's fine
20:02
<Andreu Botella>
it's more like the opposite, authors imposing a testable conformance class onto JS spec editors, what with the multiple Array.p.group renames
20:06
<Rob Palmer>
My impression is that the anti-semicolon movement has mostly gone away. I follow many trendy JS influencers and their code is littered with semicolons.
23:08
<ljharb>
imo we missed the window to be ahead of the game by declining to tell people to write code properly :-/