parent
1ef90f98ef
commit
b93198c965
9 changed files with 43 additions and 5 deletions
4
deps.edn
4
deps.edn
|
|
@ -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
|
||||
|
|
|
|||
7
feature-rrb-vector/babashka/impl/rrb_vector.clj
Normal file
7
feature-rrb-vector/babashka/impl/rrb_vector.clj
Normal 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)})
|
||||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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[@]}"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]))
|
||||
|
|
|
|||
|
|
@ -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?
|
||||
|
|
|
|||
Loading…
Reference in a new issue