Bump oldest supported safari version from v14.1 to v15 - #27542
Conversation
050290e to
e04ed5d
Compare
e04ed5d to
df6a647
Compare
| * Exception handling (see :ref:`exceptions` for details). | ||
| * SIMD (see :ref:`Porting SIMD code` for details). | ||
| * Nontrapping float-to-int conversion (enabled by default, use | ||
| ``-mno-nontrapping-fptoint`` to disable). |
There was a problem hiding this comment.
Why remove the instructions for disabling them?
There was a problem hiding this comment.
Its just not that actionable anymore, because all our system libraries build with this flag. If you want to really produce a build without nontrapping-fptoint after this change would need to modify emscripten to change they way it builds its system libraries or restore the binaryen lowering pass (which I think we should probably delete).
There was a problem hiding this comment.
Passing -mno-nontrapping-fptoint for a single source does work, I'm just not sure useful/interesting it its to mention here.
There was a problem hiding this comment.
In that case it seems odd to mention these features at all, and their defaults?
There was a problem hiding this comment.
I made a new section for features that cannot really be disabled. Should I just remove it instead maybe?
There was a problem hiding this comment.
I think it's good to keep that new section, as documentation for which features are emitted.
Safari 15 has been the default for a while now. This change means it is no longer possible to target anything older. Toolchain and runtime impact: - Drops Binaryen lowering passes for `bulk-memory` and `nontrapping-fptoint` because all supported engines (Chrome >= 85, Firefox >= 79, Safari >= 15, Node >= 18.3) support them. - `JS_BIGINT_INTEGRATION` (`WASM_BIGINT`) is now unconditionally supported across all target engines. - Removes legacy JS polyfills (e.g. `bigint64array.js`) and Safari 14-specific workarounds. Market share and device compatibility (AI-assisted): - Global usage: Safari 14 holds <0.1% global market share and is below standard reporting thresholds: https://caniuse.com/usage-table https://gs.statcounter.com/browser-version-market-share - iOS / iPadOS: iOS 15 supported all devices that ran iOS 14 (including iPhone 6s/7, SE 1st gen, iPad Air 2, iPad mini 4, and iPod touch 7th gen), meaning zero active iOS devices were stranded on iOS 14: https://support.apple.com/100366 https://en.wikipedia.org/wiki/IOS_15#Supported_devices - macOS: Safari 15 was released for macOS Catalina (10.15) and Big Sur (11.0), and shipped with Monterey (12.0). Only macOS Mojave (10.14) and older were capped at Safari 14.1 (Mojave reached EOL in 2021): https://developer.apple.com/documentation/safari-release-notes/safari-15-release-notes
df6a647 to
4bc3a29
Compare
| browser versions Emscripten targets. | ||
|
|
||
| Some features are available even the oldest supported browser versions, and are | ||
| enabled by default. They can be turned of for specific compilation units using |
There was a problem hiding this comment.
| enabled by default. They can be turned of for specific compilation units using | |
| enabled by default. They can be turned off for specific compilation units using |
Co-authored-by: Alon Zakai <alonzakai@gmail.com>
Safari 15 has been the default for a while now. This change means it is no longer possible to target anything older.
Toolchain and runtime impact:
bulk-memoryandnontrapping-fptointbecause all supported engines (Chrome >= 85, Firefox >= 79, Safari >= 15, Node >= 18.3) support them.JS_BIGINT_INTEGRATION(WASM_BIGINT) is now unconditionally supported across all target engines.bigint64array.js) and Safari 14-specific workarounds.Market share and device compatibility (AI-assisted):