Re: What is the status of Clojure on LLVM or C?

2013-03-29 Thread Alan Moore

On Thursday, March 28, 2013 2:15:34 PM UTC-7, John Szakmeister wrote:

 On Wed, Mar 27, 2013 at 5:21 PM, Timothy Baldridge 
 tbald...@gmail.comjavascript: 
 wrote: 
  What use-case do you have for such an implementation? Is there something 
  that Clojure on LLVM will give you that Clojure on the JVM or on V8 
 won't 
  allow you to do? 

 Clojure on C would likely allow me to use Clojure in a deeply embedded 
 environment.  Such as an ARM processor with 32MB of Flash and 64MB of 
 RAM.  To run the JVM, that may require licensing, and V8 doesn't allow 
 for threads. 


+1 - Absolutely - I would love to see an LLVM target for clojure. I have 
been looking into how clojurescript is implemented and how 
similar/different an LLVM target would be to implement...

Alan

-- 
-- 
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] http-kit 2.0.0 released

2013-03-29 Thread Shen, Feng
Hello folks.

I just released version 2.0.0 of http-kit.


*2.0.0 (2013/3/29)*

   1. Unify WebSocket and HTTP long polling/streaming with Channel protocol
   and with-channel (API breaks with the RC)
   2. WebSocket support sending and receiving binary frame with byte[]
   3. Support HTTP streaming
   4. WebSocket message ordering is guaranteed by server


Updated documentation: http://http-kit.org/server.html

Let's build amazing realtime applications with Clojure, using http-kit.

The with-channel API is not compatible with the RC releases. The new is
better and much easier to understand and use. The old's documentation can
be found here http://http-kit.org/server_old.html

- feng

-- 
-- 
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: What is the status of Clojure on LLVM or C?

2013-03-29 Thread Marko Topolnik


On Thursday, March 28, 2013 10:45:53 PM UTC+1, Laurent PETIT wrote:

 2013/3/28 Marko Topolnik marko.t...@gmail.com javascript:: 
  Or you may have just a trivial requirement for a program that both 
 starts 
  and executes quickly. 

 To what extent would an LLVM / C version of a Clojure program not 
 incur startup penalty as the JVM does. 

 As far as I understand it, the startup cost is manyfold: 
 1/ JVM startup 
 2/ loading of Clojure Core 
 3/ loading of non-lazy parts of your application (generally from 
 loading a global namespace to invoke its -main function) 


Yes, the problems are wider than just JVM startup. My point is that Clojure 
can't be used to build small-is-beautiful programs that contribute to the 
standard *nix toolchain---at least not those that don't do enough massive 
work to dwarf the initialization costs. I am comparing this to Common Lisp 
in the '80s, where both startup time and execution speed were goals held in 
high regard. Someone looking for an LLVM implementation may be having just 
such a use case in mind.

-marko

-- 
-- 
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: What is the status of Clojure on LLVM or C?

2013-03-29 Thread John Szakmeister
On Thu, Mar 28, 2013 at 9:26 PM, Mikera mike.r.anderson...@gmail.com wrote:
 On Friday, 29 March 2013 05:45:53 UTC+8, Laurent PETIT wrote:

 2013/3/28 Marko Topolnik marko.t...@gmail.com:
  Or you may have just a trivial requirement for a program that both
  starts
  and executes quickly.

 To what extent would an LLVM / C version of a Clojure program not
 incur startup penalty as the JVM does.

 As far as I understand it, the startup cost is manyfold:
 1/ JVM startup
 2/ loading of Clojure Core
 3/ loading of non-lazy parts of your application (generally from
 loading a global namespace to invoke its -main function)

 In my experience 1) is a small fraction of the total. A trivial hello
 world Java program runs in less than 0.1sec on my machine, which proves
 that JVM startup isn't really important. Or at least, far less important
 than most people think.

I certainly don't see that.  I've measured this more than a few times,
and it's several seconds for a simple Hello World Java application
on any machine that I can touch.  Additionally, on an embedded system,
I'm not going to have the same kind of CPU power.  For instance, the
current processor we use runs at 400MHz instead of your desktop's
3GHz.

[snip]
 It might even be slower in LLVM / C, unless you can at least match the JVM
 in terms of JIT optimisation and garbage collector efficiency, which in turn
 affects the runtime for 2+3 (I believe a garbage collector is a requirement
 to execute Clojure?). Beating the JVM isn't an easy feat.

You could argue the same for any application written in C, though I
think in practice C keeps up pretty well.  However, raw execution
speed isn't necessarily my goal.  More interesting to me is having
better tools to use.  Clojure's approach to concurrent programming is
world's better that the share everything approach used in C, and
it's that facility that I'd like to use the most.  But requiring the
JVM to use it--in my environment--is just too high of a price to pay.
To be honest, LLVM might be too high as well.  LLVM is certainly far
from small and lightweight. :-)

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




