GraalVM 19.3.0 was released yesterday which is a LTS release. I've retried building clj-kondo for Windows with this and this time it seems it works better than last time.
This is a zip with the .exe: https://ci.appveyor.com/api/buildjobs/oqwh72id7x3q8es2/artifacts/clj-kondo-2019.11.08-SNAPSHOT-windows-amd64.zip
Windows users are welcome to try it out, by e.g. calling clj-kondo.exe --lint src
for linting a source directory.
If that works well, it could also mean that having a multi-platform native build of clj could be feasible using GraalVM.
these are my results:
kamik@RED-X1C6 MINGW64 /d/work/create-cljs-app (master)
$ ./clj-kondo.exe --lint src template/src
linting took 47ms, errors: 0, warnings: 0
kamik@RED-X1C6 MINGW64 /d/work/create-cljs-app (master)
$ java -jar clj-kondo-2019.11.07-standalone.jar --lint src template/src
linting took 330ms, errors: 0, warnings: 0
I find it surprising how much larger the exe is though
$ ls -lha clj-kondo*
-rwxr-xr-x 1 kamik 197609 18M Nov 21 13:41 clj-kondo.exe
-rw-r--r-- 1 kamik 197609 8.8M Nov 21 13:40 clj-kondo-2019.11.07-standalone.jar
the linux/osx executables are smaller than the jar
I don't know the details of this, but I would't worry about 10 mb
if it works, it's already quite something
let me add a linting error to validate
I was just going to suggest that 🙂
kamik@RED-X1C6 MINGW64 /d/work/create-cljs-app (master)
$ java -jar clj-kondo-2019.11.07-standalone.jar --lint src template/src
template\src\e2e\core.cljs:6:69: warning: #'taiko/something is referred but never used
linting took 303ms, errors: 0, warnings: 1
kamik@RED-X1C6 MINGW64 /d/work/create-cljs-app (master)
$ ./clj-kondo.exe --lint src template/src
template\src\e2e\core.cljs:6:69: warning: #'taiko/something is referred but never used
linting took 33ms, errors: 0, warnings: 1
awesome. looks like we're back in business for windows native then?
can you also test from cmd.exe maybe?
and powershell as well
powershell
PS D:\work\create-cljs-app> .\clj-kondo.exe --lint src template/src
template\src\e2e\core.cljs:6:69: warning: #'taiko/something is referred but never used
linting took 33ms, errors: 0, warnings: 1
PS D:\work\create-cljs-app> java -jar clj-kondo-2019.11.07-standalone.jar --lint src template/src
template\src\e2e\core.cljs:6:69: warning: #'taiko/something is referred but never used
cmd
D:\work\create-cljs-app>.\clj-kondo.exe --lint src template/src
template\src\e2e\core.cljs:6:69: warning: #'taiko/something is referred but never used
linting took 41ms, errors: 0, warnings: 1
D:\work\create-cljs-app>java -jar clj-kondo-2019.11.07-standalone.jar --lint src template/src
template\src\e2e\core.cljs:6:69: warning: #'taiko/something is referred but never used
linting took 288ms, errors: 0, warnings: 1
worth mentioning that the reported time is not the total time
kamik@RED-X1C6 MINGW64 /d/work/create-cljs-app (master)
$ time ./clj-kondo.exe --lint src template/src
template\src\e2e\core.cljs:6:69: warning: #'taiko/something is referred but never used
linting took 49ms, errors: 0, warnings: 1
real 0m0.087s
user 0m0.000s
sys 0m0.015s
kamik@RED-X1C6 MINGW64 /d/work/create-cljs-app (master)
$ time java -jar clj-kondo-2019.11.07-standalone.jar --lint src template/src
template\src\e2e\core.cljs:6:69: warning: #'taiko/something is referred but never used
linting took 339ms, errors: 0, warnings: 1
real 0m2.199s
user 0m0.000s
sys 0m0.015s
yeah, it works more or less like time
if we were going by reported time, it would seem like a 6x speed increase. real time however, is more like 25x speed increase.
anyway, the startup of the native is much faster than the .jar I presume?
time to get https://github.com/borkdude/scoop-bucket back from under the dust for the next release I guess 🙂
and when we're absolutely sure this works, we can also move to the executable for the npm installer
yes, much, much faster
shall we continue in #clj-kondo as to not pollute this precious channel more with specifics?