diff --git a/doc/dev.md b/doc/dev.md index 19f5151e..c97f7f8f 100644 --- a/doc/dev.md +++ b/doc/dev.md @@ -53,11 +53,12 @@ Then run: Keep notes here about how adding libraries and classes to Babashka affects the binary size. - +2020/03/19 Added java.lang.NumberFormatException, java.lang.RuntimeException, +java.util.MissingResourceException and java.util.Properties to support +[cprop](https://github.com/tolitius/cprop/). +41025180 - 40729908 = 295kb added. - - -2020/02/21, +2020/02/21 Added java.time.temporal.ChronoUnit 40651596 - 40598260 = 53kb added. diff --git a/script/lib_tests/cprop_test b/script/lib_tests/cprop_test new file mode 100755 index 00000000..71ef87bd --- /dev/null +++ b/script/lib_tests/cprop_test @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -eo pipefail + +export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {cprop {:mvn/version "0.1.16"}}}') + +if [ "$BABASHKA_TEST_ENV" = "native" ]; then + BB_CMD="./bb" +else + BB_CMD="lein bb" +fi + + +CPROP_ENV="hello" $BB_CMD " +(require '[cprop.core :refer [load-config]]) +(require '[cprop.source :refer [from-system-props from-env]]) +(println (:cprop-env (from-env))) +" diff --git a/script/run_lib_tests b/script/run_lib_tests index 87e152be..10c7f271 100755 --- a/script/run_lib_tests +++ b/script/run_lib_tests @@ -9,3 +9,4 @@ script/lib_tests/clojure_csv_test script/lib_tests/regal_test script/lib_tests/medley_test script/lib_tests/babashka_curl_test +script/lib_tests/cprop_test diff --git a/src/babashka/impl/classes.clj b/src/babashka/impl/classes.clj index d69a0d9a..25a057e4 100644 --- a/src/babashka/impl/classes.clj +++ b/src/babashka/impl/classes.clj @@ -33,7 +33,9 @@ java.lang.Exception java.lang.Integer java.lang.Long + java.lang.NumberFormatException java.lang.Math + java.lang.RuntimeException java.util.concurrent.LinkedBlockingQueue java.lang.Object java.lang.String @@ -90,6 +92,8 @@ java.util.Base64$Decoder java.util.Base64$Encoder java.util.Date + java.util.MissingResourceException + java.util.Properties java.util.UUID java.util.concurrent.TimeUnit java.util.zip.InflaterInputStream diff --git a/src/babashka/impl/clojure/core.clj b/src/babashka/impl/clojure/core.clj index 72db45d8..c7e9452a 100644 --- a/src/babashka/impl/clojure/core.clj +++ b/src/babashka/impl/clojure/core.clj @@ -2,6 +2,7 @@ {:no-doc true} (:refer-clojure :exclude [future read read-string]) (:require [borkdude.graal.locking :as locking] + [sci.core :as sci] [sci.impl.namespaces :refer [copy-core-var]])) (defn locking* [form bindings v f & args] @@ -29,4 +30,5 @@ 'spit (copy-core-var spit) 'time (with-meta time* {:sci/macro true}) 'Throwable->map (copy-core-var Throwable->map) - 'compare-and-set! (copy-core-var compare-and-set!)}) + 'compare-and-set! (copy-core-var compare-and-set!) + '*data-readers* (sci/new-dynamic-var '*data-readers* nil)}) diff --git a/src/babashka/main.clj b/src/babashka/main.clj index 342d6ffe..3199d587 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -343,7 +343,9 @@ Everything after that is bound to *command-line-args*.")) File java.io.File Long java.lang.Long Math java.lang.Math + NumberFormatException java.lang.NumberFormatException Object java.lang.Object + RuntimeException java.lang.RuntimeException ProcessBuilder java.lang.ProcessBuilder String java.lang.String StringBuilder java.lang.StringBuilder