[#419] data readers
This commit is contained in:
parent
ae1431d160
commit
3f0cd93fc7
4 changed files with 11 additions and 11 deletions
2
sci
2
sci
|
|
@ -1 +1 @@
|
||||||
Subproject commit eefb58ef6054638da4986a66fc396a9ecfb58b5c
|
Subproject commit 58b335df281d86e09a2500c566e87fb8014cd1fb
|
||||||
|
|
@ -17,6 +17,8 @@
|
||||||
(prn (str "Elapsed time: " (/ (double (- (. System (nanoTime)) start#)) 1000000.0) " msecs"))
|
(prn (str "Elapsed time: " (/ (double (- (. System (nanoTime)) start#)) 1000000.0) " msecs"))
|
||||||
ret#))
|
ret#))
|
||||||
|
|
||||||
|
(def data-readers (sci/new-dynamic-var '*data-readers* nil))
|
||||||
|
|
||||||
(def core-extras
|
(def core-extras
|
||||||
{'file-seq (copy-core-var file-seq)
|
{'file-seq (copy-core-var file-seq)
|
||||||
'agent (copy-core-var agent)
|
'agent (copy-core-var agent)
|
||||||
|
|
@ -31,5 +33,5 @@
|
||||||
'time (with-meta time* {:sci/macro true})
|
'time (with-meta time* {:sci/macro true})
|
||||||
'Throwable->map (copy-core-var Throwable->map)
|
'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)
|
'*data-readers* data-readers
|
||||||
'xml-seq (copy-core-var xml-seq)})
|
'xml-seq (copy-core-var xml-seq)})
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
[babashka.impl.cheshire :refer [cheshire-core-namespace]]
|
[babashka.impl.cheshire :refer [cheshire-core-namespace]]
|
||||||
[babashka.impl.classes :as classes]
|
[babashka.impl.classes :as classes]
|
||||||
[babashka.impl.classpath :as cp]
|
[babashka.impl.classpath :as cp]
|
||||||
[babashka.impl.clojure.core :refer [core-extras]]
|
[babashka.impl.clojure.core :as core :refer [core-extras]]
|
||||||
[babashka.impl.clojure.java.io :refer [io-namespace]]
|
[babashka.impl.clojure.java.io :refer [io-namespace]]
|
||||||
[babashka.impl.clojure.java.shell :refer [shell-namespace]]
|
[babashka.impl.clojure.java.shell :refer [shell-namespace]]
|
||||||
[babashka.impl.clojure.main :as clojure-main :refer [demunge]]
|
[babashka.impl.clojure.main :as clojure-main :refer [demunge]]
|
||||||
|
|
@ -423,7 +423,7 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that
|
||||||
(handle-sigint!)
|
(handle-sigint!)
|
||||||
(binding [*unrestricted* true]
|
(binding [*unrestricted* true]
|
||||||
(sci/binding [reflection-var false
|
(sci/binding [reflection-var false
|
||||||
sci/ns (vars/->SciNamespace 'user nil)]
|
core/data-readers @core/data-readers]
|
||||||
(let [{:keys [:version :shell-in :edn-in :shell-out :edn-out
|
(let [{:keys [:version :shell-in :edn-in :shell-out :edn-out
|
||||||
:help? :file :command-line-args
|
:help? :file :command-line-args
|
||||||
:expressions :stream?
|
:expressions :stream?
|
||||||
|
|
@ -456,12 +456,6 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that
|
||||||
(let [res (cp/source-for-namespace loader namespace nil)]
|
(let [res (cp/source-for-namespace loader namespace nil)]
|
||||||
(when uberscript (swap! uberscript-sources conj (:source res)))
|
(when uberscript (swap! uberscript-sources conj (:source res)))
|
||||||
res)))
|
res)))
|
||||||
data-readers (delay (time (when-let [{:keys [:loader]} @cp-state]
|
|
||||||
(prn (cp/getResources
|
|
||||||
loader
|
|
||||||
["data_readers.clj"
|
|
||||||
"data-readers.cljc"] nil)))))
|
|
||||||
;;_ (prn @data-readers)
|
|
||||||
_ (when file (vars/bindRoot sci/file (.getCanonicalPath (io/file file))))
|
_ (when file (vars/bindRoot sci/file (.getCanonicalPath (io/file file))))
|
||||||
;; TODO: pull more of these values to compile time
|
;; TODO: pull more of these values to compile time
|
||||||
opts {:aliases aliases
|
opts {:aliases aliases
|
||||||
|
|
@ -490,7 +484,8 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that
|
||||||
:classes classes/class-map
|
:classes classes/class-map
|
||||||
:imports imports
|
:imports imports
|
||||||
:load-fn load-fn
|
:load-fn load-fn
|
||||||
:dry-run uberscript}
|
:dry-run uberscript
|
||||||
|
:readers core/data-readers}
|
||||||
opts (addons/future opts)
|
opts (addons/future opts)
|
||||||
sci-ctx (sci/init opts)
|
sci-ctx (sci/init opts)
|
||||||
_ (vreset! common/ctx sci-ctx)
|
_ (vreset! common/ctx sci-ctx)
|
||||||
|
|
|
||||||
|
|
@ -466,6 +466,9 @@
|
||||||
(deftest arrays-copy-of-test
|
(deftest arrays-copy-of-test
|
||||||
(is (= "foo" (bb nil "(String. (java.util.Arrays/copyOf (.getBytes \"foo\") 3))"))))
|
(is (= "foo" (bb nil "(String. (java.util.Arrays/copyOf (.getBytes \"foo\") 3))"))))
|
||||||
|
|
||||||
|
(deftest data-readers-test
|
||||||
|
(is (= 2 (bb nil "(set! *data-readers* {'t/tag inc}) #t/tag 1"))))
|
||||||
|
|
||||||
;;;; Scratch
|
;;;; Scratch
|
||||||
|
|
||||||
(comment
|
(comment
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue