JuliaHEP / ROOT.jl

CERN ROOT compatiblility for Julia
Other
43 stars 9 forks source link

Make ROOT.jl Julia v1 compatible #15

Closed Moelf closed 4 years ago

Moelf commented 6 years ago

Also, inspired by https://github.com/scikit-hep/uproot/ , do you think it's possible to have Julia native ROOT io functionality?

edit: we have it now! https://github.com/tamasgal/UnROOT.jl

oschulz commented 6 years ago

I definitely plan to make ROOT.jl run on Julia v0.7/v1.0 as soon as possible. But this depends on Cxx.jl, and that's not available on v0.7/v1.0 yet - @Keno told be that Cxx.jl will be ported soon, though.

isentropic commented 6 years ago

How is the issue going on? If possible I'd like to contribute if possible, this is definitely one of the major things that keeps me away from switching to Julia completely.

oschulz commented 6 years ago

I feel you, I have some things that are held up by this myself ... I'm sure that Cxx.jl will be ported to Julia v1.0, but it seems to take a bit longer than expected. See Keno/Cxx.jl#390 and Keno/Cxx.jl#393. More people demonstrating a need for this may improve the priority of the Cxx.jl port.

joliver92 commented 5 years ago

Hi @oschulz not sure if you saw but Keno's Cxx appears to have been updated for v1.0 Not sure what will need to be done but I guess you understand the package better than anyone =)

oschulz commented 5 years ago

Yes, I saw - thanks, Keno!! Haven't tested it yet - apparently there's still something with the build to figure out. I may wait a few days until @Keno tags a new Cxx.jl release.

Then I'll have to port the modified Julia binary that allows ROOT's and Julia's LLVM to coexist to Julia v1.0 - I hope that won't be too hard, but no promises until I've tried. ;-)

oschulz commented 5 years ago

A few days ago, a Julia-v1 compatible version of Cxx.jl was released. As soon as I can find some time, I'll try make ROOT.jl Julia-v1 compatible as well. I did a few quick tests, as usual, ROOT doesn't like to find Julia's LLVM instance in memory, so the special executable workaround will be necessary again.

oschulz commented 5 years ago

Also see #16.

ShamrockLee commented 4 years ago

The code of a v1.3 compatible Cxx seems ready, and the PR by @Gnimuc would be made soon. https://github.com/JuliaInterop/Cxx.jl/issues/444

oschulz commented 4 years ago

Yes! :-) I guess we still have to update ui.cc and build.jl though - want to try your hand on it, @ShamrockLee?

ShamrockLee commented 4 years ago

@oschulz I was mistaken about some error messages. Sorry for bothering.

oschulz commented 4 years ago

No worries, I'm very happy about you taking initiative here - I should have gotten on this a while ago, but was (and still am) blocked by work on other packages ...

oschulz commented 4 years ago

@Moelf , why did you close this?

Moelf commented 4 years ago

I was cleaning my opened issues.

I think a C++ ROOT wrapper for Julia is not maintainable, maybe better use uproot wrapper or UnROOT.jl

(maybe the up coming RNTuple and librootio will save us too.

oschulz commented 4 years ago

Ah, right :-)

I think a C++ wrapper would be mainainable if Cxx.jl wouldn't break with every new Julia version and the ROOT people would sort out the LLVM conflicts - but for now, I think you are right, UpROOT.jl and UnROOT.jl will be the better options.