This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-02-28
Channels
- # aleph (50)
- # announcements (3)
- # aws (35)
- # beginners (74)
- # boot (25)
- # calva (39)
- # cider (18)
- # clara (2)
- # cljdoc (18)
- # cljs-dev (24)
- # cljsrn (11)
- # clojure (166)
- # clojure-europe (13)
- # clojure-italy (5)
- # clojure-nl (6)
- # clojure-spec (35)
- # clojure-uk (263)
- # clojurescript (22)
- # clojutre (1)
- # code-reviews (34)
- # cursive (58)
- # data-science (2)
- # datascript (4)
- # datomic (4)
- # duct (6)
- # emacs (7)
- # figwheel-main (9)
- # fulcro (2)
- # graphql (3)
- # hoplon (22)
- # hyperfiddle (2)
- # juxt (5)
- # kaocha (6)
- # leiningen (33)
- # luminus (15)
- # off-topic (1)
- # pedestal (5)
- # reagent (18)
- # reitit (12)
- # shadow-cljs (171)
- # vim (5)
“philosophically cool” sounds to me as an oxymoron @chancerussell :thinking_face:
I think there is a bug with compiler cache invalidation, for namespaces that use macros. if I…
1. compile my project, eg. clj -m cljs.main --optimizations advanced -c app.core
2. make a change to a macro that app.core
depends on, say app.macros
3. re-run the same compile,
app.core
does not pick up the changes in app.macros
- instead I have to delete the out
dir or make a changes to app.core
in order for it to correctly re-compile.
pretty sure that CLJS doesn't check macros at all when deciding if a file needs to be recompiled (or dependency changes in general)
that’s probably a benefit of using boot where clj and cljs run in one process, so you can redefine macros in the JVM?
oh right, using clj. what happens when you do (require [the-ns-with-macros] :reload)
from the REPL though? could be a workaround
no. :cache-analysis
doesn't check any of that. the problem isn't that the macros are not updated, the problem is that compilation is skipped completely
we could look at macros, but we don't do that at the moment - since it's just less common
@thheller https://github.com/clojure/clojurescript/blob/master/src/main/clojure/cljs/compiler.cljc#L1638
I only can find one reference where *recompiled*
is actually bound and that is in cljs.closure/build
. are you sure thats actually bound when using cljs.main
?
@mhuebert we could add :require-macros
to the set of things we look at - probably a slightly finicky change but not that challenging I think - feel free to file an minor issue
@bhauman ^ might want to watch this one? I think you have some custom stuff for this case?
Didn’t exactly follow the backlog, but I did something like that in CLJS-1490 at some point: https://github.com/clojure/clojurescript/commit/2267a8e5e9607aff8c940fa372dbdb35816350ba