-
Notifications
You must be signed in to change notification settings - Fork 48
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
add byte-streams #51
base: master
Are you sure you want to change the base?
add byte-streams #51
Conversation
Cool. Now we know |
The tricky thing with this library is the fact it uses the single segment package name which makes it extremely hard to native-compile with GraalVM without |
Will suggest a patch against |
Cool! Thanks for that. Please make sure your changes are minimal, so that we can ensure the backward compatibility for byte-streams :) |
Hi @piotr-yuxuan, thx for the PR. Please remove the template, versions are changing so fast that I don't think there is much values on capturing these. The idea of testing the builds with the different GraalVM versions and building a build matrix already came up in some earlier discussions, if you are keen we are open to a PR for that. If you intend to work on it, please open a separate issue/PR for the related discussions so that we keep this about |
I will exercice code with some more test cases to have more confidence, then I'll mark the PR ready for review. |
@piotr-yuxuan I can see the |
primitive-math is a library that comes up more often! for dtype.next it was inlined for this reason: https://github.com/cnuernber/dtype-next/blob/master/third-party/com/github/ztellman/primitive_math.clj |
Wondering if the library could be donated to |
FYI @ztellman #51 (comment), would you consider donating
|
Zach's not very active in clj these days, but he's been generally amenable to putting his code under clj-commons, so I doubt that would be an issue. My bigger concern is breaking backwards-compatibility in byte-streams and primitive-math. Is there a pointer to the problem with GraalVM? I know single-segment namespaces aren't recommended, but being unable to handle them seems more like a bug in GraalVM, no? |
@KingMob It's not an issue with GraalVM, but with https://github.com/clj-easy/graal-build-time. The way I solved this for https://github.com/clj-commons/digest/blob/master/src/clj_commons/digest.clj is to copy the single segment namespace |
Hmmmm. I'm not a fan of the duplication, but primitive-math and byte-streams are pretty small. Byte-streams isn't especially popular, but primitive-math has 4 million downloads. OTOH, they're both pretty stable, so I doubt people who fail to update their requires will miss much. They each have a single top-level file; I should be able to copy those down a level to something like |
I would also consider |
Btw, yes, it's either duplication or breaking changes. I think it's better to have duplication + backwards compatibility. |
@piotr-yuxuan Did you see my DM on Clojurians Slack? |
I've been able to compile lacinia in these environments:
Also, I suggest to add a PR template. Feel free to amend or remove it.
In addition to this, what would the maintainers think about a GitHub action to test that everything compiles correctly when a PR is open, and periodically tries to update library versions? Parallel jobs and build matrix could come handy here. If there were any interest, happy to think more about it.