-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpyproject.toml
More file actions
96 lines (80 loc) · 3.93 KB
/
Copy pathpyproject.toml
File metadata and controls
96 lines (80 loc) · 3.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
[build-system]
requires = ["scikit-build-core>=0.10", "pybind11>=2.13"]
build-backend = "scikit_build_core.build"
# ── Package metadata ──────────────────────────────────────────────────────────
[project]
name = "t81"
version = "1.9.2"
description = "Deterministic ternary VM, governed AI inference, and bit-exact reproducibility"
readme = "README.md"
license = { text = "Apache-2.0" }
requires-python = ">=3.9"
keywords = [
"ternary", "vm", "ai", "deterministic", "inference",
"governance", "balanced-ternary", "reproducibility",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Software Development :: Interpreters",
"Typing :: Typed",
]
[project.urls]
Homepage = "https://github.com/t81dev/t81-foundation"
Documentation = "https://github.com/t81dev/t81-foundation/tree/main/docs"
Repository = "https://github.com/t81dev/t81-foundation"
"Issue Tracker" = "https://github.com/t81dev/t81-foundation/issues"
# ── scikit-build-core ─────────────────────────────────────────────────────────
[tool.scikit-build]
# Force the Python extension on; auto-detection is for developer builds only.
cmake.args = [
"-DT81_BUILD_PYTHON_BINDINGS=ON",
"-DT81_BUILD_TESTS=OFF",
"-DT81_BUILD_EXAMPLES=OFF",
"-DT81_BUILD_BENCHMARKS=OFF",
]
cmake.build-type = "Release"
# Pure-Python package lives in ffi/python/; the compiled _t81.so is installed
# into t81/ by the CMake install() rule and picked up automatically.
wheel.packages = ["ffi/python"]
# ── cibuildwheel ─────────────────────────────────────────────────────────────
[tool.cibuildwheel]
# Build CPython 3.9–3.13; skip 32-bit and musl targets.
build = "cp39-* cp310-* cp311-* cp312-* cp313-*"
skip = ["*-win32", "*-manylinux_i686", "*-musllinux*"]
# cmake and ninja are available as pip packages — no OS-level install needed.
before-build = "pip install cmake ninja"
test-command = "python -c \"import t81; assert t81.compile_and_run('fn main() -> i32 { return 1; }') == 1\""
# ── Linux: manylinux_2_28 + GCC 13 ───────────────────────────────────────────
# manylinux2014 ships GCC 10 which does not support cxx_std_23.
# manylinux_2_28 (AlmaLinux 8) ships GCC 12; gcc-toolset-13 adds GCC 13
# which fully supports C++23 as required by T81.
# CC/CXX must be set explicitly so CMake picks up the toolset compiler.
[tool.cibuildwheel.linux]
manylinux-x86_64-image = "manylinux_2_28"
manylinux-aarch64-image = "manylinux_2_28"
before-all = "dnf install -y gcc-toolset-13 gcc-toolset-13-gcc-c++ gcc-toolset-13-libstdc++-devel"
environment = {CC = "/opt/rh/gcc-toolset-13/root/usr/bin/gcc", CXX = "/opt/rh/gcc-toolset-13/root/usr/bin/g++"}
# Per-platform arch is controlled by CIBW_ARCHS in the workflow matrix,
# one runner per architecture, to avoid cross-compilation failures.
# ── mdformat (pre-existing) ───────────────────────────────────────────────────
[tool.mdformat]
extensions = [
"gfm",
"frontmatter",
]
exclude = [
"build/",
"legacy/",
]
[tool.mdformat.number]
enable = true