graalvm

Discuss GraalVM related topics. Use clojure 1.10.2 or newer for all new projects. Contribute to https://github.com/clj-easy/graal-docs and https://github.com/BrunoBonacci/graalvm-clojure. GraalVM slack: https://www.graalvm.org/slack-invitation/.
borkdude 2021-04-14T14:21:06.091500Z

CRIU + Java: sounds pretty interesting, not sure how well it works in practice and seems to be linux only. But for certain contexts it seems an interesting alternative to graal native-image. https://assets.ctfassets.net/oxjq45e8ilak/3KKci3H0yZWIlzHBjCjUpg/8faf9c9777d9ba646a1b986c5abb6648/Christine_H_Flood_CRIU_and_Java_opportunities_and_challenges_2021_04_12_18_17_19.pdf

blak3mill3r 2021-04-14T15:18:34.092800Z

CRIU is super cool, I thought about trying to use it to spin up fresh clj repl processes

blak3mill3r 2021-04-14T15:19:00.093300Z

It's very much linux-only

mkvlr 2021-04-14T18:14:38.096300Z

@borkdude works very well in practice, we’ve used it on nextjournal to snapshot + restore everything from Clojure over Python to Julia. Only limitations we ran into is that • it doesn’t work with GPU memory • we worked around the fact that the env is are persisted from the snapshot by passing an override env on restore

borkdude 2021-04-14T18:17:01.097Z

Clojure over Python to Julia? Is this a way of saying: for a, b and c? or did you serialize some stuff through Clojure, Python and then to Julia?

mkvlr 2021-04-14T18:17:54.097300Z

@borkdude sorry no, I mean we used it for all those things

borkdude 2021-04-14T18:18:07.097500Z

got it. cool

borkdude 2021-04-14T18:19:23.098400Z

@mkvlr so you use it for nextjournal notebooks all the time?

mkvlr 2021-04-14T18:22:12.100300Z

we used it for a while but not anymore. We used to depend on it in an attempt to make python etc reproducible, similar to what runkit was doing https://blog.runkit.com/2015/09/10/time-traveling-in-node-js-notebooks/

Shantanu Kumar 2021-04-14T21:32:18.102800Z

CRIU looks like a candidate solution for the JVM warmup problem. The benefits might be proportional to the cluster size - the first JVM needs to get to a hot state for every new code change to an app.