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

[FEA] Phase out CFFI from libcudf #599

Closed
jrhemstad opened this issue Dec 21, 2018 · 1 comment · Fixed by #1590
Closed

[FEA] Phase out CFFI from libcudf #599

jrhemstad opened this issue Dec 21, 2018 · 1 comment · Fixed by #1590
Assignees
Labels
feature request New feature or request libcudf Affects libcudf (C++/CUDA) code. proposal Change current process or code Python Affects Python cuDF API.

Comments

@jrhemstad
Copy link
Contributor

Is your feature request related to a problem? Please describe.
Currently both CFFI and Cython bindings are being built for the libcudf API. CFFI is problematic because it requires us to enforce a pure C interface in the external libcudf APIs. Furthermore, we cannot have any include statements in the files parsed by CFFI.

Describe the solution you'd like
We should fully phase out CFFI in favor of Cython. In this way, new APIs can be made to be C++ and old APIs can be converted (if desired) from their C interfaces to C++ interfaces.

Additional context
As I understand it from @mt-jones, all of the libcudf bindings to cuDF are already updated to Cython, therefore we should have no problem fully removing CFFI.

@jrhemstad jrhemstad added feature request New feature or request Needs Triage Need team to review and classify proposal Change current process or code libcudf Affects libcudf (C++/CUDA) code. Python Affects Python cuDF API. and removed Needs Triage Need team to review and classify labels Dec 21, 2018
@dantegd dantegd self-assigned this Dec 22, 2018
@dantegd
Copy link
Member

dantegd commented Dec 22, 2018

Responding with the status for full migration:

  • Most bindings have been written/updated to Cython already, some (quite a few actually) I haven't pushed, my attention has been big time on the other side of the river lately (aka cuML). But this should be done not much after the holidays.
  • We can already start adding C++ functionality in separate .hpp headers as suggested by a very smart person (aka yourself @jrhemstad ;) ). Then they can be wrapped with cython already skipping cffi.
  • Full transition will happen before 0.5 is complete, but I would strongly encourage not deleting the cffi files until branch-0.6 is open. This is so that 0.5 includes the code in case that a binding bug would escape us, a fast hotfix to roll back to cffi can be done for 0.5 for fast bug resolution then. 0.6 then should be fully cffi free (queue party sounds).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature or request libcudf Affects libcudf (C++/CUDA) code. proposal Change current process or code Python Affects Python cuDF API.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants