Intent to ship: fdlibm Math in Nightly/Early Beta

71 views
Skip to first unread message

Tom Ritter

unread,
Sep 12, 2023, 11:39:42 AM9/12/23
to dev-pl...@mozilla.org
Summary: To fully realize the benefits of our AudioContext Work[0] we
want to enable the fdlibm Math Functions[1] in FPP mode
(privacy.fingerprintingProtection). Because this change is very
subtle, I am concerned that we will not be able to tease out any
issues or compatibility concerns prior to shipping using our normal
mechanism, which would be to enable in Nightly in PBM and perform a
release experiment (also in PBM). Therefore, I would like to enable it
by default, in normal and PBM, in Early Beta and Nightly for at least
a cycle before shipping it. I'd like to then leave it on for another
couple cycles for more bake time. Then we would revert it, following
the policy of not leaving things on in Nightly we don't intend to ship
to Release.

Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1852788

Specification: None. This changes the underlying implementations of
math functions from system functions to code we ship in Firefox. It
only makes a difference way out at the upteenth decimal place.

Platform coverage: This will apply to all platforms.

Preference: javascript.options.use_fdlibm_for_sin_cos_tan exists for
this purpose

Other browsers: While I'm not 100% certain of this, my testing and
code review indicates that v8 ships with a built-in implementation of
the math functions and they use them all the time. This previous
intent to implement
https://groups.google.com/a/mozilla.org/g/dev-platform/c/0dxAO-JsoXI/m/eEhjM9VsAgAJ
discusses the performance concerns that have prevented us from
shipping this by default already.

-tom

[0] https://bugzilla.mozilla.org/show_bug.cgi?id=1358149 many thanks to karlt!
[1] Technically, we already use fdlibm for everything except
sin/cos/tan, but this is enabling it for those three as well.

Chris Peterson

unread,
Sep 12, 2023, 2:07:48 PM9/12/23
to dev-pl...@mozilla.org
The previous performance testing showed small speedups on Linux and
macOS. Have we considered shipping fdlibm enabled by default on Linux or
macOS to get more testing and some small speedups?

I'm also curious how fdlibm affects performance on Android.

https://groups.google.com/a/mozilla.org/g/dev-platform/c/0dxAO-JsoXI/m/eEhjM9VsAgAJ
Reply all
Reply to author
Forward
0 new messages