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
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
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,
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
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
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
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
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
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
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 г.,
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
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
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
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
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
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
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
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
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
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
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
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
22 matches
Mail list logo