Even better require detection
This commit is contained in:
parent
39c1390085
commit
073e7e3ce0
1 changed files with 36 additions and 26 deletions
|
|
@ -3,36 +3,46 @@
|
||||||
(:require [babashka.impl.patches.datafy]
|
(:require [babashka.impl.patches.datafy]
|
||||||
[babashka.impl.pprint]))
|
[babashka.impl.pprint]))
|
||||||
|
|
||||||
;; ;; Enable this for scanning requiring-resolve usage:
|
;; Enable this for scanning requiring usage:
|
||||||
;; ;; ---
|
(def enable-require-scan
|
||||||
|
"(do
|
||||||
|
(def old-require require)
|
||||||
|
(def old-resolve resolve)
|
||||||
|
|
||||||
;; (def old-require require)
|
(def our-requiring-resolve (fn [sym]
|
||||||
;; (def old-resolve resolve)
|
(let [ns (symbol (namespace sym))]
|
||||||
|
(old-require ns)
|
||||||
|
(old-resolve sym))))
|
||||||
|
|
||||||
;; (def our-requiring-resolve (fn [sym]
|
(defn static-requiring-resolve [form _ _]
|
||||||
;; (let [ns (symbol (namespace sym))]
|
(prn :req-resolve form :args (rest form))
|
||||||
;; (old-require ns)
|
`(let [res# (our-requiring-resolve ~@(rest form))]
|
||||||
;; (resolve sym))))
|
res#))
|
||||||
|
|
||||||
;; (defn static-requiring-resolve [form _ _]
|
(alter-var-root #'requiring-resolve (constantly @#'static-requiring-resolve))
|
||||||
;; (prn :req-resolve form :args (rest form))
|
(doto #'requiring-resolve (.setMacro))
|
||||||
;; `(let [res# (our-requiring-resolve ~@(rest form))]
|
|
||||||
;; res#))
|
|
||||||
|
|
||||||
;; (alter-var-root #'requiring-resolve (constantly @#'static-requiring-resolve))
|
(defn static-require [& [&form _bindings & syms]]
|
||||||
;; (doto #'requiring-resolve (.setMacro))
|
(when (meta &form)
|
||||||
;; ;; ---
|
(prn :require &form (meta &form) *file*))
|
||||||
|
`(old-require ~@syms))
|
||||||
|
(alter-var-root #'require (constantly @#'static-require))
|
||||||
|
(doto #'require (.setMacro))
|
||||||
|
|
||||||
;; ;; Enable this for detecting literal usages of require
|
(alter-var-root #'clojure.core/serialized-require (constantly (fn [& args]
|
||||||
;; ;; ---
|
(prn :serialized-req args)))))
|
||||||
|
|
||||||
;; (defn static-require [& [&form _bindings & syms]]
|
|
||||||
;; (when (meta &form)
|
|
||||||
;; (prn :require &form (meta &form) *file*))
|
|
||||||
;; `(old-require ~@syms))
|
|
||||||
;; (alter-var-root #'require (constantly @#'static-require))
|
|
||||||
;; (doto #'require (.setMacro))
|
|
||||||
|
|
||||||
;; (alter-var-root #'clojure.core/serialized-require (constantly (fn [& args]
|
|
||||||
;; (prn :serialized-req args))))
|
(defn static-resolve [& [&form _bindings & syms]]
|
||||||
;; ;; ---
|
(when (meta &form)
|
||||||
|
(prn :require &form (meta &form) *file*))
|
||||||
|
`(old-resolve ~@syms))
|
||||||
|
(alter-var-root #'resolve (constantly @#'static-resolve))
|
||||||
|
(doto #'resolve (.setMacro))
|
||||||
|
")
|
||||||
|
|
||||||
|
|
||||||
|
(when (System/getenv "BABASHKA_REQUIRE_SCAN")
|
||||||
|
(load-string enable-require-scan))
|
||||||
|
;; ---
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue