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:
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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.
Reference in New Issue
Block a user