islpy built with Barvinok and vendored native libs (Linux/macOS). Falls back to source build if wheel unavailable.
Project description
islpy-barvinok
Prebuilt wheels and from-source builds of islpy with Barvinok enabled, with native libraries vendored on Linux and macOS.
This project is a wrapper/builder: it fetches the upstream islpy sdist at a pinned version,
builds Barvinok/NTL/ISL via a reproducible script, builds islpy with USE_BARVINOK=ON,
and publishes wheels. It keeps the import name as islpy for compatibility, while the
distribution name on PyPI is islpy-barvinok.
Supported platforms: Linux x86_64 (manylinux) and macOS 11+ (x86_64 and arm64).
Upstream project: inducer/islpy. This repo tracks upstream
islpy releases on PyPI and rebuilds with Barvinok enabled.
Usage
- Install:
pip install islpy-barvinok - Import:
import islpy
islpy.Set("[N] -> {[x, y] : x >= 0 and y >= 0 and x <= N and y <= N}").card()
How the wheels are built (overview)
- Build dependencies into a local prefix (default
build/prefix):- GMP, NTL, ISL, Barvinok (from upstream sources)
- Build islpy against the prefix with:
-D USE_SHIPPED_ISL=OFF -D USE_SHIPPED_IMATH=OFF -D USE_BARVINOK=ON-D ISL_INC_DIRS:LIST=<prefix>/include-D ISL_LIB_DIRS:LIST=<prefix>/lib
- Vendor native libs into wheels:
- Linux:
auditwheel repair - macOS:
delocate-wheel
- Linux:
Building from source (PEP 517)
If a prebuilt wheel is unavailable for your platform, pip will build from source
using a custom backend that runs scripts/build_all.sh. You will need common C/C++
build tools and autotools installed system-wide:
- macOS:
brew install autoconf automake libtool pkg-config cmake ninja - Debian/Ubuntu:
sudo apt-get install -y build-essential autoconf automake libtool pkg-config cmake ninja-build
Then:
pip install --no-binary=:all: islpy-barvinok
The build downloads sources for GMP, NTL, ISL, and Barvinok, builds them into a local
prefix under build/, builds islpy against that prefix with Barvinok enabled, and
produces a wheel that pip installs. On macOS, native libraries may be vendored using
delocate if available.
Releases and automation
- Upstream tracking: a scheduled workflow checks PyPI for new
islpyreleases and opens a PR bumping the pinned version. - Tagging: when such a PR is merged into
main, another workflow tags the repo withv<version>. - Publishing: tags trigger CI to build wheels on Linux and macOS and publish to PyPI via Trusted Publishing (OIDC).
Development
- Single-script build:
uv run bash scripts/build_all.sh- Wheels in
build/wheelhouseandbuild/wheelhouse-repaired.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file islpy-barvinok-2025.2.5.rc1.tar.gz.
File metadata
- Download URL: islpy-barvinok-2025.2.5.rc1.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d9c9ef73b48cc319fda66f4e05853471f25da446ebb0f3d3b9d0adae6771a69
|
|
| MD5 |
5b6b3091df6f705f3aa1ac9832fd5b01
|
|
| BLAKE2b-256 |
587d02ed998f05a9e4ef0a6adaafb1731db336ccd01ff87a9cd4a37ebea755d2
|
Provenance
The following attestation bundles were made for islpy-barvinok-2025.2.5.rc1.tar.gz:
Publisher:
wheels.yml on thisiscam/islpy-barvinok
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
islpy_barvinok-2025.2.5rc1.tar.gz -
Subject digest:
3d9c9ef73b48cc319fda66f4e05853471f25da446ebb0f3d3b9d0adae6771a69 - Sigstore transparency entry: 434485021
- Sigstore integration time:
-
Permalink:
thisiscam/islpy-barvinok@5868dd98e3f2d0d0ec2612237bfa37c4b43c55d3 -
Branch / Tag:
refs/tags/v2025.2.5-4 - Owner: https://github.com/thisiscam
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@5868dd98e3f2d0d0ec2612237bfa37c4b43c55d3 -
Trigger Event:
push
-
Statement type: