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

UCS2 used on macOS Python 2.7 builds #224

Closed
jakirkham opened this issue Nov 12, 2018 · 3 comments
Closed

UCS2 used on macOS Python 2.7 builds #224

jakirkham opened this issue Nov 12, 2018 · 3 comments

Comments

@jakirkham
Copy link
Member

Why is it for Python 2.7 we are using UCS2 for macOS new compiler builds and old compiler builds. AFAICT all of our other builds (including macOS for Python 3 versions) are using UCS4.

@jakirkham
Copy link
Member Author

FWIW this was originally added in PR ( #62 ) with commit ( bbb27a1 ).

cc @jjhelmus

@jjhelmus
Copy link
Contributor

The macOS ecosystem expects a narrow (UCS2) build of Python 2.7. Homebrew, MacPorts, the Apple Python 2.7 and the Python from python.org are all narrow builds. Having conda provide a wide (UCS4) build would be unusual and likely cause compatibility issues.

One big issue with a wide build would be that the vast majority of binary wheels on PyPI would be incompatible. Most projects only provide macosx 2.7 wheels for the narrow ABI, (UCS2) which use the cp27-cp27m ABI tag. Very few, I know of none, provide wheels for the wide ABI, cp27-cp27mu.

@jakirkham
Copy link
Member Author

Thanks for the added insight. That's what I was looking for.

Indeed this is the same reason that Homebrew stuck with UCS2.

Just looking at NumPy's wheels for macOS with 1.15.4 confirms there is no cp27-cp27mu builds for macOS. Imagine that becomes a blocker for many other wheels as well.

While there is no technical limitation to providing a UCS4 macOS Python 2.7 build AFAICT, it does appear this would be an unusual build of Python and would not mesh well with the ecosystem.

Given macOS Python 3 builds have UCS4 support, Python 2.7 has roughly a year before its EOL, and the issues already noted with compatibility, it makes sense to close this as won't fix and simply encourage users in need of UCS4 on macOS to migrate to Python 3 instead.

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

2 participants