This page is not created by, affiliated with, or supported by Slack Technologies, Inc.


In Clojure, it is legal to take the var of a macro sym, using it in a construct like

(defmacro my-or
  [& args]
  (apply #'or &form &env args))
Self-hosted CloureScript can consume such a macro with a little help with resolution:
(defmacro my-or
  [& args]
  (apply #'cljs.core$macros/or &form &env args))
I’m wondering if there would be any negative consequences if the compiler resolved things like #‘or. (Wanted to mention here first before JIRA.)


If anything, I suspect such support would only be in a :cljs branch of code.


@mfikes that’s interesting, I don’t immediately see a problem with that - though enabling things that can’t work in regular ClojureScript always gives me pause


Yes, the lack of uniformity bothers me


Maybe it is not worth it, presuming macros that take vars of macros are very rare


FWIW, for the specific motivating issue above, I’ve submitted a patch to core.rbb-vector to instead use splice. This would collapse the problem down to “macros namespaces in bootstrapped ClojureScript must be compilable as ClojureScript.” Perhaps that is a better solution than an asymmetric revision to the compiler for this corner case. (


@mfikes yeah I think so