This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-09-27
Channels
- # beginners (54)
- # bitcoin (2)
- # boot (1)
- # calva (10)
- # cider (30)
- # cljs-dev (25)
- # cljsrn (17)
- # clojure (27)
- # clojure-dev (16)
- # clojure-estonia (3)
- # clojure-hk (1)
- # clojure-italy (8)
- # clojure-losangeles (1)
- # clojure-nl (17)
- # clojure-russia (1)
- # clojure-spec (15)
- # clojure-uk (45)
- # clojurebridge (1)
- # clojurescript (95)
- # clojurescript-ios (1)
- # core-async (5)
- # cursive (10)
- # datomic (8)
- # emacs (2)
- # figwheel-main (31)
- # fulcro (99)
- # hyperfiddle (3)
- # immutant (1)
- # jobs (13)
- # jobs-discuss (82)
- # keechma (6)
- # leiningen (3)
- # lumo (1)
- # nrepl (1)
- # off-topic (37)
- # onyx (1)
- # pedestal (6)
- # re-frame (7)
- # reitit (2)
- # remote-jobs (1)
- # ring-swagger (3)
- # rum (6)
- # shadow-cljs (14)
- # specter (4)
- # tools-deps (27)
- # yada (12)
another thing is that live REPL switching makes more sense with a shared compiler env
hey @mfikes i saw your comment on https://dev.clojure.org/jira/browse/CLJS-2922 . do you have a suspicion about what’s going on, or do you want me to generate a minimal case? (or at least try to)
I was speculating that something went amiss with munging when emitting the function as JavaScript. This could theoretically happen if, for example, it was in the middle of emitting the function (after the parameters to it had been emitted), and then, while the body was being emitted, another namespace got added to the compilation environment, thus changing the way the JavaScript symbols get munged. For vanilla ClojureScript this doesn't seem possible as all of the namespaces appear to be set up at the beginning of compilation. Having said that, there might be a possibility that shadow-cljs behaves differently.
The issue came up when using shadow-cljs, but it has not been isolated to shadow-cljs.
Another useful bit of data, @lwhorton if you encounter it, would be a copy of the JavaScript that was written, prior to Closure processing.
(btw yes shadow-cljs uses its own parallel-build compilation that shares nothing with the default impl)
all CLJS compilation completes before Closure optimization begins. so first need to isolate is weird CLJS->JS happens or if its purely due to Closure
i’m not sure how to attempt to recreate a minimal case, particularly if it’s a parallel race condition. do i make 100+ files with the same fn and matching namespaces?
i think @thheller has a better idea of whether this is cljs or shadow, i have to defer to him
@lwhorton well if you’re using shadow and this is parallel-build I don’t see how it could be ClojureScript
my mistake, i didnt know shadow uses its own compilation step… thought it just defered to the cljs compiler
please close this issue (dont think i have permission to do that even as reporter) https://dev.clojure.org/jira/browse/CLJS-2922