[
https://issues.apache.org/jira/browse/PROTON-2095?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17357585#comment-17357585
]
ASF GitHub Bot commented on PROTON-2095:
----------------------------------------
astitcher commented on pull request #318:
URL: https://github.com/apache/qpid-proton/pull/318#issuecomment-854956723
I'm really excited to see someone working to make the python bindings based
on cffi rather than swig. I think this will bring significant benefits to
Proton in build simplicity and dependencies.
Looking at these changes I have a few comments:
1. There seem to be many gratuitous spacing changes, which really detract
from being able to see what is really changed to support the move to CFFI and
things that are arguably a matter of taste or at least non functional. I'm not
at all against these changes I just think it's important to separate them so
that the actual functional changes are 'front and centre' and can be celarly
reviewed.
2. I think the layering in this code is wrong:
I think it is a requirement to keep the existing `pn_..` interfaces
unchanged or as unchanged as possible. I think that the cffi binding should be
a drop in replacement for `import cproton` as there a number of places where
this is used: Not least currently to test the c code itself. This means I
expect minimal changes to the existing python code which imports cproton and
uses it.
I definitely don't expect `ffi `types (`ffi.null` for example) to be present
in the major python binding code.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Move away from SWIG to CFFI
> ---------------------------
>
> Key: PROTON-2095
> URL: https://issues.apache.org/jira/browse/PROTON-2095
> Project: Qpid Proton
> Issue Type: Wish
> Components: python-binding
> Affects Versions: proton-c-future, proton-c-0.29.0
> Reporter: Omer Katz
> Assignee: Arunagirinadan Sudharshan
> Priority: Major
> Fix For: proton-c-future
>
>
> SWIG is fine but we're not using it for anything other than exporting all of
> proton-c's API as is.
> Unfortunately SWIG only generates CPython extension bindings. This may be a
> problem on PyPy where CPython extensions are either slow or simply won't
> compile.
> Unlike SWIG, CFFI is portable both on CPython and PyPy.
> It also satisfies the same requirements as SWIG currently does.
> In addition, calls to CFFI simply release the GIL which will help
> parallelizing Python applications using threads.
> By using CFFI we can also get rid of all of our setup.py code and simply use
> it to build the extension. We will also no longer have problems building
> wheels.
> The newest version of CFFI supports pkg-config so we can use that to find
> proton-c easily.
> I'm willing to help with the refactor but I'll need a mentor since I'm not
> familiar with the code base.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]