babashka

Native, fast starting Clojure interpreter for scripting

EPL-1.0 License

Downloads
78.5K
Stars
3.8K
Committers
116

Bot releases are hidden (Show)

babashka -

Published by borkdude almost 4 years ago

babashka -

Published by borkdude almost 4 years ago

See CHANGELOG.md for release notes.

babashka -

Published by borkdude almost 4 years ago

babashka -

Published by borkdude about 4 years ago

babashka -

Published by borkdude about 4 years ago

babashka -

Published by borkdude about 4 years ago

See CHANGELOG.md for release notes.

babashka -

Published by borkdude over 4 years ago

See CHANGELOG.md for release notes.

babashka -

Published by borkdude over 4 years ago

See CHANGELOG.md for release notes.

babashka -

Published by borkdude over 4 years ago

See CHANGELOG.md for release notes.

babashka -

Published by borkdude over 4 years ago

See CHANGELOG.md for release notes.

babashka -

Published by borkdude over 4 years ago

  • Add clojure.core/intern
  • Support new pod op: load-ns. This allows pod namespaces to be loaded on demand which speeds up the initial load of the pod. See docs and this bootleg PR.
babashka -

Published by borkdude over 4 years ago

Release v0.0.98 has a couple of small fixes, but most notably, it allows running bootleg as a pod. Bootleg is a CLI around generating static HTML websites. Thanks to @retrogradeorbit for his hard work on this awesome tool. Give it a try!

  • babashka.pods: fix ordering of pod namespace vars: they are now handled in the order they are declared in
  • #444: fix timezone issue by upgrading GraalVM (see #449)
  • #446: fix location in error message in case of NullPointerException
  • #447: expose flatland.ordered.map/ordered-map.
  • #449: move to GraalVM 20.1.0 java11
  • add clojure.core/bean and clojure.core/*print-meta*
babashka -

Published by borkdude over 4 years ago

Thanks to @retrogradeorbit, @lispyclouds and @kolharsam for contributing to this release.

  • babashka/babashka.nrepl#8: fix flushing issues
  • babashka/babashka.pods#6: support callback based pod functions. See docs for details.
  • fix babashka.curl/delete mapping
  • babashka/babashka.pods#3: implement babashka.pods/unload-pod to tear down a pod
  • upgrade to GraalVM java8-19.3.2.
babashka -

Published by borkdude over 4 years ago

  • Add "code" field to var section in pod protocol to support loading of client side code. This allows pods to define macros. See docs. One example of this is pod-babashka-hsqldb's with-transaction macro:
$ rlwrap ./bb
Babashka v0.0.96 REPL.
Use :repl/quit or :repl/exit to quit the REPL.
Clojure rocks, Bash reaches.
user=> (require '[babashka.pods :as pods])
nil
user=> (pods/load-pod "pod-babashka-hsqldb")
nil
user=> (require '[pod.babashka.hsqldb :as db])
nil
user=> (def db "jdbc:hsqldb:mem:testdb;sql.syntax_mys=true")
#'user/db
user=> (db/with-transaction [tx db] (db/execute! tx ["create table foo ( foo int );"]) (db/execute! tx ["insert into foo values (1,2,3)"]))
[#:next.jdbc{:update-count 3}]
babashka -

Published by borkdude over 4 years ago

Thanks @retrogradeorbit, @daviddpark and @mbjarland for contributing to this release.

  • #419: add support for data readers via *data-readers*:

    bb "(set! *data-readers* {'t/tag inc}) #t/tag 1"
    2
    

    To preserve good startup time, babashka does not scan the entire classpath for data_readers.clj files.

  • #424: Add classes from java.util.jar: JarFile, JarEntry and JarFile$JarFileEntry

  • Add enumeration-seq

  • #427: check syntax of ns macro: first argument should be present and should be symbol

  • #432: split out nREPL server into its own library.
    The library adds improvements for completion of namespaces and fully qualified names.

  • #435: add the clojure.zip namespace

  • Fix automatic imports for java.lang.Comparable and java.lang.Process

  • Include docstrings of clojure.tools.cli vars

  • clojure.repl/doc enhancement: don't print hyphens when no var has been found

  • Fix binding of dynamic vars that refer to functions.

  • borkdude/babashka.curl#21: add curl/delete function

  • classpath performance improvements

babashka -

Published by borkdude over 4 years ago

  • Split out babashka.pods into its own library. This brings pods to the JVM and makes them easier to test.
  • When babashka loads a pod, it sets the environment variable BABASHKA_POD to true. This way binaries can decide if they should run as a pod or not.
  • clj-kondo can now run as a pod
babashka -

Published by borkdude over 4 years ago

babashka - Pods!

Published by borkdude over 4 years ago

Thanks to @lispyclouds for the contributed hammock time to pods!

New:

Fixes:

  • borkdude/sci#321: fix for variadic recur
  • #413: fix associative destructuring with binding
  • Fix babashka.signal namespace
babashka - Compatibility with the joegallo/doric library

Published by borkdude over 4 years ago

  • #407: add BABASHKA_FEATURE_DATASCRIPT feature flag

The following enhancements were made to add compatibility with the doric library:

  • Add clojure.core/ns-resolve, clojure.core/remove-nsandclojure.core/read`
  • Fix clojure.core/for: the macro did not fully qualify when and nth
  • Add java.lang.Character
babashka - Keeping it lean: feature flags!

Published by borkdude over 4 years ago

Thanks to @jaydeesimon for contributing to this release.

This release introduces feature flags to allow babashka to be a focused tool for the mainstream user and customizable for people who want to compile their own version of babashka.

See Including new libraries or classes and feature flag documentation.

Breaking changes

  • The next.jdbc and PostgresQL driver introduced in v0.0.89 are no longer part of the standardly distributed bb binary.
  • borkdude/babashka.curl#16: throw on exceptional status codes and non-zero codes. Opt out with :throw false.

New

Fixes

  • #394: fix arg parsing when no port provided for --nrepl-server
  • #404: fix docstring of clojure.java.shell/sh