Right now, supporting the Windows x86 (32-bit) platform is the responsibility of all core developers: it’s a Tier-1 platform. I’m not comfortable with this status: I’m not sure that “all core devs” have access to a Windows machine to build Python in 32-bit mode and debug issues (specific to this platform).
Recently, I fixed a RecursionError in test_tomllib and backported my fix to Python 3.11. On Python 3.11, it’s fine on all platforms, except on Windows x86 where test_support and test_tomllib are now failing. Well, it’s likely not a bug deal to fix this issue, it’s just an example. Since the “Windows x86” job is not mandatory on pull requests, I merged my PR. @steve.dower proposed his help to fix the issue. But is it enough to have a single core dev to maintain a platform?
In general, is Python 32-bit still popular on Windows? It seems like numpy provides win32 binary wheels for Python 3.11, but Pillow doesn’t.
Python Windows download page sadly still proposes the 32-bit flavor before 64-bit flavor in the list. Same in the download links of Python 3.11.5 release for example. I’m surprised that python.org does not provide any guidance to make a decision between the Windows 32-bit and Windows 64-bit choice.
It seems like Conda only offers 64-bit flavor on Windows.
On a fresh Python, if I type “python” in a terminal, Windows Store pops up and invites me to install Python 3.11. I click on [Get] and I get… Python 3.11.5 built in 64-bit mode: ah, we are good! ![]()
While cibuildwheel supports Windows 32bit on Python 3.6 to Python 3.11, it doesn’t support Windows 32bit for PyPy 7.3. The reason is simple, PyPy no longer supports Windows 32-bit: it’s gone from the download page. They dropped Windows 32-bit support around PyPy v7.3.6.
Python 3.12.0 final is going to be shipped with Windows 32-bit installers. If we change something, it cannot happen before Python 3.13, Thomas Wouters is the Python 3.13 release manager (same for Python 3.12).
Summary:
- python.org proposes Windows 32-bit and Windows 64-bit installer, the 32-bit flavor is listed first, and there is no guidance
- Windows Store installs 64-bit binary
- Conda only supports Windows 64-bit
- GitHub Action Windows x86 (32 bit) is not mandatory (can fail, it doesn’t prevent to merge a PR)
- numpy provides 64-bit binary, Pillow doesn’t
- PyPy dropped Windows 64-bit
I’m not proposing to remove Windows 32-bit support in Python 3.13. Questions are more around:
- Who is going to fix Windows 32-bit specific issues?
- Should we still ship Windows 32-bit installers for Python 3.13?
- Should we remove the GitHub Action Windows x86 job?
So, as written in the title: Consider downgrading Windows 32-bit from Tier-1 to Tier-2 or Tier-3? (in Python 3.13?)
Previous discussion in 2018 about python.org download page: why is not 64-bit installer the default download link for Windows?. In 2018, @steve.dower wrote:
Do Intel 32-bit CPU still exist in 2023? Is it possible to explicitly install Windows in 32-bit on a 64-bit CPU? What is the ratio of Windows users who cannot 64-bit Python?
Python test suite has a few tests specific to 32-bit. And the C code has obviously some code paths specific to 32-bit pointers (#if SIZEOF_VOID_P > 4).
Windows 32-bit is one of last 32-bit platforms that we still support on buildbots. The other one is ARM 32-bit CPU: ARM Raspbian buildbot worker: “Raspberry Pi 4 B running Raspbian (Bullseye 11.x).” Oh wait, the Cortex-A72 CPU is actually a 64-bit CPU! I suppose that @gpshead made the deliberate choice of installing Debian in 32-bit.