-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add prerelease testing for CPython 3.13 to CI #119
Conversation
Looks like building against flint main fails for
Maybe there are incompatible changes to the signatures of functions that operate with |
Looks like this was changed in flintlib/flint#1754 |
Yes, this will be a notable compatibility-breaking change in 3.1 (unfortunate but badly needed to make things consistent internally). There could be others, but hopefully nothing as major. |
I don't think it would be hard to change the |
The python-flint fmpz_mod_mat type already stores a reference to an associated We can probably do something like: # fmpz_mod_mat.pxd
cdef extern from *:
"""
/*
* fmpz_mod_mat function signatures were changed in flint 3.1.0
*/
#if __FLINT_RELEASE >= 30100
void fmpz_mod_mat_clear_compat(fmpz_mod_mat_t mat, fmpz_mod_ctx_t ctx) {
fmpz_mod_mat_clear(mat, ctx);
}
#else
void fmpz_mod_mat_clear_compat(fmpz_mod_mat_t mat, fmpz_mod_ctx_t ctx) {
fmpz_mod_mat_clear(mat);
}
#endif
"""
cdef extern from "flint/fmpz_mod_mat.h":
void fmpz_mod_mat_clear_compat(fmpz_mod_mat_t mat, fmpz_mod_ctx_t ctx)
# fmpz_mod_mat.pyx
cdef class fmpz_mod_mat:
...
def __dealloc__(self):
fmpz_mod_mat_clear_compat(self.mat, self.ctx) |
This is needed to support both Flint 3.1.0 at the same time as earlier versions since the signatures of most fmpz_mod_mat functions are changed in Flint 3.1.0.
Okay, all sorted and works with latest Flint from git as well as previous versions. |
Add prerelease testing for CPython 3.13 to CI
It would also be good to add a job that builds flint from git trunk...