Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Request for Comment: Rust considering switching to using WebAssembly exception handling #24058

hoodmane started this conversation in General
Discussion options

We are planning to change the Rust Emscripten target from using JS EH to Wasm EH by default. See the Major Change Proposal here.

It will still be possible to target JS EH, but it will require either building with -Zbuild-std or using a custom sysroot.

For most people, I think this will be beneficial -- it should lead to smaller, faster, less buggy builds. However, there are two groups of people who would be negatively affected:

  • anyone wanting to support iOS 14 or earlier
  • users of dynamic linking -- it's an ABI break

The iPhone 14 was released on September 16, 2022 and the iPhone 15 on September 22, 2023, so this drops support for iPhones that are older than 18 months. Dynamic linking users I think will be less negatively effected simply because Emscripten breaks ABI a lot anyways.

cc @kleisauke @juntyr @ChanTsune @gnzlbg @akpmilot @msqr1 @alessandrofama @SamuelLongchamps

I would appreciate if anyone who knows of additional Rust/Emscripten users could tag them here.

You must be logged in to vote

Replies: 4 comments · 2 replies

Comment options

I am generally in favour of this change.

I use an iPhone X and have iOS 16 installed. Based on your phrasing I'm unsure if my iPhone would be affected.

You must be logged in to vote
2 replies
@hoodmane
Comment options

hoodmane Apr 7, 2025
Collaborator Author

It affects support for iOS 14 or earlier, so iOS 16 should be fine.

@freakboy3742
Comment options

CPython iOS maintainer here. Clarifying the state of iOS adoption/support: old iOS devices receive OS updates for a long time. Using the example here - iPhone 6s was released in 2015, and it can run iOS 17 (I know this from experience - my mother in law has one and recently complained she couldn't get a recent update of an app she uses 😄). It can't run iOS 18 (released last year), but iOS 17 is still receiving security updates - and Apple pretty aggressively pushes updates through the ecosystem. iOS 15 and 16 are both receiving updates as well (iOS 15 was last updated 5 days ago).

The adoption rate of iOS updates is fairly high - Apple's official numbers are that 76% of all devices released in the last 4 years (and 68% of all devices) are running iOS 18; and only 13% of all devices are running iOS 16 or earlier (a 2 year old release). That drops off even more as you go to older versions - I can't provide an easy official source for this, but this table is a decent approximation.

There also isn't parity between iOS versions and iPhone versions - right now, if you buy a current model iPhone, it will be an iPhone 16 running iOS 18. There's been a very stable "1 release per year" cadence on both of those since the release of iPhone 11 and iOS 13.

So, if the constraint is requiring the use of iOS 15 or newer, ~4% of all iOS devices would be affected; and all devices from iPhone 13 (released in September 2021) will have shipped with iOS 15 or newer.

Comment options

@aheejin @dschuff

You must be logged in to vote
0 replies
Comment options

I also support this.

You must be logged in to vote
0 replies
Comment options

I support this as well.

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
6 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.