Re: [ANN] mod-lang-clojure for Vert.x 0.2.0 released

2013-09-18 Thread Josh Kamau
Does this have the ring adapter bundled in ?

Thanks


On Wed, Sep 18, 2013 at 5:16 AM, Toby Crawley t...@tcrawley.org wrote:

 mod-lang-clojure[0] 0.2.0 was released earlier today, and is now
 available in Maven Central.

 The biggest change in 0.2.0 is the addition of a ClojureScript wrapper
 around the client-side vertxbus.js.[1]

 For a full list of changes, see the ChangeLog[2].

 # What is mod-lang-clojure?

 mod-lang-clojure is a fledging Clojure language module for
 Vert.x[3]. Vert.x is an asynchronous polyglot application platform based
 on Netty.

 [0]: https://github.com/vert-x/mod-lang-clojure/
 [1]:
 https://github.com/vert-x/mod-lang-clojure/blob/0.2.0/api/src/main/clojure/vertx/client/eventbus.cljs
 [2]: https://github.com/vert-x/mod-lang-clojure/blob/master/ChangeLog.md
 [3]: http://vertx.io/
 --
 Toby Crawley
 http://immutant.org | http://torquebox.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/groups/opt_out.


-- 
-- 
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/groups/opt_out.


Re: Hotspot predictability

2013-09-18 Thread Jamie Brandon
I was worrying about https://github.com/hugoduncan/criterium/issues/19
but actually these tests are not nearly fast enough to cause problems.

I reran the last benchmark without dotimes and the results look pretty
much the same - https://gist.github.com/jamii/6607031

I'm still a little worried about adding more frames onto the stack but
it only really matters inside mutually-recursive parsers and I suspect
I'm going to have to trampoline those anyway.

On 18 September 2013 06:23, Jason Wolfe ja...@w01fe.com wrote:
 I've found similar things with compiling schema validators.  Be careful with
 doseq benchmarks like this though, if you aren't careful hotspot can
 completely eliminate parts of the computation as dead code if it can infer
 the results aren't used.  Criterion has a neat trick for making sure this
 can't happen, IIRC.


 On Tuesday, September 17, 2013 10:00:46 AM UTC-7, Jamie Brandon wrote:

 For larger patterns, the staged version is actually significantly faster:

 https://gist.github.com/jamii/6597235

 On 17 September 2013 16:29, Jamie Brandon ja...@scattered-thoughts.net
 wrote:
  I ran a little benchmark comparing different implementations of a toy
  pattern matching protocol:
 
  https://gist.github.com/jamii/6595850
 
  I'm surprised to find that the staged version is not significantly
  slower than the compiled version. Now I'm wondering whether this is
  feasible on a larger scale. Can I always rely on those fns being
  inlined? Is there some magic threshold on closure nesting where
  suddenly there will be inlining and I will blow up my stack?
 
  More generally, how can I find out this sort of thing? There seems to
  be very little hard information on what optimisations hotspot will
  reliably perform.
 
  This looks like it could be useful -
 
  http://mechanical-sympathy.blogspot.co.uk/2013/06/printing-generated-assembly-code-from.html
  - but I'm not sure how I would make that work with clojures class name
  mangling for closures.

-- 
-- 
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/groups/opt_out.


Re: [ANN] mod-lang-clojure for Vert.x 0.2.0 released

2013-09-18 Thread Toby Crawley

Josh Kamau writes:

 Does this have the ring adapter bundled in ?


