Skip to content
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

Consider switching to python ABI packages cp38 #1383

Open
mrexodia opened this issue Dec 24, 2024 · 2 comments
Open

Consider switching to python ABI packages cp38 #1383

mrexodia opened this issue Dec 24, 2024 · 2 comments

Comments

@mrexodia
Copy link
Contributor

mrexodia commented Dec 24, 2024

I did this for the icicle-python project (which uses rust), but it greatly simplifies things to only have to build wheels once per OS. The main issue here is building for linux, but there are nice docker images for manylinux: https://github.com/icicle-emu/icicle-python/blob/main/.github/workflows/CI.yml#L102. You also do not need to support new python versions, because the binaries work for whatever ABI you pick

Related issues:

@cnheitman
Copy link
Collaborator

Hi! I think this is a good approach that can simplify a lot as you say.

I took a look at this idea some time ago. IIRC the main limitation was in the bindings/python/utils.cpp file, with the conversions from PyLong to the different Triton types. I think some of them can be fixed by using functions available in the API. However, for functions such as PyLong_AsUint256 and PyLong_AsUint512 the fix does not seem straightforward (if you want to keep compatibility with all the current Python version).

Anyway, I will take another look and see what I can do.

Btw, did you run into a similar issues in icicle-python? Any idea on how to deal with this in a clean way?

@cnheitman
Copy link
Collaborator

I've started experimenting with this in feature/py-limited-api.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants