From f5a226ab34a3e8fb62d8a0d521c6aedef8a04e25 Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Thu, 27 Oct 2022 21:01:14 +0200 Subject: [PATCH] Add notes for detecting runtime requiring-resolve, etc [skip ci] --- .../because_patches.clj | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/aaaa_this_has_to_be_first/because_patches.clj b/src/aaaa_this_has_to_be_first/because_patches.clj index f13b10a4..d0b5cda1 100644 --- a/src/aaaa_this_has_to_be_first/because_patches.clj +++ b/src/aaaa_this_has_to_be_first/because_patches.clj @@ -2,3 +2,29 @@ ;; we need pprint loaded first, it patches pprint to not bloat the GraalVM binary (:require [babashka.impl.patches.datafy] [babashka.impl.pprint])) + +;; Enable this for scanning requiring-resolve usage: +;; --- +;; (def old-requiring-resolve requiring-resolve) + +;; (defmacro static-requiring-resolve [sym] +;; (prn :sym sym) +;; `(old-requiring-resolve ~sym)) + +;; (alter-var-root #'requiring-resolve (constantly @#'static-requiring-resolve)) +;; (doto #'requiring-resolve (.setMacro)) +;; --- + +;; ((requiring-resolve 'clojure.pprint/pprint) (range 20)) + +;; Enable this for detecting literal usages of require +;; --- +;; (def old-require require) + +;; (defmacro static-require [& syms] +;; (when (meta &form) +;; (prn :require &form )) +;; `(old-require ~@syms)) +;; (alter-var-root #'require (constantly @#'static-require)) +;; (doto #'require (.setMacro)) +;; ---