Compatibility with fipp and puget (#1253)

See brandonbloom/fipp#81
This commit is contained in:
Michiel Borkent 2022-04-30 11:46:36 +02:00 committed by GitHub
parent 1ef90f98ef
commit b93198c965
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 43 additions and 5 deletions

View file

@ -10,6 +10,7 @@
"feature-selmer"
"feature-logging"
"feature-priority-map"
"feature-rrb-vector"
"feature-jdbc"
"pods/src"
"babashka.nrepl/src"
@ -46,7 +47,8 @@
com.taoensso/timbre {:mvn/version "5.2.1"}
org.clojure/tools.logging {:mvn/version "1.1.0"}
org.clojure/data.priority-map {:mvn/version "1.1.0"}
insn/insn {:mvn/version "0.5.2"}}
insn/insn {:mvn/version "0.5.2"}
org.clojure/core.rrb-vector {:mvn/version "0.1.2"}}
:aliases {:babashka/dev
{:main-opts ["-m" "babashka.main"]}
:profile

View file

@ -0,0 +1,7 @@
(ns babashka.impl.rrb-vector
(:require [clojure.core.rrb-vector :as rrb]
[sci.core :as sci]))
(def rrbns (sci/create-ns 'clojure.core.rrb-vector))
(def rrb-vector-namespace {'catvec (sci/copy-var rrb/catvec rrbns)})

View file

@ -70,6 +70,8 @@
[org.clojure/tools.logging "1.1.0"]]}
:feature/priority-map {:source-paths ["feature-priority-map"]
:dependencies [[org.clojure/data.priority-map "1.1.0"]]}
:feature/rrb-vector {:source-paths ["feature-rrb-vector"]
:dependencies [[org.clojure/core.rrb-vector "0.1.2"]]}
:test [:feature/xml
:feature/lanterna
:feature/yaml
@ -87,6 +89,7 @@
:feature/selmer
:feature/logging
:feature/priority-map
:feature/rrb-vector
{:dependencies [[com.clojure-goes-fast/clj-async-profiler "0.5.0"]
[com.opentable.components/otj-pg-embedded "0.13.3"]]}]
:uberjar {:global-vars {*assert* false}

View file

@ -105,6 +105,7 @@ then
export BABASHKA_FEATURE_SELMER="${BABASHKA_FEATURE_SELMER:-false}"
export BABASHKA_FEATURE_LOGGING="${BABASHKA_FEATURE_LOGGING:-false}"
export BABASHKA_FEATURE_PRIORITY_MAP="${BABASHKA_FEATURE_PRIORITY_MAP:-false}"
export BABASHKA_FEATURE_RRB_VECTOR="${BABASHKA_FEATURE_RRB_VECTOR:-false}"
fi
"$GRAALVM_HOME/bin/native-image" "${args[@]}"

View file

@ -168,6 +168,13 @@ else
BABASHKA_LEIN_PROFILES+=",-feature/priority-map"
fi
if [ "$BABASHKA_FEATURE_RRB_VECTOR" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/rrb-vector"
else
BABASHKA_LEIN_PROFILES+=",-feature/rrb-vector"
fi
cp deps.edn resources/META-INF/babashka/deps.edn
if [ -z "$BABASHKA_JAR" ]; then

View file

@ -130,6 +130,12 @@ set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,+feature/priority-map
set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,-feature/priority-map
)
if not "%BABASHKA_FEATURE_RRB_VECTOR%"=="false" (
set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,+feature/rrb-vector
) else (
set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,-feature/rrb-vector
)
call lein with-profiles %BABASHKA_LEIN_PROFILES% bb "(+ 1 2 3)"
call lein with-profiles %BABASHKA_LEIN_PROFILES%,+reflection,-uberjar do run

View file

@ -116,7 +116,8 @@
java.util.Iterator
{:methods [{:name "hasNext"}
{:name "next"}]}
})
java.util.TimeZone
{:methods [{:name "getTimeZone"}]}})
(def custom-map
(cond->
@ -439,6 +440,7 @@
;; list above and then everything reachable via the public class will be
;; visible in the native image.
:instance-checks [clojure.lang.AFn
clojure.lang.Agent
clojure.lang.AMapEntry ;; for proxy
clojure.lang.APersistentMap ;; for proxy
clojure.lang.APersistentSet
@ -489,6 +491,8 @@
clojure.lang.Sequential
clojure.lang.Seqable
clojure.lang.Volatile
java.lang.ExceptionInInitializerError
java.sql.Timestamp
java.util.concurrent.atomic.AtomicInteger
java.util.concurrent.atomic.AtomicLong
java.util.Collection
@ -594,6 +598,7 @@
Comparable java.lang.Comparable
Double java.lang.Double
Exception java.lang.Exception
ExceptionInInitializerError java.lang.ExceptionInInitializerError
IndexOutOfBoundsException java.lang.IndexOutOfBoundsException
IllegalArgumentException java.lang.IllegalArgumentException
IllegalStateException java.lang.IllegalStateException

View file

@ -17,6 +17,7 @@
(def selmer? (not= "false" (System/getenv "BABASHKA_FEATURE_SELMER")))
(def logging? (not= "false" (System/getenv "BABASHKA_FEATURE_LOGGING")))
(def priority-map? (not= "false" (System/getenv "BABASHKA_FEATURE_PRIORITY_MAP")))
(def rrb-vector? (not= "false" (System/getenv "BABASHKA_FEATURE_RRB_VECTOR")))
;; excluded by default
(def jdbc? (= "true" (System/getenv "BABASHKA_FEATURE_JDBC")))
@ -76,3 +77,6 @@
(when priority-map?
(require '[babashka.impl.priority-map]))
(when rrb-vector?
(require '[babashka.impl.rrb-vector]))

View file

@ -256,7 +256,8 @@ Use bb run --help to show this help output.
:feature/spec-alpha %s
:feature/selmer %s
:feature/logging %s
:feature/priority-map %s}")
:feature/priority-map %s
:feature/rrb-vector %s}")
version
features/csv?
features/java-nio?
@ -276,7 +277,8 @@ Use bb run --help to show this help output.
features/spec-alpha?
features/selmer?
features/logging?
features/priority-map?)))
features/priority-map?
features/rrb-vector?)))
(defn read-file [file]
(let [f (io/file file)]
@ -442,7 +444,8 @@ Use bb run --help to show this help output.
'clojure.tools.logging.readable
@(resolve 'babashka.impl.logging/tools-logging-readable-namespace))
features/priority-map? (assoc 'clojure.data.priority-map
@(resolve 'babashka.impl.priority-map/priority-map-namespace))))
@(resolve 'babashka.impl.priority-map/priority-map-namespace))
features/rrb-vector? (assoc 'clojure.core.rrb-vector @(resolve 'babashka.impl.rrb-vector/rrb-vector-namespace))))
(def edn-readers (cond-> {}
features/yaml?