[#957] Repair ns meta

This commit is contained in:
Michiel Borkent 2021-07-31 14:44:26 +02:00 committed by GitHub
parent 89695d8f7a
commit 3f72507f77
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 98 additions and 66 deletions

View file

@ -1,7 +1,10 @@
(ns babashka.impl.csv
{:no-doc true}
(:require [clojure.data.csv :as csv]))
(:require [clojure.data.csv :as csv]
[sci.core :as sci]))
(def cns (sci/create-ns 'clojure.data.csv nil))
(def csv-namespace
{'read-csv csv/read-csv
'write-csv csv/write-csv})
{'read-csv (sci/copy-var csv/read-csv cns)
'write-csv (sci/copy-var csv/write-csv cns)})

2
sci

@ -1 +1 @@
Subproject commit 5ed2190f3c97de6d30f3aba96362bf6c68e95e90
Subproject commit 3c7ebc9adc31261e342145696438022e8a9b9fce

View file

@ -4,7 +4,9 @@
[clojure.string :as str]
[sci.core :as sci]))
(def open-url-script (sci/new-dynamic-var '*open-url-script* (atom nil)))
(def bns (sci/create-ns 'clojure.java.browse nil))
(def open-url-script (sci/new-dynamic-var '*open-url-script* (atom nil) {:ns bns}))
(def os
(let [os-name (System/getProperty "os.name")
@ -27,4 +29,4 @@
(def browse-namespace
{'*open-url-script* open-url-script
'browse-url browse-url})
'browse-url (sci/copy-var browse-url bns)})

View file

@ -1,20 +1,13 @@
(ns babashka.impl.clojure.java.shell
{:no-doc true}
(:require [clojure.java.shell :as shell]
[sci.core :as sci]
[sci.impl.namespaces :refer [copy-var]]
[sci.impl.vars :as vars]))
[sci.core :as sci]))
(def shell-ns (vars/->SciNamespace 'clojure.java.shell nil))
(def shell-ns (sci/create-ns 'clojure.java.shell nil))
(def sh-dir (sci/new-dynamic-var '*sh-dir* nil {:ns shell-ns}))
(def sh-env (sci/new-dynamic-var '*sh-env* nil {:ns shell-ns}))
(defn with-sh-dir*
[_ _ dir & forms]
`(binding [clojure.java.shell/*sh-dir* ~dir]
~@forms))
(defn with-sh-env*
[_ _ env & forms]
`(binding [clojure.java.shell/*sh-env* ~env]
@ -38,11 +31,11 @@
(alter-meta! #'sh (constantly (meta #'shell/sh)))
(def sns (sci/create-ns 'clojure.java.shell nil))
(def shell-namespace
{'*sh-dir* sh-dir
'*sh-env* sh-env
'with-sh-dir (with-meta with-sh-dir*
{:sci/macro true})
'with-sh-env (with-meta with-sh-env*
{:sci/macro true})
'sh (copy-var sh shell-ns)})
'with-sh-dir (sci/copy-var shell/with-sh-dir shell-ns)
'with-sh-env (sci/copy-var shell/with-sh-env shell-ns)
'sh (sci/copy-var sh shell-ns)})

View file

@ -3,14 +3,19 @@
(:require [clojure.stacktrace :as stacktrace]
[sci.core :as sci]))
(def sns (sci/create-ns 'clojure.stacktrace nil))
(defmacro wrap-out [f]
`(fn [& ~'args]
(binding [*out* @sci/out]
(apply ~f ~'args))))
(defn new-var [var-sym f]
(sci/new-var var-sym f {:ns sns}))
(def stacktrace-namespace
{'root-cause stacktrace/root-cause
'print-trace-element (wrap-out stacktrace/print-trace-element)
'print-throwable (wrap-out stacktrace/print-throwable)
'print-stack-trace (wrap-out stacktrace/print-stack-trace)
'print-cause-trace (wrap-out stacktrace/print-cause-trace)})
{'root-cause (sci/copy-var stacktrace/root-cause sns)
'print-trace-element (new-var 'print-trace-element (wrap-out stacktrace/print-trace-element))
'print-throwable (new-var 'print-throwable (wrap-out stacktrace/print-throwable))
'print-stack-trace (new-var 'print-stack-trace (wrap-out stacktrace/print-stack-trace))
'print-cause-trace (new-var 'print-cause-trace (wrap-out stacktrace/print-cause-trace))})

View file

@ -31,8 +31,8 @@
(def protocols-namespace
{'Datafiable (sci/new-var 'clojure.core.protocols/Datafiable {:methods #{'datafy}
:ns protocols-ns})
:ns protocols-ns} {:ns protocols-ns})
'datafy (copy-var datafy protocols-ns)
'Navigable (sci/new-var 'clojure.core.protocols/Navigable {:methods #{'nav}
:ns protocols-ns})
:ns protocols-ns} {:ns protocols-ns})
'nav (copy-var nav protocols-ns)})

View file

@ -1,2 +1,24 @@
(ns babashka.impl.server)
(ns babashka.impl.server
(:require [babashka.impl.clojure.core.server :as server]
[babashka.impl.common :as common]
[babashka.impl.socket-repl :as socket-repl]
[sci.core :as sci]))
(def sns (sci/create-ns 'clojure.core.server nil))
(def prepl (fn [& args]
(apply server/prepl @common/ctx args)))
(def io-prepl
(fn [& args]
(apply server/io-prepl @common/ctx args)))
(def start-server
(fn [& args]
(apply server/start-server @common/ctx args)))
(def clojure-core-server-namespace
{'repl (sci/copy-var socket-repl/repl sns)
'prepl (sci/copy-var prepl sns)
'io-prepl (sci/copy-var io-prepl sns)
'start-server (sci/copy-var start-server sns)})

View file

@ -9,6 +9,9 @@
(def tns t/tns)
(defn new-var [var-sym f]
(sci/new-var var-sym f {:ns tns}))
(def clojure-test-namespace
{:obj tns
'*load-tests* t/load-tests
@ -20,17 +23,17 @@
'*test-out* t/test-out
;; 'with-test-out (macrofy @#'t/with-test-out)
;; 'file-position t/file-position
'testing-vars-str t/testing-vars-str
'testing-contexts-str t/testing-contexts-str
'inc-report-counter t/inc-report-counter
'testing-vars-str (sci/copy-var t/testing-vars-str tns)
'testing-contexts-str (sci/copy-var t/testing-contexts-str tns)
'inc-report-counter (sci/copy-var t/inc-report-counter tns)
'report t/report
'do-report t/do-report
'do-report (sci/copy-var t/do-report tns)
;; assertion utilities
'function? t/function?
'assert-predicate t/assert-predicate
'assert-any t/assert-any
'function? (sci/copy-var t/function? tns)
'assert-predicate (sci/copy-var t/assert-predicate tns)
'assert-any (sci/copy-var t/assert-any tns)
;; assertion methods
'assert-expr t/assert-expr
'assert-expr (sci/copy-var t/assert-expr tns)
'try-expr (sci/copy-var t/try-expr tns)
;; assertion macros
'is (sci/copy-var t/is tns)
@ -42,15 +45,15 @@
'deftest- (sci/copy-var t/deftest- tns)
'set-test (sci/copy-var t/set-test tns)
;; fixtures
'use-fixtures t/use-fixtures
'compose-fixtures t/compose-fixtures
'join-fixtures t/join-fixtures
'use-fixtures (sci/copy-var t/use-fixtures tns)
'compose-fixtures (sci/copy-var t/compose-fixtures tns)
'join-fixtures (sci/copy-var t/join-fixtures tns)
;; running tests: low level
'test-var t/test-var
'test-vars t/test-vars
'test-all-vars (contextualize t/test-all-vars)
'test-ns (contextualize t/test-ns)
'test-vars (sci/copy-var t/test-vars tns)
'test-all-vars (new-var 'test-all-vars (contextualize t/test-all-vars))
'test-ns (new-var 'test-ns (contextualize t/test-ns))
;; running tests: high level
'run-tests (contextualize t/run-tests)
'run-all-tests (contextualize t/run-all-tests)
'successful? t/successful?})
'run-tests (new-var 'run-tests (contextualize t/run-tests))
'run-all-tests (new-var 'run-all-tests (contextualize t/run-all-tests))
'successful? (sci/copy-var t/successful? tns)})

View file

@ -9,7 +9,6 @@
[babashka.impl.classes :as classes]
[babashka.impl.classpath :as cp :refer [classpath-namespace]]
[babashka.impl.clojure.core :as core :refer [core-extras]]
[babashka.impl.clojure.core.server :as server]
[babashka.impl.clojure.java.browse :refer [browse-namespace]]
[babashka.impl.clojure.java.io :refer [io-namespace]]
[babashka.impl.clojure.java.shell :refer [shell-namespace]]
@ -34,12 +33,13 @@
[babashka.impl.proxy :refer [proxy-fn]]
[babashka.impl.reify :refer [reify-fn]]
[babashka.impl.repl :as repl]
[babashka.impl.server :refer [clojure-core-server-namespace]]
[babashka.impl.socket-repl :as socket-repl]
[babashka.impl.tasks :as tasks :refer [tasks-namespace]]
[babashka.impl.test :as t]
[babashka.impl.tools.cli :refer [tools-cli-namespace]]
[babashka.nrepl.server :as nrepl-server]
[babashka.wait :as wait]
[babashka.wait :refer [wait-namespace]]
[clojure.edn :as edn]
[clojure.java.io :as io]
[clojure.string :as str]
@ -72,6 +72,8 @@
(def pipe-signal-received? (constantly false))
(def handle-sigint! (constantly nil))))
(def signal-ns {'pipe-signal-received? (sci/copy-var pipe-signal-received? (sci/create-ns 'babashka.signal nil))})
(sci/alter-var-root sci/in (constantly *in*))
(sci/alter-var-root sci/out (constantly *out*))
(sci/alter-var-root sci/err (constantly *err*))
@ -311,15 +313,6 @@ Use bb run --help to show this help output.
;;(def ^:private server-ns-obj (sci/create-ns 'clojure.core.server nil))
(def clojure-core-server
{'repl socket-repl/repl
'prepl (fn [& args]
(apply server/prepl @common/ctx args))
'io-prepl (fn [& args]
(apply server/io-prepl @common/ctx args))
'start-server (fn [& args]
(apply server/start-server @common/ctx args))})
(def input-var (sci/new-dynamic-var '*input*))
(def namespaces
@ -330,9 +323,8 @@ Use bb run --help to show this help output.
nil)}
'clojure.tools.cli tools-cli-namespace
'clojure.java.shell shell-namespace
'babashka.wait {'wait-for-port wait/wait-for-port
'wait-for-path wait/wait-for-path}
'babashka.signal {'pipe-signal-received? pipe-signal-received?}
'babashka.wait wait-namespace
'babashka.signal signal-ns
'clojure.java.io io-namespace
'cheshire.core cheshire-core-namespace
'clojure.data data/data-namespace
@ -354,7 +346,7 @@ Use bb run --help to show this help output.
'clojure.datafy datafy-namespace
'clojure.core.protocols protocols-namespace
'babashka.process process-namespace
'clojure.core.server clojure-core-server
'clojure.core.server clojure-core-server-namespace
'babashka.deps deps-namespace
'babashka.tasks tasks-namespace
'taoensso.timbre timbre-namespace

View file

@ -1,5 +1,6 @@
(ns babashka.wait
(:require [clojure.java.io :as io])
(:require [clojure.java.io :as io]
[sci.core :as sci])
(:import [java.net Socket SocketException]))
(set! *warn-on-reflection* true)
@ -56,7 +57,13 @@
default
:else
(assoc opts :took
(- (System/currentTimeMillis) t0))))))))
(- (System/currentTimeMillis) t0))))))))
(def wns (sci/create-ns 'babashka.wait nil))
(def wait-namespace
{'wait-for-port (sci/copy-var wait-for-port wns)
'wait-for-path (sci/copy-var wait-for-path wns)})
(comment
(wait-for-port "localhost" 80)

View file

@ -113,3 +113,8 @@ true
(str/replace ":env-key" ":extra-env")))
(is (fs/exists? libs-dir))
(is (fs/exists? libs-dir2)))))
(deftest print-deps-test
)

View file

@ -1,8 +1,8 @@
(ns babashka.impl.socket-repl-test
(:require
[babashka.impl.common :as common]
[babashka.impl.server :refer [clojure-core-server-namespace]]
[babashka.impl.socket-repl :refer [start-repl! stop-repl!]]
[babashka.main :refer [clojure-core-server]]
[babashka.process :as p]
[babashka.test-utils :as tu]
[babashka.wait :as w]
@ -46,7 +46,7 @@
(when exec?
(try
(if tu/jvm?
(let [ctx (init {:namespaces {'clojure.core.server clojure-core-server}
(let [ctx (init {:namespaces {'clojure.core.server clojure-core-server-namespace}
:features #{:bb}})]
(vreset! common/ctx ctx)
(start-repl! "0.0.0.0:1666" ctx))
@ -79,7 +79,7 @@
(let [ctx (init {:bindings {'*command-line-args*
["a" "b" "c"]}
:env (atom {})
:namespaces {'clojure.core.server clojure-core-server}
:namespaces {'clojure.core.server clojure-core-server-namespace}
:features #{:bb}})]
(vreset! common/ctx ctx)
(start-repl! "{:address \"localhost\" :accept clojure.core.server/repl :port 1666}"
@ -103,7 +103,7 @@
(let [ctx (init {:bindings {'*command-line-args*
["a" "b" "c"]}
:env (atom {})
:namespaces {'clojure.core.server clojure-core-server}
:namespaces {'clojure.core.server clojure-core-server-namespace}
:features #{:bb}})]
(vreset! common/ctx ctx)
(start-repl! "{:address \"localhost\" :accept clojure.core.server/io-prepl :port 1666}"