Re: What is the status of Clojure on LLVM or C?

2013-03-29 Thread Marko Topolnik


 I certainly don't see that.  I've measured this more than a few times, 
 and it's several seconds for a simple Hello World Java application 
 on any machine that I can touch.  Additionally, on an embedded system, 
 I'm not going to have the same kind of CPU power.  For instance, the 
 current processor we use runs at 400MHz instead of your desktop's 
 3GHz. 


In fairness to Java, your measurements are the exception, not Mikera's. For 
example:

$ java -version
java version 1.7.0_17
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
$ echo 'public class Test { public static void main(String... args) { 
System.out.println(Hello); } }'  Test.java
$ javac Test.java
$ time java Test
Hello

real 0m0.137s
user 0m0.097s
sys 0m0.034s

-marko

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




status update on uWSGI + Ring

2013-03-29 Thread Roberto De Ioris

Hi everyone, uWSGI 1.9 (the first official release supporting clojure/ring)
has been released some week ago and three minor releases followed it.

Thanks to the reports of a bunch of clojure users and the work of Mingli
Yuan i am pleased to announce that the whole ring test-suite passes on
uWSGI+ring.

Docs ring-specific are available here:

http://uwsgi-docs.readthedocs.org/en/latest/Ring.html

(feel free to contribute if you have cool use-cases, the repository is here
https://github.com/unbit/uwsgi-docs)

but i always suggest to give a look here:

http://uwsgi-docs.readthedocs.org/en/latest/JVM.html

to understand some of the internals and the available features.


-- 
Roberto De Ioris
http://unbit.it

-- 
-- 
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: What is the status of Clojure on LLVM or C?

2013-03-29 Thread John Szakmeister
On Fri, Mar 29, 2013 at 5:28 AM, Marko Topolnik
marko.topol...@gmail.com wrote:

 I certainly don't see that.  I've measured this more than a few times,
 and it's several seconds for a simple Hello World Java application
 on any machine that I can touch.  Additionally, on an embedded system,
 I'm not going to have the same kind of CPU power.  For instance, the
 current processor we use runs at 400MHz instead of your desktop's
 3GHz.


 In fairness to Java, your measurements are the exception, not Mikera's. For
 example:

 $ java -version
 java version 1.7.0_17
 Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
 Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
 $ echo 'public class Test { public static void main(String... args) {
 System.out.println(Hello); } }'  Test.java
 $ javac Test.java
 $ time java Test
 Hello

 real 0m0.137s
 user 0m0.097s
 sys 0m0.034s

Hmmm... perhaps I was testing something more full-fledged (though not
a server application) that could be used as a skeleton for a
command-line tool.  I'll have to check.  I'm not seeing it be that
fast on my current machine, but is less that 1 second with Java
6--though this machine is rather powerful.

Still, it's not going to be that fast on a 400MHz ARM. :-)

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




Re: What is the status of Clojure on LLVM or C?

2013-03-29 Thread Mikera
I decided to benchmark JVM startup again, in case of any doubt, and because 
I see plenty of FUD on this issue.

Code is 
here: 
https://github.com/mikera/miscellania/blob/master/src/main/java/hello/world/App.java
timecmd bat file use to benchmark is in this SO 
answer: http://stackoverflow.com/a/6209392/214010

C:\xxx java -version
java version 1.7.0_11
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

C:\xxx timecmd java -cp miscellania.jar hello.world.App
Hello World!
command took 0:0:0.10 (0.10s total)

As you can see JVM startup is 0.1s or less: in fact the entire execution of 
Hello World took 0.1 sec on my machine. Note that this is the server VM. I 
did about 20 successive runs which were all in the 0.08 to 0.12 sec range.

On Friday, 29 March 2013 17:02:34 UTC+8, John Szakmeister wrote:

 On Thu, Mar 28, 2013 at 9:26 PM, Mikera mike.r.an...@gmail.comjavascript: 
 wrote: 
  On Friday, 29 March 2013 05:45:53 UTC+8, Laurent PETIT wrote: 
  
  2013/3/28 Marko Topolnik marko.t...@gmail.com: 
   Or you may have just a trivial requirement for a program that both 
   starts 
   and executes quickly. 
  
  To what extent would an LLVM / C version of a Clojure program not 
  incur startup penalty as the JVM does. 
  
  As far as I understand it, the startup cost is manyfold: 
  1/ JVM startup 
  2/ loading of Clojure Core 
  3/ loading of non-lazy parts of your application (generally from 
  loading a global namespace to invoke its -main function) 
  
  In my experience 1) is a small fraction of the total. A trivial hello 
  world Java program runs in less than 0.1sec on my machine, which proves 
  that JVM startup isn't really important. Or at least, far less important 
  than most people think. 

 I certainly don't see that.  I've measured this more than a few times, 
 and it's several seconds for a simple Hello World Java application 
 on any machine that I can touch.  Additionally, on an embedded system, 
 I'm not going to have the same kind of CPU power.  For instance, the 
 current processor we use runs at 400MHz instead of your desktop's 
 3GHz. 


