Re: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Peter Taoussanis
I've got RC1 running in a number of places, all working well.

-- 
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: Creating multi-module projects with dependencies between modules

2014-03-19 Thread Shantanu Kumar


On Tuesday, 18 March 2014 08:25:30 UTC+5:30, Dave Kincaid wrote:

 I'm trying to create a project with multiple modules where there are some 
 dependencies between modules. So far I've tried out lein-sub and 
 lein-modules but neither one seems to handle inter-module dependencies 
 (either that or I just can't figure out how to do it). What are people 
 using for projects like this? Any open source examples I could look at?


lein-sub supports an `-s` flag that can be used to work on one specific 
module at a time. I think you can combine this with lein-cascade 
(https://github.com/kumarshantanu/lein-cascade) to work with cascading 
module dependencies.

Shantanu

-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Stefan Kamphausen
hi,

RC1 works well with our largest project.  See a 5-8% slow-down but no other 
problems.

Regards,
Stefan

-- 
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] zcube 0.0.2

2014-03-19 Thread Fabien Todescato


Hi, clojure community. It is my pleasure to announce zcube[1], a Clojure 
library all about counting trees for analytical purposes.

The intent is to compute aggregate sums over multiple hierarchical dimensions, 
based on the (old) algorithmic ideas exposed in [2] by Pr. Minato et Al, and 
implemented in an immutable setting suitable for concurrent and functional 
programming.

The 0.0.2 version provides a parallel bulk API to compute aggregates over lazy 
sequences, taking advantage of multicores.

[1]https://github.com/ftod/zcube
[2]http://www-alg.ist.hokudai.ac.jp/~thomas/TCSTR/tcstr_05_3/tcstr_05_3.pdf

-- 
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: [GSoC] Proposal: persistent probabilistic data structures

2014-03-19 Thread Matteo Ceccarello
I just had a short conversation with Ambrose through comments on my 
proposal. He suggests to offer this library to Clojure contrib. 
So I have to sign a Clojure CA, however I don't know what project name to 
put in the form, since the project has yet to start.

Any suggestion? What should I do?

Thanks
Matteo

Il giorno venerdì 14 marzo 2014 14:53:44 UTC+1, Matteo Ceccarello ha 
scritto:

 Nicola,
 thank you :) It's really nice to see that I'm not alone!

 Everybody, I just updated the proposal, following the guidelines suggested 
 by the wiki.

 Cheers,
 Matteo

 Il giorno giovedì 13 marzo 2014 23:06:11 UTC+1, Nicola Mometto ha scritto:


 Matteo, 
 best of luck with your proposal, all of those seem like good potential 
 additions to the clojure data-structure landscape. 

 BTW I'm too a fellow UniPD clojure user so you can inc the counter :) 

 Nicola 

 Matteo Ceccarello writes: 

  Hello everybody, 
  
  I just submitted my proposal for this year's GSoC. I already introduced 
 the 
  topic on this mailing list. 
  Here you can find the complete proposal: 
  
  
 http://www.google-melange.com/gsoc/proposal/public/google/gsoc2014/matteo_ceccarello/5778586438991872
  
  
  So, if you have suggestions on how to improve it, or if you have any 
  request, please tell me :) 
  
  I'm really looking forward to work with Clojure for this year's GSoC: I 
  want to learn it really well, since 
  my long term goal is to make more and more people at my University use 
 it. 
  Working on an open source project 
  under the guidance of an expert mentor seems to me the best way to 
 achieve 
  this. 
  
  Bests 
  Matteo 



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


Kibit output

2014-03-19 Thread Tim Terry
Hi, is it possible to output kibit code analysis results into a file? My 
aim is to publish this file with a CI tool such as teamcity/ jenkins.

Thanks,

Tim

-- 
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: Kibit output

2014-03-19 Thread Aaron France
`lein kibit  file`

On Wed, Mar 19, 2014 at 03:26:17AM -0700, Tim Terry wrote:
Hi, is it possible to output kibit code analysis results into a file? My
aim is to publish this file with a CI tool such as teamcity/ jenkins.
Thanks,
Tim
 
--
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.


pgpBPqIQhzpQS.pgp
Description: PGP signature


Re: algorithm help: extracting groups of consecutive ints from a sorted list

2014-03-19 Thread Alex Nixon
Or use glue from flatland.useful.seq https://github.com/flatland/useful
 and:

user= (glue conj [] (fn [s n] (= (inc (last s)) n)) [1 3 4 5 7 9 10 13])
([1] [3 4 5] [7] [9 10] [13])


