charm4py
charm4py copied to clipboard
Deprecate CTypes Backend
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.
Mentioning @rbuch and @matthiasdiener as I think you're the two within PPL that are involved in Charm4Py development.
It would be good to know what exactly is bad about ctypes before deprecating it.
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.