taoensso/encore

Broken with cljs 1.10.891

egg-at-reify opened this issue · 4 comments

Hi folks! If I update my project (which uses timbre) to cljs 1.10.891, the build breaks on encore. I suspect this is because of the potential breakage around goog.* detailed in this ClojureScript update. I don't understand exactly why, though, since I took a quick look at all uses of goog.* and all namespaces used are explicitly required. That said, I'm just starting to wrap my head around exactly what the consequences are of the goog breakage.

Here's the full error:

 File: jar:file:/home/*****/.m2/repository/com/taoensso/encore/2.91.0/encore-2.91.0.jar!/taoensso/encore.cljs
failed to require macro-ns "taoensso.encore", it was required by "taoensso.encore"
Error in phase :compile-syntax-check
RuntimeException: No such var: err/throw-no-dispatch
	clojure.lang.Util.runtimeException (Util.java:221)
	clojure.lang.Compiler.resolveIn (Compiler.java:7388)
	clojure.lang.Compiler.resolve (Compiler.java:7358)
	clojure.lang.Compiler.analyzeSymbol (Compiler.java:7319)
	clojure.lang.Compiler.analyze (Compiler.java:6768)
	clojure.lang.Compiler.analyze (Compiler.java:6745)
	clojure.lang.Compiler$InvokeExpr.parse (Compiler.java:3820)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7109)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyze (Compiler.java:6745)
	clojure.lang.Compiler$IfExpr$Parser.parse (Compiler.java:2837)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7107)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyze (Compiler.java:6745)
	clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6120)
	clojure.lang.Compiler$LetExpr$Parser.parse (Compiler.java:6436)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7107)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7095)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7095)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyze (Compiler.java:6745)
	clojure.lang.Compiler$IfExpr$Parser.parse (Compiler.java:2837)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7107)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyze (Compiler.java:6745)
	clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6120)
	clojure.lang.Compiler$LetExpr$Parser.parse (Compiler.java:6436)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7107)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7095)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7095)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyze (Compiler.java:6745)
	clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6120)
	clojure.lang.Compiler$LetExpr$Parser.parse (Compiler.java:6436)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7107)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7095)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyze (Compiler.java:6745)
	clojure.lang.Compiler$IfExpr$Parser.parse (Compiler.java:2829)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7107)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyze (Compiler.java:6745)
	clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6120)
	clojure.lang.Compiler$LetExpr$Parser.parse (Compiler.java:6436)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7107)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7095)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7095)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyze (Compiler.java:6745)
	clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6120)
	clojure.lang.Compiler$FnMethod.parse (Compiler.java:5467)
	clojure.lang.Compiler$FnExpr.parse (Compiler.java:4029)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7105)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7095)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.access$300 (Compiler.java:38)
	clojure.lang.Compiler$DefExpr$Parser.parse (Compiler.java:596)
	clojure.lang.Compiler.analyzeSeq (Compiler.java:7107)
	clojure.lang.Compiler.analyze (Compiler.java:6789)
	clojure.lang.Compiler.analyze (Compiler.java:6745)
	clojure.lang.Compiler.eval (Compiler.java:7181)
	clojure.lang.Compiler.load (Compiler.java:7636)
	clojure.lang.RT.loadResourceScript (RT.java:381)
	clojure.lang.RT.loadResourceScript (RT.java:372)
	clojure.lang.RT.load (RT.java:459)
	clojure.lang.RT.load (RT.java:424)
	clojure.core/load/fn--6839 (core.clj:6126)
	clojure.core/load (core.clj:6125)
	clojure.core/load (core.clj:6109)
	clojure.core/load-one (core.clj:5908)
	clojure.core/load-one (core.clj:5903)
	clojure.core/load-lib/fn--6780 (core.clj:5948)

It's possible I'm on the wrong track here -- creating a bare minimal cljs project with https://clojurescript.org/guides/quick-start and switching to cljs 1.10.891, basic timbre logging works ok. In which case, any idea what might be going on with the other project? Nothing's changed but the cljs update and a (necessary) matching shadow-cljs version update.

Hi Egg,

I'm not aware of any obvious reason why the linked ClojureScript update should affect Encore. The error itself also doesn't ring any bells.

I just tried building Encore with the latest org.clojure/clojurescript "1.10.893" and that seems fine.

A few things I'd suggest trying:

  • Try first runninglein clean
  • Double check that you don't have a dependency conflict
  • Try update to the latest Encore (com.taoensso/encore "3.20.0"), then again running lein clean

If all of the above still isn't working, a minimal reproducible example would probably be necessary for further debugging. Am not familiar with shadow-cljs, so may also suggest trying to remove that from the stack to see if it helps.

Cheers!

That all makes sense. Thanks, Peter (& thanks for Timbre, which I've used & loved for years now) :)

Closing on the assumption that this was a false alarm, will reopen if further investigation leads to a minimal repro.

No problem, thanks for the update!

(& thanks for Timbre, which I've used & loved for years now) :)

You're very welcome! Always makes me happy to hear of folks that've enjoyed my work :-)

Feel free to reopen if you run into any more trouble.

Cheers!