Do the failing projects require AOT compilation? we used to see a similar exception in eastwood when reloading core.cache and one of the AOT patches committed can cause some namespaces to be reloaded Il giorno 12/gen/2015 02:17, "Sean Corfield" <s...@corfield.org> ha scritto:
> 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. > -- 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.