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

Deprecate CTypes Backend #193

Open
ZwFink opened this issue Dec 23, 2020 · 3 comments
Open

Deprecate CTypes Backend #193

ZwFink opened this issue Dec 23, 2020 · 3 comments

Comments

@ZwFink
Copy link
Contributor

ZwFink commented Dec 23, 2020

Currently, Charm4Py uses 3 different backends to interface with the Charm++ runtime library: Cython, CFFI, and Ctypes. In the manual, Cython and CFFI are recommended for different Python builds, but Ctypes is not recommended. It also doesn't look like there is a way to build Charm4Py with the Ctypes backend in the installation script.

Given this, I think it would be appropriate to deprecate the Ctypes backend to reduce the amount of work required to make changes to the Charm++/Charm4Py interface.

@ZwFink
Copy link
Contributor Author

ZwFink commented Dec 23, 2020

Mentioning @rbuch and @matthiasdiener as I think you're the two within PPL that are involved in Charm4Py development.

@evan-charmworks
Copy link
Contributor

It would be good to know what exactly is bad about ctypes before deprecating it.

@rbuch
Copy link
Contributor

rbuch commented Dec 23, 2020

I think this probably makes sense to do. Based on a cursory investigation, it seems like CFFI is basically a better replacement for Ctypes, the only caveat being that Ctypes is in the standard library, so it's perhaps a bit more portable, but I think that's moot given the state of Python package management.

It might also be worth looking into cppyy or pybind11, if they improve performance or ease of use.

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

3 participants