Hi,
nanobind 3.0.0 was released a few hours ago, and seems to have compatibility issues with islpy.
I attach below the compilation errors I get from my CI, they all seem to be related to the The None wrapper type announced in nanobind's changelog
Trimmed version of the compilation errors, post-processed by ChatGPT 5.6 Sol to avoid repetitions and highlight the relevant bits
[108/112] Building CXX object CMakeFiles/_isl.dir/src/wrapper/wrap_isl_part3.cpp.o
FAILED: [code=1] CMakeFiles/_isl.dir/src/wrapper/wrap_isl_part3.cpp.o
In file included from /tmp/islpy-src/src/wrapper/wrap_isl_part3.cpp:34:
/tmp/tmp3d0d7uzc/build/generated/gen-expose-part3.inc:
In function ‘void islpy_expose_part3(nanobind::module_&)’:
/tmp/tmp3d0d7uzc/build/generated/gen-expose-part3.inc:104:629:
error: no matching function for call to ‘nanobind::arg_t<>::none(bool)’
wrap_pw_qpolynomial.def(
"__init__",
...,
py::arg("s"),
py::arg("context").none(true)=py::none());
~~~~^~~~~~
In file included from
/usr/local/lib/python3.13/dist-packages/nanobind/include/nanobind/nanobind.h:60:
/usr/local/lib/python3.13/dist-packages/nanobind/include/nanobind/nb_attr.h:50:30:
note: candidate:
‘constexpr auto nanobind::arg_t<Flags, Locked>::none() const’
NB_INLINE constexpr auto none() const {
^~~~
note: candidate expects 0 arguments, 1 provided
The same error is repeated for:
wrap_pw_qpolynomial_fold
wrap_union_pw_qpolynomial
wrap_schedule
wrap_schedule_constraints
[109/112] Building CXX object CMakeFiles/_isl.dir/src/wrapper/wrap_isl_part2.cpp.o
FAILED: [code=1] CMakeFiles/_isl.dir/src/wrapper/wrap_isl_part2.cpp.o
/tmp/tmp3d0d7uzc/build/generated/gen-wrap-part2.inc:12929:37:
warning: ‘isl_set* isl_set_align_divs(isl_set*)’ is deprecated
/tmp/tmp3d0d7uzc/build/generated/gen-wrap-part2.inc:22395:37:
warning: ‘isl_map* isl_map_align_divs(isl_map*)’ is deprecated
/tmp/tmp3d0d7uzc/build/generated/gen-expose-part2.inc:
In function ‘void islpy_expose_part2(nanobind::module_&)’:
/tmp/tmp3d0d7uzc/build/generated/gen-expose-part2.inc:32:594:
error: no matching function for call to ‘nanobind::arg_t<>::none(bool)’
wrap_basic_set.def(
"__init__",
...,
py::arg("s"),
py::arg("context").none(true)=py::none());
~~~~^~~~~~
/usr/local/lib/python3.13/dist-packages/nanobind/include/nanobind/nb_attr.h:50:30:
note: candidate:
‘constexpr auto nanobind::arg_t<Flags, Locked>::none() const’
note: candidate expects 0 arguments, 1 provided
The same error is repeated for:
wrap_basic_map
wrap_set
wrap_map
wrap_union_map
wrap_union_set
[110/112] Building CXX object CMakeFiles/_isl.dir/src/wrapper/wrap_isl_part1.cpp.o
FAILED: [code=1] CMakeFiles/_isl.dir/src/wrapper/wrap_isl_part1.cpp.o
Warnings unrelated to the build failure:
warning: ‘isl_space* isl_space_extend(...)’ is deprecated
warning: ‘isl_space* isl_space_drop_inputs(...)’ is deprecated
warning: ‘isl_space* isl_space_drop_outputs(...)’ is deprecated
warning: ‘isl_bool isl_space_match(...)’ is deprecated
/tmp/islpy-src/src/wrapper/wrap_isl_part1.cpp:
In function ‘void islpy_expose_part1(nanobind::module_&)’:
/tmp/islpy-src/src/wrapper/wrap_isl_part1.cpp:104:47:
error: no matching function for call to ‘nanobind::arg_t<>::none(bool)’
}, py::arg("i"), py::arg("context").none(true)=py::none()
^
/usr/local/lib/python3.13/dist-packages/nanobind/include/nanobind/nb_attr.h:50:30:
note: candidate:
‘constexpr auto nanobind::arg_t<Flags, Locked>::none() const’
note: candidate expects 0 arguments, 1 provided
/tmp/islpy-src/src/wrapper/wrap_isl_part1.cpp:154:27:
error: no matching function for call to ‘nanobind::arg_t<>::none(bool)’
py::arg("user").none(true)=py::none(),
~~~~^~~~~~
/tmp/islpy-src/src/wrapper/wrap_isl_part1.cpp:155:30:
error: no matching function for call to ‘nanobind::arg_t<>::none(bool)’
py::arg("context").none(true)=py::none()
~~~~^~~~~~
The same error is repeated in generated bindings for:
wrap_id_list
wrap_val_list
wrap_set_list
wrap_map_list
wrap_aff_list
wrap_pw_aff_list
wrap_pw_multi_aff_list
wrap_union_pw_aff_list
wrap_union_set_list
wrap_val
wrap_multi_val
wrap_aff
wrap_pw_aff
wrap_union_pw_aff
wrap_multi_aff
wrap_multi_pw_aff
wrap_pw_multi_aff
wrap_union_pw_multi_aff
wrap_multi_union_pw_aff
wrap_id
wrap_multi_id
wrap_space
All report:
error: no matching function for call to
‘nanobind::arg_t<>::none(bool)’
with nanobind providing only:
constexpr auto none() const
and therefore:
candidate expects 0 arguments, 1 provided
ninja: build stopped: subcommand failed.
*** CMake build failed
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for islpy
Failed to build islpy
Hi,
nanobind3.0.0 was released a few hours ago, and seems to have compatibility issues withislpy.I attach below the compilation errors I get from my CI, they all seem to be related to the
The None wrapper typeannounced in nanobind's changelogTrimmed version of the compilation errors, post-processed by ChatGPT 5.6 Sol to avoid repetitions and highlight the relevant bits