JuliaInterop / libcxxwrap-julia

C++ library for backing CxxWrap.jl
Other
85 stars 43 forks source link

C++ exception while wrapping module LCIO: No appropriate factory for type N5jlcxx12ObjectIdDictE #57

Closed jstrube closed 4 years ago

jstrube commented 4 years ago

I'm trying to update my code to the new version of libcxxwrap-julia, and now I'm getting this error message. This only appears when running the tests in Julia (against CxxWrap v0.11). The C++ compilation step is fine. I thought only the copy constructor changed. What are the changes I need on the C++ side to update?

jstrube commented 4 years ago

It looks like this was caused because I caught a bad time for building my lib. Looks ok when building with the latest version of the lib locally. I'll fix the versions in the build script to be sure.

jstrube commented 4 years ago

I tried compiling locally against v0.8, and this disappeared. Fixing the dependency version in Yggdrasil causes the issue to re-appear, though. Compiling locally for FastJet against v0.8 also causes this issue, even though the setup is otherwise the same as for LCIO. Not sure what triggers this.

The Yggdrasil version built against v0.8 *does work*. So, now it's only FastJet that still has this issue. Will keep looking.
jstrube commented 4 years ago

Not sure what's going on, but there were some artifacts that were stuck somewhere. Building my CI script without specifying the architecture (it only contains one anyway) seems to work. Sorry for the noise.

barche commented 4 years ago

ObjectIdDict was used in libcxxwrap-julia 0.7 to wrap deepcopy_internal, so my guess is that this happens if you are using binaries linked to the old libcxxwrap with the new version loaded.