This needs a design page on Confluence. Anything under discussion should probably address the new :refer.
David On Thu, Mar 22, 2012 at 10:37 PM, Evan Mezeske <emeze...@gmail.com> wrote: > Oops, I accidentally posted this before I finished typing it. I guess > most of what I was trying to convey made it through. > > The second ns form I posted is my suggested approach. It requires no > modifications to the Clojure language, and would be pretty simple to > implement in the ClojureScript compiler. I'd be more than happy to > implement such support if people thought it was desirable. > > -Evan > > > On Tuesday, March 20, 2012 10:12:43 PM UTC-7, Evan Mezeske wrote: >> >> Hi, >> >> I'm working on some tools for making it easier to share generic Clojure >> code between Clojure and ClojureScript, and one problem that does not seem >> to have a pretty solution is that of requiring macros. Clojure uses a >> regular (:require ...) whereas ClojureScript needs a (:require-macros ...). >> I understand that the distinction is necessary for ClojureScript because >> macros are written in Clojure. >> >> This difference in the (ns ...) form is troublesome when trying to share >> code between the two languages. Right now, the only solution is to >> copy+edit the shared file (possibly with an automated tool) so that it has >> :require and :require-macros as appropriate. This is not very pretty. >> >> So that gets me to wondering, has anyone brought up the idea of using >> metadata to identify macro namespaces? So instead of using >> :require-macros, :require would be used, but each namespace identifier >> would be inspected to see if it had ^{:macros true}. >> >> >> ; The existing way to require macros from ClojureScript: >> >> (ns example.shared >> (:require-macros >> [example.macros :as macros]) >> (:require >> [example.other :as other])) >> >> >> >> (ns example.shared >> (:require >> ^:macros [example.macros :as macros] >> [example.other :as other])) >> >> -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en