I suggest you recheck your measurement approach / configuration. See above 
:-)

Agreed that any embedded processor is likely much slower than a PC (mine is 
a laptop in fact). And IO speed probably makes a big difference as well if 
there are caching effects / large .jar files to load.
 


 [snip] 
  It might even be slower in LLVM / C, unless you can at least match the 
 JVM 
  in terms of JIT optimisation and garbage collector efficiency, which in 
 turn 
  affects the runtime for 2+3 (I believe a garbage collector is a 
 requirement 
  to execute Clojure?). Beating the JVM isn't an easy feat. 

 You could argue the same for any application written in C, though I 
 think in practice C keeps up pretty well.  However, raw execution 
 speed isn't necessarily my goal.  More interesting to me is having 
 better tools to use.  Clojure's approach to concurrent programming is 
 world's better that the share everything approach used in C, and 
 it's that facility that I'd like to use the most.  But requiring the 
 JVM to use it--in my environment--is just too high of a price to pay. 
 To be honest, LLVM might be too high as well.  LLVM is certainly far 
 from small and lightweight. :-) 


Agreed - the JVM is a poor fit for very tightly constrained environments. 
Excited to see what you can achieve here! 

Just don't knock the JVM unfairly, it is one of the best tools we have :-)

-- 
-- 
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: What is the status of Clojure on LLVM or C?

2013-03-29 Thread John Szakmeister
On Fri, Mar 29, 2013 at 5:49 AM, Mikera mike.r.anderson...@gmail.com wrote:
 I decided to benchmark JVM startup again, in case of any doubt, and because
 I see plenty of FUD on this issue.

Sorry, I don't mean to spread any FUD.  I'm just being loose with the
phrase start-up time.  You're right, I should be more precise in my
terminology.  FWIW, I think when people talk about this, they're doing
the same thing: including the class loading overhead for something
other than the most trivial of examples.

[snip]
 As you can see JVM startup is 0.1s or less: in fact the entire execution of
 Hello World took 0.1 sec on my machine. Note that this is the server VM. I
 did about 20 successive runs which were all in the 0.08 to 0.12 sec range.

Yes.  It's about double that on my machine, but within reach.

[snip]
 I certainly don't see that.  I've measured this more than a few times,
 and it's several seconds for a simple Hello World Java application
 on any machine that I can touch.  Additionally, on an embedded system,
 I'm not going to have the same kind of CPU power.  For instance, the
 current processor we use runs at 400MHz instead of your desktop's
 3GHz.

 I suggest you recheck your measurement approach / configuration. See above
 :-)

Okay.  I pushed up a barebones example of a command line application
here: https://github.com/jszakmeister/barebones

Really, it's just Clojure plus tools.cli, and a small snippet in main.
 Running this 10 times, I'm seeing about 3.07s on my machine to
execute this example.  I built in with lein2 uberjar, and did:

:: time java -jar target/barebones-0.1.0-SNAPSHOT-standalone.jar
{:faux bar, :help false}
Hello, World!
java -jar target/barebones-0.1.0-SNAPSHOT-standalone.jar  3.09s user
0.28s system 186% cpu 1.804 total

:: java -version
java version 1.6.0_43
Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-10M4203)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode)

 Agreed that any embedded processor is likely much slower than a PC (mine is
 a laptop in fact). And IO speed probably makes a big difference as well if
 there are caching effects / large .jar files to load.

Definitely.

[snip]
 Agreed - the JVM is a poor fit for very tightly constrained environments.
 Excited to see what you can achieve here!

 Just don't knock the JVM unfairly, it is one of the best tools we have :-)

I don't mean to do that.  The JVM is an amazing piece of software.  I
just happen to be in circles where folks believe it's the answer to
everything, and unfortunately, it's not.  It has some limitations and
it isn't well-suited to every problem.  Even at 100ms for the start-up
time, that's still pretty non-trivial for a command line application.
The real question is whether we can get something like the barebones
example to fire up and run in a similar amount of time.

As you said: I'm excited to see what can be achieved in this space!

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




Re: What is the status of Clojure on LLVM or C?

