Ok, I managed to create an easy reproduction of this. The problem goes away when I roll back my version of clojurescript.
I have a simple lein template I use for various things. Its dependencies are listed here: https://github.com/hellofunk/hellofunk-lein-template/blob/master/resources/leiningen/new/hellofunk/project.clj If I do a "lein cljsbuild once" on a project generated by this template, without adding any new code, I get a line like this in my JS output: cljs.core.Keyword(null,"file","file",-1269645878),"/path/to/project/core.cljs"], null))); If I change the dependency to this: [org.clojure/clojurescript "0.0-2311"] The problem goes away! Hope this will help point in the right direction, if anyone has some advice. On Tue, Feb 3, 2015 at 7:26 PM, Andrew S <[email protected]> wrote: > Thanks, this helps, I'll try to track it down. I've made some slight > progress in that a closer inspection of the grep results shows that > the only JS files where these paths are showing up are files in which > I define Om components, all my other JS files unrelated to Om do not > show these paths. I'll see what I can find further. > > On Tue, Feb 3, 2015 at 7:15 PM, Francis Avila <[email protected]> wrote: >> Andrew, the metadata you are seeing is added by the CLJS compiler to the >> Clojure objects it creates as it is reading CLJS code. You did not add it >> explicitly in your code anywhere, and we're not saying you did. >> >> The problem here is that the metadata did not *stay* in Clojure but got >> emitted into the compiled js code. >> >> So what likely happened is that some *Clojure* code (e.g. cljs a macro) >> emitted an object constructed by the Compiler, but the metadata on that >> object was not stripped out before being emitted as js code. >> >> We need a minimum reproducible case. Here is a possibility to explore: >> >> ;;CLJ code >> (defmacro macro-identity [x] x) >> >> ;; CLJS code >> (def do-i-have-extra-metadata? (macro-identity {:foo :bar})) >> >> >> Then see if the compiled output of do-i-have-extra-metadata? has extra >> metadata. >> >> If that does not seem to work, look for places in your codebase where some >> object is crossing from clojurescript->clojure->clojurescript. Start with >> Clojure macros. >> >> >> >> On Tuesday, February 3, 2015 at 12:06:11 PM UTC-6, David Nolen wrote: >>> You have as much of an idea why this happening as I do. >>> >>> >>> Which is zero :) >>> >>> >>> Without a minimal reproducer there is nothing for anyone to do. >>> >>> >>> You need to sort yourself what line of your ClojureScript or your >>> ClojureScript dependencies is generating these maps. >>> >>> >>> Then maybe someone can offer a solution. >>> >>> >>> David >>> >>> >>> On Tue, Feb 3, 2015 at 12:50 PM, Andrew S <[email protected]> >>> wrote: >>> Ok, I'm sorry if I'm missing the train of thought on this, but how >>> >>> does any ordinary clojure(script) map lead to what you call metadata >>> >>> leakage that contains paths to files? Of course I use maps all over >>> >>> the place (doesn't everyone?), but I don't see how this connects to >>> >>> the problem I'm having. >>> >>> >>> >>> >>> >>> On Tue, Feb 3, 2015 at 6:40 PM, David Nolen <[email protected]> wrote: >>> >>> > Yes {:foo :bar} >>> >>> > >>> >>> > David >>> >>> > >>> >>> > On Tue, Feb 3, 2015 at 12:35 PM, Andrew S <[email protected]> >>> >>> > wrote: >>> >>> >> >>> >>> >> Ok, can you clarify the type of map literal that would do this? I have >>> >>> >> not written any of my own macros on this app, but perhaps a library I >>> >>> >> depend on has them. By map literal, do you just mean a {:foo :bar} >>> >>> >> type of syntax, or something else? I also have not added any metadata >>> >>> >> myself to anything in the app using the caret or with-meta syntax. >>> >>> >> >>> >>> >> On Tue, Feb 3, 2015 at 6:29 PM, David Nolen <[email protected]> >>> >>> >> wrote: >>> >>> >> > The problem is metadata leakage. This has nothing to do with specifying >>> >>> >> > paths in your code. Somewhere you are writing map literals (perhaps in >>> >> > a >>> >>> >> > macro?) and compiler metadata is leaking. >>> >>> >> > >>> >>> >> > David >>> >>> >> > >>> >>> >> > On Tue, Feb 3, 2015 at 11:38 AM, Andrew S >>> >>> >> > <[email protected]> >>> >>> >> > wrote: >>> >>> >> >> >>> >>> >> >> I can try to produce an example if I know where to start. There is >>> >>> >> >> nowhere in my app that I am specifying a path to a file, so I'm not >>> >>> >> >> sure where this is happening. >>> >>> >> >> >>> >>> >> >> On Tue, Feb 3, 2015 at 5:37 PM, David Nolen <[email protected]> >>> >>> >> >> wrote: >>> >>> >> >> > Looks like metadata leakage. Need a minimal example though. >>> >>> >> >> > >>> >>> >> >> > Thanks, >>> >>> >> >> > David >>> >>> >> >> > >>> >>> >> >> > On Tue, Feb 3, 2015 at 10:57 AM, Andrew S >>> >>> >> >> > <[email protected]> >>> >>> >> >> > wrote: >>> >>> >> >> >> >>> >>> >> >> >> Grepping over the files created by a :none optimization reveals the >>> >>> >> >> >> path in places like this: >>> >>> >> >> >> >>> >>> >> >> >> cljs.core.PersistentArrayMap(null, 5, [new >>> >>> >> >> >> cljs.core.Keyword(null,"end-column","end-column",1425389514),55,new >>> >>> >> >> >> cljs.core.Keyword(null,"end-line","end-line",1837326455),101,new >>> >>> >> >> >> cljs.core.Keyword(null,"column","column",2078222095),3,new >>> >>> >> >> >> cljs.core.Keyword(null,"line","line",212345235),96,new >>> >>> >> >> >> >>> >>> >> >> >> >>> >>> >> >> >> >>> >>> >> >> >> cljs.core.Keyword(null,"file","file",-1269645878),"/Users/andrew/path/to/file.cljs"], >>> >>> >> >> >> null))); >>> >>> >> >> >> >>> >>> >> >> >> Does this shed any light on the cause of this? I have no idea what >>> >>> >> >> >> this cljs.core.Keyword is doing with a file path. >>> >>> >> >> >> >>> >>> >> >> >> On Tue, Feb 3, 2015 at 4:30 PM, Mike Fikes <[email protected]> >>> >>> >> >> >> wrote: >>> >>> >> >> >> > Try the :pseudo-names compiler option to see what the :advanced >>> >>> >> >> >> > code >>> >>> >> >> >> > is >>> >>> >> >> >> > referring to >>> >>> >> >> >> > >>> >>> >> >> >> > >>> >>> >> >> >> > (https://github.com/clojure/clojurescript/wiki/Compiler-Options#pseudo-names). >>> >>> >> >> >> > >>> >>> >> >> >> > -- >>> >>> >> >> >> > Note that posts from new members are moderated - please be >>> >> >> >> > patient >>> >>> >> >> >> > with >>> >>> >> >> >> > your first post. >>> >>> >> >> >> > --- >>> >>> >> >> >> > You received this message because you are subscribed to a topic >>> >> >> >> > in >>> >>> >> >> >> > the >>> >>> >> >> >> > Google Groups "ClojureScript" group. >>> >>> >> >> >> > To unsubscribe from this topic, visit >>> >>> >> >> >> > >>> >>> >> >> >> > >>> >>> >> >> >> > https://groups.google.com/d/topic/clojurescript/6qSmNpSQeI4/unsubscribe. >>> >>> >> >> >> > To unsubscribe from this group and all its topics, 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. >>> >>> >> >> >> >>> >>> >> >> >> >>> >>> >> >> >> >>> >>> >> >> >> -- >>> >>> >> >> >> hellofunk >>> >>> >> >> >> >>> >>> >> >> >> -- >>> >>> >> >> >> 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. >>> >>> >> >> > >>> >>> >> >> > >>> >>> >> >> > -- >>> >>> >> >> > Note that posts from new members are moderated - please be patient >>> >>> >> >> > with >>> >>> >> >> > your >>> >>> >> >> > first post. >>> >>> >> >> > --- >>> >>> >> >> > You received this message because you are subscribed to a topic in >>> >>> >> >> > the >>> >>> >> >> > Google Groups "ClojureScript" group. >>> >>> >> >> > To unsubscribe from this topic, visit >>> >>> >> >> > >>> >>> >> >> > https://groups.google.com/d/topic/clojurescript/6qSmNpSQeI4/unsubscribe. >>> >>> >> >> > To unsubscribe from this group and all its topics, 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. >>> >>> >> >> >>> >>> >> >> >>> >>> >> >> >>> >>> >> >> -- >>> >>> >> >> hellofunk >>> >>> >> >> >>> >>> >> >> -- >>> >>> >> >> 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. >>> >>> >> > >>> >>> >> > >>> >>> >> > -- >>> >>> >> > Note that posts from new members are moderated - please be patient with >>> >>> >> > your >>> >>> >> > first post. >>> >>> >> > --- >>> >>> >> > You received this message because you are subscribed to a topic in the >>> >>> >> > Google Groups "ClojureScript" group. >>> >>> >> > To unsubscribe from this topic, visit >>> >>> >> > https://groups.google.com/d/topic/clojurescript/6qSmNpSQeI4/unsubscribe. >>> >>> >> > To unsubscribe from this group and all its topics, 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. >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> -- >>> >>> >> hellofunk >>> >>> >> >>> >>> >> -- >>> >>> >> 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. >>> >>> > >>> >>> > >>> >>> > -- >>> >>> > Note that posts from new members are moderated - please be patient with >>> > your >>> >>> > first post. >>> >>> > --- >>> >>> > You received this message because you are subscribed to a topic in the >>> >>> > Google Groups "ClojureScript" group. >>> >>> > To unsubscribe from this topic, visit >>> >>> > https://groups.google.com/d/topic/clojurescript/6qSmNpSQeI4/unsubscribe. >>> >>> > To unsubscribe from this group and all its topics, 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. >>> >>> >>> >>> >>> >>> >>> >>> -- >>> >>> hellofunk >>> >>> >>> >>> -- >>> >>> 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. >> >> -- >> Note that posts from new members are moderated - please be patient with your >> first post. >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "ClojureScript" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/clojurescript/6qSmNpSQeI4/unsubscribe. >> To unsubscribe from this group and all its topics, 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. > > > > -- > hellofunk -- hellofunk -- 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.
