clj-commons

Matthew Davidson 2022-04-03T05:53:38.812749Z

@skynet I think we'd prefer to put it under the clj-commons banner. core is usually a single file in Clojure, not a namespace nesting.

👍 1
2022-04-05T11:37:12.152519Z

let me look into the reify thing more then. either way it doesn't seem to be mandatory to get it working

2022-04-05T11:39:53.505929Z

cool, I'll update my byte-streams pr and start a gloss one. I think it might be good to copy gloss into clj-commons too since I'm changing code, so it won't potentially break people

2022-04-06T01:11:03.485159Z

@kingmob I've updated my byte-streams PR to use primitive-math 1.0.0, and deprecated the old namespaces and classes https://github.com/clj-commons/byte-streams/pull/54/commits/25558091b4311f269c60b3266668f0cd05d1736e

Arnaud Geiser 2022-04-04T13:37:02.537009Z

Maybe we could also take the opportunity to fix clj-doc badge and the full documentation link (at the bottom of the README)

2022-04-04T21:23:22.518899Z

@kingmob thanks! I've drafted a similar PR for byte-streams with that snapshot version https://github.com/clj-commons/byte-streams/pull/54

Matthew Davidson 2022-04-05T01:00:36.335459Z

@arnaud.geiser my plan was to fix those for the real 1.0.0

🙌 1
Matthew Davidson 2022-04-05T01:02:43.648049Z

@skynet the real pertinent question is, does making new namespaces fix the original graal/clj-easy issue?

2022-04-05T01:16:08.382569Z

@kingmob oh yes it definitely does! I've been using my forks with the full chain of fixes: https://github.com/skynet-gh/primitive-math/releases/tag/0.1.6%2Bfix-single-segment-nses https://github.com/skynet-gh/byte-streams/releases/tag/0.2.10%2Bfix-single-segment-ns https://github.com/skynet-gh/gloss/releases/tag/0.2.6%2Bupdate-byte-streams https://github.com/skynet-gh/aleph/releases/tag/0.4.7%2Bupdate-byte-streams in gloss I also fix the eval issue: https://github.com/skynet-gh/gloss/blob/master/src/gloss/data/bytes/delimited.clj#L81-L96 to https://github.com/skynet-gh/gloss/blob/7024e89f2b3add5947114b57da79d15950001832/src/gloss/data/bytes/delimited.clj#L81-L104 and then I depend on the updated aleph and gloss in my project here https://github.com/skynet-gh/skylobby/blob/more-native/deps.edn#L153-L188 and it works, able to build the native image and not specify tons of byte-streams fns or failing in gloss I also have a fix for a use of reify in aleph.tcp which causes warnings in native image, but doesn't seem to be fatal https://github.com/skynet-gh/skylobby/blob/more-native/graal/clj/skylobby/client/tcp.clj#L19-L69 so I'm happy to help incorporate this all upstream over time

Matthew Davidson 2022-04-05T03:45:46.838009Z

Thanks for all your hard work. > I also have a fix for a use of reify in aleph.tcp which causes warnings Hmm, what are the warnings?

2022-04-05T03:58:25.784079Z

oh so I also use the graal native image agent with the clojure-native-image-agent as well (and needed to patch it https://github.com/skynet-gh/clojure-native-image-agent/releases/tag/v0.2.0%2Bfix-noclass%2Bcustom-ignore) so it marks the class generated by reify for initialization at build time, but the name changes on each run. so reified classes won't be found when building

Matthew Davidson 2022-04-05T04:31:18.872489Z

@skynet I don’t really use Graal, so I can’t help you there. Aleph uses reify in 10 different places, though, so if reify has to be removed, that will be a lot of work. (Also, I don’t see reify in aleph.tcp, is that the right ns?) Before even considering this, have you asked in the #graalvm channel for help/clarification? I haven’t heard of reify being a Graal limitation before.

Matthew Davidson 2022-04-05T04:55:09.957289Z

@skynet https://clojars.org/org.clj-commons/primitive-math is released. I think we’re ready for the byte-streams and gloss PRs next, if you want to tackled them. For byte-streams, let’s actually deprecate the old namespaces (but leave them there).

2022-04-03T23:16:57.791719Z

do you think I should move every namespace, or is it enough to move just the single-segment one?

2022-04-04T00:41:12.359869Z

updated the primitive-math PR back to moving things under clj-commons. prefix

Matthew Davidson 2022-04-04T05:22:28.701919Z

primitive-math only has a single-segment ns. byte-streams has one top-level single-segment ns, but I think we should copy everything under clj-commons so it’ll be easier for people to update their requires

👍 1
Matthew Davidson 2022-04-04T05:25:12.756449Z

@skynet I’m testing out the deployment now, but when primitive-math is ready, I’ll let you know

Matthew Davidson 2022-04-04T05:36:27.434159Z

@skynet org.clj-commons/primitive-math 1.0.0-SNAPSHOT is ready to try out