add byte-streams#51
add byte-streams#51piotr-yuxuan wants to merge 2 commits intoclj-easy:masterfrom piotr-yuxuan:master
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.