On 19 March 2014 04:10, Shantanu Kumar kumar.shant...@gmail.com wrote:



 On Wednesday, 19 March 2014 09:39:56 UTC+5:30, Shantanu Kumar wrote:

 Something like this?

 (defn x [1 3 4 5 7 9 10 13])


 Sory for the typo. Should be (def x [1 3 4 5 7 9 10 13])



 (reduce (fn [a i] (let [y (last a) z (last y)] (if (and z (= (inc z) i))
 (conj (pop a) (conj y i)) (conj a [i] [] x)

 Shantanu

 On Wednesday, 19 March 2014 08:26:43 UTC+5:30, John Gabriele wrote:

 If you've got a sorted list of numbers, for example:

 [1 3 4 5 7 9 10 13]

 where some are consecutive, how can you pull out the consecutive runs?
 That is, either produce

 [1 [3 4 5] 7 [9 10] 13]; or maybe something like
 [[1 7 13] [3 4 5] [9 10]]  ; (the first vec is the elements left
 over)

 from the original coll?

 I can do it in Python in an imperative style, but it's a bit messy. My
 hunch is that there's probably a shorter way in Clojure, but I'm not seeing
 it.

 Thanks!

  --
 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: [GSoC] Proposal: persistent probabilistic data structures

2014-03-19 Thread Nicola Mometto

Matteo,
When sending the CA adding a project name is optional, you can leave
it empty.

Usually the name for a contrib project will be chosen in the thread in
clojure-dev when proposing the library as a contrib project, see
http://dev.clojure.org/display/community/Guidelines+for+Clojure+Contrib+committers
for more details

Nicola

Matteo Ceccarello writes:

 I just had a short conversation with Ambrose through comments on my
 proposal. He suggests to offer this library to Clojure contrib.
 So I have to sign a Clojure CA, however I don't know what project name to
 put in the form, since the project has yet to start.

 Any suggestion? What should I do?

 Thanks
 Matteo

 Il giorno venerdì 14 marzo 2014 14:53:44 UTC+1, Matteo Ceccarello ha
 scritto:

 Nicola,
 thank you :) It's really nice to see that I'm not alone!

 Everybody, I just updated the proposal, following the guidelines suggested
 by the wiki.

 Cheers,
 Matteo

 Il giorno giovedì 13 marzo 2014 23:06:11 UTC+1, Nicola Mometto ha scritto:


 Matteo,
 best of luck with your proposal, all of those seem like good potential
 additions to the clojure data-structure landscape.

 BTW I'm too a fellow UniPD clojure user so you can inc the counter :)

 Nicola

 Matteo Ceccarello writes:

  Hello everybody,
 
  I just submitted my proposal for this year's GSoC. I already introduced
 the
  topic on this mailing list.
  Here you can find the complete proposal:
 
 
 http://www.google-melange.com/gsoc/proposal/public/google/gsoc2014/matteo_ceccarello/5778586438991872
 
  So, if you have suggestions on how to improve it, or if you have any
  request, please tell me :)
 
  I'm really looking forward to work with Clojure for this year's GSoC: I
  want to learn it really well, since
  my long term goal is to make more and more people at my University use
 it.
  Working on an open source project
  under the guidance of an expert mentor seems to me the best way to
 achieve
  this.
 
  Bests
  Matteo



-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Alex Miller
record scratch what's that about performance now?  

Is that something definitive and reproducible? And if so, is there any way to 
track down a cause?

-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Nicola Mometto

I'm guessing it's because of the minor overhead on hashing added with
the move to Murmur3?

Alex Miller writes:

 record scratch what's that about performance now?

 Is that something definitive and reproducible? And if so, is there any way to 
 track down a cause?

-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Walter van der Laan
I moved to 1.6 two weeks ago for development and have had no problem. I had 
to change some tests because they depended on the order of elements if you 
seq a hashmap.

On Tuesday, March 18, 2014 3:21:22 PM UTC+1, Alex Miller wrote:

 Hello all, 

 We would love to release Clojure 1.6.0 final soon.

 We need your help in checking out the current release candidate - this is 
 your opportunity to let us know about problems *before* we release, rather 
 than after. 

 Try it via 
 - Download: http://central.maven.org/maven2/org/clojure/clojure/1.6.0-RC1
 - Leiningen: [org.clojure/clojure 1.6.0-RC1]

 See the full change log here:
 https://github.com/clojure/clojure/blob/master/changes.md

 If you have questions, feel free to drop them here. For issues, please log 
 them in JIRA http://dev.clojure.org/jira/secure/Dashboard.jspa. 

 Alex


-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Alex Miller
That is the only set of changes that I know of that negatively affect 
performance in 1.6.0. However, the absolute differences are quite small and 
codes are cached. It's hard for me to conjure a scenario where the 
resulting effect is an overall 5-8% slowdown. If this is one, I'd like to 
understand it better. 


On Wednesday, March 19, 2014 8:28:18 AM UTC-5, Nicola Mometto wrote:


 I'm guessing it's because of the minor overhead on hashing added with 
 the move to Murmur3? 

 Alex Miller writes: 

  record scratch what's that about performance now? 
  
  Is that something definitive and reproducible? And if so, is there any 
 way to track down a cause? 


-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Michał Marczyk
Hashes are cached for Clojure collections, keywords and symbols, but
not for strings.

I wonder if people who report these perf regressions use long string
keys in their maps... For this to explain the regression they'd have
to be looking up the same String objects a lot, of course (else
hashCode caching wouldn't have been helpful before the move to
Murmur3).


On 19 March 2014 15:21, Alex Miller a...@puredanger.com wrote:
 That is the only set of changes that I know of that negatively affect
 performance in 1.6.0. However, the absolute differences are quite small and
 codes are cached. It's hard for me to conjure a scenario where the resulting
 effect is an overall 5-8% slowdown. If this is one, I'd like to understand
 it better.


 On Wednesday, March 19, 2014 8:28:18 AM UTC-5, Nicola Mometto wrote:


 I'm guessing it's because of the minor overhead on hashing added with
 the move to Murmur3?

 Alex Miller writes:

  record scratch what's that about performance now?
 
  Is that something definitive and reproducible? And if so, is there any
  way to track down a cause?

 --
 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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Stefan Kamphausen
Hi Alex,


the runtime of the program changed from 19 to 20 seconds for one set of 
data and from approx 6minutes to 6:30 for another set.  To me that is 
acceptable. 

We are reading a few MB of files into memory, create lots of intermediate 
vectors, maps and sets and output up to a few hundred MB of data later.  
All this with pure Clojure, almost no Interop, no protocols, no records or 
types, just one multimethod which is only used during the first second.

Comparison was done by changing the project.clj to point to the desired 
Clojure version, followed by lein clean  lein uberjar and the running the 
uberjar with a fresh JVM.  All this on a QuadCore with 16GB RAM and OpenJDK 
1.7 on Linux.  We use tools.logging, tools.cli, core.async and log4j and 
AOT compile :all in the uberjar.

If you still consider this a possible breaker (I humbly don't) please let 
me know, what I should test for you.

Kind regards,
stefan


On Wednesday, March 19, 2014 3:21:54 PM UTC+1, Alex Miller wrote:

 That is the only set of changes that I know of that negatively affect 
 performance in 1.6.0. However, the absolute differences are quite small and 
 codes are cached. It's hard for me to conjure a scenario where the 
 resulting effect is an overall 5-8% slowdown. If this is one, I'd like to 
 understand it better. 


 On Wednesday, March 19, 2014 8:28:18 AM UTC-5, Nicola Mometto wrote:


 I'm guessing it's because of the minor overhead on hashing added with 
 the move to Murmur3? 

 Alex Miller writes: 

  record scratch what's that about performance now? 
  
  Is that something definitive and reproducible? And if so, is there any 
 way to track down a cause? 



-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Stefan Kamphausen
Hi,

On Wednesday, March 19, 2014 3:55:22 PM UTC+1, Michał Marczyk wrote:

 Hashes are cached for Clojure collections, keywords and symbols, but 
 not for strings. 

 I wonder if people who report these perf regressions use long string 
 keys in their maps... 


As far as I can see, we have /lots/ of strings in sets and lots of strings 
as keys, but they are not particularly /long/ (usually less than 10-15 
Characters).  We have one hot spot in the code, where we create lots 
(hundreds of thousands up to millions) of sets, each containing one to five 
strings.  I will run a few tests and see whether that makes a difference.

Best,
stefan

-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Alex Miller
Thanks, this is all really useful. I would appreciate any more detailed 
info. 

On Wednesday, March 19, 2014 10:15:35 AM UTC-5, Stefan Kamphausen wrote:

 Hi,

 On Wednesday, March 19, 2014 3:55:22 PM UTC+1, Michał Marczyk wrote:

 Hashes are cached for Clojure collections, keywords and symbols, but 
 not for strings. 

 I wonder if people who report these perf regressions use long string 
 keys in their maps... 


 As far as I can see, we have /lots/ of strings in sets and lots of strings 
 as keys, but they are not particularly /long/ (usually less than 10-15 
 Characters).  We have one hot spot in the code, where we create lots 
 (hundreds of thousands up to millions) of sets, each containing one to five 
 strings.  I will run a few tests and see whether that makes a difference.

 Best,
 stefan



-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Steve Miner
I just tried to build master locally with the new JDK 1.8 on a Mac.  I'm 
getting a build test failure.  Sorry, I don't have time to look into it at the 
moment.  JDK 1.7 worked fine for me.

 [java] clojure.test-clojure.reflect
 [java] 
 [java] java.lang.IllegalArgumentException
 [java] at clojure.asm.ClassReader.init(ClassReader.java:170)
 [java] at clojure.asm.ClassReader.init(ClassReader.java:153)
 [java] at clojure.asm.ClassReader.init(ClassReader.java:424)
 [java] at clojure.reflect.AsmReflector.do_reflect(java.clj:200)
 [java] at clojure.reflect$fn__9042$G__9038__9045.invoke(reflect.clj:44)
 [java] at clojure.reflect$fn__9042$G__9037__9049.invoke(reflect.clj:44)
 [java] at clojure.lang.AFn.applyToHelper(AFn.java:156)
 [java] at clojure.lang.AFn.applyTo(AFn.java:144)
 [java] at clojure.core$apply.invoke(core.clj:626)
 [java] at clojure.core$partial$fn__4228.doInvoke(core.clj:2468)
 [java] at clojure.lang.RestFn.invoke(RestFn.java:408)
 [java] at clojure.reflect$type_reflect.doInvoke(reflect.clj:100)
 [java] at clojure.lang.RestFn.invoke(RestFn.java:439)
 [java] at clojure.test_clojure.reflect$fn__19909.invoke(reflect.clj:23)
 [java] at clojure.test$test_var$fn__7187.invoke(test.clj:704)
 [java] at clojure.test$test_var.invoke(test.clj:704)
 [java] at clojure.test$test_vars$fn__7209$fn__7214.invoke(test.clj:722)
 [java] at clojure.test$default_fixture.invoke(test.clj:674)
 [java] at clojure.test$test_vars$fn__7209.invoke(test.clj:722)
 [java] at clojure.test$default_fixture.invoke(test.clj:674)
 [java] at clojure.test$test_vars.invoke(test.clj:718)
 [java] at clojure.test$test_all_vars.invoke(test.clj:728)
 [java] at clojure.test$test_ns.invoke(test.clj:747)
 [java] at clojure.core$map$fn__4245.invoke(core.clj:2559)
 [java] at clojure.lang.LazySeq.sval(LazySeq.java:40)
 [java] at clojure.lang.LazySeq.seq(LazySeq.java:49)
 [java] at clojure.lang.Cons.next(Cons.java:39)
 [java] at clojure.lang.RT.next(RT.java:599)
 [java] at clojure.core$next.invoke(core.clj:64)
 [java] at clojure.core$reduce1.invoke(core.clj:903)
 [java] at clojure.core$reduce1.invoke(core.clj:894)
 [java] at clojure.core$merge_with.doInvoke(core.clj:2777)
 [java] at clojure.lang.RestFn.applyTo(RestFn.java:139)
 [java] at clojure.core$apply.invoke(core.clj:626)
 [java] at clojure.test$run_tests.doInvoke(test.clj:762)
 [java] at clojure.lang.RestFn.applyTo(RestFn.java:137)
 [java] at clojure.core$apply.invoke(core.clj:624)
 [java] at 
clojure.test.generative.runner$run_all_tests$fn__529.invoke(runner.clj:255)
 [java] at 
clojure.test.generative.runner$run_all_tests$run_with_counts__521$fn__525.invoke(runner.clj:251)
 [java] at 
clojure.test.generative.runner$run_all_tests$run_with_counts__521.invoke(runner.clj:251)
 [java] at 
clojure.test.generative.runner$run_all_tests.invoke(runner.clj:253)
 [java] at 
clojure.test.generative.runner$test_dirs.doInvoke(runner.clj:304)
 [java] at clojure.lang.RestFn.applyTo(RestFn.java:137)
 [java] at clojure.core$apply.invoke(core.clj:624)
 [java] at clojure.test.generative.runner$_main.doInvoke(runner.clj:312)
 [java] at clojure.lang.RestFn.invoke(RestFn.java:408)
 [java] at user$eval566.invoke(run_tests.clj:4)
 [java] at clojure.lang.Compiler.eval(Compiler.java:6703)
 [java] at clojure.lang.Compiler.load(Compiler.java:7130)
 [java] at clojure.lang.Compiler.loadFile(Compiler.java:7086)
 [java] at clojure.main$load_script.invoke(main.clj:274)
 [java] at clojure.main$script_opt.invoke(main.clj:336)
 [java] at clojure.main$main.doInvoke(main.clj:420)
 [java] at clojure.lang.RestFn.invoke(RestFn.java:408)
 [java] at clojure.lang.Var.invoke(Var.java:379)
 [java] at clojure.lang.AFn.applyToHelper(AFn.java:154)
 [java] at clojure.lang.Var.applyTo(Var.java:700)
 [java] at clojure.main.main(main.java:37)
 [java] {:file ClassReader.java,
 [java]  :tstamp 1395244274721,
 [java]  :type :error,
 [java]  :clojure.test/vars (compare-reflect-and-asm),
 [java]  :level :error,
 [java]  :pid 97553,
 [java]  :line 170,
 [java]  :thread 1,
 [java]  :exception
 [java]  #IllegalArgumentException java.lang.IllegalArgumentException,
 [java]  :thread/name main,
 [java]  :message Uncaught exception, not in assertion.}
 [java] 


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

Re: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Stefan Kamphausen


On Wednesday, March 19, 2014 4:34:45 PM UTC+1, Alex Miller wrote:

 Thanks, this is all really useful. I would appreciate any more detailed 
 info. 



* No atoms, agents, refs
* Almost purely functional plus logging and I/O
* Multi-threaded using latest core.async with thread, no go
* JVisualVM reports top methods in CPU sampling c.l.LazySeq.sval, 
c.c$promise$reify_6310.deref, c.l.LazySeq.seq no notable difference for me 
to see.

A few experiments on two data-sets (dat1 and dat2) using either a call to 
set or to doall:

   Clojure Op Time (dat1) Time (dat1) Average dat1 Time (dat2)  1.5.1 set 
19,1 19 19,05 323  1.5.1 doall 19 19,4 19,2 330  1.6.0-RC1 set 19,5 19,8 
19,65 350  1.6.0-RC1 doall 20,2 19,8 20 351




 

-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Nicola Mometto

ASM 4.1 does not work with JDK 1.8 see
http://dev.clojure.org/jira/browse/CLJ-1323


Steve Miner writes:

 I just tried to build master locally with the new JDK 1.8 on a Mac.  I'm 
 getting a build test failure.  Sorry, I don't have time to look into it at 
 the moment.  JDK 1.7 worked fine for me.

  [java] clojure.test-clojure.reflect
  [java]
  [java] java.lang.IllegalArgumentException
  [java]   at clojure.asm.ClassReader.init(ClassReader.java:170)
  [java]   at clojure.asm.ClassReader.init(ClassReader.java:153)
  [java]   at clojure.asm.ClassReader.init(ClassReader.java:424)
  [java]   at clojure.reflect.AsmReflector.do_reflect(java.clj:200)
  [java]   at clojure.reflect$fn__9042$G__9038__9045.invoke(reflect.clj:44)
  [java]   at clojure.reflect$fn__9042$G__9037__9049.invoke(reflect.clj:44)
  [java]   at clojure.lang.AFn.applyToHelper(AFn.java:156)
  [java]   at clojure.lang.AFn.applyTo(AFn.java:144)
  [java]   at clojure.core$apply.invoke(core.clj:626)
  [java]   at clojure.core$partial$fn__4228.doInvoke(core.clj:2468)
  [java]   at clojure.lang.RestFn.invoke(RestFn.java:408)
  [java]   at clojure.reflect$type_reflect.doInvoke(reflect.clj:100)
  [java]   at clojure.lang.RestFn.invoke(RestFn.java:439)
  [java]   at clojure.test_clojure.reflect$fn__19909.invoke(reflect.clj:23)
  [java]   at clojure.test$test_var$fn__7187.invoke(test.clj:704)
  [java]   at clojure.test$test_var.invoke(test.clj:704)
  [java]   at clojure.test$test_vars$fn__7209$fn__7214.invoke(test.clj:722)
  [java]   at clojure.test$default_fixture.invoke(test.clj:674)
  [java]   at clojure.test$test_vars$fn__7209.invoke(test.clj:722)
  [java]   at clojure.test$default_fixture.invoke(test.clj:674)
  [java]   at clojure.test$test_vars.invoke(test.clj:718)
  [java]   at clojure.test$test_all_vars.invoke(test.clj:728)
  [java]   at clojure.test$test_ns.invoke(test.clj:747)
  [java]   at clojure.core$map$fn__4245.invoke(core.clj:2559)
  [java]   at clojure.lang.LazySeq.sval(LazySeq.java:40)
  [java]   at clojure.lang.LazySeq.seq(LazySeq.java:49)
  [java]   at clojure.lang.Cons.next(Cons.java:39)
  [java]   at clojure.lang.RT.next(RT.java:599)
  [java]   at clojure.core$next.invoke(core.clj:64)
  [java]   at clojure.core$reduce1.invoke(core.clj:903)
  [java]   at clojure.core$reduce1.invoke(core.clj:894)
  [java]   at clojure.core$merge_with.doInvoke(core.clj:2777)
  [java]   at clojure.lang.RestFn.applyTo(RestFn.java:139)
  [java]   at clojure.core$apply.invoke(core.clj:626)
  [java]   at clojure.test$run_tests.doInvoke(test.clj:762)
  [java]   at clojure.lang.RestFn.applyTo(RestFn.java:137)
  [java]   at clojure.core$apply.invoke(core.clj:624)
  [java]   at 
 clojure.test.generative.runner$run_all_tests$fn__529.invoke(runner.clj:255)
  [java]   at 
 clojure.test.generative.runner$run_all_tests$run_with_counts__521$fn__525.invoke(runner.clj:251)
  [java]   at 
 clojure.test.generative.runner$run_all_tests$run_with_counts__521.invoke(runner.clj:251)
  [java]   at 
 clojure.test.generative.runner$run_all_tests.invoke(runner.clj:253)
  [java]   at 
 clojure.test.generative.runner$test_dirs.doInvoke(runner.clj:304)
  [java]   at clojure.lang.RestFn.applyTo(RestFn.java:137)
  [java]   at clojure.core$apply.invoke(core.clj:624)
  [java]   at clojure.test.generative.runner$_main.doInvoke(runner.clj:312)
  [java]   at clojure.lang.RestFn.invoke(RestFn.java:408)
  [java]   at user$eval566.invoke(run_tests.clj:4)
  [java]   at clojure.lang.Compiler.eval(Compiler.java:6703)
  [java]   at clojure.lang.Compiler.load(Compiler.java:7130)
  [java]   at clojure.lang.Compiler.loadFile(Compiler.java:7086)
  [java]   at clojure.main$load_script.invoke(main.clj:274)
  [java]   at clojure.main$script_opt.invoke(main.clj:336)
  [java]   at clojure.main$main.doInvoke(main.clj:420)
  [java]   at clojure.lang.RestFn.invoke(RestFn.java:408)
  [java]   at clojure.lang.Var.invoke(Var.java:379)
  [java]   at clojure.lang.AFn.applyToHelper(AFn.java:154)
  [java]   at clojure.lang.Var.applyTo(Var.java:700)
  [java]   at clojure.main.main(main.java:37)
  [java] {:file ClassReader.java,
  [java]  :tstamp 1395244274721,
  [java]  :type :error,
  [java]  :clojure.test/vars (compare-reflect-and-asm),
  [java]  :level :error,
  [java]  :pid 97553,
  [java]  :line 170,
  [java]  :thread 1,
  [java]  :exception
  [java]  #IllegalArgumentException java.lang.IllegalArgumentException,
  [java]  :thread/name main,
  [java]  :message Uncaught exception, not in assertion.}
  [java]

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

[ANN] stch.routing 0.1.1

2014-03-19 Thread david
I'm really excited to announce stch.routing.  This library is similar to 
Compojure in purpose, but is much different in use.  It is based off ideas 
from bulletphp.com.  The overall objective is concise routing of Ring 
requests.  Feedback is very much appreciated.

Full documentation, examples, and example site can be found at 
https://github.com/stch-library/routing.

Add the following to your project dependencies to use:

[stch-library/routing 0.1.1]

BTW, I'm currently looking for work as a Clojure developer.  If you like 
what you see, please hit me up.

David

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


reduced

2014-03-19 Thread Andy Smith
Hi,

Ive been looking at http://www.4clojure.com/problem/137 and I have a 
solution :

(fn [x b] (reduce #(let [r (quot x %2) d (mod r b)] (if (zero? r) (reduced 
%1) (conj %1 d))) '() (iterate (partial * b) 1)))

but the 4clojure website is failing with :


java.lang.RuntimeException: Unable to resolve symbol: reduced in this 
context, compiling:(NO_SOURCE_PATH:0)

Any ideas?

Thanks

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: reduced

2014-03-19 Thread Andy Smith
ah ok...

i worked around this using a restriction on the input collection, but i 
think it is less concise :

(fn [x b] (if (zero? x) [0] (reduce #(let [r (quot x %2) d (mod r b)] (conj 
%1 d)) '() (take-while #(= % x) (iterate (partial * b) 1)

-- 
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: reduced

2014-03-19 Thread Moritz Ulrich
`reduced' was added in 1.5. It looks like 4clojure is using an older
version.


On Wed, Mar 19, 2014 at 5:44 PM, Andy Smith the4thamig...@googlemail.comwrote:

 Hi,

 Ive been looking at http://www.4clojure.com/problem/137 and I have a
 solution :

 (fn [x b] (reduce #(let [r (quot x %2) d (mod r b)] (if (zero? r) (reduced
 %1) (conj %1 d))) '() (iterate (partial * b) 1)))

 but the 4clojure website is failing with :


 java.lang.RuntimeException: Unable to resolve symbol: reduced in this
 context, compiling:(NO_SOURCE_PATH:0)

 Any ideas?

 Thanks

 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.


Re: reduced

2014-03-19 Thread Jim

I think `reduced` was added in 1.4...
4clojure is on 1.2 right?

Jim

On 19/03/14 16:44, Andy Smith wrote:

Hi,

Ive been looking at http://www.4clojure.com/problem/137 and I have a 
solution :


(fn [x b] (reduce #(let [r (quot x %2) d (mod r b)] (if (zero? r) 
(reduced %1) (conj %1 d))) '() (iterate (partial * b) 1)))


but the 4clojure website is failing with :



java.lang.RuntimeException: Unable to resolve symbol: reduced in this 
context, compiling:(NO_SOURCE_PATH:0)


Any ideas?

Thanks

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 
mailto: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: STM and persistent data structures performance on mutli-core archs

2014-03-19 Thread Raoul Duke
 I like FSMs, but they do not compose well.

some have argued for generative grammars that generate the fsm,
because it is generally easier to compose grammars, and then generate
the final fsm. iiuc.

-- 
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: More functional Quil

2014-03-19 Thread J . Pablo Fernández
Hello Nikita,

I think Quil should definitely provide a way to write functional style 
processing code. At the moment, my knowledge of both Clojure and Processing 
is not enough to evaluate these solutions. I'm certainly going to write my 
code following some of this and if someone proposes a solution to be part 
of Quil 2, I would happily adopt it and report back on my experiences.

BTW, I noticed you had some discussions on IRC, you can find me there as 
Pupeno.

On Monday, March 10, 2014 12:29:00 AM UTC, Nikita Beloglazov wrote:

 Hi Pablo

 You can find similar old thread on Quil github repo: 
 https://github.com/quil/quil/pull/19 It may serve as good background what 
 other people considered to make Quil more functional-style.

 I like your suggestion though I would split your :draw function to 2 fns: 
 an :update function, which only purpose is to update state and :drawwhich 
 draws state and doesn't change the world at all. If this approach is 
 implemented - other handler functions like :mouse-move, :key-pressed are 
 also need to become update-like functions - they should take state as 
 argument and return new state.

 The only problem is that it is not backward compatible at all. But 
 probably we still can do it... We can add option :fun-mode? true (stands 
 for functional-mode) which enables all these changes - :draw takes state 
 as argument, new :update function is added for modifying state, all 
 handlers behave like :update. This option is enabled per-sketch. It 
 requires additional work on Quil internals, but I think it is doable. This 
 option can be implemented in coming quil 2.0 and it would be great feature 
 to have. 

 One more thing we could do to make it more functional-like - pass 
 changed values to handlers directly. Currently when :key-pressedhandler is 
 called - no argument is passed to the function and you need to 
 use (key-code) or (raw-key) functions to identify which key was pressed. 
 I think this parameters should be explicitly passed to the function.

 What do you think?

 Nikita

 On Sunday, March 9, 2014 1:21:58 PM UTC, J. Pablo Fernández wrote:



 On Sunday, March 9, 2014 1:02:52 PM UTC, Laurent PETIT wrote:

 Hello, 

 To be honest I don't see any fundamental difference between your first 
 attempt and the improvement: both share the fact that the mutation of the 
 state happens within the draw function. So in both cases, you have a 
 temporal coupling between updating the state of the app and rendering a new 
 view of the app's state.


 Yes, what's happening in both cases is very similar, but the function 
 draw in the functional style, in my opinion, is easier to read and maybe 
 it's also easier to test.
  

 I would suggest that you don't swap! at all within draw, just deref and 
 render the result of the dereffing.

 And, in another thread, at potentially a totally different pace than the 
 redrawing's pace, update the application's state accordingly to business 
 rules / constraints.

 Schematically, something like this: 

 (def app-state (atom (init-state)))

 (defn draw [...]
   (let [app-snapshot (deref app-state)]
   ... call quil primitives to render the application state snapshot 
 ...))

 (future
   ... logic which updates the app-state atom depending on business rules 
 / constraints, in a separate thread ...)


 I never worked with future, this is exciting, but I have some questions. 
 Do you mean that future is completely separate from draw? I'm just getting 
 started, but draw is not only a function to draw, but as a side effect is 
 the clock of the app, as it's called according to the set frames per second 
 and you normally *take a step* en each draw. Would draw create these 
 futures for the next draw?



-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Softaddicts
Moved to this release 3 days ago. Nothing to report, works as expected :)

Thank to everyone for this new release :)

Luc P.


 Hello all,
 
 We would love to release Clojure 1.6.0 final soon.
 
 We need your help in checking out the current release candidate - this is
 your opportunity to let us know about problems *before* we release, rather
 than after.
 
 Try it via
 - Download: http://central.maven.org/maven2/org/clojure/clojure/1.6.0-RC1
 - Leiningen: [org.clojure/clojure 1.6.0-RC1]
 
 See the full change log here:
 https://github.com/clojure/clojure/blob/master/changes.md
 
 If you have questions, feel free to drop them here. For issues, please log
 them in JIRA http://dev.clojure.org/jira/secure/Dashboard.jspa.
 
 Alex
 
 -- 
 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.
 
--
Softaddictslprefonta...@softaddicts.ca sent by ibisMail from my ipad!

-- 
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] Gorilla REPL 0.2.0 - all new extensible renderer

2014-03-19 Thread Jony Hudson
Hi all,

 I'm happy to announce a new release of Gorilla REPL. The number one 
comment I got from people on the original release was that it looked good, 
but they'd like to see it extended to some library or other. Jeff Rose hit 
the nail on the head with:

Being able to render values of different types is important, and I think 
it deserves a lot of attention in both the design and documentation.

So with that in mind, on to the changes:

- All new renderer. This is the main change. The new renderer is simple and 
predictable, _very_ flexible, supports first-class pluggable custom 
rendering, and really respects the structure of Clojure values. In 
particular it renders aggregates of values as you might hope, so you can 
draw lists of tables, tables of plots, associatives of tables of tables of 
plots etc. I've made a couple of videos walking through its features, and 
how easy it is to extend. I'm really pleased with how it's come out :-)

https://vimeo.com/89529751
https://vimeo.com/89532785

As per the request, there's also documentation on it. Enough to choke a 
horse!

http://gorilla-repl.org/renderer.html

- You can open multiple tabs on the same REPL. This works really nicely - 
they each get they own session, but share the REPL.

- Runs a real nREPL server now, so should work together with things like 
vim-fireplace that make their own connection to the REPL server. (I haven't 
tested this though!)

- As you might have guessed from the above, there's now a website. 
http://gorilla-repl.org 

- Numerous small bug-fixes and feature requests.

There are some minor breaking changes, hence the version bump:

- Old worksheets will need to be re-run to regenerate their output.

- Code that dabbled with the internals of gorilla-plot might need to be 
adjusted.

It's on clojars now, with coordinates [gorilla-repl 0.2.0] .

The new renderer lays the foundation for adding rendering for other 
libraries. I'd love to see support for core.matrix and Incanter, so I think 
this will be the immediate focus of development. If you maintain a library 
and would like to see it supported, then please do get in touch.

As always, all comments and criticism gratefully received.

[Proof-reading this email, I realise I sound rather pleased with myself. My 
apologies for that, but in truth I think I _am_ rather pleased with how 
this version has came together!]

Yours,


Jony

-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Alex Miller
Rich just pushed a change to the String hashing to address this. We're 
going to grab the string hashcode (which is cached after first call) and 
murmur the result of that. This gives us constant time hashcode after first 
call with better distribution for combinations in nested collections.  Will 
be in presumed RC2.

On Wednesday, March 19, 2014 11:26:51 AM UTC-5, Stefan Kamphausen wrote:



 On Wednesday, March 19, 2014 4:34:45 PM UTC+1, Alex Miller wrote:

 Thanks, this is all really useful. I would appreciate any more detailed 
 info. 



 * No atoms, agents, refs
 * Almost purely functional plus logging and I/O
 * Multi-threaded using latest core.async with thread, no go
 * JVisualVM reports top methods in CPU sampling c.l.LazySeq.sval, 
 c.c$promise$reify_6310.deref, c.l.LazySeq.seq no notable difference for me 
 to see.

 A few experiments on two data-sets (dat1 and dat2) using either a call to 
 set or to doall:

Clojure Op Time (dat1) Time (dat1) Average dat1 Time (dat2)  1.5.1 set 
 19,1 19 19,05 323  1.5.1 doall 19 19,4 19,2 330  1.6.0-RC1 set 19,5 19,8 
 19,65 350  1.6.0-RC1 doall 20,2 19,8 20 351




  

-- 
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: Clojure 1.6.0-RC1 - LAST CHANCE, PLEASE TEST

2014-03-19 Thread Alex Miller
And thanks everyone for giving RC1 a look. You are (collectively) the 
fortune in my fortune cookie.

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


[GSoC] Proposal, question and possible call for menthor

2014-03-19 Thread Dmitry Groshev
Hello, Clojurians!

GSoC application deadline is dangerously close and it's time to fill an 
application, at last. But here is a problem: I don't know what will be the 
best for community. I have a few ideas and I will present them here to get 
some feedback. Sorry for a bit late posting!

First: this is the idea listed on Ideas Page [1], Data Visualization 
Components with Om / React.js. I would like to participate; in particular, 
I'm very interested in building a decent graph rendering library. It seems 
like there are a lot of JS libraries to draw graphs out there, but all of 
them lack features that I needed one time or another:
-composable layouts/transformations, like in Gephi (you can run one 
transformation after another there);
-static rendering without fancy animation of force-based layout;
-efficient handling of data changes (here is where React can be useful);
-ability to add user-defined forces. It's very useful when you have special 
nodes that should be pulled to particular points.
Of course, this should be based on top of React's model, which adds an 
interesting exploratory aspect to the project.
Mentor: I've tried to contact Kovas about this project, but wasn't 
successful. I hope that was a mail quirk.

Second: when I write Erlang, I enjoy PropEr (an Erlang property testing 
library) a lot. Some time ago a similar system was created for Clojure 
(test.check [2]). It's a decent property-based checker, but a couple of 
things are still lacking:
-support for stateful system checking. This is called statem in PropEr 
and described in [3]. It's based on modelling stateful system as FSM and 
comparing behaviour of model and system under test. One of interesting 
usages of statem in PropEr is to test external servers: for example, 
properly-designed REST API can be modelled pretty easily by a FSM.
-support for automatic generator inference from type specifications (in 
Clojure Prismatic's Schema can be used) [4]. Obviously, it makes using 
property-testing a lot easier.
-support for generator statistics — what instances was generated, what was 
the distribution of test sizes and so on.
In this project, if it will be selected, I will implement this three 
features for test.check. I had very positive experience with PropEr and I 
hope that this project can help more people start using property-based 
testing.
Mentor: Reid Draper. I contacted him and he agreed to mentor the project.

Third: arguably, one of the best plotting libraries around is R's ggplot 
[5]. It was recently ported to Python, as well [6]. It's different from all 
other libraries of the kind in that it implements a grammar of graphics: 
small pieces of reusable functionality that together constitute plots. Here 
is an example:

ggplot(mry, aes(x=year, y=number, group=rating)) + geom_line(aes(colour = 
rating)) + scale_colour_gradient(low=red) # produces [7]

This fits Clojure's ideology nicely. It can also be even better in Clojure 
after a small modification of original ggplot design, which is replacing 
overloaded plus style with plain vectors. This is a big project, but I 
believe I can port this library to Clojure and ClojureScript in GSoC 
timeframe. The majority of code will be the same, and because this will not 
be a core.X project, I will be able to use cljx to share code. One of 
spin-offs from this project will be a simple dataframe-like (think R or 
Python's pandas [8]) data structure usable in both languages.
Mentor: there is no at this point. I will appreciate a lot if someone will 
volunteer.

This concludes the list of ideas. Please share your thoughts and let me 
know, if you are able to mentor me on third project! I will fill an 
application in 36 hours from now.

[1]: http://dev.clojure.org/display/community/Project+Ideas
[2]: https://github.com/clojure/test.check
[3]: http://proper.softlab.ntua.gr/papers/eirini-thesis.pdf
[4]: http://proper.softlab.ntua.gr/papers/proper_types.pdf
[5]: http://ggplot2.org/
[6]: https://pypi.python.org/pypi/ggplot
[7]: http://docs.ggplot2.org/current/geom_line-8.png
[8]: http://pandas.pydata.org/

-- 
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: STM and persistent data structures performance on mutli-core archs

2014-03-19 Thread John Mastro
 Due to the path-copy semantics, the contention gets driven to the root of the 
 tree. 

Out of curiosity, would reference counting (rather than or in addition to 
normal GC) help with this? Or is reference counting problematic in a highly 
concurrent environment? It seems like reference cycles will be less of an issue 
with immutable data. 

- John

-- 
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: STM and persistent data structures performance on mutli-core archs

2014-03-19 Thread Martin Thompson



1. Due to the path-copy semantics, the contention gets driven to the 
root of the tree. 


 Out of curiosity, would reference counting (rather than or in addition to 
 normal GC) help with this? Or is reference counting problematic in a 
 highly concurrent environment? It seems like reference cycles will be less 
 of an issue with immutable data. 


Reference counting tends to be less efficient than a tracing collector in a 
concurrent environment. Reference counts must employ atomic updates that 
can be relatively expensive, e.g. similar to how 
AtomicLong.incrementAndGet() works. I've blogged on how atomic increments 
work.

http://mechanical-sympathy.blogspot.co.uk/2011/09/adventures-with-atomiclong.html

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


honeysql subquery

2014-03-19 Thread Brian Craft
Is there a way to do a subquery in honeysql, e.g.

{:select [:*] :from {:select [5]}}

(which doesn't work)?

-- 
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: honeysql subquery

2014-03-19 Thread Brian Craft
ah, got it. Need [] around the subselect.

On Wednesday, March 19, 2014 3:17:07 PM UTC-7, Brian Craft wrote:

 Is there a way to do a subquery in honeysql, e.g.

 {:select [:*] :from {:select [5]}}

 (which doesn't work)?


-- 
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] Gorilla REPL 0.2.0 - all new extensible renderer

2014-03-19 Thread Paul Mooser
This looks great, Jony - I look forward to playing with it soon! 

-- 
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] lein-4clj

2014-03-19 Thread Alex Engelberg
4clojure http://www.4clojure.com/ is a great site for practicing various 
datatypes and concepts in Clojure. However, the code editor on the website 
is somewhat limited, mostly because it doesn't have a REPL to test out 
individual parts of your code. I'm not affiliated with 4clojure in any way, 
but I've created a leiningen plugin for working on 4clojure problems in the 
comfort of your own IDE.

https://github.com/aengelberg/lein-4clj
See the readme for more information and examples.

Enjoy!
--Alex

-- 
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] lein-4clj

2014-03-19 Thread Alan Malloy
Can you explain the difference between this 
and https://github.com/bfontaine/lein-fore-prob? I haven't really looked 
since back when https://github.com/broquaint/lein-foreclojure-plugin was 
new (in lein 1!), but it seems like there is a lein2 plugin already.

On Wednesday, March 19, 2014 4:37:46 PM UTC-7, Alex Engelberg wrote:

 4clojure http://www.4clojure.com/ is a great site for practicing 
 various datatypes and concepts in Clojure. However, the code editor on the 
 website is somewhat limited, mostly because it doesn't have a REPL to test 
 out individual parts of your code. I'm not affiliated with 4clojure in any 
 way, but I've created a leiningen plugin for working on 4clojure problems 
 in the comfort of your own IDE.

 https://github.com/aengelberg/lein-4clj
 See the readme for more information and examples.

 Enjoy!
 --Alex


-- 
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] lein-4clj

2014-03-19 Thread Alex Engelberg
Admittedly these two libraries are very similar; I actually hadn't heard
about lein-fore-prob before (because it wasn't listed on the leiningen
plugin list wiki https://github.com/technomancy/leiningen/wiki/plugins).

Because I started working on this without knowledge of the other library,
it naturally has a few differences; one of which is that it creates
separate files while lein-fore-prob puts all the problems into one file
(unless multiple projects are created). Also, lein-4clj supports
project-less template creation, allowing for a quicker workflow if a
4clojure user wants to quickly try out a solution using the REPL.

Anyhow, the two projects are similar and serve essentially the same
purpose, so feel free to use whichever you'd like.

--Alex

--Alex


On Wed, Mar 19, 2014 at 4:55 PM, Alan Malloy a...@malloys.org wrote:

 Can you explain the difference between this and
 https://github.com/bfontaine/lein-fore-prob? I haven't really looked
 since back when https://github.com/broquaint/lein-foreclojure-plugin was
 new (in lein 1!), but it seems like there is a lein2 plugin already.


 On Wednesday, March 19, 2014 4:37:46 PM UTC-7, Alex Engelberg wrote:

 4clojure http://www.4clojure.com/ is a great site for practicing
 various datatypes and concepts in Clojure. However, the code editor on the
 website is somewhat limited, mostly because it doesn't have a REPL to test
 out individual parts of your code. I'm not affiliated with 4clojure in any
 way, but I've created a leiningen plugin for working on 4clojure problems
 in the comfort of your own IDE.

 https://github.com/aengelberg/lein-4clj
 See the readme for more information and examples.

 Enjoy!
 --Alex

  --
 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 a topic in the
 Google Groups Clojure group.
 To unsubscribe from this topic, visit
 https://groups.google.com/d/topic/clojure/7kJYUuLk62A/unsubscribe.
 To unsubscribe from this group and all its topics, 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: STM and persistent data structures performance on mutli-core archs

2014-03-19 Thread Andy C
So, the following test puzzles me. Not because it takes virtually the same
time (I know that Fork/Join is not cheap and memory is probably the biggest
bottleneck here). But because I do not get why map (as opposed to r/ma)
uses all 8 cores on my MacBookPro.  All of them seem to be running
according to Activity Monitor at more less the same level.

user= (def l (into [] (range 6000)))
#'user/l
user= (time (def a (doall (map #(Math/sin (* % %)) l
Elapsed time: 19986.18 msecs

user= (time (def a (doall (into [] (r/map #( Math/sin (* % %)) l)
Elapsed time: 18980.583 msecs

-- 
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: STM and persistent data structures performance on mutli-core archs

2014-03-19 Thread Andy C
On Wed, Mar 19, 2014 at 11:14 AM, Raoul Duke rao...@gmail.com wrote:

  I like FSMs, but they do not compose well.

 some have argued for generative grammars that generate the fsm,
 because it is generally easier to compose grammars, and then generate
 the final fsm. iiuc.


I thought about it too but composing FSMs out of some patterns really
transcends my mind unfortunately. In another words, I have hard time to see
patterns in FSMs - they tend to be quite complex in the first place.
Sometimes a single transition might ruin the perception and completely the
properties of everything.

There is a very good book treating about subject:
http://www.amazon.com/Practical-Statecharts-Quantum-Programming-Embedded-ebook/dp/B0017UASZO/ref=sr_1_3?s=booksie=UTF8qid=1395284883sr=1-3keywords=C%2B%2B+state+machine


A.

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


honeysql function call limitation

2014-03-19 Thread Brian Craft
honeysql supports function calls by joining args with commas, e.g.

= (hsql/format #sql/call [:foo :bar :baz])
[foo(bar, baz)]


However sql functions have more syntax, for example group_concat(a order by 
b separator ',')

So #sql/call doesn't work. I tried implementing a clause format for 
group_concat:

= (hsql/format {:group_concat [:value {:order :ordering :separator 
#sql/call [:chr 9]}]})
[GROUP_CONCAT(value order by ordering separator chr(9))]

However this doesn't work inside a select:

= (hsql/format {:select {:group_concat [:value {:order :ordering 
:separator #sql/call [:chr 9]}]} :from [:foo]})
[SELECT group_concat AS value AS ( ) FROM foo]

Is there any solution besides dropping to raw sql?


-- 
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: honeysql function call limitation

2014-03-19 Thread Brian Craft
ugh, bit by missing [] a second time. Nevermind.

On Wednesday, March 19, 2014 8:46:37 PM UTC-7, Brian Craft wrote:

 honeysql supports function calls by joining args with commas, e.g.

 = (hsql/format #sql/call [:foo :bar :baz])
 [foo(bar, baz)]


 However sql functions have more syntax, for example group_concat(a order 
 by b separator ',')

 So #sql/call doesn't work. I tried implementing a clause format for 
 group_concat:

 = (hsql/format {:group_concat [:value {:order :ordering :separator 
 #sql/call [:chr 9]}]})
 [GROUP_CONCAT(value order by ordering separator chr(9))]

 However this doesn't work inside a select:

 = (hsql/format {:select {:group_concat [:value {:order :ordering 
 :separator #sql/call [:chr 9]}]} :from [:foo]})
 [SELECT group_concat AS value AS ( ) FROM foo]

 Is there any solution besides dropping to raw sql?




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