This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-05-05
Channels
- # aws-lambda (1)
- # beginners (294)
- # boot (35)
- # cider (19)
- # cljs-dev (39)
- # cljsrn (7)
- # clojars (48)
- # clojure (266)
- # clojure-android (1)
- # clojure-brasil (1)
- # clojure-france (2)
- # clojure-greece (5)
- # clojure-italy (7)
- # clojure-mexico (1)
- # clojure-russia (24)
- # clojure-spec (10)
- # clojure-uk (31)
- # clojurescript (134)
- # consulting (7)
- # cursive (69)
- # datomic (20)
- # emacs (57)
- # events (2)
- # figwheel (2)
- # hoplon (1)
- # jobs-discuss (19)
- # luminus (33)
- # lumo (18)
- # mount (1)
- # off-topic (32)
- # om (5)
- # onyx (27)
- # pedestal (15)
- # re-frame (12)
- # reagent (28)
- # rum (2)
- # schema (2)
- # spacemacs (9)
- # unrepl (2)
- # untangled (7)
- # vim (5)
- # yada (4)
I have an interesting issue, when I get an circular dependency through a macro it won’t be detected when using :parallel-build true
. If I disable parallel build it detects it. Tested with 1.9.521
dnolen: In my macro I call a function say my.ns/myfn and then I use that macro in my.ns2 on which my.ns depends without noticing it. First the compiler will complain that my.ns does not exist in my.ns2. I then require it at the top. Then I've created a circular dependency but I never call a function in my.ns explicitly in my.ns2 but only through the macro. This circular dependency was not picked up by the compiler when compiling in parallel. Instead the compilation just deadlocks and I have to kill the process. Not sure if it's clearer now? Would like to create a minimal reproduceable version of it but I'm quite swamped with work so atm I don't have time unfortunately.
The issue is not that the circular dependency is not supported, it’s that the compiler won’t tell me that I have a circular dependency as it normally does but it will just freeze up instead. The expected behaviour would be to throw an error saying that I have a circular dependency (like it does without parallel compilation) but instead it just freezes without giving me a hint what the issue is.
an issue for that is welcome, but we’ll need a minimal repro in the ticket which will probably be somewhat challenging to construct
Exactly, ok when I get time for it I’ll try to flesh out a minimal repro and file a ticket
@tmulvaney In Clojure,
(type (find {:a 1} :a))
clojure.lang.MapEntry
does your recent patch also return a MapEntry
for find
?
I just changed cljs.spec
to cljs.spec.alpha
now would be a good time to try master - would like to cut a release for this
@dnolen so you didn’t delete .spec
namespaces? e.g. cljs.spec.impl.gen
or cljs.spec.test
we’ll have cljs.spec.test
and cljs.spec.test.alpha
?
they don’t look gone https://github.com/clojure/clojurescript/blob/master/src/main/cljs/cljs/spec/test.cljc
@anmonteiro oops your right fixed now
@dnolen another question is: you added cljs/spec/impl/gen
because there was a cljs.spec/gen
var.
should we change it back or keep impl
?
I don’t think it’s a pressing issue, just thought I’d start the discussion
@dnolen Here is a spot that needs to be updated: https://github.com/clojure/clojurescript/blob/master/src/main/cljs/cljs/spec/test/alpha.cljc#L107
same thing here https://github.com/clojure/clojurescript/blob/9dafe7d87a4b4a387a82fce9e3a0d63bbe565e4f/src/main/clojure/cljs/analyzer.cljc#L2953
cljs.repl
too https://github.com/clojure/clojurescript/blob/d0be39660f3a65422c3de6a774ceec0b6a863ee2/src/main/cljs/cljs/repl.cljs#L11
putting together a patch
@anmonteiro thanks applied