No, the ring adapter is a separate project
(https://github.com/stream1984/ring-vertx-adapter), and will likely
remain so. 

-- 
Toby Crawley
http://immutant.org | http://torquebox.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/groups/opt_out.


Re: another game of exploding heap, via clojure.string/split

2013-09-18 Thread Rob Lally
I've used YourKit extensively for profiling and analysis and would highly 
recommend it .


Rob.




On 17 Sep 2013, at 08:56, Andy Fingerhut andy.finger...@gmail.com wrote:

 Some of the hits point at commercial tools, which you didn't mention.
 
 I've heard positive comments about YourKit in the past.  It is commercial, 
 but it looks pretty easy to get a 15-day evaluation license.  I haven't used 
 it, but it claims to have some features to aid in detecting and analyzing 
 memory leaks: http://www.yourkit.com/docs/80/help/memory_leaks.jsp
 
 I also saw hits for a tool called plumbr.  I have no information about it, 
 good or bad.
 
 Andy
 
 
 
 
 On Tue, Sep 17, 2013 at 8:45 AM, Brian Craft craft.br...@gmail.com wrote:
 I did, of course, spend a lot of time with google before posting. All of the 
 hits point to jconsole, jmap, and visualvm. None of these tools work 
 reliably. They hang, they crash, they spit up errors, they generate useless 
 results. You'll note in another thread this morning another developer having 
 jmap and visualvm barf on them. It's not an isolated incident.
 
 
 On Tuesday, September 17, 2013 8:21:14 AM UTC-7, Andy Fingerhut wrote:
 Another possibility: The people who know aren't reading this thread.
 
 I'd tell you if I knew, but I haven't needed to track down a problem like 
 this for several years, and forgotten whatever tool I used at the time (it 
 was probably jmap).
 
 Suggestion: Google search java memory leak and see what tools and 
 techniques people suggest in articles they write on the topic.
 
 Andy
 
 
 On Tue, Sep 17, 2013 at 8:07 AM, Brian Craft craft...@gmail.com wrote:
 
 
 On Thursday, September 12, 2013 7:47:02 PM UTC-7, Cedric Greevey wrote:
 On Thu, Sep 12, 2013 at 3:33 PM, Andy Fingerhut andy.fi...@gmail.com wrote:
 I have just added some discussion of this on ClojureDocs.org for the function 
 clojure.core/subs, and references to that discussion for several other 
 Clojure functions that I am pretty sure are affected, e.g. re-find, re-seq, 
 re-matches, clojure.string/split, replace, replace-first
 
 We know with certainty that clojure.string/split is affected. Also, the OP's 
 question about how to use tooling to track down similar leaks in the future 
 does not appear to have been satisfactorily answered as of yet.
 
 cricket, cricket, cricket... 
 
 ;)
 
 Is there really no working tooling for the jvm?
 
 The string thing bothers me less than the problem of seq heads. It is 
 ridiculously easy to create a memory leak with a seq, and desperately hard to 
 track one down. I would be surprised if most clojure apps were not leaking 
 memory somewhere, in places that go unnoticed until a sufficiently large 
 input fills the heap.
 
 I wonder if a static analysis approach could identify code that appears to 
 retain a seq head to no effect.
 
 
 -- 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clo...@googlegroups.com
 
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+u...@googlegroups.com
 
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+u...@googlegroups.com.
 
 For more options, visit https://groups.google.com/groups/opt_out.
 
 
 -- 
 -- 
 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/groups/opt_out.
 
 
 -- 
 -- 
 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/groups/opt_out.

-- 
-- 

Re: [ANN] clojure-sql 0.1.0: relational algebra in clojure

2013-09-18 Thread Daniel Neal
Sounds good!

I've been having a go with it today in a data-migration thing and I like 
it. It feels very like clojureql but as you said, it fails earlier with 
ambiguous queries, which definitely makes debugging easier. 

One other difference I did notice with clojureql is that in clojureql the 
database/connection
is part of the query definition `(table db :users)`, where as in 
clojure-sql the database/connection
is a separate thing. This seemed more orthogonal to me, but in practice I 
found it a bit tricky when working with multiple databases as I kept having 
to change global state - is there a better way of handling multiple 
databases using clojure-sql (perhaps I need to write my own query 
executor...?)

