This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-04-03
Channels
- # announcements (5)
- # aws (3)
- # babashka (52)
- # babashka-sci-dev (23)
- # beginners (51)
- # calva (191)
- # clj-commons (18)
- # clj-kondo (11)
- # cljdoc (39)
- # cljsrn (3)
- # clojure (24)
- # clojure-czech (3)
- # clojure-dev (2)
- # clojure-europe (15)
- # clojuredesign-podcast (2)
- # clojurescript (8)
- # conjure (2)
- # core-typed (151)
- # cursive (15)
- # data-science (3)
- # datalevin (4)
- # datomic (8)
- # figwheel-main (21)
- # fulcro (37)
- # gratitude (3)
- # honeysql (1)
- # hyperfiddle (2)
- # introduce-yourself (1)
- # malli (3)
- # membrane (54)
- # off-topic (21)
- # other-languages (4)
- # portal (18)
- # re-frame (12)
- # reagent (7)
- # releases (2)
- # sci (64)
- # spacemacs (14)
- # sql (2)
- # vim (4)
- # xtdb (6)
@craigy 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.
do you think I should move every namespace, or is it enough to move just the single-segment one?
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
@craigy I’m testing out the deployment now, but when primitive-math is ready, I’ll let you know
@craigy org.clj-commons/primitive-math 1.0.0-SNAPSHOT is ready to try out
Maybe we could also take the opportunity to fix clj-doc
badge and the full documentation link (at the bottom of the README)
@U10EC98F5 thanks! I've drafted a similar PR for byte-streams
with that snapshot version https://github.com/clj-commons/byte-streams/pull/54
@craigy the real pertinent question is, does making new namespaces fix the original graal/clj-easy issue?
@U10EC98F5 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
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?
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
@craigy 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.
@craigy 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).
let me look into the reify thing more then. either way it doesn't seem to be mandatory to get it working
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
@U10EC98F5 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