2013-03-29 Thread Marko Topolnik
On Friday, March 29, 2013 11:37:36 AM UTC+1, John Szakmeister wrote:

 On Fri, Mar 29, 2013 at 5:49 AM, Mikera mike.r.an...@gmail.comjavascript: 
 wrote: 
  I decided to benchmark JVM startup again, in case of any doubt, and 
 because 
  I see plenty of FUD on this issue. 

 Okay.  I pushed up a barebones example of a command line application 
 here: https://github.com/jszakmeister/barebones 

 Really, it's just Clojure plus tools.cli, and a small snippet in main. 
  Running this 10 times, I'm seeing about 3.07s on my machine to 
 execute this example.  I built in with lein2 uberjar, and did: 

 :: time java -jar target/barebones-0.1.0-SNAPSHOT-standalone.jar 
 {:faux bar, :help false} 
 Hello, World! 
 java -jar target/barebones-0.1.0-SNAPSHOT-standalone.jar  3.09s user 
 0.28s system 186% cpu 1.804 total 

 :: java -version 
 java version 1.6.0_43 
 Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-10M4203) 
 Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode) 


Yes, you are involving Clojure startup here, which turns the tables 
altogether. This is far more work than just Java startup: all the 
namespaces must be initialized: all their def'd values calculated at 
runtime and assigned. Some of these may involve quite heavyweight service 
startup. This is the real issue in the Clojure startup story: it is not 
aggressively optimized towards zero startup time. It is a problem that 
carries over to other underlying implementations.

-marko

-- 
-- 
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: appengine-magic leiningen plugin and template

2013-03-29 Thread Gregg Reynolds


On Thursday, March 28, 2013 5:29:54 AM UTC-5, Gregg Reynolds wrote:

 Hi,

 People working with appengine--magic might be interested in a 
 template-and-plugin pair I've put together over the past week.  This is my 
 first crack at leiningen (and I'm fairly new to Clojure as well), so 
 comments and suggests would be helpful.


Update:  figured out how to make gaem/gaem-template work with multiple 
servlets using the dev_appserver that comes with the gae sdk.  Multiple 
servlets won't work with the repl; you have to use one monolithic servlet. 
 Also fixed some bugs in the mustache templating. So the gaem-template 
should work out of the box on both dev_appserver and uploaded to GAE.

Cheers,

Gregg

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




Jenkins plugins in clojure

2013-03-29 Thread Erlis Vidal
Hi guys,

I was just wondering if someone in the group have written any jenkins
plugin using clojure not java as programming language?

I'm about to start writing a plugin but I would like to use this
opportunity and use clojure.

Anyone have any information about this?

Thanks!
Erlis

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




WAT? BigInt instead of Long?

2013-03-29 Thread Peter Mancini
(class 1) java.lang.Long ;check!
(class (* (/ 1 255) 254)) clojure.lang.Ratio ;check!
(class (* (/ 1 255) 255)) clojure.lang.BigInt ;WAT?

Should not example 3 and example 1 end up the same? (Noob question, I know, 
but this didn't make sense to me and I thought I was doing something wrong 
when I saw 1N coming back.)

-- 
-- 
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] http-kit 2.0.0 released

2013-03-29 Thread xumingmingv
Good Job!

在 2013-3-29,下午2:03,Shen, Feng shen...@gmail.com 写道:

 Hello folks. 
 
 I just released version 2.0.0 of http-kit. 
 
 
 2.0.0 (2013/3/29)
 Unify WebSocket and HTTP long polling/streaming with Channel protocol and 
 with-channel (API breaks with the RC)
 WebSocket support sending and receiving binary frame with byte[]
 Support HTTP streaming
 WebSocket message ordering is guaranteed by server
 
 Updated documentation: http://http-kit.org/server.html
 
 Let's build amazing realtime applications with Clojure, using http-kit.
 
 The with-channel API is not compatible with the RC releases. The new is 
 better and much easier to understand and use. The old's documentation can be 
 found here
 
 - feng
 
 -- 
 -- 
 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] Pedestal Application Framework

2013-03-29 Thread Ryan Neufeld
Hey, sorry for the delay in answering your question Michael.

We will definitely be accepting pull requests. In fact, we've already 
accepted a few minor pulls from community members.

I know you've been an outspoken critic of the Clojure contribution process 
- we understand that pain, and want to do things differently with Pedestal. 
This means Github for issues and pull-requests, easy-to-submit CAs, etc. 
Hopefully once we've proven out these more modern workflows we can start to 
backport them into the Clojure process.

I have to ask you this: is there anything we've missed, or do you have any 
suggestions you'd like implemented in the Pedestal project?

- Ryan @ Relevance

