HomeFreeBSD

lang/babashka: Update to 1.13.220

Description

lang/babashka: Update to 1.13.220

Changes since 1.13.219:

1.13.220 (2026-08-31)

Read the release blog post:
https://blog.michielborkent.nl/babashka-ffi.html

FFI:

  • Add experimental babashka.ffi (https://github.com/babashka/ffi): call C functions in shared libraries straight from babashka and JVM Clojure! See the guide: https://github.com/babashka/ffi/blob/main/doc/guide.md
  • Linux: dynamic binaries require glibc 2.28. The install script selects the static binary on older systems
  • On Linux, the install script installs the dynamic binary by default. It installs the static binary on musl systems and on systems with glibc older than 2.17. The --static and --dynamic options override the automatic selection
  • The dynamic binary for Linux amd64 links every library statically except glibc. It no longer needs libz.so.1 at run time
  • On FreeBSD, the install script installs the dynamic binary when the Linuxulator has a linux_base with glibc 2.17 or newer, such as linux_base-rl9
  • The Linux binaries include zlib 1.2.13. The static binary uses musl 1.2.6. The build pins both versions and compiles them from source

Tasks:

  • :exec-args can sit directly on a task, not only under :cli, the way (exec ...) already reads it. The bare key wins over the one under :cli. Before, it was ignored on an :exec-fn or :cmd task
  • A task's :cli :exec-args merge over the :tasks top level :exec-args. Before, the task's map replaced the top level's
  • A task's :cli spec adds to the runner-level :tasks {:cli {:spec ...}} instead of replacing it. An option from the runner level keeps its coercion and default, and --help lists it under Inherited options
  • A task with :exec-fn runs when another task :depends on it. Before, it did nothing
  • Options declared by an :exec-fn task named in :depends also parse for the CLI task that runs, with their coercion and default. --help lists them under Inherited options
  • A :depends task's :exec-fn receives only the options that task declared, with its defaults, not everything the command line parsed
  • A CLI task cannot name a :cmd task in :depends, unless that task also has a :task body: nothing says which of its subcommands to run
  • :cmd can be a symbol naming a var that holds the command tree, like :cli. Its namespace loads on demand
  • Shell completion offers inherited options (via :depends) too
  • bb tasks and --help still describe a task when a dependency's namespace does not load. Running the task reports the error

Misc:

  • SCI: call site caching for instance and static methods, constructors and fields. Interop calls are up to 5x faster
  • #1321: support implementing the clojure.core/Inst protocol on records, types and reify, and with extend-protocol and extend-type
  • Fix output of custom clojure.pprint dispatch functions
  • #2054: a proxy of java.io.Writer supports the one-argument write and append, so binding *out* to it works. Interop on a proxied Writer or Reader finds their own methods instead of only the ones on Closeable
  • #1728: Add java.util.TreeMap
  • Fix: the % parameters of a function literal inside a syntax quote are no longer namespace-resolved, through edamame 1.6.43
  • Building babashka from source no longer fails when one upstream host is unreachable. The build fetches the musl and zlib tarballs with retries, from mirrors, and caches them per machine
  • Building from source: the BABASHKA_DYNAMIC build flag is BABASHKA_FULLY_DYNAMIC, because it named a different axis than the install script's --dynamic

Upgrades:

  • Bump jline to 4.4.0: security hardening, a rewritten signal path for the FFM terminal, Kitty keyboard protocol. The ambiguous key binding timeout in the REPL drops from 1000 ms to 100 ms
  • Bump GraalVM to 25.0.4. The macOS amd64 binary stays on 25.0.1, the last version Oracle ships for that platform
  • #2021: bump http-kit to 2.9.0-beta4, which fixes four security advisories
  • Bump babashka.cli to 0.12.88: help shows the dispatch-level spec under Inherited options, format-command-help accepts :spec, completion no longer offers :positional keys as options, the command named on the command line wins over the :exec-args of its ancestors, and the fish completion snippet keeps the emitted option order
  • babashka.cli 0.12.88 also adds :cmd-aliases, alternative names for a command that dispatch like the command itself, and attached short option values: -J-Dfoo=bar binds "-Dfoo=bar" when :J declares a non-boolean :coerce. An interior hyphen in a cluster of flags is an error instead of silently ending option parsing
  • Bump edamame to 1.6.43, which carries the syntax-quote fix listed above
  • Bump jsoup to 1.23.2: W3C namespace fixes, URL validation per RFC 9110, CR and LF escaping in multipart form names
  • Bump hiccup to 2.0.0 final, from 2.0.0-RC1
  • Bump rewrite-clj to 1.2.57
  • Bump selmer to 1.13.5: Twig-style {% embed %}, multiline tags. The shipped deps.edn said 1.12.70 while the binary carried 1.13.1; both now agree

Details

Provenance
Santhosh RajuAuthored on Wed, Sep 2, 2:40 AM
Parents
R11:74638794049c: graphics/openxr: Fix build after update jsoncpp, improve port
Branches
Unknown
Tags
Unknown

Event Timeline

Still Importing...

This commit is still importing. Changes will be visible once the import finishes.