This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-07-01
Channels
- # 100-days-of-code (2)
- # beginners (83)
- # calva (3)
- # cider (98)
- # clara (3)
- # clj-kondo (2)
- # clojure (84)
- # clojure-dev (59)
- # clojure-europe (11)
- # clojure-italy (22)
- # clojure-madison (4)
- # clojure-nl (3)
- # clojure-spec (24)
- # clojure-uk (80)
- # clojurescript (33)
- # clr (3)
- # datomic (59)
- # events (2)
- # fulcro (20)
- # interop (35)
- # jobs (6)
- # jobs-rus (1)
- # joker (3)
- # kaocha (2)
- # luminus (3)
- # off-topic (16)
- # other-languages (2)
- # pathom (17)
- # planck (2)
- # reagent (1)
- # shadow-cljs (1)
- # test-check (1)
- # tools-deps (49)
- # vim (16)
This may be a daft question, but if I switch JVMs (from 12 to 8 ) on the command line, and I restart the repl, do I need to clean up anything to ensure that JVM 12 bytecode is gone? Or is it all in memory etc...?
I'm trying to track down a really really difficult to diagnose interop issue and I'm starting to run out of options.
you should post more specifics about the interop issue @dharrigan
bytecode is only created if you 1) AOT (and you typically tell it where to go, like target/classes) or 2) in memory when loading source. It's not cached anywhere else.
basically (and I don't really want to get into a crosspost/in-depth here), a one-liner in Kotlin message.toByteArray()
where message = protobuf, fails miserably with clojure (.toByteArray message)
, with clojure complaining about illegalaccesserror. So, I even tryed to extract that code into a little kotlin module by itself and invoke kolin code from clojure (that does the same thing) but I see the same issue. It feels like the JVM isn't finding all the classes <shrug> no idea.
prob better to have this discussion in #interop
with tools deps is there a way to add built java classes to the classpath ? For instance I have a project using GRPC which is protobuf java classes that are generated.
hrm in order to resolve conflicts between git deps & mvn deps (in this case ClojureScript) it should be possible to use :exclusions
right? Has anyone else got this working?
I keep seeing: Error building classpath. Unable to compare versions for org.clojure/clojurescript: {:mvn/version "1.10.516", :deps/manifest :mvn} and {:git/url "[email protected]:clojure/clojurescript.git", :sha "13fde33d737b0d47bdaaf102ed8e1c49342ade3c", :deps/manifest :deps, :deps/root "~/.gitlibs/libs/org.clojure/clojurescript/13fde33d737b0d47bdaaf102ed8e1c49342ade3c"}
@dnolen not sure if that msg connects to something above?
"got the above error" refers to what?
Error building classpath. Unable to compare versions for org.clojure/clojurescript: {:mvn/version "1.10.516", :deps/manifest :mvn} and {:git/url "[email protected]:clojure/clojurescript.git", :sha "13fde33d737b0d47bdaaf102ed8e1c49342ade3c", :deps/manifest :deps, :deps/root "~/.gitlibs/libs/org.clojure/clojurescript/13fde33d737b0d47bdaaf102ed8e1c49342ade3c"}
now I see it, maybe slack being weird
the resolution algorithm may download things that don't show up in the final tree as it goes through the process of walking the deps and making decisions
well at some point it's encountering the maven version and then trying to decide whether it's newer/older than the git version
you can add a hidden verbose flag
clj -Sdeps '{:aliases {:v {:verbose true}}}' -A:v
not really designed to be understandable to anyone but me. I'm not sure you'll get the parent child linkage to know where it's coming in from that
if you specify the clojurescript as a top dep, it should never need to make a decision though, so I'd expect that to work regardless
if you want me to look at it in more depth, send me the full deps.edn and the verbose output if you have it, don't need to spam the channel here with it