A couple more questions (if that's ok) - 
1. Are there any known issues/not-implemented-yet bits I might run into 
when using clojure-sql? 
2. What plans do you have for the library going forward?

Anyway, many thanks for your work again, and I do hope clojure-sql finds 
its niche amongst the other clojure sql libraries. I think the relational 
algebra approach has a lot going for it.

Dan




-- 
-- 
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/groups/opt_out.


possible bug in 1.51?

2013-09-18 Thread Paul VanHouten
;; run the following code that creates namespace blech where (ns ...)
includes metadata
;; both cases compile without error
;; case 1: when metadata entry :type test  is included (the-ns 'blech)
works
;; case 2: when metadata entry :type :test  is included (the-ns 'blech)
triggers the exception:
;;ClassCastException clojure.lang.Namespace cannot be cast to
clojure.lang.IObj
;;clojure.core/with-meta (core.clj:214)
;; note: cases were run with freshly restarted repl

;; test code
---
(ns blech{:xtype:test ;; no error
   ;:type test   ;; case 1 - (the-ns 'blech) works
:type:test  ;; case 2 - (the-ns 'blech)
triggers exception
 })

(in-ns 'user)
(the-ns 'blech)

-- 
-- 
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/groups/opt_out.


LispCabinet

2013-09-18 Thread ArturoH
Hello,

I am trying to get into EMACS and LispCabinet seems like a good to try. 

From the shell I am able to see that the JAVA_HOME is set to a folder 
internal to LispCabinet 

JAVA_HOME=c:/LispCabinet/cabinet/bin/jdk

Could I just copy my java.exe to that locations and I would not need any 
other files? Should I use the link for Java SE in here?

http://www.oracle.com/technetwork/java/javase/archive-139210.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/groups/opt_out.


Re: LispCabinet

2013-09-18 Thread ArturoH
I actually did the portable install, is it possible to do a portable 
install of java. Or do I need to install and then copy files? Sorry I am 
posting java questions here but I'm not sure where else to ask/look.

On Wednesday, September 18, 2013 2:41:09 PM UTC-5, ArturoH wrote:

 Hello,

 I am trying to get into EMACS and LispCabinet seems like a good to try. 

 From the shell I am able to see that the JAVA_HOME is set to a folder 
 internal to LispCabinet 

 JAVA_HOME=c:/LispCabinet/cabinet/bin/jdk

 Could I just copy my java.exe to that locations and I would not need any 
 other files? Should I use the link for Java SE in here?

 http://www.oracle.com/technetwork/java/javase/archive-139210.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/groups/opt_out.


[ANN] Sleight: whole program transformations

2013-09-18 Thread Zach Tellman
This is a lein plugin which hijacks the Clojure reader and allows all forms 
to be transformed before they're passed to the compiler.  Usage and 
potential applications are described in the readme: 
https://github.com/ztellman/sleight

I wrote the original version of this a year ago, but due to the lack of 
good code walking facilities it was more a sketch than anything else. 
 Luckily, with the recent release of Riddley [1], this is newly useful. 
 I'm looking forward to seeing what people use it for.

Zach

[1] https://github.com/ztellman/riddley

-- 
-- 
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/groups/opt_out.


XML namespace parsing - any movement?

2013-09-18 Thread Korny Sietsma
So, the background - there is a page about fuller xml support at
http://dev.clojure.org/display/DXML/Fuller+XML+support -

Currently none of the xml parsing options support this - the best I've
found is https://github.com/grammati/eksemel but it hasn't been touched in
2 years, and the last commit mentioned embarrassingly slow :)

There *is* a patch to data.xml created by Carlo Sciolla - in March 2012:
http://dev.clojure.org/jira/browse/DXML-4 - however Carlo hadn't signed a
CA, and there hasn't been any action on that patch (except for requests for
a CA!) since.

So, my questions:
- Is there any progress on this elsewhere?  Anyone else dealing with the
wonderful world of namespaces?

- Anyone give me insights into using Carlo's patch - can we make our own
data.xml clone internally using this patch?  Or does the lack of a CA mean
this is in license limbo?  (also, of course, there's some fear that the
patch is too old to be reasonably useful)

Thanks for any assistance.

- Korny

-- 
Kornelis Sietsma  korny at my surname dot com http://korny.info
.fnord { display: none !important; }

-- 
-- 
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/groups/opt_out.


Re: [ANN] clojure-sql 0.1.0: relational algebra in clojure

2013-09-18 Thread Carlo Zancanaro
On Wed, Sep 18, 2013 at 09:27:22AM -0700, Daniel Neal wrote:
 One other difference I did notice with clojureql is that in clojureql the 
 database/connection
 is part of the query definition `(table db :users)`, where as in 
 clojure-sql the database/connection
 is a separate thing. This seemed more orthogonal to me, but in practice I 
 found it a bit tricky when working with multiple databases as I kept having 
 to change global state - is there a better way of handling multiple 
 databases using clojure-sql (perhaps I need to write my own query 
 executor...?)

Yeah, writing your own executor is a good option. Personally I would
write one which returns a function of the database, like this:

(set-query-executor! (fn [type query]
   (fn [db]
 (jdbc/with-connection db
   (case type
 :select (jdbc/with-query-results results query
   (dotted-to-nested-maps results))
 :insert (jdbc/do-prepared-return-keys (first 
query) (next query))
 :update (jdbc/do-prepared-return-keys (first 
query) (next query))
 :delete (first (jdbc/do-prepared (first query) 
(next query)))
 (assert false (str Unknown query type:  
type)))

Then you can use (@query db) to run queries, and the slightly-clunkier
((insert! query record ...) db) to modify the database. (I haven't
tried running this code, so it may require some modification to actually
work.)

In my use case I am always working with a single database, so I thought
this approach would be a bit overkill as the default.

 1. Are there any known issues/not-implemented-yet bits I might run into 
 when using clojure-sql?

Almost certainly, but I don't know all of the issues. So far it's been
working for what I've needed it for (which is a fairly small subset of
SQL, admittedly).

I'm not happy with the way the grouping stuff works at the moment, but
at the moment I've not really had much time to fix it. It should work,
but you lose the ability to freely compose things once you do a group
(because a select being applied later can change the group result).

 2. What plans do you have for the library going forward?

A few things, when I get a chance, mostly to do with generalising the
relational algebra approach beyond just SQL. I'd like to make it so
queries can be executed against other possible data stores (eg. an
in-memory structure, files on disk) efficiently.

As part of this would also be re-thinking how queries are executed.
Obviously, as you've seen above, the executor stuff isn't quite as nice
as it could be. I don't like having the global state stuff, but I wanted
executing queries to be both easy and configurable.

I'd also like to start generating SQL for other databases. I've been
putting this off because I don't really have any need for it at the
moment and it's a fair bit of work to do properly.

Carlo

-- 
-- 
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/groups/opt_out.