2021-09-12 10:39:53 +00:00
|
|
|
(ns aaaa-this-has-to-be-first.because-patches
|
2021-07-14 20:00:43 +00:00
|
|
|
;; we need pprint loaded first, it patches pprint to not bloat the GraalVM binary
|
2021-11-24 16:38:38 +00:00
|
|
|
(:require [babashka.impl.patches.datafy]
|
|
|
|
|
[babashka.impl.pprint]))
|
2022-10-27 19:01:14 +00:00
|
|
|
|
2022-12-26 11:38:51 +00:00
|
|
|
;; ;; Enable this for scanning requiring-resolve usage:
|
|
|
|
|
;; ;; ---
|
2022-10-27 19:01:14 +00:00
|
|
|
|
2022-12-26 11:38:51 +00:00
|
|
|
;; (def old-require require)
|
|
|
|
|
;; (def old-resolve resolve)
|
|
|
|
|
|
|
|
|
|
;; (def our-requiring-resolve (fn [sym]
|
|
|
|
|
;; (let [ns (symbol (namespace sym))]
|
|
|
|
|
;; (old-require ns)
|
|
|
|
|
;; (resolve sym))))
|
|
|
|
|
|
|
|
|
|
;; (defn static-requiring-resolve [form _ _]
|
|
|
|
|
;; (prn :req-resolve form :args (rest form))
|
|
|
|
|
;; `(let [res# (our-requiring-resolve ~@(rest form))]
|
|
|
|
|
;; res#))
|
2022-10-27 19:01:14 +00:00
|
|
|
|
|
|
|
|
;; (alter-var-root #'requiring-resolve (constantly @#'static-requiring-resolve))
|
|
|
|
|
;; (doto #'requiring-resolve (.setMacro))
|
2022-12-26 11:38:51 +00:00
|
|
|
;; ;; ---
|
2022-10-27 19:01:14 +00:00
|
|
|
|
2022-12-26 11:38:51 +00:00
|
|
|
;; ;; Enable this for detecting literal usages of require
|
|
|
|
|
;; ;; ---
|
2022-10-27 19:01:14 +00:00
|
|
|
|
2022-12-26 11:38:51 +00:00
|
|
|
;; (defn static-require [& [&form _bindings & syms]]
|
2022-10-27 19:01:14 +00:00
|
|
|
;; (when (meta &form)
|
2022-12-26 11:38:51 +00:00
|
|
|
;; (prn :require &form (meta &form) *file*))
|
2022-10-27 19:01:14 +00:00
|
|
|
;; `(old-require ~@syms))
|
|
|
|
|
;; (alter-var-root #'require (constantly @#'static-require))
|
|
|
|
|
;; (doto #'require (.setMacro))
|
2022-12-26 11:38:51 +00:00
|
|
|
|
|
|
|
|
;; (alter-var-root #'clojure.core/serialized-require (constantly (fn [& args]
|
|
|
|
|
;; (prn :serialized-req args))))
|
|
|
|
|
;; ;; ---
|