Skip to content

JLLL v2.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Jan 10:16
· 49 commits to master since this release

What's New in JLLL 2.2.0

Dynamic Classpath Support

Load Maven dependencies at runtime with environment-scoped classloaders:

;; Load external library and use it
(env :depends '("com.google.code.gson:gson:2.10.1")
  (define Gson (class "com.google.gson.Gson"))
  (define gson (new Gson))
  (invoke gson "toJson" '(1 2 3)))
;; => "[1,2,3]"

;; Create reusable environment with dependencies
(define json-env (env :depends '("com.google.code.gson:gson:2.10.1")))
(eval :env json-env '(new (class "com.google.gson.Gson")))

Features:

  • Full transitive Maven dependency resolution
  • Environment-scoped classloader isolation
  • Custom repository support with :repos
  • Introspection via (env-classpath)

See docs/dynamic-classpath.md for full documentation.

Console Abstraction

Unified styled I/O operations across CLI and REPL modes:

  • New Console interface with PlainConsole and JLineConsole implementations
  • Single *console* binding replaces *stdout*, *stdin*, *terminal*, *color-enabled*
  • Semantic output methods: printHeader(), printError(), printWarning(), printSuccess()
  • Colored output in REPL, plain text in scripts/tests

Breaking Changes

  • *stdout*, *stdin* bindings removed - use *console* instead
  • *terminal*, *color-enabled* bindings removed from REPL

Full Changelog: v2.1.0...v2.2.0