An excellent set of new predicates – thank you!
Will clojure.core.incubator get a new release to reflect that seqable? is available in core?
WARNING: seqable? already refers to: #'clojure.core/seqable? in namespace: clojure.core.incubator, being replaced by: #'clojure.core.incubator/seqable?
Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
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+unsubscribe@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+u...@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+u...@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 clo...@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
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+u...@googlegroups.com.
I ran across it because CongoMongo uses it and we use that. It’s not a big deal.
Taoensso.encore is more problematic since that is essentially broken by the addition of bytes? to clojure.core. Right now that’s blocking us from upgrading but I haven’t established a workaround yet (technically it breaks taoensso.nippy’s use of encore).
Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
The taoensso.encore issue has defeated my attempts so far to create a repro case. Kevin Downey also confirmed that the straightforward cases of using Encore with 1.9.0 Alpha 5 all seem to work. I worked around the issue so we can continue testing Alpha 5 at World Singles (lifting a defn out of a do). I’ll keep digging into that and report back with my findings – clearly it’s not an issue with Alpha 5 per se and doesn’t appear to be an issue with Encore directly, so it’s some weird interaction in our dependencies or toolchain somewhere…
Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
Whilst updating our code, I noticed there’s bigdec? to test for java.math.BigDecimal but not bigint? or biginteger?
Is there a specific reason for that omission or were those just missed?
Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
On 6/7/16, 10:38 AM, "Alex Miller" <clo...@googlegroups.com on behalf of al...@puredanger.com> wrote:
--
Thanks Alex. Based on what crossclj.info shows, I suspect you may be right that almost no one cares 😊
https://crossclj.info/fun/clojure.core.incubator/seqable?.html
--
As a completely non-scientific data point, we had precisely one place in our 30k+ lines of code where we can use bigdec? And there is also precisely one place we could use biginteger? 😊
Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org
From: Alex Miller
Sent: Tuesday, June 7, 2016 7:56 PM
To: Clojure
Subject: Re: [ANN] Clojure 1.9.0-alpha5
Not sure, I can ask. I think BigDecimal is probably used way more than BigInteger.
--
I'm not opposed to it but can't say that's anywhere on my priority list. Does anyone use incubator?
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+u...@googlegroups.com.
Given the only two things in Clojure that implement Named are keyword and symbol – and we have ident? – what additional value would named? have?
(but, yes, that was my first thought when I saw the list of new predicates)
Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
--
(defn name "Returns the name String of a string, symbol or keyword." {:tag String :added "1.0" :static true} [x] (if (string? x) x (. ^clojure.lang.Named x (getName))))
But named? to mean instance? clojure.lang.Named tells you that something implements the Named interface which has getName() *and* getNamespace() methods – and the namespace function does *not* accept a String.
The fact that the name function accepts something that is not Named is a bit of an anomaly.
Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
WARNING: boolean? already refers to: #'clojure.core/boolean? in namespace: clojure.tools.analyzer.utils, being replaced by: #'clojure.tools.analyzer.utils/boolean?
WARNING: boolean? already refers to: #'clojure.core/boolean? in namespace: clojure.tools.analyzer, being replaced by: #'clojure.tools.analyzer.utils/boolean?
#error {
:cause Attempting to call unbound fn: #'clojure.tools.analyzer.utils/boolean?
:via
[{:type clojure.lang.Compiler$CompilerException
:message java.lang.IllegalStateException: Attempting to call unbound fn: #'clojure.tools.analyzer.utils/boolean?, compiling:(manifold/stream/async.clj:62:16)
:at [clojure.lang.Compiler analyzeSeq Compiler.java 6890]}
{:type java.lang.IllegalStateException
:message Attempting to call unbound fn: #'clojure.tools.analyzer.utils/boolean?
:at [clojure.lang.Var$Unbound throwArity Var.java 43]}]
:trace
[[clojure.lang.Var$Unbound throwArity Var.java 43]
[clojure.lang.AFn invoke AFn.java 32]
[clojure.tools.analyzer.utils$classify invoke utils.clj 106]
[clojure.tools.analyzer$analyze_const doInvoke analyzer.clj 167]
[clojure.lang.RestFn invoke RestFn.java 425]
[clojure.tools.analyzer$fn__563 invoke analyzer.clj 86]
[clojure.lang.MultiFn invoke MultiFn.java 233]
[clojure.tools.analyzer$analyze_in_env$fn__567 invoke analyzer.clj 127]
[clojure.core$mapv$fn__8938 invoke core.clj 6758]
[clojure.core.protocols$fn__8715 invokeStatic protocols.clj 167]
[clojure.core.protocols$fn__8715 invoke protocols.clj 124]
[clojure.core.protocols$fn__8670$G__8665__8679 invoke protocols.clj 19]
[clojure.core.protocols$seq_reduce invokeStatic protocols.clj 31]
[clojure.core.protocols$fn__8696 invokeStatic protocols.clj 75]
[clojure.core.protocols$fn__8696 invoke protocols.clj 75]
[clojure.core.protocols$fn__8644$G__8639__8657 invoke protocols.clj 13]
[clojure.core$reduce invokeStatic core.clj 6676]
[clojure.core$mapv invokeStatic core.clj 6749]
[clojure.core$mapv invoke core.clj 6749]
[clojure.tools.analyzer$parse_invoke invoke analyzer.clj 781]
[clojure.tools.analyzer$_parse invoke analyzer.clj 809]
[clojure.tools.analyzer.jvm$parse invoke jvm.clj 383]
[clojure.tools.analyzer$analyze_seq invoke analyzer.clj 271]
[clojure.tools.analyzer$fn__556 invoke analyzer.clj 63]
[clojure.lang.MultiFn invoke MultiFn.java 233]
[clojure.tools.analyzer$analyze_let invoke analyzer.clj 503]
[clojure.tools.analyzer$parse_let_STAR_ invoke analyzer.clj 528]
[clojure.tools.analyzer$_parse invoke analyzer.clj 809]
[clojure.tools.analyzer.jvm$parse invoke jvm.clj 383]
[clojure.tools.analyzer$analyze_seq invoke analyzer.clj 271]
[clojure.tools.analyzer$fn__556 invoke analyzer.clj 63]
[clojure.lang.MultiFn invoke MultiFn.java 233]
[clojure.tools.analyzer$analyze_seq invoke analyzer.clj 272]
[clojure.tools.analyzer$fn__556 invoke analyzer.clj 63]
[clojure.lang.MultiFn invoke MultiFn.java 233]
[clojure.tools.analyzer$analyze_seq invoke analyzer.clj 272]
[clojure.tools.analyzer$fn__556 invoke analyzer.clj 63]
[clojure.lang.MultiFn invoke MultiFn.java 233]
[clojure.tools.analyzer$analyze_let invoke analyzer.clj 503]
[clojure.tools.analyzer$parse_let_STAR_ invoke analyzer.clj 528]
[clojure.tools.analyzer$_parse invoke analyzer.clj 809]
[clojure.tools.analyzer.jvm$parse invoke jvm.clj 383]
[clojure.tools.analyzer$analyze_seq invoke analyzer.clj 271]
[clojure.tools.analyzer$fn__556 invoke analyzer.clj 63]
[clojure.lang.MultiFn invoke MultiFn.java 233]
[clojure.tools.analyzer$analyze_seq invoke analyzer.clj 272]
[clojure.tools.analyzer$fn__556 invoke analyzer.clj 63]
[clojure.lang.MultiFn invoke MultiFn.java 233]
[clojure.tools.analyzer$parse_do invoke analyzer.clj 284]
[clojure.tools.analyzer$_parse invoke analyzer.clj 809]
[clojure.tools.analyzer.jvm$parse invoke jvm.clj 383]
[clojure.tools.analyzer$analyze_seq invoke analyzer.clj 271]
[clojure.tools.analyzer$fn__556 invoke analyzer.clj 63]
[clojure.lang.MultiFn invoke MultiFn.java 233]
[clojure.tools.analyzer$analyze invoke analyzer.clj 115]
[clojure.tools.analyzer.jvm$analyze$fn__3425 invoke jvm.clj 469]
[clojure.lang.AFn applyToHelper AFn.java 152]
[clojure.lang.AFn applyTo AFn.java 144]
[clojure.core$apply invokeStatic core.clj 651]
[clojure.core$with_bindings_STAR_ invokeStatic core.clj 1953]
[clojure.core$with_bindings_STAR_ doInvoke core.clj 1953]
[clojure.lang.RestFn invoke RestFn.java 425]
[clojure.tools.analyzer.jvm$analyze invoke jvm.clj 456]
[clojure.core.async.impl.ioc_macros$state_machine invoke ioc_macros.clj 1109]
[clojure.core.async$go doInvoke async.clj 413]
[clojure.lang.RestFn invoke RestFn.java 442]
[clojure.lang.Var invoke Var.java 388]
[clojure.lang.AFn applyToHelper AFn.java 160]
[clojure.lang.Var applyTo Var.java 700]
[clojure.lang.Compiler macroexpand1 Compiler.java 6792]
[clojure.lang.Compiler analyzeSeq Compiler.java 6869]
[clojure.lang.Compiler analyze Compiler.java 6669]
[clojure.lang.Compiler analyze Compiler.java 6625]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 6001]
[clojure.lang.Compiler$FnMethod parse Compiler.java 5380]
[clojure.lang.Compiler$FnExpr parse Compiler.java 3972]
[clojure.lang.Compiler analyzeSeq Compiler.java 6881]
[clojure.lang.Compiler analyze Compiler.java 6669]
[clojure.lang.Compiler analyzeSeq Compiler.java 6871]
[clojure.lang.Compiler analyze Compiler.java 6669]
[clojure.lang.Compiler access$300 Compiler.java 38]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6269]
[clojure.lang.Compiler analyzeSeq Compiler.java 6883]
[clojure.lang.Compiler analyze Compiler.java 6669]
[clojure.lang.Compiler analyzeSeq Compiler.java 6871]
[clojure.lang.Compiler analyze Compiler.java 6669]
[clojure.lang.Compiler analyze Compiler.java 6625]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 6001]
[clojure.lang.Compiler$NewInstanceMethod parse Compiler.java 8277]
[clojure.lang.Compiler$NewInstanceExpr build Compiler.java 7813]
[clojure.lang.Compiler$NewInstanceExpr$DeftypeParser parse Compiler.java 7693]
[clojure.lang.Compiler analyzeSeq Compiler.java 6883]
[clojure.lang.Compiler analyze Compiler.java 6669]
[clojure.lang.Compiler analyze Compiler.java 6625]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 6001]
[clojure.lang.Compiler$LetExpr$Parser parse Compiler.java 6319]
[clojure.lang.Compiler analyzeSeq Compiler.java 6883]
[clojure.lang.Compiler analyze Compiler.java 6669]
[clojure.lang.Compiler analyze Compiler.java 6625]
[clojure.lang.Compiler$BodyExpr$Parser parse Compiler.java 6001]
[clojure.lang.Compiler$FnMethod parse Compiler.java 5380]
[clojure.lang.Compiler$FnExpr parse Compiler.java 3972]
[clojure.lang.Compiler analyzeSeq Compiler.java 6881]
[clojure.lang.Compiler analyze Compiler.java 6669]
[clojure.lang.Compiler eval Compiler.java 6939]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT loadResourceScript RT.java 363]
[clojure.lang.RT load RT.java 453]
[clojure.lang.RT load RT.java 419]
[clojure.core$load$fn__7452 invoke core.clj 5986]
[clojure.core$load invokeStatic core.clj 5985]
[clojure.core$load doInvoke core.clj 5969]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5790]
[clojure.core$load_one invoke core.clj 5785]
[clojure.core$load_lib$fn__7397 invoke core.clj 5830]
[clojure.core$load_lib invokeStatic core.clj 5829]
[clojure.core$load_lib doInvoke core.clj 5810]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$load_libs invokeStatic core.clj 5867]
[clojure.core$load_libs doInvoke core.clj 5851]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$require invokeStatic core.clj 5889]
[clojure.core$require doInvoke core.clj 5889]
[clojure.lang.RestFn invoke RestFn.java 408]
[manifold.stream$eval6935 invokeStatic stream.clj 46]
[manifold.stream$eval6935 invoke stream.clj 46]
[clojure.lang.Compiler eval Compiler.java 6942]
[clojure.lang.Compiler eval Compiler.java 6932]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT loadResourceScript RT.java 363]
[clojure.lang.RT load RT.java 453]
[clojure.lang.RT load RT.java 419]
[clojure.core$load$fn__7452 invoke core.clj 5986]
[clojure.core$load invokeStatic core.clj 5985]
[clojure.core$load doInvoke core.clj 5969]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5790]
[clojure.core$load_one invoke core.clj 5785]
[clojure.core$load_lib$fn__7397 invoke core.clj 5830]
[clojure.core$load_lib invokeStatic core.clj 5829]
[clojure.core$load_lib doInvoke core.clj 5810]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$load_libs invokeStatic core.clj 5867]
[clojure.core$load_libs doInvoke core.clj 5851]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$require invokeStatic core.clj 5889]
[clojure.core$require doInvoke core.clj 5889]
[clojure.lang.RestFn invoke RestFn.java 551]
[aleph.http.core$eval6275$loading__7338__auto____6276 invoke core.clj 1]
[aleph.http.core$eval6275 invokeStatic core.clj 1]
[aleph.http.core$eval6275 invoke core.clj 1]
[clojure.lang.Compiler eval Compiler.java 6942]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT loadResourceScript RT.java 363]
[clojure.lang.RT load RT.java 453]
[clojure.lang.RT load RT.java 419]
[clojure.core$load$fn__7452 invoke core.clj 5986]
[clojure.core$load invokeStatic core.clj 5985]
[clojure.core$load doInvoke core.clj 5969]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5790]
[clojure.core$load_one invoke core.clj 5785]
[clojure.core$load_lib$fn__7397 invoke core.clj 5830]
[clojure.core$load_lib invokeStatic core.clj 5829]
[clojure.core$load_lib doInvoke core.clj 5810]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$load_libs invokeStatic core.clj 5867]
[clojure.core$load_libs doInvoke core.clj 5851]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$require invokeStatic core.clj 5889]
[clojure.core$require doInvoke core.clj 5889]
[clojure.lang.RestFn invoke RestFn.java 551]
[aleph.http.server$eval6269$loading__7338__auto____6270 invoke server.clj 1]
[aleph.http.server$eval6269 invokeStatic server.clj 1]
[aleph.http.server$eval6269 invoke server.clj 1]
[clojure.lang.Compiler eval Compiler.java 6942]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT loadResourceScript RT.java 363]
[clojure.lang.RT load RT.java 453]
[clojure.lang.RT load RT.java 419]
[clojure.core$load$fn__7452 invoke core.clj 5986]
[clojure.core$load invokeStatic core.clj 5985]
[clojure.core$load doInvoke core.clj 5969]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5790]
[clojure.core$load_one invoke core.clj 5785]
[clojure.core$load_lib$fn__7397 invoke core.clj 5830]
[clojure.core$load_lib invokeStatic core.clj 5829]
[clojure.core$load_lib doInvoke core.clj 5810]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$load_libs invokeStatic core.clj 5871]
[clojure.core$load_libs doInvoke core.clj 5851]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$require invokeStatic core.clj 5889]
[clojure.core$require doInvoke core.clj 5889]
[clojure.lang.RestFn invoke RestFn.java 457]
[aleph.http$eval4940$loading__7338__auto____4941 invoke http.clj 1]
[aleph.http$eval4940 invokeStatic http.clj 1]
[aleph.http$eval4940 invoke http.clj 1]
[clojure.lang.Compiler eval Compiler.java 6942]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT loadResourceScript RT.java 363]
[clojure.lang.RT load RT.java 453]
[clojure.lang.RT load RT.java 419]
[clojure.core$load$fn__7452 invoke core.clj 5986]
[clojure.core$load invokeStatic core.clj 5985]
[clojure.core$load doInvoke core.clj 5969]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5790]
[clojure.core$load_one invoke core.clj 5785]
[clojure.core$load_lib$fn__7397 invoke core.clj 5830]
[clojure.core$load_lib invokeStatic core.clj 5829]
[clojure.core$load_lib doInvoke core.clj 5810]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$load_libs invokeStatic core.clj 5867]
[clojure.core$load_libs doInvoke core.clj 5851]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$require invokeStatic core.clj 5889]
[clojure.core$require doInvoke core.clj 5889]
[clojure.lang.RestFn invoke RestFn.java 551]
[hush.auth$eval4934$loading__7338__auto____4935 invoke auth.clj 1]
[hush.auth$eval4934 invokeStatic auth.clj 1]
[hush.auth$eval4934 invoke auth.clj 1]
[clojure.lang.Compiler eval Compiler.java 6942]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT loadResourceScript RT.java 363]
[clojure.lang.RT load RT.java 453]
[clojure.lang.RT load RT.java 419]
[clojure.core$load$fn__7452 invoke core.clj 5986]
[clojure.core$load invokeStatic core.clj 5985]
[clojure.core$load doInvoke core.clj 5969]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5790]
[clojure.core$load_one invoke core.clj 5785]
[clojure.core$load_lib$fn__7397 invoke core.clj 5830]
[clojure.core$load_lib invokeStatic core.clj 5829]
[clojure.core$load_lib doInvoke core.clj 5810]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$load_libs invokeStatic core.clj 5867]
[clojure.core$load_libs doInvoke core.clj 5851]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$require invokeStatic core.clj 5889]
[clojure.core$require doInvoke core.clj 5889]
[clojure.lang.RestFn invoke RestFn.java 619]
[hush.stripe$eval417$loading__7338__auto____418 invoke stripe.clj 1]
[hush.stripe$eval417 invokeStatic stripe.clj 1]
[hush.stripe$eval417 invoke stripe.clj 1]
[clojure.lang.Compiler eval Compiler.java 6942]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT loadResourceScript RT.java 363]
[clojure.lang.RT load RT.java 453]
[clojure.lang.RT load RT.java 419]
[clojure.core$load$fn__7452 invoke core.clj 5986]
[clojure.core$load invokeStatic core.clj 5985]
[clojure.core$load doInvoke core.clj 5969]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5790]
[clojure.core$load_one invoke core.clj 5785]
[clojure.core$load_lib$fn__7397 invoke core.clj 5830]
[clojure.core$load_lib invokeStatic core.clj 5829]
[clojure.core$load_lib doInvoke core.clj 5810]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$load_libs invokeStatic core.clj 5867]
[clojure.core$load_libs doInvoke core.clj 5851]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$require invokeStatic core.clj 5889]
[clojure.core$require doInvoke core.clj 5889]
[clojure.lang.RestFn invoke RestFn.java 3204]
[hush.aleph_netty$eval411$loading__7338__auto____412 invoke aleph_netty.clj 1]
[hush.aleph_netty$eval411 invokeStatic aleph_netty.clj 1]
[hush.aleph_netty$eval411 invoke aleph_netty.clj 1]
[clojure.lang.Compiler eval Compiler.java 6942]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT loadResourceScript RT.java 363]
[clojure.lang.RT load RT.java 453]
[clojure.lang.RT load RT.java 419]
[clojure.core$load$fn__7452 invoke core.clj 5986]
[clojure.core$load invokeStatic core.clj 5985]
[clojure.core$load doInvoke core.clj 5969]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5790]
[clojure.core$load_one invoke core.clj 5785]
[clojure.core$load_lib$fn__7397 invoke core.clj 5830]
[clojure.core$load_lib invokeStatic core.clj 5829]
[clojure.core$load_lib doInvoke core.clj 5810]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$load_libs invokeStatic core.clj 5867]
[clojure.core$load_libs doInvoke core.clj 5851]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$require invokeStatic core.clj 5889]
[clojure.core$require doInvoke core.clj 5889]
[clojure.lang.RestFn invoke RestFn.java 1789]
[hush.app$eval20$loading__7338__auto____21 invoke app.clj 1]
[hush.app$eval20 invokeStatic app.clj 1]
[hush.app$eval20 invoke app.clj 1]
[clojure.lang.Compiler eval Compiler.java 6942]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT loadResourceScript RT.java 363]
[clojure.lang.RT load RT.java 453]
[clojure.lang.RT load RT.java 419]
[clojure.core$load$fn__7452 invoke core.clj 5986]
[clojure.core$load invokeStatic core.clj 5985]
[clojure.core$load doInvoke core.clj 5969]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5790]
[clojure.core$load_one invoke core.clj 5785]
[clojure.core$load_lib$fn__7397 invoke core.clj 5830]
[clojure.core$load_lib invokeStatic core.clj 5829]
[clojure.core$load_lib doInvoke core.clj 5810]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$load_libs invokeStatic core.clj 5867]
[clojure.core$load_libs doInvoke core.clj 5851]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$require invokeStatic core.clj 5889]
[clojure.core$require doInvoke core.clj 5889]
[clojure.lang.RestFn invoke RestFn.java 421]
[hush.core$eval14$loading__7338__auto____15 invoke core.clj 1]
[hush.core$eval14 invokeStatic core.clj 1]
[hush.core$eval14 invoke core.clj 1]
[clojure.lang.Compiler eval Compiler.java 6942]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT loadResourceScript RT.java 363]
[clojure.lang.RT load RT.java 453]
[clojure.lang.RT load RT.java 419]
[clojure.core$load$fn__7452 invoke core.clj 5986]
[clojure.core$load invokeStatic core.clj 5985]
[clojure.core$load doInvoke core.clj 5969]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5790]
[clojure.core$load_one invoke core.clj 5785]
[clojure.core$load_lib$fn__7397 invoke core.clj 5830]
[clojure.core$load_lib invokeStatic core.clj 5829]
[clojure.core$load_lib doInvoke core.clj 5810]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$load_libs invokeStatic core.clj 5867]
[clojure.core$load_libs doInvoke core.clj 5851]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 653]
[clojure.core$require invokeStatic core.clj 5889]
[clojure.core$require doInvoke core.clj 5889]
[clojure.lang.RestFn invoke RestFn.java 408]
[user$eval5 invokeStatic form-init5417966903061676030.clj 1]
[user$eval5 invoke form-init5417966903061676030.clj 1]
[clojure.lang.Compiler eval Compiler.java 6942]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler eval Compiler.java 6931]
[clojure.lang.Compiler load Compiler.java 7394]
[clojure.lang.Compiler loadFile Compiler.java 7332]
[clojure.main$load_script invokeStatic main.clj 275]
[clojure.main$init_opt invokeStatic main.clj 277]
[clojure.main$init_opt invoke main.clj 277]
[clojure.main$initialize invokeStatic main.clj 308]
[clojure.main$null_opt invokeStatic main.clj 342]
[clojure.main$null_opt invoke main.clj 339]
[clojure.main$main invokeStatic main.clj 421]
[clojure.main$main doInvoke main.clj 384]
[clojure.lang.RestFn invoke RestFn.java 421]
[clojure.lang.Var invoke Var.java 383]
[clojure.lang.AFn applyToHelper AFn.java 156]
[clojure.lang.Var applyTo Var.java 700]
[clojure.main main main.java 37]]}
I ran into this same problem with Encore but found it very, very hard to repro in a simple project.
The underlying issue is that clojure.tools.analyzer.utils defines boolean? but doesn’t exclude core’s version (since it’s new in Alpha 5 and libraries haven’t caught up). That normally wouldn’t be a problem: you’d get a warning, the function would be defined anyway, and life moves on.
What seems to be happening – in circumstances that I don’t yet understand – is that through some compilation path down the line from that point, you end up with a version of that namespace in memory that _does not have the definition_ of the function.
For me it was bytes? which was defined in Encore and the call failed in Nippy. That was a cljx project that had the defn of bytes? inside a (do …) with several other definitions. Lifting the defn up out of the do solved the problem. So did adding a refer-clojure/exclude declaration. However, I couldn’t reproduce the defn-in-do behavior in the REPL or in a simple project. The problem you’re seeing is different insofar as the defn is already at the top level but similar otherwise (and follows a dynamic compilation path where manifold.stream requires another namespace at load time, depending on whether core.async is available).
As I said on Slack, this feels like a compiler bug to me: having a conflict with a clojure.core function should not lead to that function definition (silently) being ignored in some namespace.
Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
--
Excellent set of new predicates. What about date predicate?It would be nice if there are also date predicate as an example in bellowdate?
date-past?date-future?
I think it's quite likely that you have multiple copies of tools.analyzer (and possibly other libs) on your classpath. Can you take a look at your deps and see if that might be the case?A particular thing to watch for is if any dep is AOT compiled and transitively pulled in a dependency lib somehow."lein deps :tree" is a good place to start, but it doesn't tell you what's actually inside the jars. There used to be a Maven plugin that would track down multiple class definitions across the dependency classpath, can't remember what it was called. It would be cool if such a thing also existed for Lein that would find multiple .clj/.cljc/.class files for a ns on the classpath. Or maybe someone has already written that, don't know.
"lein deps :tree" is a good place to start, but it doesn't tell you what's actually inside the jars. There used to be a Maven plugin that would track down multiple class definitions across the dependency classpath, can't remember what it was called. It would be cool if such a thing also existed for Lein that would find multiple .clj/.cljc/.class files for a ns on the classpath. Or maybe someone has already written that, don't know.
Add the latest tools.analyzer as a dependency solved the problem.[org.clojure/tools.analyzer "0.6.9"]
WARNING: Inst already refers to: #'clojure.core/Inst in namespace: schema.core, being replaced by: #'schema.core/Inst
(require [schema.core :as s] ...)
--
I am also getting a conflict with Plumatic Schema:WARNING: Inst already refers to: #'clojure.core/Inst in namespace: schema.core, being replaced by: #'schema.core/InstI can't seem to find a reason for this warning, as I don't use Inst anywhere and always say(require [schema.core :as s] ...)
--
I would have expected the namespaces to avoid this kind of conflict. Why don't they?
I would have expected the namespaces to avoid this kind of conflict. Why don't they?