--
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/d/optout.
--
--
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/d/optout.
On Apr 25, 2016, at 3:50 PM, Timothy Baldridge <tbald...@gmail.com> wrote:
A LLVM/C++/RPython based version of Clojure would on a good day come in at about 1/10 the speed of Clojure on the JVM for general use cases.
On Apr 25, 2016 3:50 PM, "Timothy Baldridge" <tbald...@gmail.com> wrote:
>
> As someone who has spent a fair amount of time playing around with such things, I'd have to say people vastly misjudge the raw speed you get from the JVM's JIT and GC. In fact, I'd challenge someone to come up with a general use, dynamic language that is not based on the JVM and comes even close to the speed of Clojure.
>
> A LLVM/C++/RPython based version of Clojure would on a good day come in at about 1/10 the speed of Clojure on the JVM for general use cases.
>
Now that's pretty darned interesting. Next month I'm going to start doing some serious work with the Java APIs on the Intel Edison. Java is one of the std environments for Edison. But naturally I'm very interested in finding out if what works in theory works in practice. Running a Clojure nrepl on an Edison is obviously a big win, in theory. Is std Clojure fast enough for iot stuff? We'll see.
The other interesting doodad is the Curie. Now in the Arduino 101, but due to have an RTOS soon, see the zephyr project. My pipedream is to write Clojure code for Zephyr. Is that insane?
-g
As someone who has spent a fair amount of time playing around with such things, I'd have to say people vastly misjudge the raw speed you get from the JVM's JIT and GC. In fact, I'd challenge someone to come up with a general use, dynamic language that is not based on the JVM and comes even close to the speed of Clojure.
As someone who has spent a fair amount of time playing around with such things, I'd have to say people vastly misjudge the raw speed you get from the JVM's JIT and GC. In fact, I'd challenge someone to come up with a general use, dynamic language that is not based on the JVM and comes even close to the speed of Clojure.
I was going to say that I'd be surprised if Clojure were as fast as SBCL (overall, on average, depends on your application, depends on how you code it, ymmv, etc. ...). Then I stopped back to check the little benchmarks on the Computer Language Benchmarks Game . Whatever it is that those comparisons do, or don't prove, I would no longer be surprised.
--
RC & GC might complement. Don't throw out RC. Also, there are different kinds of 'performance'. Horses for courses, you know.
https://www.google.com/search?q=bacon+gc+reference+counting+equation
Wow. I was going to suggest Lua, but according to the benchmarks it's not even in the same league. I wonder what the benchmarks would look like if they included calls out to C libs.
Horses for courses. Ask all the game people who use Lua big time. :-)
Horses for courses. Ask all the game people who use Lua big time. :-)
--
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/d/optout.
On Apr 26, 2016 3:30 PM, "Raoul Duke" <rao...@gmail.com> wrote:
>
> Horses for courses. Ask all the game people who use Lua big time. :-)
>
Sorry, never heard of horses for courses. Does it mean sth like different strokes for different folks? Re: big time users of Lua, I don't know any. I guess performance isn't so great?
This thread may save me some serious heartache. As I mentioned previously I'm about to start a project using the Intel Edison, and maybe also the Curie. I'm definitely going to experiment with Clojure but I've been kinda assuming that Lua might be better than Clojure for such constrained environments. But maybe I assumed too much.
On the other hand speed is only one aspect of performance, maybe not so important for IoT stuff. Space and energy are just as important, maybe more so. I wonder if there are any benchmark comparisons for those.
gregg
--
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/d/optout.
I've been wondering lately about getting Clojure to compile to native code, and so I've been doing some looking around.There are a few projects that are on the right track, such as TinyClojure and Ferret, but they are incomplete and don't seem to be under active development any more.I'm wondering about the requirements, how much work it would take, and whether or not it would be worth it. My current thinking is of a Clojure->C/C++ compiler.So far, I have a few topics for discussion that I'm unclear about that might be necessary for this kind of project:
- Can the Immutable Persistent Data Structures be implemented with a reference-counting scheme rather than a garbage collector? This may improve performance.
- In a similar vein, can the allocation strategy be controlled for these structures in such a way as to optimize cache locality?
- Can we take advantage of tail-call optimization in existing C++ compilers?
- It wouldn't have to depend on an existing runtime environment like JVM or JavaScript.
- Could this reduce reliance on reflection and increase performance?
- Could a new, clojure-optimized runtime be created that improves performance?
- Could certain anonymous functions be optimized or inlined in a way that improves performance over JVM/JS implementations?
- Is there a way to compile C++ code at runtime? This would be essential for the REPL and for Macros.
Let me know if anyone has any thoughts on the matter.Thanks
--
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/8DUkKiXV77U/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com.
Unit of compilation is the module, not sure how that all plays out with the Elixir repl, but it's not optimal. From what I can tell, re-deffing a defn would require re-loading an entire namespace (module)...
* Is there a way to compile C++ code at runtime? This would be essential for the REPL and for Macros.- I never heard about on demand native code generation and execution. I think it could be a paradise for viruses, but I know almost nothing about this field. Unless of course you're generating code for (your own|a) virtual machine, so the rules are different.
The main motivation would be performance gains.