~sbinet/go-hep

Re: ROOT Go reader

Sebastien Binet <work@sbinet.org>
Details
Message ID
<8Cz28V2Duy12xcLRc8IAclnghBhKh3cqIkGijZ5c@cp4-web-014.plabs.ch>
DKIM signature
missing
Download raw message
Hi Serguei,

(+cc Go-HEP list)

On Thu Feb 18, 2021 at 22:58 CET, Chekanov, Sergei wrote:
> Hi, Sebastien
>
> I've been looking at your ROOT file implementation in GO
>
> https://pkg.go.dev/go-hep.org/x/hep/groot
>
> I guess you are one of very few who understands ROOT file structure.

thanks but I wouldn't go so far :)
most of the time, I have been monkeying my way through code and asking
questions on roottalk to ping Ph. Canal.

also, the ROOT file structure is relatively well designed (it's a
relatively sound set of key-value binary blobs.)
the very annoying part is all the sophistication of streamers, the
interpretation of bytes for some classes "that way", for others "this
way", and the mechanics of data r/w through
T{Tree,Branch{,Element},Leaf{,Element},Basket}.

I have big hopes for the RNTuple library to clean up this accumulated
organic growth (and technical debt.)

>
> We are trying to solve this too (after David Blyth has left ANL).
> We are looking at how to implement it in Java. It looks to me Java
> implementation has a different path - create "proxy" classes in the
> memory, which is different from your approach.

it's the same approach than "old" PyROOT (and root4j, I guess) and
uproot.

I couldn't go that route with groot:
- Go doesn't have a JIT
- Go didn't have an interpreter
- Go didn't have templates/generics

> This gives us a lot
> problems. This implementation is located here:
>
> https://github.com/chekanov/RootIOreader
>
> (and Oracle even opened a ticket for this problem). Although, following
> the Go library, it very likely one can use a simpler approach.

Go-HEP uses a BSD-3 license, so feel free to dig in :)

in the end, the whole HEP community would greatly benefit from having a
set of I/O libraries that are interoperable and written in possibly
different languages.
Having those libraries following a clearly well defined specifications
document would be a definitive plus.
(that was my stand at the kick-off meeting of the HSF ~10yrs ago. I
still believe this to be true.)

cheers,
-s
Reply to thread Export thread (mbox)