Comfy-Org / Comfy-Org/comfy-kitchen
nanobind 3.0 fails with Clang targeting Windows: dllimport vectorcall aliases are not constant expressions
- Dominant language
- Python
- Stars
- 220
- Forks
- 91
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 12
Description
nanobind 3.0.0 fails to compile with Clang targeting the Windows/MSVC ABI. The failure occurs in the new vectorcall aliases:
```cpp
inline constexpr ret (*name) args = ⌖
```
On Windows, PyObject_Vectorcall and PyObject_VectorcallMethod are imported functions. Clang does not consider their addresses constant expressions.
The MSVC-compiled CUDA extension succeeds; the same nanobind backend fails when compiled by ROCm Clang.
Pinning nanobind<3 resolves the build failure but is only a WAR that might get lost over time.
Contributor guide
Research direction
Start by reproducing the Windows-targeting ROCm Clang build with nanobind 3.0.0 and inspect the new vectorcall aliases for PyObject_Vectorcall and PyObject_VectorcallMethod. Done means the ROCm Clang extension compiles without pinning nanobind below 3, while the existing MSVC CUDA build still succeeds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100