On Sunday, March 24, 2013 12:30:10 AM UTC-4, Michael Klishin wrote:


 2013/3/24 Sean Corfield seanco...@gmail.com javascript:

 Contributor Agreements were available for signing at Clojure/West so
 I'm guessing it will be under the same process as Clojure itself...


 They have electronic CA:
 http://pedestal.io/#contribute

 My question is about pull requests, not the CA.
 -- 
 MK

 http://github.com/michaelklishin
 http://twitter.com/michaelklishin
  

-- 
-- 
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] Pedestal Application Framework

2013-03-29 Thread Michael Klishin
2013/3/29 Ryan Neufeld r...@thinkrelevance.com

 This means Github for issues and pull-requests, easy-to-submit CAs, etc.
 Hopefully once we've proven out these more modern workflows we can start to
 backport them into the Clojure process.

 I have to ask you this: is there anything we've missed, or do you have any
 suggestions you'd like implemented in the Pedestal project?


Ryan,

This is very good news. One thing I'd like to see is a way for the
community to contribute to pedestal.io (the site)
using the same process.

Thanks to everyone involved in these process improvements for Pedestal. I
have doubts that Clojure will ever be developed
the same way but it's great to see Pedestal not following the route of
Clojure Contrib.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

-- 
-- 
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: What is the status of Clojure on LLVM or C?

2013-03-29 Thread Rich Morin
On Mar 29, 2013, at 03:44, Marko Topolnik wrote:
 Yes, you are involving Clojure startup here, which turns the tables
 altogether. This is far more work than just Java startup: all the
 namespaces must be initialized: all their def'd values calculated
 at runtime and assigned. Some of these may involve quite heavyweight
 service startup. This is the real issue in the Clojure startup story:
 it is not aggressively optimized towards zero startup time. It is a
 problem that carries over to other underlying implementations.

So, a naive question.  How much of this work could be pre-calculated
and/or deferred until the values are needed?

-r

 -- 
http://www.cfcl.com/rdmRich Morin
http://www.cfcl.com/rdm/resume r...@cfcl.com
http://www.cfcl.com/rdm/weblog +1 650-873-7841

Software system design, development, and documentation


-- 
-- 
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: What is the status of Clojure on LLVM or C?

2013-03-29 Thread Herwig Hochleitner
2013/3/29 Marko Topolnik marko.topol...@gmail.com

 Yes, you are involving Clojure startup here, which turns the tables
 altogether. This is far more work than just Java startup: all the
 namespaces must be initialized: all their def'd values calculated at
 runtime and assigned. Some of these may involve quite heavyweight service
 startup. This is the real issue in the Clojure startup story: it is not
 aggressively optimized towards zero startup time. It is a problem that
 carries over to other underlying implementations.


The opposite is also true and weighs more heavy in this case, I think. Java
is not optimized for good startup times. In particular, you can't embed any
composite constants in byte code. Not even arrays. That means every last
piece of metadata has to be allocated and built from scratch at startup.
Every class for every toplevel fn has to be loaded (a process that involves
deserialization aswell), initialized and instantiated.

In a native code implementation of clojure, all the statically known
functions, data and metadata structures could be directly embedded into the
binary. Thus the init cost of a namespace with defn as the only toplevel
forms could be near zero.

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




EDN syntax document contains an apparent omission.

2013-03-29 Thread Cedric Greevey
https://github.com/edn-format/edn#equality should probably mention keywords
in this list:

nil, booleans, strings, characters, and symbols are equal to values of the
same type with the same edn representation.

-- 
-- 
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: EDN syntax document contains an apparent omission.

2013-03-29 Thread Andy Fingerhut
Up at the top of the page you link to, there is a button labeled Issues
(at least if you are logged in with a free-to-create Github account), and
you can create an issue for this there.

Andy

On Fri, Mar 29, 2013 at 10:01 AM, Cedric Greevey cgree...@gmail.com wrote:

 https://github.com/edn-format/edn#equality should probably mention
 keywords in this list:

 nil, booleans, strings, characters, and symbols are equal to values of
 the same type with the same edn representation.


-- 
-- 
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] Pedestal Application Framework

2013-03-29 Thread Cedric Greevey
On Fri, Mar 29, 2013 at 11:26 AM, Michael Klishin 
michael.s.klis...@gmail.com wrote:


 2013/3/29 Ryan Neufeld r...@thinkrelevance.com

 This means Github for issues and pull-requests, easy-to-submit CAs, etc.
 Hopefully once we've proven out these more modern workflows we can start to
 backport them into the Clojure process.

 I have to ask you this: is there anything we've missed, or do you have
 any suggestions you'd like implemented in the Pedestal project?


 Ryan,

 This is very good news.


