sci

https://github.com/babashka/SCI - also see #babashka and #nbb
lread 2020-07-08T17:53:40.230200Z

Hey, guess who’s till playing around with sci and rewrite-cljc? Yes, it is me! :simple_smile: Because rewrite-cljc uses protocols to coerce from Clojure forms to rewrite-cljc nodes, it is a bit lower level than I’d like in a couple of cases for testing rewrite-cljc via sci.

lread 2020-07-08T17:56:26.232100Z

One case is vars, and another case is records.

lread 2020-07-08T17:57:50.233100Z

So I don’t think I’d be able to test these two cases via sci interpreted rewrite-cljc tests.

lread 2020-07-08T18:02:29.235700Z

Another area of interest for me is some rewrite-cljc tests use create-ns. But I think I’m going to ignore those for the time being as I have an outstanding todo to review those tests.

borkdude 2020-07-08T18:36:10.236600Z

@lee I think having a subset of your tests in graalvm is sufficient. At least you have an idea of what works and you don't get a compile time error with graalvm because of something

borkdude 2020-07-08T18:37:10.237500Z

You could supplement the tests with some GraalVM smoke tests where you run some arbitrary code through rewrite-cljc and don't use clojure.test to verify the result

borkdude 2020-07-08T18:37:39.237900Z

the so called command line tool approach that clj-kondo and babashka also use for testing

borkdude 2020-07-08T18:37:51.238200Z

I think you already described this in clj-graal-docs

lread 2020-07-08T18:39:18.239500Z

Yep, all good compromises! I’m going to continue to tinker.

borkdude 2020-07-08T18:39:35.239900Z

note that e.g. eval does work in sci, but not in vanilla graalvm, there is some subtle difference

lread 2020-07-08T18:41:47.240700Z

native-image being RAM hungry and free tier CI being RAM constrained has sent me on some interesting adventures! :simple_smile: