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-selmer"
|
||||||
"feature-logging"
|
"feature-logging"
|
||||||
"feature-priority-map"
|
"feature-priority-map"
|
||||||
|
"feature-rrb-vector"
|
||||||
"feature-jdbc"
|
"feature-jdbc"
|
||||||
"pods/src"
|
"pods/src"
|
||||||
"babashka.nrepl/src"
|
"babashka.nrepl/src"
|
||||||
|
|
@ -46,7 +47,8 @@
|
||||||
com.taoensso/timbre {:mvn/version "5.2.1"}
|
com.taoensso/timbre {:mvn/version "5.2.1"}
|
||||||
org.clojure/tools.logging {:mvn/version "1.1.0"}
|
org.clojure/tools.logging {:mvn/version "1.1.0"}
|
||||||
org.clojure/data.priority-map {: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
|
:aliases {:babashka/dev
|
||||||
{:main-opts ["-m" "babashka.main"]}
|
{:main-opts ["-m" "babashka.main"]}
|
||||||
:profile
|
: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"]]}
|
[org.clojure/tools.logging "1.1.0"]]}
|
||||||
:feature/priority-map {:source-paths ["feature-priority-map"]
|
:feature/priority-map {:source-paths ["feature-priority-map"]
|
||||||
:dependencies [[org.clojure/data.priority-map "1.1.0"]]}
|
: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
|
:test [:feature/xml
|
||||||
:feature/lanterna
|
:feature/lanterna
|
||||||
:feature/yaml
|
:feature/yaml
|
||||||
|
|
@ -87,6 +89,7 @@
|
||||||
:feature/selmer
|
:feature/selmer
|
||||||
:feature/logging
|
:feature/logging
|
||||||
:feature/priority-map
|
:feature/priority-map
|
||||||
|
:feature/rrb-vector
|
||||||
{:dependencies [[com.clojure-goes-fast/clj-async-profiler "0.5.0"]
|
{:dependencies [[com.clojure-goes-fast/clj-async-profiler "0.5.0"]
|
||||||
[com.opentable.components/otj-pg-embedded "0.13.3"]]}]
|
[com.opentable.components/otj-pg-embedded "0.13.3"]]}]
|
||||||
:uberjar {:global-vars {*assert* false}
|
:uberjar {:global-vars {*assert* false}
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,7 @@ then
|
||||||
export BABASHKA_FEATURE_SELMER="${BABASHKA_FEATURE_SELMER:-false}"
|
export BABASHKA_FEATURE_SELMER="${BABASHKA_FEATURE_SELMER:-false}"
|
||||||
export BABASHKA_FEATURE_LOGGING="${BABASHKA_FEATURE_LOGGING:-false}"
|
export BABASHKA_FEATURE_LOGGING="${BABASHKA_FEATURE_LOGGING:-false}"
|
||||||
export BABASHKA_FEATURE_PRIORITY_MAP="${BABASHKA_FEATURE_PRIORITY_MAP:-false}"
|
export BABASHKA_FEATURE_PRIORITY_MAP="${BABASHKA_FEATURE_PRIORITY_MAP:-false}"
|
||||||
|
export BABASHKA_FEATURE_RRB_VECTOR="${BABASHKA_FEATURE_RRB_VECTOR:-false}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
"$GRAALVM_HOME/bin/native-image" "${args[@]}"
|
"$GRAALVM_HOME/bin/native-image" "${args[@]}"
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,13 @@ else
|
||||||
BABASHKA_LEIN_PROFILES+=",-feature/priority-map"
|
BABASHKA_LEIN_PROFILES+=",-feature/priority-map"
|
||||||
fi
|
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
|
cp deps.edn resources/META-INF/babashka/deps.edn
|
||||||
|
|
||||||
if [ -z "$BABASHKA_JAR" ]; then
|
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
|
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% bb "(+ 1 2 3)"
|
||||||
|
|
||||||
call lein with-profiles %BABASHKA_LEIN_PROFILES%,+reflection,-uberjar do run
|
call lein with-profiles %BABASHKA_LEIN_PROFILES%,+reflection,-uberjar do run
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,8 @@
|
||||||
java.util.Iterator
|
java.util.Iterator
|
||||||
{:methods [{:name "hasNext"}
|
{:methods [{:name "hasNext"}
|
||||||
{:name "next"}]}
|
{:name "next"}]}
|
||||||
})
|
java.util.TimeZone
|
||||||
|
{:methods [{:name "getTimeZone"}]}})
|
||||||
|
|
||||||
(def custom-map
|
(def custom-map
|
||||||
(cond->
|
(cond->
|
||||||
|
|
@ -439,6 +440,7 @@
|
||||||
;; list above and then everything reachable via the public class will be
|
;; list above and then everything reachable via the public class will be
|
||||||
;; visible in the native image.
|
;; visible in the native image.
|
||||||
:instance-checks [clojure.lang.AFn
|
:instance-checks [clojure.lang.AFn
|
||||||
|
clojure.lang.Agent
|
||||||
clojure.lang.AMapEntry ;; for proxy
|
clojure.lang.AMapEntry ;; for proxy
|
||||||
clojure.lang.APersistentMap ;; for proxy
|
clojure.lang.APersistentMap ;; for proxy
|
||||||
clojure.lang.APersistentSet
|
clojure.lang.APersistentSet
|
||||||
|
|
@ -489,6 +491,8 @@
|
||||||
clojure.lang.Sequential
|
clojure.lang.Sequential
|
||||||
clojure.lang.Seqable
|
clojure.lang.Seqable
|
||||||
clojure.lang.Volatile
|
clojure.lang.Volatile
|
||||||
|
java.lang.ExceptionInInitializerError
|
||||||
|
java.sql.Timestamp
|
||||||
java.util.concurrent.atomic.AtomicInteger
|
java.util.concurrent.atomic.AtomicInteger
|
||||||
java.util.concurrent.atomic.AtomicLong
|
java.util.concurrent.atomic.AtomicLong
|
||||||
java.util.Collection
|
java.util.Collection
|
||||||
|
|
@ -594,6 +598,7 @@
|
||||||
Comparable java.lang.Comparable
|
Comparable java.lang.Comparable
|
||||||
Double java.lang.Double
|
Double java.lang.Double
|
||||||
Exception java.lang.Exception
|
Exception java.lang.Exception
|
||||||
|
ExceptionInInitializerError java.lang.ExceptionInInitializerError
|
||||||
IndexOutOfBoundsException java.lang.IndexOutOfBoundsException
|
IndexOutOfBoundsException java.lang.IndexOutOfBoundsException
|
||||||
IllegalArgumentException java.lang.IllegalArgumentException
|
IllegalArgumentException java.lang.IllegalArgumentException
|
||||||
IllegalStateException java.lang.IllegalStateException
|
IllegalStateException java.lang.IllegalStateException
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
(def selmer? (not= "false" (System/getenv "BABASHKA_FEATURE_SELMER")))
|
(def selmer? (not= "false" (System/getenv "BABASHKA_FEATURE_SELMER")))
|
||||||
(def logging? (not= "false" (System/getenv "BABASHKA_FEATURE_LOGGING")))
|
(def logging? (not= "false" (System/getenv "BABASHKA_FEATURE_LOGGING")))
|
||||||
(def priority-map? (not= "false" (System/getenv "BABASHKA_FEATURE_PRIORITY_MAP")))
|
(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
|
;; excluded by default
|
||||||
(def jdbc? (= "true" (System/getenv "BABASHKA_FEATURE_JDBC")))
|
(def jdbc? (= "true" (System/getenv "BABASHKA_FEATURE_JDBC")))
|
||||||
|
|
@ -76,3 +77,6 @@
|
||||||
|
|
||||||
(when priority-map?
|
(when priority-map?
|
||||||
(require '[babashka.impl.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/spec-alpha %s
|
||||||
:feature/selmer %s
|
:feature/selmer %s
|
||||||
:feature/logging %s
|
:feature/logging %s
|
||||||
:feature/priority-map %s}")
|
:feature/priority-map %s
|
||||||
|
:feature/rrb-vector %s}")
|
||||||
version
|
version
|
||||||
features/csv?
|
features/csv?
|
||||||
features/java-nio?
|
features/java-nio?
|
||||||
|
|
@ -276,7 +277,8 @@ Use bb run --help to show this help output.
|
||||||
features/spec-alpha?
|
features/spec-alpha?
|
||||||
features/selmer?
|
features/selmer?
|
||||||
features/logging?
|
features/logging?
|
||||||
features/priority-map?)))
|
features/priority-map?
|
||||||
|
features/rrb-vector?)))
|
||||||
|
|
||||||
(defn read-file [file]
|
(defn read-file [file]
|
||||||
(let [f (io/file file)]
|
(let [f (io/file file)]
|
||||||
|
|
@ -442,7 +444,8 @@ Use bb run --help to show this help output.
|
||||||
'clojure.tools.logging.readable
|
'clojure.tools.logging.readable
|
||||||
@(resolve 'babashka.impl.logging/tools-logging-readable-namespace))
|
@(resolve 'babashka.impl.logging/tools-logging-readable-namespace))
|
||||||
features/priority-map? (assoc 'clojure.data.priority-map
|
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-> {}
|
(def edn-readers (cond-> {}
|
||||||
features/yaml?
|
features/yaml?
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue