question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Windows Stable ABI Support

See original GitHub issue
  • Pip version: 9.0.1
  • Python version: Any py3
  • Operating system: Windows

Description:

I’d like to be able to use the stable ABI to lessen the burden of distributing wheels. pip 9 supports this on macOS, but on Windows it does not. The stable ABI is a bit less useful on Windows due to CRT issues, but with the changes to CRT linking in Python 3.5 and above it seems like it should be possible to do a single stable ABI build that works with Python 3.5+? I am only a Windows Python user to the extent required by the build infrastructure for PyCA projects so hopefully someone more knowledgeable can help out here 😄

Assuming the stable ABI should be supported on Windows then we can start digging into the problem. It turns out that pep425tags.get_supported() doesn’t show abi3 as a supported tag on Windows. The implementation uses imp.get_suffixes() and on Windows this does not return anything with abi3 in it. Setuptools uses a function get_abi3_suffix that keys on pyd in Windows, but it’s unclear to me if this is the correct behavior. Is there a more correct way to detect support for stable ABI on Python 3 in Windows?

(Aside: It’d be nice if pep425tags had a canonical single repo that is then vendored by pip/wheel rather than being divergent modules)

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:27 (18 by maintainers)

github_iconTop GitHub Comments

1reaction
dstufftcommented, Apr 13, 2017

@zooba Ok so if #define Py_LIMITED_ABI is in the extension code, then it should already be linking against python3.dll?

0reactions
chrahuntcommented, Dec 9, 2019

The pip part of this was resolved for #7327 in #7367, essentially we now just use a plain “abi3” when installing for a supported version of CPython. I will close this now but if there’s still any pip-specific action indicated, please say so!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Win32 Is the Only Stable ABI on Linux? - Hacker News
My point was it's not inherent to WINE. There's a lot of Windows games which support Vulkan or OpenGL, those work excellently.
Read more >
Win32 is the stable Linux userland ABI (and the consequences)
This post was inspired by some controversy with Valve and their support for Linux, but the bulk of it comes from long-term observation....
Read more >
Win32 Is The Only Stable ABI on Linux - Reddit
Windows 10, released in 2015, will be supported until 2025. These semi-annual upgrades don't differ much from the old Service Packs.
Read more >
C++ binary compatibility between Visual Studio versions
Describes how binary compatibility works between compiled C++ files in Visual Studio 2015, 2017, 2019, and 2022. One Microsoft Visual C++ ...
Read more >
To Save C, We Must Save ABI | The Pasture
But, if I've got such a violent hatred for ABI Stability and all of ... help fix this one, since it's an explicit...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found