v1.0.0: Windows AMD64 binary + patent/trade-mark reservation + release docs

- LICENSE §7: no-patent-grant + future-patent reservation; SIM/SEM
  trade-mark reservation with nominative-use exception; sem_cython12
  technical name explicitly NOT a trade mark.
- LICENSE §10: third-party components disclosure (NumPy BSD-3, OpenMP).
- Add Windows AMD64 cp312 binary alongside the Linux x86_64 one.
- README: compatibility table, build provenance, no-telemetry section.
- CHANGELOG.md, CONTRIBUTING.md, SECURITY.md (info@sevana.biz, 5 BD ack).
This commit is contained in:
vvs
2026-05-09 15:13:50 +01:00
parent 73c89811f9
commit 6597509f79
6 changed files with 250 additions and 13 deletions
+63
View File
@@ -0,0 +1,63 @@
# Changelog
All notable changes to `sem_cython12` are recorded in this file.
The project follows [Semantic Versioning](https://semver.org/): a
release `MAJOR.MINOR.PATCH` increments
- `MAJOR` on breaking API changes,
- `MINOR` on backwards-compatible feature additions,
- `PATCH` on backwards-compatible bug fixes.
## [1.0.0] - 2026-05-09
First public release.
### Included
- Pre-compiled Linux x86_64 binary (`sem_core12.cpython-312-x86_64-linux-gnu.so`)
built with gcc 13.3, OpenMP-parallel (`libgomp`), `-O3 -ffast-math
-march=native`.
- Pre-compiled Windows AMD64 binary (`sem_core12.cp312-win_amd64.pyd`)
built with MSVC v14.50 (Visual Studio Build Tools 2026),
OpenMP-parallel (`vcomp`), `/O2 /openmp`.
- Python wrapper module `sem_cython12.wrapper` exposing the public
numerical API.
- Single runtime dependency: `numpy >= 1.23`.
### API surface
Configuration:
- `available()`, `backend()`, `get_num_threads()`, `set_num_threads(n)`.
Distance and similarity:
- `batch_max_similarity(X_query, X_members, lam)`
- `concept_support_matrix(X_query, member_mats, lam)`
- `pairwise_distances(X)`
- `nn_distances(X)`
Best-tradeoff filtering:
- `pareto_core_mask(S)`
- `one_sided_mask(S)`
- `non_redundant_witnesses(S)`
Vector reduction:
- `extend_frontier_kernel(cur_centers, cur_radii, new_emb, cur_arity)`
### Compatibility
- CPython 3.12 (cp312) only in this release. Other Python versions
are not supported.
- Linux x86_64 with glibc 2.31 or newer (Ubuntu 20.04 LTS and later,
RHEL 9 and later, Debian 11 and later).
- Windows 10 / Windows 11 / Windows Server 2019+, AMD64 only.
- macOS binaries are not provided in this release. Contact
`sales@sevana.biz` if you need a macOS build.
### Notes
- Thread count defaults to roughly 50% of the host's logical cores.
Override via `sem_cython12.wrapper.set_num_threads(n)` or the
`SEM_NUM_THREADS` environment variable.
- The library performs no network I/O, opens no sockets, and writes
no files outside the calling process's working directory.
+50
View File
@@ -0,0 +1,50 @@
# Contributing to sem_cython12
Thank you for your interest in `sem_cython12`.
## Scope of this repository
This repository distributes pre-built binaries and the public Python
wrapper only. The implementation source code is not published here
and external code contributions to the kernels are not accepted at
this time.
## What you can contribute
- **Bug reports.** Open an issue at
https://git.sevana.biz/vvs/sem_cython12/issues with:
- OS, CPU architecture, glibc version (Linux) or Windows build,
- Python version (`python --version`),
- NumPy version,
- a minimal reproducer (small array shapes preferred),
- the full traceback or observed vs. expected output.
- **Documentation fixes.** Typos, broken links, unclear wording in
`README.md` or `CHANGELOG.md` are welcome via issue or pull request.
- **Usage questions.** Use the issue tracker. Please search existing
issues first.
## What is out of scope here
- Pull requests modifying `sem_cython12/sem_core12*.so` or
`sem_cython12/sem_core12*.pyd` (binary artefacts, built from a
separate source tree).
- Pull requests adding new numerical functions to
`sem_cython12/wrapper.py` (the wrapper mirrors a closed kernel API).
- Algorithmic discussion of the underlying methods.
## Security issues
Do not file security issues on the public tracker. See
[`SECURITY.md`](./SECURITY.md).
## Commercial inquiries
For commercial licensing, custom builds (including macOS), or
integration support, contact `sales@sevana.biz`.
## Code of conduct
Be respectful and on-topic. Off-topic, abusive, or commercially
solicitous issues will be closed without comment.
+55 -4
View File
@@ -173,18 +173,50 @@ written notice to you.
The disclaimers in sections 4 and 5 survive termination.
================================================================
7. NO TRANSFER OF OWNERSHIP
7. NO TRANSFER OF OWNERSHIP; PATENT AND TRADE MARK RESERVATION
================================================================
All right, title, and interest in and to the Software, including
all intellectual property rights therein, remain with the
all copyright, patent, patent application, trade secret, know-how,
and other intellectual property rights therein, remain with the
Licensor. This licence does not transfer ownership of the
Software, of any modification, or of any derivative work to the
Licensee.
Without limiting the foregoing:
(a) NO PATENT LICENCE IS GRANTED. This licence does not grant,
expressly, by implication, by estoppel, by exhaustion, or
otherwise, any rights under any patent, patent application,
or other patent-related right of the Licensor or its
affiliates.
(b) The algorithms, methods, and techniques implemented in the
Software may be the subject of pending or future patent
applications by the Licensor. Any use of those algorithms,
methods, or techniques in a manner that would require a
patent licence is reserved and requires separate written
permission from the Licensor.
(c) The marks "Similarity Induced Meaning", "SIM", and "SEM",
together with any abbreviations, slogans, or logos
associated with them, are intended trade marks of the
Licensor. This licence does not grant any right to use
those marks except for factual nominative reference (for
example, "this work uses the SIM/SEM apparatus") in a
context that does not suggest endorsement by, or
affiliation with, the Licensor.
(d) "sem_cython12" is the technical name of this Software
distribution and is NOT claimed as a trade mark by the
Licensor. Any use of the technical name in derivative or
referencing works is unrestricted, subject to the rest of
this licence.
This licence does not grant you any rights to use the Licensor's
name, trade marks, service marks, logos, or any other branding,
except as required by section 8 (Attribution).
except as required by section 8 (Attribution) and as permitted by
the factual-reference allowance in (c) above.
================================================================
8. ATTRIBUTION
@@ -210,7 +242,26 @@ shall be resolved in the competent courts of the Republic of
Estonia, to whose jurisdiction both parties submit.
================================================================
10. ENTIRE AGREEMENT
10. THIRD-PARTY COMPONENTS
================================================================
The Software depends at runtime on the following third-party
components, each of which is distributed under its own licence
and is not itself the subject of this licence:
(a) NumPy (BSD 3-Clause licence) - used as a runtime
dependency for array data structures.
(b) The OpenMP runtime supplied by the operating system or the
compiler toolchain (e.g., libgomp on Linux, vcomp on
Windows) - linked at compile time.
The Licensor does not relicense any third-party component; users
must comply with the terms of each component's own licence in
addition to this licence.
================================================================
11. ENTIRE AGREEMENT
================================================================
This licence constitutes the entire agreement between you and the
+29 -9
View File
@@ -1,24 +1,37 @@
# sem_cython12
OpenMP-parallel numerical kernel library for Python. Pre-built Linux
shared object included; no compilation required at install time.
OpenMP-parallel numerical kernel library for Python. Pre-built
Linux and Windows binaries included; no compilation required at
install time.
## 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/wrapper.py` - Python API.
- `sem_cython12/__init__.py` - package entry.
## Requirements
## Compatibility
- Linux x86_64.
- CPython 3.12.
- numpy >= 1.23 (see `requirements.txt`).
- A modern glibc + libgomp. Both ship with Ubuntu 20.04 LTS and
later. No other system libraries needed.
| 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) |
The Windows / macOS binaries are not included in this distribution.
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`.
Both binaries target CPython 3.12 (cp312) ABI. No other Python
version is supported in this release.
## Install
@@ -118,6 +131,13 @@ and benefits most from larger `M` (reference set) at fixed `D`.
(`libgomp`); avoid mixing with conda's `intel-openmp` in the same
process if possible.
## Privacy / telemetry
`sem_cython12` performs **no network I/O**, opens no sockets, and
writes no files outside the calling process's working directory.
There is no telemetry, no usage reporting, and no licence-server
check-in. All computation is in-process on local arrays.
## Diagnostics
`backend()` returns `'python-fallback'` only when the `.so` failed
+53
View File
@@ -0,0 +1,53 @@
# Security Policy
## Supported versions
Only the latest released version of `sem_cython12` receives security
fixes. The current supported line is `1.0.x`.
| Version | Supported |
|---------|-----------|
| 1.0.x | yes |
| < 1.0 | no |
## Reporting a vulnerability
Please report suspected security vulnerabilities **privately**, not on
the public issue tracker.
Email: **info@sevana.biz**
Include in your report:
- a description of the issue and its potential impact,
- the affected version(s) of `sem_cython12`,
- platform details (OS, architecture, Python version),
- a minimal reproducer if possible,
- whether the issue is already publicly known.
## What to expect
- **Acknowledgement** within **5 business days** of receipt.
- **Initial assessment** (severity, scope, reproducibility) within 15
business days.
- **Coordinated disclosure**: we will work with you on a disclosure
timeline. We aim to release a fix or mitigation before public
disclosure. Default embargo is up to 90 days from acknowledgement,
extendable by mutual agreement for non-trivial fixes.
- **Credit**: with your permission, we will credit you in the
`CHANGELOG.md` entry for the fix.
## Out of scope
- Issues that require an attacker to already control the Python
process running `sem_cython12` (e.g. arbitrary pickle loading,
malicious NumPy arrays constructed in-process).
- Denial-of-service via deliberately huge input arrays.
- Vulnerabilities in third-party dependencies (NumPy, OpenMP runtime)
that are not specific to `sem_cython12`'s use of them; please report
those upstream.
## No bug bounty
`sem_cython12` does not currently operate a paid bug bounty programme.
Reports are appreciated and will be acknowledged in writing.
Binary file not shown.