07:49
<Jesse (🇪🇸)>
numerics fans! Shall we do a minisummit while we're here? One idea would be to meet tomorrow after plenary
07:49
<Jesse (🇪🇸)>
AFAIK a number of us are also here next week for the Web Engines Hackfest
08:13
<nicolo-ribaudo>
eemeli Time to get the fractionalDigits vs fractionDigits bikeshedding on the agenda!
08:14
<sffc>
There isn't much extra time this week, but I want us to reserve a nice chunk of time for this. I would be open to a nice Saturday walk to Fisterra with JS Numerics on the agenda.
08:15
<eemeli>
The community event is tomorrow an hour after the meeting ends, and AFAIK ryzokuken and I are due to talk about MF2 there.
08:16
<ryzokuken>
yep the community event starts 18:30 tomorrow
08:16
<Jesse (🇪🇸)>
Friday could also work? at the moment Friday seems to be kind of empty
08:17
<sffc>
I already have Friday booked for time with the Igalia Intl team about Intl Era Month Code, etc.
08:18
<eemeli>
Could do a numerics dinner tomorrow after the community event?
08:35
<Jesse (🇪🇸)>
that might be getting a bit late but I'm open to it
08:41
<sffc>
I'd prefer during the day on Saturday than after a long day of meetings and community event
08:42
<sffc>
It seems the TC39 schedule is light on Friday so maybe we could reach out to the chairs to reserve a block for a breakout session on this
08:44
<Jesse (🇪🇸)>
I'll float the idea to the chairs; there may be some interest in breakout sessions as we did in Seattle
08:48
<eemeli>
I'd be fine with anything on Friday. Not really up for scheduling work stuff for Saturday; I'm rather looking forward to having some time off.
08:55
<sffc>
Are y'all going on the city tour today? (I went on it last time I was here)
09:01
<Jesse (🇪🇸)>
I leaning towards not doing it (I've also already done a tour)
09:01
<Jesse (🇪🇸)>
(but I'll be at the dinner)
09:28
<ryzokuken>
I will
09:29
<ryzokuken>
both options sound good to me and slightly preferable than doing it after the community event
09:33
<eemeli>
Getting a timeslot within the schedule on Friday sounds like the best outcome.
09:35
<Jesse (🇪🇸)>
PR set up: https://github.com/tc39/agendas/pull/1891
09:40
<eemeli>
I added a slides link PR for keep-trailing-zeros, with content copied almost verbatim from its readme: https://docs.google.com/presentation/d/1gunNRRXJNdDwqTHh-XjV3ueI8PFasRI9WcF4KfWvxE0/edit?usp=sharing
09:43
<nicolo-ribaudo>
Maybe add an example showing that the proposed behaviour is the same as when you force the .0 through minFractionalDigits
09:50
<nicolo-ribaudo>
Do you know if there is any language where PluralRules differs between 1.1 and 1.10?
09:51
<eemeli>
Done, I think -- added slide 6.
09:56
<eemeli>

Apparently these:

  • Bosnian (bs)
  • Lower Sorbian (dsb)
  • Croatian (hr)
  • Upper Sorbian (hsb)
  • Latvian (lv)
  • Macedonian (mk)
  • Prussian (prg)
  • Serbian (Latin) (sh)
  • Serbian (sr)
09:57
<Jesse (🇪🇸)>
but these differences would be respected in the language-specific plural rules, right?
09:58
<eemeli>
Yes.
09:58
<Jesse (🇪🇸)>
iow it would already be buggy, today, and buggy perhaps right after launching this change, but fixable later
10:02
<eemeli>

My npm package make-plural already handles string inputs in the way that's being proposed, hence being able to generate the above list with:

import plurals from 'make-plural'
Object.entries(plurals).filter(([lc, fn]) => fn('1.1') !== fn('1.10'))
14:43
<Jesse (🇪🇸)>
ok we presented our case again
14:43
<Jesse (🇪🇸)>
congrats on getting preserve-trailling-zeroes to stage 1
14:43
<Jesse (🇪🇸)>
!
14:44
<Jesse (🇪🇸)>
it seems that there's some non-trivial interest in having a polymorphic amount
14:45
<Jesse (🇪🇸)>
one thing that I'd like to see are arguments for that, different from the (reasonable, understandable, valid) desire to have a notion of amount that can handle all "numerics"
14:46
<Jesse (🇪🇸)>
I thought that we walked back from the idea of supporting bigints (at least, bigints with more than 34 significant digits)
14:47
<Jesse (🇪🇸)>
IIRC the main motivation for that was cryptocurrency
14:47
<sffc>
That's not the conclusion I drew
14:48
<ljharb>
the motivation for me is "if it's not tied to one single numeric type, it should handle them all" (to be clear, decimal-only is fine, number-only is fine, but if it's decimal and number i'm going to insist it also include bigint)
14:49
<Jesse (🇪🇸)>
I'd be interested to know how much slower a polymorphic amount would be compared to a decimal-backed amount
14:49
<Jesse (🇪🇸)>
I mean, surely it's not faster, and I can see, without digging into any details, why it would be slower
14:50
<Jesse (🇪🇸)>
we also generally don't position decimal as something fast
14:52
<Jesse (🇪🇸)>
(I always hesitate to emphasize this becuase I don't want to be misunderstood as being totally insensitive to performance)
14:53
<eemeli>
Is performance being proposed as a rationalisation for Amount? I thought that it explicitly was not for Decimal as a whole.
14:53
<sffc>
Polymorphic Amount is probably not that much slower, but my point is that it's not free, and I haven't heard motivation for why we would otherwise prefer Polymorphic Amount over Decimal Amount
14:54
<Jesse (🇪🇸)>
right, performance isn't being proposed in connection with amount
14:54
<eemeli>
An Amount supporting all numeric types would not need to be fully polymorphic, like the polyfill it could hold one BigInt and one Number to represent all numeric values.
14:55
<eemeli>
(bigint for the value, number for the count of fractional digits)
14:55
<Jesse (🇪🇸)>
ah, a kind of bigdecimal amount?
14:55
<eemeli>
And then it could have separate toNumber, toDecimal, and toBigInt methods. Which could throw.
14:55
<eemeli>
Yeah.
14:57
<eemeli>
In particular considering non-intl use cases, I think supporting the numeric values that we already have in JS with Amount kinda counts.
14:58
<sffc>
I was in the middle of drafting a message saying that Decimal Amount avoids problems exactly like this
14:58
<eemeli>
It doesn't really "avoid" the problem, just moves it to happen in the constructor.