[nop] Callsite housekeeping

This commit is contained in:
Peter Taoussanis 2025-03-03 00:09:55 +01:00
parent ea20f6836b
commit 46e82f0816
2 changed files with 35 additions and 34 deletions

View file

@ -239,10 +239,10 @@
{:doc (impl/signal-docstring :signal!) {:doc (impl/signal-docstring :signal!)
:arglists (impl/signal-arglists :signal!)} :arglists (impl/signal-arglists :signal!)}
[& args] [& args]
(enc/keep-callsite (truss/keep-callsite
`(impl/signal! ~(args->opts args))))) `(impl/signal! ~(args->opts args)))))
(comment (with-signal (signal!))) (comment (:coords (with-signal (signal!))))
#?(:clj #?(:clj
(defn- merge-or-assoc-opts [m macro-form k v] (defn- merge-or-assoc-opts [m macro-form k v]
@ -260,7 +260,7 @@
([ opts-or-id] `(impl/signal! ~(merge-or-assoc-opts base-opts &form :id opts-or-id))) ([ opts-or-id] `(impl/signal! ~(merge-or-assoc-opts base-opts &form :id opts-or-id)))
([id opts-or-level] `(impl/signal! ~(assoc (merge-or-assoc-opts base-opts &form :level opts-or-level) :id id)))))) ([id opts-or-level] `(impl/signal! ~(assoc (merge-or-assoc-opts base-opts &form :level opts-or-level) :id id))))))
(comment (with-signal (event! ::my-id :info))) (comment (:coords (with-signal (event! ::my-id :info))))
#?(:clj #?(:clj
(let [base-opts {:kind :log, :level :info}] (let [base-opts {:kind :log, :level :info}]
@ -271,7 +271,7 @@
([opts-or-msg ] `(impl/signal! ~(merge-or-assoc-opts base-opts &form :msg opts-or-msg))) ([opts-or-msg ] `(impl/signal! ~(merge-or-assoc-opts base-opts &form :msg opts-or-msg)))
([opts-or-level msg] `(impl/signal! ~(assoc (merge-or-assoc-opts base-opts &form :level opts-or-level) :msg msg)))))) ([opts-or-level msg] `(impl/signal! ~(assoc (merge-or-assoc-opts base-opts &form :level opts-or-level) :msg msg))))))
(comment (with-signal (log! :info "My msg"))) (comment (:coords (with-signal (log! :info "My msg"))))
#?(:clj #?(:clj
(let [base-opts {:kind :trace, :level :info, :msg `impl/default-trace-msg}] (let [base-opts {:kind :trace, :level :info, :msg `impl/default-trace-msg}]
@ -282,7 +282,7 @@
([opts-or-run] `(impl/signal! ~(merge-or-assoc-opts base-opts &form :run opts-or-run))) ([opts-or-run] `(impl/signal! ~(merge-or-assoc-opts base-opts &form :run opts-or-run)))
([opts-or-id run] `(impl/signal! ~(assoc (merge-or-assoc-opts base-opts &form :id opts-or-id) :run run)))))) ([opts-or-id run] `(impl/signal! ~(assoc (merge-or-assoc-opts base-opts &form :id opts-or-id) :run run))))))
(comment (with-signal (trace! ::my-id (+ 1 2)))) (comment (:coords (with-signal (trace! ::my-id (+ 1 2)))))
#?(:clj #?(:clj
(let [base-opts {:kind :spy, :level :info, :msg `impl/default-trace-msg}] (let [base-opts {:kind :spy, :level :info, :msg `impl/default-trace-msg}]
@ -303,13 +303,14 @@
:arglists (impl/signal-arglists :error!)} :arglists (impl/signal-arglists :error!)}
([opts-or-id error] `(error! ~(assoc (merge-or-assoc-opts base-opts &form :id opts-or-id) :error error))) ([opts-or-id error] `(error! ~(assoc (merge-or-assoc-opts base-opts &form :id opts-or-id) :error error)))
([opts-or-error] ([opts-or-error]
(let [opts (merge-or-assoc-opts base-opts &form :error opts-or-error) (let [opts (merge-or-assoc-opts base-opts &form :error opts-or-error)
gs-error (gensym "error")] gs-error (gensym "error")]
`(let [~gs-error ~(get opts :error)]
(impl/signal! ~(assoc opts :error gs-error))
(do ~gs-error)))))))
(comment (with-signal (throw (error! ::my-id (truss/ex-info "MyEx" {}))))) `(let [~gs-error ~(get opts :error)]
(impl/signal! ~(assoc opts :error gs-error))
~gs-error))))))
(comment (:coords (with-signal (throw (error! ::my-id (truss/ex-info "MyEx" {}))))))
#?(:clj #?(:clj
(let [base-opts {:kind :error, :level :error}] (let [base-opts {:kind :error, :level :error}]
@ -331,7 +332,7 @@
(impl/signal! ~(assoc opts :error gs-caught)) (impl/signal! ~(assoc opts :error gs-caught))
(if ~rethrow? (throw ~gs-caught) ~catch-val)))))))) (if ~rethrow? (throw ~gs-caught) ~catch-val))))))))
(comment (with-signal (catch->error! ::my-id (/ 1 0)))) (comment (:coords (with-signal (catch->error! ::my-id (/ 1 0)))))
#?(:clj #?(:clj
(defn uncaught->handler! (defn uncaught->handler!
@ -359,7 +360,7 @@
See `uncaught->handler!` and `error!` for details." See `uncaught->handler!` and `error!` for details."
{:arglists (impl/signal-arglists :uncaught->error!)} {:arglists (impl/signal-arglists :uncaught->error!)}
([ ] (enc/keep-callsite `(uncaught->error! {}))) ([ ] (truss/keep-callsite `(uncaught->error! {})))
([opts-or-id] ([opts-or-id]
(let [opts (merge-or-assoc-opts base-opts &form :id opts-or-id)] (let [opts (merge-or-assoc-opts base-opts &form :id opts-or-id)]
`(uncaught->handler! `(uncaught->handler!

View file

@ -61,7 +61,7 @@
(defmacro ^:no-doc log! (defmacro ^:no-doc log!
"Private, don't use." "Private, don't use."
[level format-msg? vargs] [level format-msg? vargs]
(enc/keep-callsite (truss/keep-callsite
`(when (impl/signal-allowed? {:kind :log, :level ~level, :id shim-id}) `(when (impl/signal-allowed? {:kind :log, :level ~level, :id shim-id})
(let [[error# msg# data#] (parse-vargs ~format-msg? ~vargs)] (let [[error# msg# data#] (parse-vargs ~format-msg? ~vargs)]
(tel/log! (tel/log!
@ -80,23 +80,23 @@
#?(:clj #?(:clj
(do (do
(defmacro log "Prefer `telemere/log!`, etc." [level & args] (enc/keep-callsite `(log! ~level false [~@args]))) (defmacro log "Prefer `telemere/log!`, etc." [level & args] (truss/keep-callsite `(log! ~level false [~@args])))
(defmacro trace "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :trace false [~@args]))) (defmacro trace "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :trace false [~@args])))
(defmacro debug "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :debug false [~@args]))) (defmacro debug "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :debug false [~@args])))
(defmacro info "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :info false [~@args]))) (defmacro info "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :info false [~@args])))
(defmacro warn "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :warn false [~@args]))) (defmacro warn "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :warn false [~@args])))
(defmacro error "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :error false [~@args]))) (defmacro error "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :error false [~@args])))
(defmacro fatal "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :fatal false [~@args]))) (defmacro fatal "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :fatal false [~@args])))
(defmacro report "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :report false [~@args]))) (defmacro report "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :report false [~@args])))
(defmacro logf "Prefer `telemere/log!`, etc." [level & args] (enc/keep-callsite `(log! ~level true [~@args]))) (defmacro logf "Prefer `telemere/log!`, etc." [level & args] (truss/keep-callsite `(log! ~level true [~@args])))
(defmacro tracef "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :trace true [~@args]))) (defmacro tracef "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :trace true [~@args])))
(defmacro debugf "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :debug true [~@args]))) (defmacro debugf "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :debug true [~@args])))
(defmacro infof "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :info true [~@args]))) (defmacro infof "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :info true [~@args])))
(defmacro warnf "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :warn true [~@args]))) (defmacro warnf "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :warn true [~@args])))
(defmacro errorf "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :error true [~@args]))) (defmacro errorf "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :error true [~@args])))
(defmacro fatalf "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :fatal true [~@args]))) (defmacro fatalf "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :fatal true [~@args])))
(defmacro reportf "Prefer `telemere/log!`, etc." [& args] (enc/keep-callsite `(log! :report true [~@args]))))) (defmacro reportf "Prefer `telemere/log!`, etc." [& args] (truss/keep-callsite `(log! :report true [~@args])))))
#?(:clj #?(:clj
(defmacro spy (defmacro spy
@ -115,8 +115,8 @@
The additional signal helps to separate the success and error cases for The additional signal helps to separate the success and error cases for
individual filtering and/or handling." individual filtering and/or handling."
([ form] (enc/keep-callsite `(spy :debug nil ~form))) ([ form] (truss/keep-callsite `(spy :debug nil ~form)))
([level form] (enc/keep-callsite `(spy ~level nil ~form))) ([level form] (truss/keep-callsite `(spy ~level nil ~form)))
([level form-name form] ([level form-name form]
(let [ns (str *ns*) (let [ns (str *ns*)
coords (truss/callsite-coords &form) coords (truss/callsite-coords &form)
@ -143,9 +143,9 @@
(select-keys (tel/with-signal (spy :info #_"my-form-name" (+ 1 2))) [:level :msg_]) (select-keys (tel/with-signal (spy :info #_"my-form-name" (+ 1 2))) [:level :msg_])
(select-keys (tel/with-signal (spy :info #_"my-form-name" (throw (Exception. "Ex")))) [:level :msg_])) (select-keys (tel/with-signal (spy :info #_"my-form-name" (throw (Exception. "Ex")))) [:level :msg_]))
#?(:clj (defmacro log-errors "Prefer `telemere/catch->error!`." [& body] (enc/keep-callsite `(tel/catch->error! {:id shim-id, :catch-val nil} (do ~@body))))) #?(:clj (defmacro log-errors "Prefer `telemere/catch->error!`." [& body] (truss/keep-callsite `(tel/catch->error! {:id shim-id, :catch-val nil} (do ~@body)))))
#?(:clj (defmacro log-and-rethrow-errors "Prefer `telemere/catch->error!`." [& body] (enc/keep-callsite `(tel/catch->error! {:id shim-id} (do ~@body))))) #?(:clj (defmacro log-and-rethrow-errors "Prefer `telemere/catch->error!`." [& body] (truss/keep-callsite `(tel/catch->error! {:id shim-id} (do ~@body)))))
#?(:clj (defmacro logged-future "Prefer `telemere/catch->error!`." [& body] (enc/keep-callsite `(future (tel/catch->error! {:id shim-id} (do ~@body)))))) #?(:clj (defmacro logged-future "Prefer `telemere/catch->error!`." [& body] (truss/keep-callsite `(future (tel/catch->error! {:id shim-id} (do ~@body))))))
#?(:clj #?(:clj
(defmacro refer-timbre (defmacro refer-timbre