2025-05-22 [08:28:45.0254] we ran into an issue with the FJCVTZS instruction on aarch64 when denormals are disabled (we do this for Web Audio code). In this mode we got different results for the Zero flag on Apple M1 vs M2-M4 CPUs. More details here: https://mastodon.social/@jandem/114513406535890860 [08:37:19.0104] (paging msaboff for the above -- I'm guessing JSC will have the best insight here into what should be happening, and if this is just known eratta) 2025-05-29 [21:49:24.0355] just noticed a fascinating thing about https://tc39.es/ecma262/#sec-math.log10e [21:52:26.0611] the spec notes that > The value of Math.LOG10E is approximately the reciprocal of the value of Math.LN10. but [21:52:29.0660] * the spec notes that > The value of Math.LOG10E is approximately the reciprocal of the value of Math.LN10. but [21:53:03.0436] whereas `1/Math.log(2) === Math.log2(Math.E)` and therefore `Math.LOG2E` can be defined either way, [21:54:45.0185] `1/Math.log(10) !== Math.log10(Math.E)` and therefore `Math.LOG10E` needs to be defined as the latter [21:55:45.0256] i.e. ``` λ eshost -se "[Math.LOG10E, Math.log10(Math.E), 1/Math.log(10)]" #### engine262, JavaScriptCore, SpiderMonkey, V8 0.4342944819032518,0.4342944819032518,0.43429448190325176 ``` [21:57:07.0925] I guess this might not be that interesting from V8's perspective, where `log2(kE)` `log10(kE)` are being used, but [21:58:02.0876] for 15 years, JSC has had these defined as `1.0 / Math::log(2.0)` and `0.4342944819032518`, and I was like, huh that's weird [21:58:51.0264] * for 15 years, JSC has had these defined as `1.0 / log(2.0)` and `0.4342944819032518`, and I was like, huh that's weird [21:59:02.0659] * I guess this might not be that interesting from V8's perspective, where `log2(kE)` and `log10(kE)` are being used, but