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