Thanks, Michiel! The problems with the Cognitect aws-api is the signing, which I believe somebody has at least partially reimplemented for ClojureScript (and could perhaps be ported to a GraalVM-friendly Clojure) and locking, which will likely need to wait for https://clojure.atlassian.net/browse/CLJ-1472 in (hopefully) the next release of Clojure, correct? I see @jeroenvandijk has published a fork of aws-api that can run the signing in cljs / graalvm. However the aws-api team does https://github.com/cognitect-labs/aws-api/pull/121#issuecomment-667414548 about this problem: > This is not a priority for us, and is not on any near or mid-term road map. We're not closed to the idea, but it would increase the maintenance burden, so we wouldn't pursue it without a very strong rationale.
@holyjak 1472 is no longer a problem, released as 1.10.2-alpha1
@holyjak I’m not sure what the current status is of compiling the Cognitect aws-api with Graalvm. Might be worth to try again
Dynamic requires are usually the problem
But those are pretty easy to patch
I noticed that with babashka, when including some libraries, they yield a binary with 30mb added, only because they have a runtime require in them
e.g. spec
How would you patch it?
Copy the library and make requires static
Sometimes alter-var-root also works
But beware when using direct linking, all other places that use the patched var also have to be patched
is there any page with tips and tricks like these for porting a lib to graalvm?
there sure is
@holyjak If it's just s3 you could also consider shelling out to the aws cli
good idea, thanks!
Just shared a new cool project in #sci