Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove 32-bit ABIs (armeabi-v7a and x86) #709

Closed
mhsmith opened this issue Sep 15, 2022 · 11 comments
Closed

Remove 32-bit ABIs (armeabi-v7a and x86) #709

mhsmith opened this issue Sep 15, 2022 · 11 comments
Milestone

Comments

@mhsmith
Copy link
Member

mhsmith commented Sep 15, 2022

Here are the ABI statistics for Electron Cash, which was first released in 2018.

To find this in the Google Play console for your own app:

  • Go to Reach and Devices > Overview (NOT "Statistics").
  • Select time period at the top right.
  • Scroll down and expand "ABI".

This includes devices which have the app installed and have been turned on within the last 30 days.

abis

Obviously there's a glitch with the "unreported" category, but if we exclude that category, 64-bit support over the last 12 months has risen from 82% to 86%. So we shouldn't remove 32-bit support yet, but we can probably do it in 1 or 2 years.

@mhsmith
Copy link
Member Author

mhsmith commented Nov 1, 2022

Google recently released the "Pixel 7, the first 64-bit-only Android phone". However, at the end of the article they say "Please continue supporting 32-bit ABIs", because they "will continue to be important for Android Go", which is aimed at low-end devices.

@mhsmith
Copy link
Member Author

mhsmith commented Oct 3, 2023

64-bit support has now reached 92% of devices with known ABIs (81/88):

Screenshot 2023-10-03 at 09 47 34

@freakboy3742: So my proposal is that we omit Android 32-bit support when we add Python 3.12 and later, but maintain it for now in the existing versions (3.11 and earlier).

@mhsmith mhsmith added this to the 15.1 milestone Oct 3, 2023
@freakboy3742
Copy link

Agreed that this approach seems reasonable. By the time 3.12 has any sort of serious adoption, 32 bit platforms will be even more marginal; given that we're about to start upstreaming changes, making a clean break sounds reasonable.

@IsakTheHacker
Copy link
Contributor

Please don't stop supporting 32-bit ABIs!!! They are important for Wear OS. Not even the newest watches (Samsung Galaxy Watch 6 and Google Pixel Watch 2) support 64-bit ABIs.
Screenshot from 2023-10-04 23-21-12
Screenshot from 2023-10-04 23-24-16

@mhsmith
Copy link
Member Author

mhsmith commented Oct 5, 2023

Interesting – both of those CPUs are 64-bit capable, but I guess they decided to use a 32-bit OS to save RAM.

We're not removing 32-bit ABIs entirely, we just won't be including them in Python 3.12 or newer. But we'll keep 32-bit support in Python 3.11 and earlier for now, and probably right up until Python 3.11 is retired in 2027. Hopefully Android will be 64-bit only by then.

@IsakTheHacker
Copy link
Contributor

That is great! Although it would be nice to have Python 3.12 be the last 32 bit version since it includes some pretty significant performance improvements: https://docs.python.org/3.12/whatsnew/3.12.html#optimizations

@mhsmith mhsmith removed this from the 15.1 milestone Nov 8, 2023
@mhsmith mhsmith added this to the 15.0 milestone Nov 20, 2023
@mhsmith
Copy link
Member Author

mhsmith commented Nov 26, 2023

Implemented as discussed.

@mhsmith mhsmith closed this as completed Nov 26, 2023
@IsakTheHacker
Copy link
Contributor

IsakTheHacker commented Nov 26, 2023

When you start building pip packages for Python 3.11 and 3.12 will you compile Python 3.11 packages for 32 bit ABIs?

@mhsmith
Copy link
Member Author

mhsmith commented Nov 27, 2023

Yes, because those ABIs wouldn't be much use otherwise.

@IsakTheHacker
Copy link
Contributor

IsakTheHacker commented Nov 27, 2023

"Much use"? What do you mean by that? The previous 32 bit packages built for 3.8, 3.9 and 3.10 will still be kept I am guessing so I don't get your point.

So to clarify, when we start building pip packages for 3.11 and 3.12, all 3.11 packages will also be built for 32 bit ABIs while 3.12 packages will only be built for 64 bit. Is that correct?

@mhsmith
Copy link
Member Author

mhsmith commented Nov 27, 2023

Yes, that's correct. I meant to say "Python 3.11 wouldn't be much use on those ABIs". Sorry for the confusion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants