My preferred approach is to check `(:ns &env)`; it will be nil in Clojure. This helpfully means that the macro in question has no dependency on the ClojureScript compiler, and so can be used without the CLJS dependency if desired.

If at all possible, please don't write two different macros. Libraries that do this are just making more work for those that want to maintain portable codebases (cljx is a workaround here), and the typical namespacing of the different implementations are usually easy to transpose when reading or typing, leading to unpleasant debugging cycles. (e.g. `foo.clj/some-macro` vs `foo.cljs/some-macro`)

- Chas

On 06/03/2014 08:40 AM, Ambrose Bonnaire-Sergeant wrote:
I would write two different macros.

Thanks,
Ambrose


On Tue, Jun 3, 2014 at 8:07 PM, Максим Карандашов <[email protected] <mailto:[email protected]>> wrote:

    I want to find (in the macro call) what happens: Clojure or
    ClojureScript compilation. It needed for using one name of macro
    inside Clojure and ClojureScript.

    Currently I use next approach:

    (if (nil? cljs.env/*compiler*)
        (do-something-for-clojure)
        (do-something-for-clojurescript))

    And it's working well. But maybe this is not correct? Or is there
    another way to do this?

    --
    Note that posts from new members are moderated - please be patient
    with your first post.
    ---
    You received this message because you are subscribed to the Google
    Groups "ClojureScript" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to [email protected]
    <mailto:clojurescript%[email protected]>.
    To post to this group, send email to
    [email protected]
    <mailto:[email protected]>.
    Visit this group at http://groups.google.com/group/clojurescript.


--
Note that posts from new members are moderated - please be patient with your first post.
---
You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at http://groups.google.com/group/clojurescript.

--
Note that posts from new members are moderated - please be patient with your 
first post.
--- You received this message because you are subscribed to the Google Groups "ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to