pyo3 icon indicating copy to clipboard operation
pyo3 copied to clipboard

ci: start testing on 3.13-dev

Open davidhewitt opened this issue 1 year ago • 4 comments

Now that 3.13 beta 1 is out, we should really look at testing 3.13. Let's start by running in CI and see what happens...

davidhewitt avatar May 14 '24 13:05 davidhewitt

CodSpeed Performance Report

Merging #4184 will not alter performance

Comparing davidhewitt:3.13-dev (5209e6f) with main (7790dab)

Summary

✅ 68 untouched benchmarks

codspeed-hq[bot] avatar May 14 '24 14:05 codspeed-hq[bot]

FYI, the manylinux images have a free threading build if you need it.

henryiii avatar May 15 '24 21:05 henryiii

FYI, the manylinux images have a free threading build if you need it.

Thanks, great to know! I will hopefully be looking into that before long...

davidhewitt avatar May 15 '24 23:05 davidhewitt

🎉 looks like this is ready! I think there's a lot of FFI cleanup yet to be actioned, but that can happen later as a follow-up ticket. Here I just did enough to get CI green.

davidhewitt avatar May 16 '24 18:05 davidhewitt

Anyone want to give this a review before I click to merge? It would be nice to proceed towards unblocking downstream!

davidhewitt avatar May 24 '24 14:05 davidhewitt

I notice pyo3-ffi/src/ceval.rs has various functions deprecated by https://peps.python.org/pep-0667/. I think only PyEval_GetBuiltins is used elsewhere, though, so I think it's fine for now (3.13 PyEval_GetLocals was leaking in pybind11). Maybe these should be updated at some point?

$ git grep -E 'PyEval_GetLocals|PyEval_GetGlobals|PyEval_GetBuiltins|\.f_locals'
pyo3-ffi/src/ceval.rs:55:    #[cfg_attr(PyPy, link_name = "PyPyEval_GetBuiltins")]
pyo3-ffi/src/ceval.rs:56:    pub fn PyEval_GetBuiltins() -> *mut PyObject;
pyo3-ffi/src/ceval.rs:57:    #[cfg_attr(PyPy, link_name = "PyPyEval_GetGlobals")]
pyo3-ffi/src/ceval.rs:58:    pub fn PyEval_GetGlobals() -> *mut PyObject;
pyo3-ffi/src/ceval.rs:59:    #[cfg_attr(PyPy, link_name = "PyPyEval_GetLocals")]
pyo3-ffi/src/ceval.rs:60:    pub fn PyEval_GetLocals() -> *mut PyObject;
src/marker.rs:682:                let builtins = ffi::PyEval_GetBuiltins();
src/marker.rs:684:                // `PyDict_SetItem` doesn't take ownership of `builtins`, but `PyEval_GetBuiltins`

Edit: Ah, didn't read the above

I think there's a lot of FFI cleanup yet to be actioned, but that can happen later as a follow-up ticket.

Perfect, never mind then. :)

henryiii avatar May 24 '24 14:05 henryiii