Re: [ANN] 1.10.0-beta5

2018-11-15 Thread Andy Fingerhut
Great, sounds like you are on top of it. I tried compiling Clojure 1.9.0 and 1.10.0-beta5 with a line (set! *warn-on-reflection* true) in the src/clj/clojure/main.clj source file of both, and the reflection warnings appear to be different from each other when building Clojure, in a similar way to

Re: [ANN] 1.10.0-beta5

2018-11-15 Thread Alex Miller
I looked at current version of main and found some unintentional reflection in new code and expect that to be fixed for next beta. There is also some intended reflection in there, based on the docstrings so I left that there. On Thu, Nov 15, 2018 at 1:04 PM Andy Fingerhut wrote: > Understood. I

Re: [ANN] 1.10.0-beta5

2018-11-15 Thread Andy Fingerhut
Understood. I am curious, too, and will reply to this email thread if I get more details in a coherent form. The main reason for taking more time here is that it is possible that Eastwood-generated reflection warnings are different than the reflection warnings without Eastwood -- Eastwood reads,

Re: [ANN] 1.10.0-beta5

2018-11-15 Thread Alex Miller
Thanks Andy! I'd be curious to see what reflection errors you're talking about in clojure.main just to make sure I understand the difference. On Thursday, November 15, 2018 at 12:32:20 AM UTC-6, Andy Fingerhut wrote: > > I have run versions 0.2.6 and 0.3.3 of the Eastwood Clojure lint tool on

Re: [ANN] 1.10.0-beta5

