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

Request to add trove classifiers for CPU architectures #118

Open
althonos opened this issue Oct 4, 2022 · 0 comments
Open

Request to add trove classifiers for CPU architectures #118

althonos opened this issue Oct 4, 2022 · 0 comments

Comments

@althonos
Copy link

althonos commented Oct 4, 2022

Hello there!

I am using mostly Python for scientific programming in bioinformatics, and I've come to develop several packages with support for particular CPU features, such as SIMD extensions. At the moment, listing compiled extensions is not obvious with classifiers (there is no Compiled classifier like there is a Typing :: Typed for typed packages), but in general using Programming Language :: C or Programming Language :: Cython is enough.

However, I was wondering if it would make sense to add classifiers to list CPU architectures, given:

  1. there is now the Environment :: GPU classifier, which can be used to tag CUDA-enabled code
  2. some packages may only run on certain target platforms (for instance when only x86 is supported by an upstream dependency)
  3. it would be nice to classify packages targeting specific targets like Arm, or supporting special features like SSE.

This is open for discussion, but I could imagine an Architecture classifier something like:

Architecture :: Any
Architecture :: x86
Architecture :: x86-64
Architecture :: Arm :: Armv7
Architecture :: Arm :: Aarch64

etc. for architectures, maybe with :: Only variants for code only supporting an architecture (e.g. Architecture :: x86-64 :: Only, like Programming Language :: Python :: 3 :: Only)

For CPU features, maybe something like:

Architecture :: x86-64 :: SSE
Architecture :: x86-64 :: SSE2
...
Architecture :: Arm :: Armv7 :: NEON
Architecture :: Arm :: Aarch64 :: NEON
Architecture :: Arm :: Aarch64 :: Helium

Since there is already an Environment :: GPU classifier, another option would be to use an Environment :: CPU root classifier (e.g. Environment :: CPU :: Arm :: Aarch64 :: NEON to mark that a package implements NEON-accelerated computation, or Environment :: CPU :: x86-64 :: Only to mark that a package is only available with an x86-64 CPU).

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

1 participant