Skip to content

Commit 60fa47c

Browse files
committed
Wrap log-expr in a conditional to assist DCE
Fixes #26. This allows code from macros like trace, debug, etc. to be removed by GCC when the user has the compiler constant goog.debug.LOGGING_ENABLED set to false.
1 parent 7c85abd commit 60fa47c

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

src/lambdaisland/glogi.clj

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
(defn- log-expr [form level keyvals]
44
(let [keyvals-map (apply array-map keyvals)
55
formatter (::formatter keyvals-map 'identity)]
6-
`(log ~(::logger keyvals-map (str *ns*))
7-
~level
8-
(~formatter
9-
~(-> keyvals-map
10-
(dissoc ::logger)
11-
(assoc :line (:line (meta form)))))
12-
~(:exception keyvals-map))))
6+
`(when ~(with-meta 'goog.debug.LOGGING_ENABLED {:tag 'boolean})
7+
(log ~(::logger keyvals-map (str *ns*))
8+
~level
9+
(~formatter
10+
~(-> keyvals-map
11+
(dissoc ::logger)
12+
(assoc :line (:line (meta form)))))
13+
~(:exception keyvals-map)))))
1314

1415
(defmacro shout [& keyvals]
1516
(log-expr &form :shout keyvals))

0 commit comments

Comments
 (0)