Support and compatibility

Tensor0 is experimental, pre-1.0 software. Use it with pinned dependencies and validate the numerical paths needed by your application; production readiness, performance and exhaustive coverage are not promised.

Execution baseline

Area Policy
Released numerical runtime Linux x86_64 CPU (glibc >=2.28) and macOS 15+ ARM64 CPU, with JAX 0.10.1 and JAXLIB 0.10.1
Python CPython 3.11–3.14 tested CPU wheel matrix on both platforms; 3.11 numerical baseline
Published wheels 0.2.0 on PyPI, released 2026-10-12; eight core wheels, including hosted macOS 15 acceptance; no Rust/C++ compiler needed
Native source build Rust >=1.87, C++20 compiler; see Installation
CUDA Published, experimental Linux x86_64 tensor0-cuda12 0.2.0 companion; bounded A100 (sm_80) operation/dtype/AD matrix, not full API support; no macOS CUDA
Other platforms/backends or JAX versions Not supported numerical execution targets

The package's Python >=3.11 metadata is an eligibility range, not proof that all future interpreters work. CI results establish only the versions, platforms and paths actually executed. Skipped device tests are not acceptance evidence.

Unavailable native stride routes fail explicitly; Tensor0 does not silently substitute element-address gather/scatter or transfer unsupported CUDA work to CPU. Native FFI operations appear as stablehlo.custom_call in compiler IR; there is no separate pure-StableHLO stride backend.

JAX x64 and matmul precision settings affect dtypes and numerical accuracy. Numerical acceptance uses operation-appropriate tolerances, not general bitwise agreement across devices, compiler versions or worker counts. See the contraction numerical contract, usage boundaries and CUDA matrix for restrictions.

Public API before 1.0

The API inventory identifies public exports from tensor0 and tensor0.structure; the usage and contraction guides describe their contracts. Underscore-prefixed modules, native registration/FFI interfaces and internal layouts not documented as public are implementation details. Do not depend on their import paths, binary ABI or serialization across versions.

Before 1.0, patch releases (0.x.y to 0.x.(y+1)) preserve backward compatibility of the documented public API. Breaking public API changes require a minor release (0.x to 0.(x+1)) and migration guidance in the changelog. This policy covers documented names, signatures and behavior, not internal layouts, binary ABI, execution plans or performance. Bug fixes may correct behavior that violates the documented contract; numerical results remain subject to the stated tolerances rather than bitwise stability.

There is no guaranteed deprecation window or backport/LTS commitment. Pin the Tensor0 artifact or source commit as well as its runtime dependencies for reproducibility. A future 1.0 compatibility policy must be stated explicitly; it is not implied here.

Reporting problems

Open a GitHub issue with a minimal reproducer, expected and actual behavior, Tensor0 version and source commit, Python/JAX/JAXLIB versions, OS/architecture, device/backend, storage and coefficient dtypes, x64/matmul precision settings, and whether JIT/AD is used. For builds, include Rust/compiler versions, build command, job count and memory limit. Unsupported environments can be reported, but a report is not a promise to expand support or provide a fix on a deadline.