Problem
fs_backend wheels are tagged cp312-cp312 — locked to one Python
version. vLLM publishes cp38-abi3 wheels, where one .so works on any
cpython 3.8+.
PR #566 tried this and hit a wall: torch 2.10's bundled pybind11 uses
non-stable-API macros (PyTuple_SET_ITEM), so Py_LIMITED_API breaks
every <torch/extension.h> consumer. We ship cp312 today and defer
abi3 to this issue.
Path forward
Bindings need to stop pulling torch's pybind11. Two options:
- TorchBind: swap
pybind11::class_<> for torch::class_<>
(dispatcher path). Smaller diff; setup.py stays.
- CMake + system pybind11 (vLLM's approach): bigger build-system
rewrite, more flexibility.
Acceptance
Problem
fs_backend wheels are tagged
cp312-cp312— locked to one Pythonversion. vLLM publishes
cp38-abi3wheels, where one .so works on anycpython 3.8+.
PR #566 tried this and hit a wall: torch 2.10's bundled pybind11 uses
non-stable-API macros (
PyTuple_SET_ITEM), soPy_LIMITED_APIbreaksevery
<torch/extension.h>consumer. We ship cp312 today and deferabi3 to this issue.
Path forward
Bindings need to stop pulling torch's pybind11. Two options:
pybind11::class_<>fortorch::class_<>(dispatcher path). Smaller diff; setup.py stays.
rewrite, more flexibility.
Acceptance
llmd_fs_connector-...-cp38-abi3-manylinux_2_35_<arch>.whl