From 1f9cbe4a48a0f1aceb851ad7cc6cafc324fd1684 Mon Sep 17 00:00:00 2001 From: vvs Date: Sun, 10 May 2026 11:15:11 +0100 Subject: [PATCH] v1.1.0: extend binary matrix to CPython 3.10/3.11/3.13 on Linux and Windows - Linux x86_64: add cp310, cp311, cp313 (.so), built in conda-forge envs. - Windows AMD64: add cp310, cp311, cp313 (.pyd), built with MSVC v14.50. - All eight binaries verified to produce identical numerical output. - README compatibility table + build provenance updated. - macOS still deferred. --- CHANGELOG.md | 26 ++++++++++++ README.md | 40 +++++++++++------- sem_cython12/sem_core12.cp310-win_amd64.pyd | Bin 0 -> 193024 bytes sem_cython12/sem_core12.cp311-win_amd64.pyd | Bin 0 -> 193024 bytes sem_cython12/sem_core12.cp313-win_amd64.pyd | Bin 0 -> 194048 bytes ...sem_core12.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 265032 bytes ...sem_core12.cpython-311-x86_64-linux-gnu.so | Bin 0 -> 264648 bytes ...sem_core12.cpython-313-x86_64-linux-gnu.so | Bin 0 -> 258624 bytes 8 files changed, 51 insertions(+), 15 deletions(-) create mode 100644 sem_cython12/sem_core12.cp310-win_amd64.pyd create mode 100644 sem_cython12/sem_core12.cp311-win_amd64.pyd create mode 100644 sem_cython12/sem_core12.cp313-win_amd64.pyd create mode 100644 sem_cython12/sem_core12.cpython-310-x86_64-linux-gnu.so create mode 100644 sem_cython12/sem_core12.cpython-311-x86_64-linux-gnu.so create mode 100644 sem_cython12/sem_core12.cpython-313-x86_64-linux-gnu.so diff --git a/CHANGELOG.md b/CHANGELOG.md index 177523b..27b9e90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,32 @@ release `MAJOR.MINOR.PATCH` increments - `MINOR` on backwards-compatible feature additions, - `PATCH` on backwards-compatible bug fixes. +## [1.1.0] - 2026-05-10 + +Binary matrix expanded to four CPython versions on both supported +platforms. + +### Added + +- Pre-compiled Linux x86_64 binaries for **CPython 3.10, 3.11, 3.13** + (`sem_core12.cpython-3{10,11,13}-x86_64-linux-gnu.so`). Built in + isolated conda-forge environments with conda-forge gcc, same + OpenMP and optimisation flags as the cp312 binary. +- Pre-compiled Windows AMD64 binaries for **CPython 3.10, 3.11, 3.13** + (`sem_core12.cp3{10,11,13}-win_amd64.pyd`). Built with MSVC v14.50 + against the matching CPython installed via `winget`. + +### Verified + +- All eight binaries (4 Linux + 4 Windows) produce identical numerical + output for the same fixed-seed input on `batch_max_similarity`. + +### Compatibility notes + +- macOS is still not provided in this release. Contact + `sales@sevana.biz` if you need a macOS build. +- numpy requirement unchanged: `numpy >= 1.23`. + ## [1.0.0] - 2026-05-09 First public release. diff --git a/README.md b/README.md index acd75a8..ca15932 100644 --- a/README.md +++ b/README.md @@ -17,32 +17,42 @@ For an introduction to SEM (Similarity Energy Model) and how ## Contents -- `sem_cython12/sem_core12.cpython-312-x86_64-linux-gnu.so` - - compiled extension (Linux, CPython 3.12, x86_64). -- `sem_cython12/sem_core12.cp312-win_amd64.pyd` - - compiled extension (Windows, CPython 3.12, AMD64). +- `sem_cython12/sem_core12.cpython-3{10,11,12,13}-x86_64-linux-gnu.so` - + compiled extensions (Linux, x86_64) for CPython 3.10 / 3.11 / 3.12 / 3.13. +- `sem_cython12/sem_core12.cp3{10,11,12,13}-win_amd64.pyd` - + compiled extensions (Windows, AMD64) for CPython 3.10 / 3.11 / 3.12 / 3.13. - `sem_cython12/wrapper.py` - Python API. - `sem_cython12/__init__.py` - package entry. +Python's import system selects the correct binary for the running +interpreter automatically — install the whole package and the right +`.so` / `.pyd` is picked up by ABI tag. + ## Compatibility -| Platform | Architecture | Python | Runtime requirements | -|-----------------|--------------|-----------|-----------------------------| -| Linux | x86_64 | CPython 3.12 | glibc >= 2.31, libgomp | -| Windows 10/11 | AMD64 | CPython 3.12 | vcomp (ships with Windows) | -| macOS | - | - | not provided (contact sales@sevana.biz) | +| Platform | Architecture | Python | Runtime requirements | +|-----------------|--------------|------------------------|-----------------------------| +| Linux | x86_64 | CPython 3.10/3.11/3.12/3.13 | glibc >= 2.31, libgomp | +| Windows 10/11 | AMD64 | CPython 3.10/3.11/3.12/3.13 | vcomp (ships with Windows) | +| macOS | - | - | not provided (contact sales@sevana.biz) | Single Python dependency: `numpy >= 1.23` (see `requirements.txt`). ## How the binaries were built -- **Linux (`*.so`)**: gcc 13.3, OpenMP via `libgomp`, flags - `-O3 -ffast-math -march=native -fopenmp`. -- **Windows (`*.pyd`)**: MSVC v14.50 (Visual Studio Build Tools 2026), - OpenMP via `vcomp`, flags `/O2 /openmp`. +- **Linux (`*.so`), cp312**: system gcc 13.3 on Ubuntu, OpenMP via + `libgomp`, flags `-O3 -ffast-math -march=native -fopenmp`. +- **Linux (`*.so`), cp310 / cp311 / cp313**: conda-forge gcc inside + isolated `python=3.10/3.11/3.13` envs (clean, system-Python-free + build), same OpenMP and optimisation flags. +- **Windows (`*.pyd`), all four versions**: MSVC v14.50 (Visual Studio + Build Tools 2026), OpenMP via `vcomp`, flags `/O2 /openmp`. Each + built against the matching CPython interpreter installed via + `winget`. -Both binaries target CPython 3.12 (cp312) ABI. No other Python -version is supported in this release. +All eight binaries pass the same numerical smoke test +(`batch_max_similarity` over fixed-seed data) and produce identical +output to within float64 round-off. ## Install diff --git a/sem_cython12/sem_core12.cp310-win_amd64.pyd b/sem_cython12/sem_core12.cp310-win_amd64.pyd new file mode 100644 index 0000000000000000000000000000000000000000..d724da698531b263372a85b35218ae1eb404db13 GIT binary patch literal 193024 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