It's a definite improvement ... but please print and sign the agreement,
then scan and mail? There are a growing number of people that do
*everything* online, to the point of not having a printer, not having a
scanner, or not having either.

Of course, the same people tend to have trouble with the quaint notion that
a funny-looking squiggle emitted by pen onto paper is somehow a securer
form of authentication than a 128-bit cryptographic signature of a document
hash. :)

-- 
-- 
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] Pedestal Application Framework

2013-03-29 Thread Ryan Neufeld
I definitely hear you - getting pedestal.io open for contributions is a 
goal of mine too. Maybe I can have a conversation with you about your 
experience on ClojureWerkz docs?


 Ryan,

 This is very good news. One thing I'd like to see is a way for the 
 community to contribute to pedestal.io (the site)
 using the same process.



-- 
-- 
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] Pedestal Application Framework

2013-03-29 Thread Paul deGrandis
Cedric,

I don't own a printer, so I end up making heavy use of http://hellofax.com/

I'd point people there if they want to keep the whole process digital for 
themselves.

Cheers,
Paul

-- 
-- 
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 Monger 1.5.0 is released

2013-03-29 Thread Michael Klishin
Monger [1] is a Clojure MongoDB driver for a more civilized age: easy to
use, with sane
defaults, very fast, well documented, and with batteries included.

1.5.0 release notes:
http://blog.clojurewerkz.org/blog/2013/03/30/monger-1-dot-5-0-is-released/

1. http://clojuremongodb.info
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

-- 
-- 
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 Quartzite 1.1.0 is released

2013-03-29 Thread Michael Klishin
Quartzite [1] is a powerful scheduling library built on top of Quartz
scheduler [2].

1.1.0 release notes:
http://blog.clojurewerkz.org/blog/2013/03/30/quartzite-1-dot-1-0-is-released/

1. http://clojurequartz.info
2. http://quartz-scheduler.org/
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

-- 
-- 
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: Clojure libraries on remote machines

2013-03-29 Thread Softaddicts
Look at apache archiva. You can install it on a computer that has internet 
access
and allow computers being barred from internet access to use it as a maven repo
providing they have access to this single computer that runs archiva.

Archiva can act as a cache using proxies for external repos. You just need to 
configure
the missing ones (like clojars). The artifacts will be pulled once for everyone.

You can also publish artifacts that have not been published to maven yet.

Your internal computers will not even be aware of this.

You will need to change the default repo in your project.clj files to refer to
the archiva repo.

Archiva is light weight and easy to setup.

Luc P.


 Hi,
 
 I have a few machines without internet connection. We have a ubuntu
 repository mirror, so I can install clojure using apt-get.
 
 But, how do I install clojure libraries with all dependencies for projects
 on these machines? Even maven is not an option here.
 
 
 ramesh
 
 -- 
 -- 
 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.
 
 
 
--
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/groups/opt_out.




Invoke a specific multimethod

2013-03-29 Thread JvJ
Is it possible to invoke a particular multimethod and bypass the dispatch 
function?

For instance, suppose that I have a multimethod with a dispatch value of 
::foo, and it's a really complex method.

Now, I want all cases where the dispatch function returns nil to use the 
same multimethod.  Is there a way I can intercept the nil and
pass it directly on to the ::foo multimethod?

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




Floating point comparator issue?

2013-03-29 Thread JvJ
Alright check this out:

