Skip to content

No prebuilt wheels for aarch64 (arm64) Linux #1089

Description

@marcusps

Problem

stim does not publish prebuilt wheels for aarch64 (arm64) Linux (e.g. NVIDIA DGX Spark devices). Users on these platforms currently have to build from source via the sdist.

Suggested fix

.github/workflows/ci.yml's build_dist job matrix only includes manylinux_x86_64 entries for Linux. GitHub now offers native ubuntu-24.04-arm hosted runners, so manylinux_aarch64 wheels can be built without QEMU/binfmt emulation.

No changes are needed in setup.py: it already skips the x86-only SSE2 extension module when built on non-x86 architectures (see _get_extensions()), falling back to the base extension set — so an aarch64 build should produce a working wheel with no other code changes.

A minimal 6-line addition to the matrix would be:

          {os: ubuntu-24.04-arm, dist: cp310-manylinux_aarch64},
          {os: ubuntu-24.04-arm, dist: cp311-manylinux_aarch64},
          {os: ubuntu-24.04-arm, dist: cp312-manylinux_aarch64},
          {os: ubuntu-24.04-arm, dist: cp313-manylinux_aarch64},
          {os: ubuntu-24.04-arm, dist: cp314-manylinux_aarch64},

placed alongside the existing x86_64 manylinux entries, e.g.:

           {os: ubuntu-24.04, dist: cp313-manylinux_x86_64},
           {os: ubuntu-24.04, dist: cp314-manylinux_x86_64},
 
+          {os: ubuntu-24.04-arm, dist: cp310-manylinux_aarch64},
+          {os: ubuntu-24.04-arm, dist: cp311-manylinux_aarch64},
+          {os: ubuntu-24.04-arm, dist: cp312-manylinux_aarch64},
+          {os: ubuntu-24.04-arm, dist: cp313-manylinux_aarch64},
+          {os: ubuntu-24.04-arm, dist: cp314-manylinux_aarch64},
+
           # manylinux_i686 disabled because scipy isn't prebuilt and fails to build.

The existing CIBW_BUILD, CIBW_TEST_REQUIRES, CIBW_TEST_COMMAND, and job steps are architecture-agnostic and should work unchanged for the new arm64 runner entries.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions