I don't really want to deal with CI, especially Jenkins, it's a major time sink 
and completely unnecessary with services like GitHub Actions these days, but 
let's see if I can figure out what needs to be done. If I take the 
Jenkinsfile_centos_cpu script for Python, it ends up calling functions from 
here, which basically install environments, runs builds, and executes stuff for 
Python:
https://github.com/apache/incubator-mxnet/blob/master/ci/docker/runtime_functions.sh
Is my understanding correct that these scripts are going to need some 
refactoring to be able to reuse some of that for Java?

If I follow my instincts, I think it's probably going to be easier to look at 
what's been done for the other minor bindings, such as Julia, but I'm not 
seeing anything in the Jenkins files for that one:
https://github.com/apache/incubator-mxnet/search?q=julia
How does that one work?

BTW, there's one thing we've neglected to cover. I was under the impression 
that MXNet was using Cython to access the C API for its Python binding, but it 
looks like it's using ctypes. TensorFlow started with SWIG, and now uses 
pybind11, and the closest Java equivalent for those is JavaCPP, that is they 
support C++ by generating additional code for bindings at build time, so it 
makes sense to use JavaCPP in the case of TensorFlow to be able to follow what 
the core developers are doing for Python.

On the other hand, if MXNet uses ctypes for Python, and has no intention of 
changing, the closest equivalent in Java land would be JNA. They are both 
"slow" (partly because of libffi) and support only C APIs, but they can 
dynamically link at runtime without having to build anything, and I'm assuming 
that's why there is no CI for Julia, for example. So, is the plan for Python to 
stick with ctypes? Browsing through 
https://github.com/apache/incubator-mxnet/issues/17097 I guess that's still not 
settled? In my opinion, it would make sense to harmonize the strategy of the 
binding for Java with the one for Python.

-- 
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-mxnet/issues/17783#issuecomment-740453066

Reply via email to