-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EKO Rust reader v2 #400
EKO Rust reader v2 #400
Conversation
I'm now ready for some feedback - someone please?. While @alecandido would be an ideal candidate we can not assume something on his availability - so @cschwan could you please take a look? e.g. on my usage of Rust 🙃 |
I will review again the As the amount of characters, that's clearly one of the easiest. But it's still a bit less explicit, because conceptually they're two operations instead of a single one (though I hope they're getting optimized to the same binary). In any case, it's really a detail. It's just for better understanding the mechanics of |
the " ✔️ "* does (in case I forget) 🙃 (* in the inline preview the thing is properly green, but not in the preview tab ...) |
This just depends on the font rendering the emoji xD |
Ah, just for some more fun, the |
@cschwan I hit myself the Norway problem in a project within NNPDF (don't remember exactly which and when). Outside NNPDF, we got a huge speed-up by dropping YAML in favor of JSON (parsers are much simpler and much more optimized). (moreover, the main benefit of YAML is being human-readable - and writable - and I've seen it used a lot for things that were supposed not to be touched by humans, like here in EKO...) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with the last @cschwan review, but they are all tiny improvements (that I'd recommend applying).
Other than that, the PR should be fine, for EKOs containing integration errors.
As I said, most of the EKO (if not all those produced for FK tables) should not contain the errors, since we switched the default to optimize disk and memory consumption (these errors are never used in the pineline). So, in practice, I expect dekoder
not to be ready for production yet.
In any case, the npz/npy problem could be faced in another PR, possibly changing at the same time the format, getting rid of the npz.
This would be a breaking data format change, so, in principle, it should be scheduled for a major release, and even a data format version bump. However, as said above, the EKOs that are going to be broken I expect to be unused, and you can check it quickly on existing EKOs with something like tar -t myeko.tar | grep npz
. I'd suggest doing this, before breaking something to @scarlehoff :P
Second attempt of #97 and restart of #260
serde_yaml
used there and inpineappl
is dead, the maybe-successorserde_yml
is still 0.0 which I didn't dare to use and so I opted ofyaml-rust2
inventories
is a direct mirror of the Python side to keep this idea in mind. The actual Python interface will not be in this PR, but possibly in a later.dekoder
as a pure Rust package and put the Python interface somewhere else (e.g. intoeko
). This follows another idea of @alecandido to keep a dedicated Python interface layer to not clutter the actual library (see alsopineappl
andpineappl_py
) (or any additional interfaces)This idea leads to the following structure:Rust passes ownership on return (see e283553)EvolutionPoint
and PineAPPL will have to deal with that