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 
> 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 version):
>
> (0.2.6, 1.9.0, Oracle 1.8.0_192) compared with (0.2.6, 1.10.0-beta5, 
> Oracle 1.8.0_192)
> (0.2.6, 1.9.0, OpenJDK 11.0.1) compared with (0.2.6, 1.10.0-beta5, OpenJDK 
> 11.0.1)
> (0.3.3, 1.9.0, Oracle 1.8.0_192) compared with (0.3.3, 1.10.0-beta5, 
> Oracle 1.8.0_192)
> (0.3.3, 1.9.0, OpenJDK 11.0.1) compared with (0.3.3, 1.10.0-beta5, OpenJDK 
> 11.0.1)
>
> All test runs were run on an Ubuntu Linux 18.04.1 system in a VM on my 
> Intel x86_64 based Mac laptop.
>
> The only differences I found were:
>
> + differing line numbers of Clojure source code that appeared in stack 
> traces, which is expected in a new Clojure release
> + fewer deprecation warnings when linting Clojure namespace 
> clojure.java.browse-ui, because of intentional changes made for Clojure 
> 1.10.0 to eliminate the use of deprecated APIs [3]
> + a couple of reflection warnings present in namespace clojure.main are 
> gone.  There was no change in the Java interop calls, so perhaps this is 
> because of changes made in how the Clojure compiler resolves Java method 
> calls.
>
> I didn't see anything more than 3 to 4 percent difference in run times 
> across all of the version combinations above.
>
> Andy
>
> [1] https://github.com/jonase/eastwood
> [2] 
> https://github.com/jonase/eastwood/tree/master/crucible/project-clj-files
> [3] 
> https://github.com/clojure/clojure/commit/fb916808669ef65dce5dfe58e23d4a902253ca55
>

-- 
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.


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, analyzes with
tools.analyzer.jvm, emits new forms, and then evals those.
tools.analyzer.jvm _might_ be causing the emitted code to generate
different reflection warnings than Clojure would on the original code.

Probably the quickest way for me to double-check is just to stick a (set!
*warn-on-reflection* true) at the beginning of clojure/main.clj source file
for Clojure 1.9.0 and 1.10.0-beta5 and compare the output there.  If those
are identical/similar-enough, then it is tools.analyzer.jvm or something
else in Eastwood causing the different reflection warnings.

Andy


On Thu, Nov 15, 2018 at 6:07 AM Alex Miller  wrote:

> 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
>> 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 version):
>>
>> (0.2.6, 1.9.0, Oracle 1.8.0_192) compared with (0.2.6, 1.10.0-beta5,
>> Oracle 1.8.0_192)
>> (0.2.6, 1.9.0, OpenJDK 11.0.1) compared with (0.2.6, 1.10.0-beta5,
>> OpenJDK 11.0.1)
>> (0.3.3, 1.9.0, Oracle 1.8.0_192) compared with (0.3.3, 1.10.0-beta5,
>> Oracle 1.8.0_192)
>> (0.3.3, 1.9.0, OpenJDK 11.0.1) compared with (0.3.3, 1.10.0-beta5,
>> OpenJDK 11.0.1)
>>
>> All test runs were run on an Ubuntu Linux 18.04.1 system in a VM on my
>> Intel x86_64 based Mac laptop.
>>
>> The only differences I found were:
>>
>> + differing line numbers of Clojure source code that appeared in stack
>> traces, which is expected in a new Clojure release
>> + fewer deprecation warnings when linting Clojure namespace
>> clojure.java.browse-ui, because of intentional changes made for Clojure
>> 1.10.0 to eliminate the use of deprecated APIs [3]
>> + a couple of reflection warnings present in namespace clojure.main are
>> gone.  There was no change in the Java interop calls, so perhaps this is
>> because of changes made in how the Clojure compiler resolves Java method
>> calls.
>>
>> I didn't see anything more than 3 to 4 percent difference in run times
>> across all of the version combinations above.
>>
>> Andy
>>
>> [1] https://github.com/jonase/eastwood
>> [2]
>> https://github.com/jonase/eastwood/tree/master/crucible/project-clj-files
>> [3]
>> https://github.com/clojure/clojure/commit/fb916808669ef65dce5dfe58e23d4a902253ca55
>>
> --
> 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.


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 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, analyzes with
> tools.analyzer.jvm, emits new forms, and then evals those.
> tools.analyzer.jvm _might_ be causing the emitted code to generate
> different reflection warnings than Clojure would on the original code.
>
> Probably the quickest way for me to double-check is just to stick a (set!
> *warn-on-reflection* true) at the beginning of clojure/main.clj source file
> for Clojure 1.9.0 and 1.10.0-beta5 and compare the output there.  If those
> are identical/similar-enough, then it is tools.analyzer.jvm or something
> else in Eastwood causing the different reflection warnings.
>
> Andy
>
>

-- 
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.


Re: Who Uses import-vars?

2018-11-15 Thread Didier
So is there another way then using import-vars tp break up an existing package 
into many new small ones?

-- 
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.


[ANN] com.vodori/reactors 0.1.0

2018-11-15 Thread Paul Rutledge
Vodori released [com.vodori/reactors "0.1.0"]. It’s our take on a reactive 
store (events/reducers/subscribers) atop clojure agents with event 
producers and subscribers expressed as core.async channels. As an example, 
we use it with database change streams as our event producers and 
websockets as our subscribers to provide live collaboration between users 
annotating files. 

https://github.com/vodori/reactors

Cheers!

-- 
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.


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 how they are different when running Eastwood on that namespace of
those two different versions, and the differences in the reflection
warnings don't surprise me at all given the code changes there.

Andy

On Thu, Nov 15, 2018 at 1:12 PM Alex Miller  wrote:

> 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 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, analyzes with
>> tools.analyzer.jvm, emits new forms, and then evals those.
>> tools.analyzer.jvm _might_ be causing the emitted code to generate
>> different reflection warnings than Clojure would on the original code.
>>
>> Probably the quickest way for me to double-check is just to stick a (set!
>> *warn-on-reflection* true) at the beginning of clojure/main.clj source file
>> for Clojure 1.9.0 and 1.10.0-beta5 and compare the output there.  If those
>> are identical/similar-enough, then it is tools.analyzer.jvm or something
>> else in Eastwood causing the different reflection warnings.
>>
>> Andy
>>
>> --
> 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.