00:02:32  * Fishrock123joined
00:06:29  * AtumTquit (Remote host closed the connection)
00:17:33  <TabAtkins>littledan: What's the value of 64-bit decimal, vs BigDecimal?
01:17:02  * Fishrock123quit (Remote host closed the connection)
02:17:56  * Fishrock123joined
02:22:39  * Fishrock123quit (Ping timeout: 258 seconds)
03:10:50  * Fishrock123joined
03:21:02  * tschneidereitquit (Ping timeout: 246 seconds)
03:24:18  * tschneidereitjoined
03:24:38  * Fishrock123quit (Read error: Connection reset by peer)
03:25:16  * Fishrock123joined
03:25:31  * gibson042quit (Ping timeout: 258 seconds)
04:09:11  * jmdyckquit (Remote host closed the connection)
04:37:02  * gibson042joined
04:37:15  * gibson042quit (Client Quit)
04:55:59  * caridyjoined
04:56:16  * caridyquit (Remote host closed the connection)
04:58:59  * Fishrock123quit (Remote host closed the connection)
04:59:36  * Fishrock123joined
05:04:02  * Fishrock123quit (Ping timeout: 258 seconds)
05:07:31  <jeffmo>littledan: “How do you resolve it when everyone wants to be first” — the builtin module follows some convention/protocol for finding the presence of the polyfill when it initializes. That protocol is defined in such a way that it can only resolve to one thing (probably bad strawman example: tries to resolve /polyfills/<<builtinname>>. If found, delegates to that)
05:09:52  <jeffmo>Another probably bad strawman: First builtin thay initializes looks for a global called MAGIC_BEAN_STALK that contains metadata that dictates/resolves polyfills
05:10:08  <jeffmo>There are lots of ways to slice this apple
05:10:32  <jeffmo>General idea though: Builtin owns the job of finding its replacement to delegate to somehow
05:11:21  <jeffmo>That way builtins maintain control of registration so that various module system invariants can be preserved
05:14:11  * Fishrock123joined
05:14:35  * Fishrock123quit (Remote host closed the connection)
05:56:58  * caridyjoined
06:02:18  * caridyquit (Ping timeout: 258 seconds)
07:05:08  <annevk>I’m also curious why it would not be BigDecimal
07:05:48  <annevk>Sam Ruby tried to standardize it last time btwp
07:05:58  <annevk>There are some blog posts
09:00:00  * caridyjoined
09:04:43  * caridyquit (Ping timeout: 255 seconds)
10:25:13  * mylesborinsquit (Quit: farewell for now)
10:25:44  * mylesborinsjoined
11:02:03  * caridyjoined
11:06:40  * caridyquit (Ping timeout: 258 seconds)
11:41:29  * AtumTjoined
12:39:28  * jmdyckjoined
12:40:10  <littledan>Something I find sort of surprising about BigDecimal is how to determine the number of digits in the result. Java BigDecimal seems to take a sort of "significant digits" approach, according to https://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html . I'm not sure if that's exactly what you want for division
12:41:12  <littledan>this approach makes the number of digits observably different
13:13:27  <annevk>littledan: I only meant versus 64-bit decimal
13:13:54  <annevk>littledan: I’m not sure about significant digits
13:47:19  <littledan>annevk: I mean, this is a problem that's inherent if you don't choose a maximum precision
13:47:45  <littledan>64-bits "is big enough for anyone", vs arbitrary-precision decimal requiring some sort of significant digits-like rule
13:47:57  <littledan>or we could be like Python and make a global setting for the precision!
13:49:40  <littledan>jeffmo: Those protocols sound interesting
14:04:38  * caridyjoined
14:04:41  * caridyquit (Remote host closed the connection)
14:04:54  * caridyjoined
14:05:33  * caridyquit (Remote host closed the connection)
14:05:59  * gibson042joined
14:06:00  * caridyjoined
14:07:59  * caridyquit (Remote host closed the connection)
14:08:05  * caridy_joined
14:08:13  * caridy_quit (Remote host closed the connection)
14:09:44  <TabAtkins>Or make the number of digits controllable, and inferred via syntax when first constructed? Like `1.00d` starts out with 2 digits of decimal precision, but you can later go `x.digits = 5` to give it five instead. (Or use the constructor like `BigDecimal(1, 5)` to start it out that way.)
14:09:52  <TabAtkins>(Strawman, unsure if good idea.)
14:10:22  <TabAtkins>(Alternately: just do a BigRational instead, arbitrary precision ahoy!)
14:13:03  * caridyjoined
14:13:11  * caridyquit (Remote host closed the connection)
14:13:44  * caridyjoined
14:14:01  * caridyquit (Remote host closed the connection)
14:14:07  * caridyjoined
14:16:38  <littledan>huh, you think the decimal values should be mutable? right now, all primitives are immutable
14:18:43  <TabAtkins>Feel free to interpret my mutation as instead being a construction that specifies an alternate scale.
14:20:12  <TabAtkins>(But like I said, rationals side-step the whole precision issue altogether, by implicitly offering precision up to the implementation size limit for BigInt.)
14:44:39  <littledan>BigRational does completely solve it, but it's also the slowest (with all the gcd computations). IEEE decimal 64 has some hardware implementations in obscure platforms, but also on more platforms, optimized assembly implementations distributed by hardware vendors
14:45:32  <littledan>having multiple precision versions for the same mathematical value was brought up as a disadvantage of IEEE Decimal in the past; if we have it in BigDecimal, presumably it will be a complaint there too
15:17:27  <annevk>BigRational sounds more intuitive
15:18:31  <annevk>But then I'm probably not a good source here, the last time I worked with significant digits was secondary school physics
15:27:53  <annevk>littledan: could you optimize BigRational using the hardware code paths for decimal?
15:28:44  <littledan>annevk: I don't think decimal hardware codepaths are widespread in the kinds of computers that run browsers. Anyway, they are pretty different; I don't know what you could reuse
15:53:42  <littledan>oh, re: normalization, I found this: http://speleotrove.com/decimal/decifaq1.html#tzeros. And I guess Java's BigDecimal grew functions to manipulate the number of trailing zeros over time, to meet user needs, in a way that matches the functions in the IEEE decimal stnadard
15:58:55  <annevk>littledan: cool, measurement was the reason I had to care at school
16:20:17  * bradleymeckjoined
16:34:37  * bradleymeckquit (Quit: bradleymeck)
16:47:58  * AtumT_joined
16:49:35  * AtumTquit (Ping timeout: 248 seconds)
16:53:59  * FaerieFlychanged nick to FireFly
19:30:11  * bradleymeckjoined
20:02:58  * jwaldenjoined
20:11:50  * bradleymeckquit (Quit: )
22:30:26  * jwaldenquit (Ping timeout: 252 seconds)
22:45:36  * jwaldenjoined
22:57:58  * AtumT_quit (Remote host closed the connection)