I tried upgrading a few more apps and ran into this same problem in the absence of core.async - but in the presence of core.cache and core.memoize so I'm trying to create a small test case to isolate the issue.
Sean > On Jan 11, 2015, at 5:07 PM, Sean Corfield <s...@corfield.org> wrote: > > The full Caused by stacktrace is this: > > Caused by: java.lang.IllegalArgumentException: No implementation of method: > :has? of protocol: #'clojure.core.cache/CacheProtocol found for class: > clojure.core.memoize.PluggableMemoization > at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:555) > at > clojure.core.cache$eval1710$fn__1773$G__1699__1780.invoke(cache.clj:20) > at clojure.core.cache$through.invoke(cache.clj:53) > at clojure.core.memoize$through_STAR_.invoke(memoize.clj:52) > at clojure.lang.Atom.swap(Atom.java:65) > at clojure.core$swap_BANG_.invoke(core.clj:2236) > at > clojure.core.memoize$build_memoizer$fn__12665.doInvoke(memoize.clj:134) > at clojure.lang.RestFn.applyTo(RestFn.java:137) > at clojure.lang.AFunction$1.doInvoke(AFunction.java:29) > at clojure.lang.RestFn.invoke(RestFn.java:408) > at clojure.tools.analyzer.jvm$desugar_host_expr.invoke(jvm.clj:117) > at clojure.tools.analyzer.jvm$macroexpand_1.invoke(jvm.clj:174) > at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:281) > at clojure.lang.MultiFn.invoke(MultiFn.java:238) > at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer$analyze_let.invoke(analyzer.clj:505) > at clojure.tools.analyzer$fn__12469.invoke(analyzer.clj:530) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer.jvm$fn__13956.invoke(jvm.clj:66) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:283) > at clojure.lang.MultiFn.invoke(MultiFn.java:238) > at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:284) > at clojure.lang.MultiFn.invoke(MultiFn.java:238) > at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer$fn__12392.invoke(analyzer.clj:295) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer.jvm$fn__13956.invoke(jvm.clj:66) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer$analyze_body.invoke(analyzer.clj:366) > at clojure.tools.analyzer$analyze_let.invoke(analyzer.clj:520) > at clojure.tools.analyzer$fn__12471.invoke(analyzer.clj:540) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer.jvm$fn__13956.invoke(jvm.clj:66) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:283) > at clojure.lang.MultiFn.invoke(MultiFn.java:238) > at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:284) > at clojure.lang.MultiFn.invoke(MultiFn.java:238) > at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer$fn__12392.invoke(analyzer.clj:295) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer.jvm$fn__13956.invoke(jvm.clj:66) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:283) > at clojure.lang.MultiFn.invoke(MultiFn.java:238) > at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68) > at clojure.lang.MultiFn.invoke(MultiFn.java:233) > at clojure.tools.analyzer$analyze.invoke(analyzer.clj:123) > at clojure.tools.analyzer.jvm$analyze$fn__14085.invoke(jvm.clj:476) > at clojure.lang.AFn.applyToHelper(AFn.java:152) > at clojure.lang.AFn.applyTo(AFn.java:144) > at clojure.core$apply.invoke(core.clj:626) > at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1864) > at clojure.lang.RestFn.invoke(RestFn.java:425) > at clojure.tools.analyzer.jvm$analyze.invoke(jvm.clj:474) > at clojure.tools.analyzer.jvm$analyze.invoke(jvm.clj:467) > at > clojure.core.async.impl.ioc_macros$state_machine.invoke(ioc_macros.clj:1062) > at clojure.core.async$go.doInvoke(async.clj:384) > at clojure.lang.RestFn.invoke(RestFn.java:442) > at clojure.lang.Var.invoke(Var.java:388) > at clojure.lang.AFn.applyToHelper(AFn.java:160) > at clojure.lang.Var.applyTo(Var.java:700) > at clojure.lang.Compiler.macroexpand1(Compiler.java:6606) > > >> On Jan 11, 2015, at 4:55 PM, Sean Corfield <s...@corfield.org> wrote: >> >> On Jan 11, 2015, at 6:34 AM, Alex Miller <a...@puredanger.com> wrote: >>> I would greatly appreciate hearing any feedback about this (or any other) >>> alpha, even if it's just: everything looks ok. >> >> I upgraded an app that uses core.async (0.1.346.0-17112a-alpha) and got this >> exception on the ns that brings in clojure.core.async - it uses the latest >> versions of both core.cache and core.memoize as transitive dependencies, >> with no conflicts: >> >> Exception in thread "main" java.lang.IllegalArgumentException: No >> implementation of method: :has? of protocol: >> #'clojure.core.cache/CacheProtocol found for class: >> clojure.core.memoize.PluggableMemoization, compiling:(async.clj:433:6) >> at clojure.lang.Compiler.macroexpand1(Compiler.java:6619) >> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6694) >> at clojure.lang.Compiler.analyze(Compiler.java:6499) >> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6696) >> at clojure.lang.Compiler.analyze(Compiler.java:6499) >> at clojure.lang.Compiler.analyze(Compiler.java:6460) >> at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5836) >> at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5271) >> at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3900) >> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6706) >> at clojure.lang.Compiler.analyze(Compiler.java:6499) >> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6696) >> at clojure.lang.Compiler.analyze(Compiler.java:6499) >> at clojure.lang.Compiler.access$200(Compiler.java:38) >> at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:560) >> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6708) >> at clojure.lang.Compiler.analyze(Compiler.java:6499) >> at clojure.lang.Compiler.analyze(Compiler.java:6460) >> at clojure.lang.Compiler.eval(Compiler.java:6771) >> at clojure.lang.Compiler.load(Compiler.java:7194) >> at clojure.lang.RT.loadResourceScript(RT.java:370) >> at clojure.lang.RT.loadResourceScript(RT.java:361) >> at clojure.lang.RT.load(RT.java:440) >> at clojure.lang.RT.load(RT.java:411) >> at clojure.core$load$fn__5436.invoke(core.clj:5863) >> at clojure.core$load.doInvoke(core.clj:5862) >> at clojure.lang.RestFn.invoke(RestFn.java:408) >> at clojure.core$load_one.invoke(core.clj:5653) >> at clojure.core$load_lib$fn__5383.invoke(core.clj:5708) >> at clojure.core$load_lib.doInvoke(core.clj:5707) >> at clojure.lang.RestFn.applyTo(RestFn.java:142) >> at clojure.core$apply.invoke(core.clj:628) >> at clojure.core$load_libs.doInvoke(core.clj:5746) >> at clojure.lang.RestFn.applyTo(RestFn.java:137) >> at clojure.core$apply.invoke(core.clj:628) >> at clojure.core$require.doInvoke(core.clj:5829) >> at clojure.lang.RestFn.invoke(RestFn.java:551) >> at dynamo.auth$eval1147$loading__5322__auto____1148.invoke(auth.clj:5) >> at dynamo.auth$eval1147.invoke(auth.clj:5) >> ... >> Caused by: java.lang.IllegalArgumentException: No implementation of method: >> :has? of protocol: #'clojure.core.cache/CacheProtocol found for class: >> clojure.core.memoize.PluggableMemoization >> at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:555) >> at >> clojure.core.cache$eval1710$fn__1773$G__1699__1780.invoke(cache.clj:20) >> at clojure.core.cache$through.invoke(cache.clj:53) >> at clojure.core.memoize$through_STAR_.invoke(memoize.clj:52) >> at clojure.lang.Atom.swap(Atom.java:65) >> at clojure.core$swap_BANG_.invoke(core.clj:2236) >> at >> clojure.core.memoize$build_memoizer$fn__12665.doInvoke(memoize.clj:134) >> ... >> > > Sean Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ "Perfection is the enemy of the good." -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.