This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-01-31
Channels
- # announcements (4)
- # babashka (73)
- # beginners (128)
- # bristol-clojurians (1)
- # calva (8)
- # cider (8)
- # clj-kondo (4)
- # clojars (7)
- # clojure (148)
- # clojure-dev (16)
- # clojure-europe (5)
- # clojure-gamedev (1)
- # clojure-italy (10)
- # clojure-nl (7)
- # clojure-uk (57)
- # clojurescript (57)
- # clojutre (1)
- # community-development (2)
- # cursive (7)
- # data-science (1)
- # datascript (5)
- # datomic (9)
- # events (6)
- # figwheel-main (1)
- # fulcro (91)
- # garden (11)
- # graalvm (14)
- # graphql (1)
- # immutant (4)
- # jobs (1)
- # kaocha (33)
- # off-topic (63)
- # onyx (3)
- # pathom (4)
- # re-frame (23)
- # ring-swagger (1)
- # shadow-cljs (49)
- # sql (6)
- # testing (8)
- # tools-deps (45)
- # vrac (1)
- # xtdb (10)
tools.deps.alpha 0.8.661 and clj 1.10.1.507 are now available • New: concurrent downloads make things significantly faster when downloading lots of stuff • New: -Sthreads can be used to explicitly set the concurrency level, but you generally shouldn't need it • New: -- can be used in clj as a separator between clj dep args and clojure.main args. For example clj -A:tool -- -A:foo will activate the tool alias, which may specify a main class, then -A:foo will be passed to that program (thanks Dominic Monroe!) • Fix: regression in -Spom not populating <repositories> since tda 0.8.573 • Fix: manifest type lookup on resolved git dep coordinates (probably of interest to almost no one, but affected tools.deps.graph)

Nice job! The concurrent downloads is very cool!
brew
doesn't known about 507 yet it seems... caching?
Ah, interesting. It knows about it on macOS but not on Linux yet.
Not familiar enough with brew
yet, but perhaps brew update
will force it to get fresh version info for all packages.
brew upgrade clojure
causes brew
to update all its formulae anyway I think... certainly looked like it did.
I suspect the Linux archives lag behind the macOS archives.
seanc@DESKTOP-QU2UJ1N:/var/www$ brew update
Already up-to-date.
seanc@DESKTOP-QU2UJ1N:/var/www$ brew upgrade clojure
Updating Homebrew...
Warning: clojure 1.10.1.502 already installed
seanc@DESKTOP-QU2UJ1N:/var/www$
Ubuntu on WSL1 on Windows 10.Probably. I get same result on Linux vs. macOS right now.
Linux always lags
deps.clj also lags, but is now updated! https://github.com/borkdude/deps.clj/releases/tag/v0.0.8
I haven't really used deps.clj
, but I think it's great because it has good windows support — through cmd, not power-shell
I wonder how probable it is for clojure
/`clj` tools to start using graalvm for cross-platform support
if cognitects wants to adopt (parts of) deps.clj, it's free and I'm there if they need help
I'm somewhat interested in exploring graal for the classpath construction phase of clj, however, I do not think it makes sense for the official clojure
tool to run something other than the jvm on windows - this is how people start their actual Clojure apps, and Graal is not an officially supported platform for Clojure. clj
is possibly a different story for interactive repl use, but even then I don't think it makes sense to be running a non-official Clojure interpreter as the repl.
fortunately, there's no reason we can't have multiple options!
@alexmiller I think you're misunderstanding something. deps.clj is only a replacement for the bash part. it's compiled to native using the official clojure and doesn't use a non-official clojure interpreter.
there also an option to execute the script (non-binary) with babashka, but you don't have to
ah, so that is different than what I understood
I still think it's unlikely Rich would ok using a separate interpreter in this stack, but I could be wrong
if you're using the natively compiled deps.exe you are *not* using a separate interpreter
deps.clj can run as native (compiled with GraalVM) *or* as an interpreted script (interpreted by babashka which is itself compiled with GraalVM)
neither of those are supported Clojure things though
yeah, that's why I chose the name deps.exe to distinguish from the script deps.clj (which is really just a Clojure source file which you can run on the JVM, or with babashka, it's portable)
gotcha, the Graal path is something that could potentially be added, I guess I didn't realize what you were doing there
it's main value over powershell-based runner is that it can run on default windows command line. We explored moving Defold to tools-deps from lein, but other tooling depends on cmd and can't run in pwsh
the benefit of deps.exe (or deps.clj as source file) is that you don't have to maintain bash and/or PS
so in the graal case, what exactly is compiled there?
is it launching a jvm to do the classpath construction like clj?
@alexmiller clojure, AOT-ed to .class files which are then translated to a native binary by GraalVM. yes, it invokes a JVM: https://github.com/borkdude/deps.clj/blob/e6561ac7997bf1fc0f3ee8406e7af7bc09ca3adb/src/borkdude/deps.clj#L511
well, that's cool, I didn't realize all that
@alexmiller to simplify it conceptually, think of it as invoking the .jar file here: https://github.com/borkdude/deps.clj/releases/tag/v0.0.8 but with faster startup
the potentially interesting variant here (much bigger lift) is to combine the deps.clj stuff with the classpath construction and graal all of that (but I'm sure there are a lot more challenges to do that)
@alexmiller I added some development instructions here now: https://github.com/borkdude/deps.clj#developing-depsclj In case you want to fiddle around 🙂