Re:How We Bypassed Safari 17's Advanced Audio Fingerprinting...
by Retr0id on Sunday March 10, 2024 @12:32AM
(#39656949)
Floats are deterministic, though (if they weren't, this wouldn't be a workable fingerprinting vector). Reordering of operations (etc.) in a way that would actually change the results needs to be done by human edits, or with compiler options like ffast-math that explicitly allow the compiler to "break the rules" and make such changes. In either case, the concrete instructions emitted by the compiler will have deterministic behavior (and if they don't, that's a hardware bug)
[ Parent
| on HN ]
Re:How We Bypassed Safari 17's Advanced Audio Fingerprinting...
by TylerE on Sunday March 10, 2024 @03:03AM
(#39657278)
What word would you use if sin(x) returns a different value on different platforms, or even different OS or librsry version? Sure smells like a fiction that depends on external state rather than simply its input.
Re:How We Bypassed Safari 17's Advanced Audio Fingerprinting...
by Retr0id on Sunday March 10, 2024 @11:16AM
(#39659825)
The existence of platforms that do not conform to their own specifications does not make an operator non-deterministic.
Edit: I found this pretty great article on the subject https://randomascii.wordpress.com/2013/07/16/floating-point-...
We're both right, depending on how you frame the question.
Re:How We Bypassed Safari 17's Advanced Audio Fingerprinting...
by heinrich5991 on Sunday March 10, 2024 @11:19AM
(#39659845)
sin(x) is platform-dependent.