graalvm 2022-11-04

I am curious: nobody distributes natively compiled binaries for cljfmt already?

I think cljfmt has their own, but not really maintained?

there's just an alias to do it

it's easy to do

clojure-lsp packages cljfmt too AFAIK and you can use that from the command line

but that would be handry to have prebuilt binaries

but it's a tad slower for CI use I think

didn't check, but it's an impression

pinging @ericdallo - I don't think it should have to be slower

if it's not I ll go with that

there were some issues before that it wanted to analyze your whole project before it did anything, but I think they might be addressed now

I think it does run analysis indeed

then again, I'm not using it in this way myself, so grain of salt

We use for all nubank services as official linter on CI, it's pretty fast even on medium/big projects

and for clojure-lsp format we don't check external dependencies, so it's even faster than running clojure-lsp diagnostics .

same for clojure-lsp clean-ns

Consistency is important too (rely on classpath, project settings etc), than you manually pass folders to it

but there's no warn task tho

or I missed it

it's basically the equivalent of cljfmt fix

yes, --dry

Out of curiosity, do you intend to use on deps.edn, native cli, or with lein?

what do you mean?

it's for CI, against repo source

nothing really fancy

I ll just add the clojure-lsp binary to our docker image used to run most clj jobs

and let consumers use it if they want

We use at Nubank via lein-clojure-lsp, this way lein lint works on both local and CI and users don't need clojure-lsp installed locally for intellij Users for example

I am not sure I want lein startup time in the mix

we do lein cljfmt now

and people complain that it's slow

mostly caused by lein

yeah, native binary should help

but I don't think it will be that fast as in the end formatting whole project code is not that fast as it delegates to cljfmt in the end

personally I don't care so much, it does that via lsp on-save-hook locally but we have some people who still don't use lsp !

Usually graal image means faster startup, and resource consumption

Yeah, I know that feel

cljstyle is a fork of cljfmt that's distributed as a single binary: https://github.com/greglook/cljstyle

2