This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-10-16
Channels
- # beginners (1)
- # boot (69)
- # carry (1)
- # cider (29)
- # cljs-dev (17)
- # cljsrn (100)
- # clojure (13)
- # clojure-austin (13)
- # clojure-brasil (1)
- # clojure-dev (1)
- # clojure-korea (3)
- # clojure-russia (3)
- # clojure-spec (20)
- # clojure-uk (5)
- # clojurescript (45)
- # cloverage (3)
- # datomic (5)
- # figwheel (1)
- # hoplon (198)
- # klipse (25)
- # lein-figwheel (2)
- # leiningen (3)
- # off-topic (35)
- # om (7)
- # om-next (2)
- # onyx (8)
- # proton (8)
- # re-frame (3)
- # untangled (1)
- # vim (13)
The functions at the bottom of that file are just helpers that won’t work under :advanced
(scroll back to line 10514)
Thank you @anmonteiro @mfikes @dnolen for helping me refining namespace loading strategy in KLIPSE. I mentioned you in this article http://blog.klipse.tech/klipse/2016/10/16/klipse-is-fast.html
@viebel all the stuff around find-ns
should work as long as :advanced
optimizations is something you’re OK with dropping
Yeah I tried it: I called it in my load-fn
in order to detect what namespaces are already loaded in KLIPSE - but it has side effects and it corrupted ns loading
@viebel no idea what you’re running into - but find-ns
isn’t specifically intended for this use case
for stuff that you precompiled you do need to dump the analysis and make sure you load it
I think this is why :fn-var
gets inadvertently set to true
for macros in bootstrapped:
cljs.user=> (set! *print-meta* true)
true
cljs.user=> (macroexpand '(defmacro foo []))
(do (cljs.core$macros/defn ^{:macro true} foo ([&form &env])) (set! (. foo -cljs$lang$macro) true))
(In short, defn
is used and it is presumably setting :fn-var
.)
Context: This trips up this test: https://github.com/clojure/clojurescript/blob/a4c627d7f4905db7366896f8db59c4ef72bb478e/src/main/cljs/cljs/test.cljc#L23@mfikes so this probably needs to be tweaked in the CLJS branch if the symbol has the :macro
metadata?
https://github.com/clojure/clojurescript/blob/master/src/main/clojure/cljs/analyzer.cljc#L1265
does it make your bootstrapped tests pass?
Yes. Planck's tests pass with the change. And also the compiler's script/test-self-parity
and script/test
pass.
awesome
(Other minor things are breaking in Planck, but they could be unrelated and simply defects in Planck.)
But, I think something similar to (not (:macro sym-meta))
or even changing value of the fn-var?
local might be onto the right track...
@dnolen it would be really great if we had the ClojureScript tests running in a CI. I think @rohit started working on that and got it to the point where tests were passing
what’s your position on this?