;; Normal subtraction as comparator sorts in ascending order
(sort-by identity #(- %1 %2)   [1  -1])
(-1 1)

;; Reverse subtraction as comparator sorts in descending order
(sort-by identity #(- %2 %1)   [1  -1])
(1 -1)

;;===
;; And now with values of -0.1, 0.1

;; Reverse subtraction as comparator sorts in descending order
(sort-by identity #(- %2 %1)   [0.1  -0.1])
(0.1 -0.1)

;; Normal subtraction STILL sorts in descending order??
(sort-by identity #(- %1 %2)   [0.1  -0.1])
(0.1 -0.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/groups/opt_out.




Re: Floating point comparator issue?

2013-03-29 Thread Alan Malloy
Comparator.compare returns an int. (int 0.2) and (int -0.2) both
return 0. Thus, your comparator is returning 0, saying I don't care
what order these go in.

On Mar 29, 6:44 pm, JvJ kfjwhee...@gmail.com wrote:
 Alright check this out:

 ;; Normal subtraction as comparator sorts in ascending order
 (sort-by identity #(- %1 %2)   [1  -1])
 (-1 1)

 ;; Reverse subtraction as comparator sorts in descending order
 (sort-by identity #(- %2 %1)   [1  -1])
 (1 -1)

 ;;===
 ;; And now with values of -0.1, 0.1

 ;; Reverse subtraction as comparator sorts in descending order
 (sort-by identity #(- %2 %1)   [0.1  -0.1])
 (0.1 -0.1)

 ;; Normal subtraction STILL sorts in descending order??
 (sort-by identity #(- %1 %2)   [0.1  -0.1])
 (0.1 -0.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/groups/opt_out.




Re: What is the status of Clojure on LLVM or C?

2013-03-29 Thread Jean Niklas L'orange
On Friday, March 29, 2013 5:04:33 AM UTC+1, tbc++ wrote:

 This is something I've thought/talked about for some time now. In reality 
 this is one of the reasons I started Mjolnir. I would like to see an 
 implementation of Clojure on LLVM. Mjolnir is several months away from 
 being able to handle a project like this, but I took the time tonight to 
 type up my thoughts on the topic. 

 https://github.com/halgari/clojure-metal/blob/master/README.md

 I'd love to hear anyone's input on this doc. I just typed this up, so it's 
 a bit rough, but it should communicate some of the ideas I have.

 Timothy Baldridge


Looks interesting to me, and what you describe is in my eyes a sound 
approach. Seems like you've been thinking about this for some time, esp. 
considering the talk you gave recently. Unfortunately I weren't there, but 
when one gives a talk on this topic, it's evident one has thought a lot 
about it.

What I found lacking was how one should design the Clojure core of 
Clojure-metal. Should one simply convert Clojure as it is right now, or 
should one take into account the lessons learned from creating Clojure? I'm 
sure Rich has some ideas on what should be done differently from what is 
currently done in Clojure right now, though perhaps aimed for the JVM 
implementation, and not in general. (Maybe you talked about this at 
Clojure/West?)

-- Jean Niklas L'orange

-- 
-- 
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: What is the status of Clojure on LLVM or C?

2013-03-29 Thread Timothy Baldridge
I really didn't discuss this in my talk at all. My talk focused more around
Mjolnir and how it allows for construction of compilers in general. That
being said, yes, this has been the hidden agenda behind the library from
the start.

For those who didn't see the talk, Mjolnir exposes access to LLVM through a
set of typed S-expressions. This allows us to use macros, clojure
namespaces, and the entire clojure runtime to construct compilers. An
example of a bare-bones lisp compiler can be found here:
https://github.com/halgari/mjolnir/blob/master/src/examples/simple_lisp.clj

clojure-metal is a unique beast from the other implementations of Clojure.
Most Clojure implementations are built on top of OOP VMs. If you are
writing a VM from scratch you don't have a OOP system to built on. So I
think the answer to your question is somewhere between ClojureScript and
Clojure on the JVM. Protocol based from the bottom up, but with a custom
runtime.

The guiding idea would be something like this:

* Nothing but protocols (like ClojureScript)
* First-class Namespaces (like Clojure)
* Everything is assigned to a name spaced var (like Clojure)
* Ints, Floats, Doubles, BigDecimals (via GMP), etc. (like Clojure)
* Refrain from if instance(foo, IBar) dispatching, instead use protocols.
This would remove much of RT.java


Timothy Baldridge



On Fri, Mar 29, 2013 at 8:50 PM, Jean Niklas L'orange jeann...@hypirion.com
 wrote:

 On Friday, March 29, 2013 5:04:33 AM UTC+1, tbc++ wrote:

 This is something I've thought/talked about for some time now. In reality
 this is one of the reasons I started Mjolnir. I would like to see an
 implementation of Clojure on LLVM. Mjolnir is several months away from
 being able to handle a project like this, but I took the time tonight to
 type up my thoughts on the topic.

 https://github.com/halgari/**clojure-metal/blob/master/**README.mdhttps://github.com/halgari/clojure-metal/blob/master/README.md

 I'd love to hear anyone's input on this doc. I just typed this up, so
 it's a bit rough, but it should communicate some of the ideas I have.

 Timothy Baldridge


 Looks interesting to me, and what you describe is in my eyes a sound
 approach. Seems like you've been thinking about this for some time, esp.
 considering the talk you gave recently. Unfortunately I weren't there, but
 when one gives a talk on this topic, it's evident one has thought a lot
 about it.

 What I found lacking was how one should design the Clojure core of
 Clojure-metal. Should one simply convert Clojure as it is right now, or
 should one take into account the lessons learned from creating Clojure? I'm
 sure Rich has some ideas on what should be done differently from what is
 currently done in Clojure right now, though perhaps aimed for the JVM
 implementation, and not in general. (Maybe you talked about this at
 Clojure/West?)

 -- Jean Niklas L'orange

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






-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

-- 
-- 
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: clojurescript memory management

2013-03-29 Thread Evan Mezeske
Are you having trouble with the ClojureScript compiler running out of 
memory?

lein-cljsbuild runs the ClojureScript compiler in a fairly clean room 
Leiningen project, with only a few things from your project.clj being 
passed through (for instance, things that affect the classpath).  It 
wouldn't be difficult to pass through other things if they're important. 
 Feel free to open a bug on https://github.com/emezeske/lein-cljsbuild, 
preferably with details about why passing through Java options is important.

On Thursday, March 28, 2013 11:37:34 AM UTC-7, Tyler Gillies wrote:

 It seems like cljsbuild is ignoring my Xmx setting in my project.clj, 
  anyone have experience with controlling memory with cljsbuild?

 I know the setting is correct because my normal clj repl is minding limit


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




GSoC 2013: What's next?

2013-03-29 Thread Daniel Solano Gómez
Hello, all,

First, a big thanks to everyone who has helped build up our Project
Ideas page[1].  Without your help, we would have a much weaker
application for participating in this year's Google Summer of Code
(GSoC).

Earlier today, the application period for mentoring organisations
closed.  Over the next week, Google will be reviewing all of these
applications and selecting the organisations that will be participating
in this year's program.  Their selections will be announced at 19:00 UTC
on the 8 April.  (As an aside, it may not be too late to add project
ideas over the weekend.)

If Clojure is selected to participate again this year, then the time
will begin for students to start preparing their applications.  This
will be the time for students to start getting in contact with potential
mentors and begin preparing their applications.

The student application period will be from 22 Apr-3 May.  Once the
student application period closes, we will need to review and rank all
of the proposals that we received.  This will mark the beginning of a
period where we will find out how many students we will get as an
organisation, and then we will need to make our final selections of
students and mentors by 24 May.  On 27 May, Google will announce the
accepted students.

Again, thank you again to all of you who have helped us put together
what I believe is a strong application.  Here's to hoping we will see
Clojure participate in GSoC for our second time.

Sincerely,

Daniel

[1]: http://dev.clojure.org/display/community/Project+Ideas


signature.asc
Description: Digital signature


Re: Invoke a specific multimethod

2013-03-29 Thread George Oliver


On Friday, March 29, 2013 6:19:19 PM UTC-7, JvJ wrote:

 Is it possible to invoke a particular multimethod and bypass the dispatch 
 function?

 For instance, suppose that I have a multimethod with a dispatch value of 
 ::foo, and it's a really complex method.

 Now, I want all cases where the dispatch function returns nil to use the 
 same multimethod.  Is there a way I can intercept the nil and
 pass it directly on to the ::foo multimethod?


You could use the default multimethod to catch nil, and then call the multi 
with ::foo. 

-- 
-- 
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: Clojure Style Guide

2013-03-29 Thread Erlis Vidal
Alan,

Thanks for this. I've enjoy (and learn) a lot reading your clojure style
guide! Great job. I think it deserve a link in clojure-docs.org I couldn't
find anything similar on that page, wich I use a lot too.

Regards,
Erlis


On Fri, Mar 29, 2013 at 3:45 PM, Alan Thompson thompson2...@gmail.comwrote:

 Hey - Just saw a nice article on this in (def newsletter) .  It looks like
 quite a good reference on the subject.

 https://github.com/bbatsov/clojure-style-guidehttps://github.com/bbatsov/clojure-style-guide#mutation

 Alan Thompson

 --
 --
 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: What is the status of Clojure on LLVM or C?

2013-03-29 Thread Aaron
I'm working on a Clojure DSL for generating C code called c-in-clj: 
https://github.com/aaronc/c-in-clj.  Right now it only works on ClojureCLR, 
but could be ported to Clojure JVM if someone desired.  The API should be 
considered unstable but I have been using to generate real production code.

This isn't a Clojure in C implementation, it just lets me take advantage of 
Clojure features for generating the C code the way I want to.  For me, I 
feel like it covers (or will cover) most of the use cases I have for a 
Clojure C.  At the same time, it could be used as the foundation for 
writing Clojure in C.  If someone does feel inspired to take on this task, 
I can explain how to do it with this library.

On Wednesday, March 27, 2013 4:05:03 PM UTC-4, Joe Graham wrote:

 Hi Group,
 Good afternoon I hope everyone is well.  I just wanted to reach out to 
 this group and get the current status of Clojure today on the LLVM compiler 
 or C based implementation?  Has anyone looked into a Julia implementation? 
  Just trying to get a roadmap on the main forks before searching on every 
 permutation of this question.  Thanks so much for your help and valuable 
 input of this group.

 BR_joe


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