Cxx.jl Compatability with Julia 1.5+

The package Cxx.jl seems to be partially compatible with Julia 1.3, and not compatible with Julia 1.5+ (as referenced by this discourse post and #464).

Does Julia 1.5 introduce permanent incompatibilities with a project like Cxx.jl? Or is this a fix-able problem?

I’d be interested in helping contribute, but I wasn’t sure where to begin or where the incompatibilities lie, so I figured I’d post here to start.

2 Likes

For example, jl_get_llvmf_decl used in Cxx.jl here was removed from Julia in this PR.

1 Like

My understanding is that unless your name is Keno it’s practically unfixable :smiley:

6 Likes

:sweat_smile: I hope there will be more people who would like to get involved in the maintenance of Cxx.jl.

4 Likes

I am happy to contribute to Cxx.jl. I know enough C++ to be comfortable with details of C++ parsing.

I have been looking at the source code of Cxx.jl. My current thinking is that we need to get source build working first, and the first step is enabling CMake as a build tool for building libcxxffi. The reason I would like to enable CMake is that:

  1. CMake is the standard build tool for C++, for better or worse
  2. CMake can enable cross-platform compiling, potentially making Cxx.jl multi-platform
  3. CMake will make building against and linking to LLVM and Julia easier because LLVM uses CMake and there is a CMake module in brutus project for linking to Julia.

I am just getting into this, so this is preliminary.

7 Likes

Yep. We love CMake. The binary-build uses the following CMakeLists.txt.

https://github.com/Gnimuc/CxxBuilder/blob/master/libcxxffi/CMakeLists.txt

https://github.com/Gnimuc/CxxBuilder/blob/master/build_tarballs.jl

2 Likes

Hello, what’s the status of the compatibility of Cxx.jl with Julia 1.5+? I’m using Julia 1.5.3 and want to use a shared C++ library in Julia.

Please use CxxWrap instead. AFAICT, there is no plan to fix the compatibility issues for Julia 1.5.