2018-11-14 Thread Andy Fingerhut
I have run versions 0.2.6 and 0.3.3 of the Eastwood Clojure lint tool on 84 projects in its "crucible" set of projects that we use for testing Eastwood. You can find the list at [2]. I tried comparing the output for these pairs of version combinations of (Eastwood version, Clojure version, JDK ve

Re: [ANN] 1.10.0-beta5

2018-11-08 Thread Timothy Baldridge
Nope, you're right, I missed the "extend, extend-type, extend-protocol" part of the original post. On Thu, Nov 8, 2018 at 10:12 AM Alex Miller wrote: > > On Thursday, November 8, 2018 at 10:44:34 AM UTC-6, tbc++ wrote: >> >> The instance based polymorphism is a bit wonky in some cases. Can we ge

Re: [ANN] 1.10.0-beta5

2018-11-08 Thread Alex Miller
On Thursday, November 8, 2018 at 10:44:34 AM UTC-6, tbc++ wrote: > > The instance based polymorphism is a bit wonky in some cases. Can we get > some sort of spec that tells us what the rules are for resolution? > >From the top of the thread: "Protocol implementations are checked first for dire

Re: [ANN] 1.10.0-beta5

2018-11-08 Thread Timothy Baldridge
The instance based polymorphism is a bit wonky in some cases. Can we get some sort of spec that tells us what the rules are for resolution? See these cases where it breaks in some rather strange ways. Clojure 1.10.0-beta5 user=> (defprotocol ILevel (level [this])) ILevel user=> (extend-protocol IL

Re: [ANN] 1.10.0-beta5

2018-11-08 Thread Rick Moynihan
On Thu, 8 Nov 2018 at 14:36, alex wrote: > No, that will not work exactly like Ruby eigenclass, cause eigenclass has > a priority when method lookup is performed. In Clojure case if instance's > class has implementation of method, it will be preferred instead of meta > version. If I understand ev

Re: [ANN] 1.10.0-beta5

2018-11-08 Thread alex
No, that will not work exactly like Ruby eigenclass, cause eigenclass has a priority when method lookup is performed. In Clojure case if instance's class has implementation of method, it will be preferred instead of meta version. If I understand everything correctly. четверг, 8 ноября 2018 г.,

Re: [ANN] 1.10.0-beta5

2018-11-08 Thread Rick Moynihan
Cool, so I guess it's the clojure of equivalent of Ruby's eigenclasses: f = "some object" class << f def foo "new foo method on f" end end f.foo # => "new foo method on f" It's a shame this mechanism only works for values implementing IMeta, but I understand the JVM is a little prohibit

Re: [ANN] 1.10.0-beta5

2018-11-07 Thread Alex Miller
On Wednesday, November 7, 2018 at 3:19:27 AM UTC-6, Khalid Jebbari wrote: > > Example usage of tap: > https://quanttype.net/posts/2018-10-18-how-i-use-tap.html > > I've also briefly read the source code of the datafy namespace (short and > easy to understand), and my understanding is that it's

Re: [ANN] 1.10.0-beta5

2018-11-07 Thread Alex Miller
On Wednesday, November 7, 2018 at 2:12:44 AM UTC-6, Khalid Jebbari wrote: > > Alex, it's funny that the example you showed about using the new extension > mechanism looks very much like implementing lifecycle hooks in React.js > (and the various CLJ/CLJS wrappers). > > Indeed having value-based

Re: [ANN] 1.10.0-beta5

2018-11-07 Thread Khalid Jebbari
Example usage of tap: https://quanttype.net/posts/2018-10-18-how-i-use-tap.html I've also briefly read the source code of the datafy namespace (short and easy to understand), and my understanding is that it's currently for one-way transformation of Java Objects into Clojure data through the Da

Re: [ANN] 1.10.0-beta5

2018-11-07 Thread Didier
Hum, just noticed tap. Seems really interesting. I'm not thinking of any concrete usage for now, but I like it! Also, is the object in the datafy description referring to a Java object? If so, is it a way to transform nested Java objects into Clojure data, and possibly back? On Wednesday, 7 No

Re: [ANN] 1.10.0-beta5

2018-11-07 Thread Khalid Jebbari
Alex, it's funny that the example you showed about using the new extension mechanism looks very much like implementing lifecycle hooks in React.js (and the various CLJ/CLJS wrappers). Indeed having value-based extension makes it much more flexible than having to use deftype/defrecord. My unders

Re: [ANN] 1.10.0-beta5

2018-11-06 Thread John Schmidt
Wow, that's a nice example, makes it clear that it brings something new to the table! On Tuesday, November 6, 2018 at 4:50:55 PM UTC+1, Alex Miller wrote: > > > On Tuesday, November 6, 2018 at 9:25:31 AM UTC-6, John Schmidt wrote: >> >> Nice to see continued progress on Clojure 1.10! >> >> It is

Re: [ANN] 1.10.0-beta5

2018-11-06 Thread Alex Miller
On Tue, Nov 6, 2018 at 9:58 AM Jason Felice wrote: > This pattern appears in clojure.zip, also. (Any point in updating that?) > clojure.zip is not currently protocol-oriented, but could be, in which case it's impl would be pretty similar to what it is now (but using the instance protocol suppor

Re: [ANN] 1.10.0-beta5

2018-11-06 Thread Jason Felice
This pattern appears in clojure.zip, also. (Any point in updating that?) On Tue, Nov 6, 2018 at 10:51 AM Alex Miller wrote: > > On Tuesday, November 6, 2018 at 9:25:31 AM UTC-6, John Schmidt wrote: >> >> Nice to see continued progress on Clojure 1.10! >> >> It is not clear to me what metadata e

Re: [ANN] 1.10.0-beta5

2018-11-06 Thread Alex Miller
On Tuesday, November 6, 2018 at 9:25:31 AM UTC-6, John Schmidt wrote: > > Nice to see continued progress on Clojure 1.10! > > It is not clear to me what metadata extension provides that is not already > possible with direct definitions or external extensions. Some additional > background or a sm

Re: [ANN] 1.10.0-beta5

2018-11-06 Thread John Schmidt
Nice to see continued progress on Clojure 1.10! It is not clear to me what metadata extension provides that is not already possible with direct definitions or external extensions. Some additional background or a small motivating example would be much appreciated in clearing up the confusion! O

[ANN] 1.10.0-beta5

2018-11-06 Thread Alex Miller
1.10.0-beta5 is now available. You can try it with clj using: clj -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.10.0-beta5"}}}' Changes in 1.10.0-beta5: - In addition to prior methods of extension, values can now extend protocols by adding metadata where keys are fully-qua