[Mlir-commits] [mlir] [MLIR:Python] Fix race on PyOperations. (PR #139721)

Peter Hawkins llvmlistbot at llvm.org
Tue May 13 06:58:55 PDT 2025


hawkinsp wrote:

> `liveOperations` strikes again!
> 
> Regarding
> 
> > and it's probably good for the world that we don't end up with many copies of the fallback implementation
> 
> Is it "n00b" to propose that rathe than copy-pasting the impl from nbbind we just rely on the detail/impl via the same `extern`? I.e., couldn't we just copy-paste ([roughly](https://github.com/wjakob/nanobind/blob/62fc996018d9ea4d51af9c86cf008c2562b4eeab/src/nb_ft.h#L26-L38))
> 
> ```c++
> #if PY_VERSION_HEX >= 0x030E00A5
> /// Sufficiently recent CPython versions provide an API for the following operations
> inline void nb_enable_try_inc_ref(PyObject *obj) noexcept {
>     PyUnstable_EnableTryIncRef(obj);
> }
> inline bool nb_try_inc_ref(PyObject *obj) noexcept {
>     return PyUnstable_TryIncRef(obj);
> }
> #else
> /// Otherwise, nanabind ships with a low-level implementation
> extern void nb_enable_try_inc_ref(PyObject *) noexcept;
> extern bool nb_try_inc_ref(PyObject *obj) noexcept;
> #endif
> ```

I'd worry about symbol visibility if you did that, given that nanobind didn't intend to make these public.

https://github.com/llvm/llvm-project/pull/139721


More information about the Mlir-commits mailing list