Fork me on GitHub

new version of bb with babashka.curl included:

clj 3

building not working here:

$ git pull # on master
# ... details elided
$ git submodule update
Submodule path 'sci': checked out 'd768910b6c4f51fc9b3331f5d8ddefc59c1f4f36'
$ export GRAALVM_HOME=/home/user/src/graalvm-ce-java8-19.3.1
$ bash script/compile
Downloading: Component catalog from 
Processing Component: Native Image
Component Native Image (org.graalvm.native-image) is already installed.
Retrieving org/clojure/clojure/1.10.2-alpha1/clojure-1.10.2-alpha1.pom from central
Retrieving org/clojure/spec.alpha/0.2.187/spec.alpha-0.2.187.pom from central
Retrieving org/clojure/pom.contrib/0.3.0/pom.contrib-0.3.0.pom from central
Retrieving org/clojure/spec.alpha/0.2.187/spec.alpha-0.2.187.jar from central
Retrieving org/clojure/clojure/1.10.2-alpha1/clojure-1.10.2-alpha1.jar from central
Compiling babashka.impl.async
Compiling babashka.impl.cheshire
Compiling babashka.impl.classes
Compiling babashka.impl.classpath
Compiling babashka.impl.clojure.core
Compiling babashka.impl.clojure.core.server
Compiling babashka.impl.clojure.main
Compiling babashka.impl.clojure.pprint
Compiling babashka.impl.clojure.stacktrace
Compiling babashka.impl.clojure.test
Compiling babashka.impl.common
Compiling babashka.impl.csv
Compiling babashka.impl.curl
Syntax error macroexpanding at (curl.clj:1:1).
Execution error (FileNotFoundException) at babashka.impl.curl/loading (curl.clj:1).
Could not locate babashka/curl__init.class, babashka/curl.clj or babashka/curl.cljc on classpath.

Full report at:
Compilation failed: Subprocess failed

# similar result with graal 20.0.0 (java8)


this looks pretty neat!


i hope i can get bb 0.0.75 built so i can try it soon 🙂


I haven't written any tests yet... because the problems are the tests! We need to write the "units", by solving them. (of course I could do it by using existing answers, but what's the fun in that?)


a good opportunity for review and further study 🙂


@UG1C3AD5Z I guess you need to pull with —recursive


that doesn't seem to be an option here -- though there is:

$ git pull --recurse-submodule
Fetching submodule sci
Already up-to-date.
is that what you mean?


fwiw, that didn't appear to make a difference


@UG1C3AD5Z babashka.curl is now a submodule of babashka. Because of your error message I assume you don't have it. See the repo, there should be a directory babashka.curl.


a fresh clone with --recursive works -- git submodule update does not appear sufficient w/in an already existing repository that didn't have babashka.curl.


it appears that git submodule init again helps


Maybe this should be documented in if you can reproduce it


not out of the woods yet i guess...

$ git submodule update
fatal: destination path '/home/user/src/babashka/babashka.curl' already exists and is not an empty directory.
fatal: clone of '' into submodule path '/home/user/src/babashka/babashka.curl' failed
Failed to clone 'babashka.curl'. Retry scheduled
fatal: destination path '/home/user/src/babashka/babashka.curl' already exists and is not an empty directory.
fatal: clone of '' into submodule path '/home/user/src/babashka/babashka.curl' failed
Failed to clone 'babashka.curl' a second time, aborting
may be i'll just start over from a fresh repos


maybe you can clone, reset to the SHA you were in


and then try again, to see what the correct steps are


for the moment, if one gets stuck in the mess i was in:

$ rm -rf babashka.curl
$ git submodule update --init --recursive
seems to fix things


Very nice. Would you consider adding curl to the bb docker image (only wget is included)?


Seems reasonable, since babashka.curl doesn't work without curl. What do you think @U7ERLH6JX?


Yeah would be nice. We can start from alpine:latest and then doing a “apk add -U curl” should do it


It would be lightweight too


ok, PR for this is welcome


Already pushed.

👍 1
Nate Sutton19:03:50

@borkdude I was thinking a bit about this with all the filesystem stuff I've been (extremely slowly) doing and how much easier it would be to just shell out to stuff like this

Nate Sutton19:03:35

much easier to support multiple platforms this way and not have to include bulky stuff in the stdlib

Nate Sutton19:03:02

and this mimics what shell scripts do since they just depend on external tools like this anyways