
Clasp – Lisp on LLVM - eatonphil
https://github.com/drmeister/clasp
======
tomjen3
I really hope LLVM becomes what the JVM has partially become: a meta eco
system where new languages can be made because they don't have to spawn an
entire ecosystem, but can grow on an already existing system.

That said with everything moving to the browser (or more correctly a zero
install thickis client with remote storage) I am not sure it matter than much
as more and more of the work seems to be done in browsers.

~~~
falcolas
> with everything moving to the browser [...] I am not sure it matter than
> much as more and more of the work seems to be done in browsers.

With asm.js as a potential LLVM target, I don't think it will matter. The
browser could just serve as another compilation target with a specific foreign
language interface.

------
j_m_b
I've been fantasizing about language for LLVM that would be a lisp that
compiled to the intermediate representation (IR) emitted by the LLVM frontend.
The main feature of the language would be that ANY code that can be compiled
with LLVM to its IR would be usable as a library, no matter the language it
was written in. This would be a true glue language.

------
Slackwise
This just reminds me of how much I'd like to see Clojure on LLVM also.

~~~
moomin
PixieLang exists, and probably does most of what you'd want: fast boot, FFI
and Clojure-style LISP.

~~~
xaa
Thank you so much for this reference. The moment I grokked Clojure, I
immediately thought "someone should port this to LLVM". The JVM is awful in a
thousand ways, and it is quite surprising to me that Rich Hickey would devote
so much time to getting many details right but get this big one wrong.

Trying it out now ;)

~~~
hga
As much as I don't like Clojure on top of the JVM, I don't think you can say
that the man who created the 3rd seriously successful dialect of Lisp made a
big mistake/

I count "mainline Lisp", which ended with Common Lisp, and Scheme as the other
two; others might count Autodesk's and Gnu Emacs' embedded Lisps.

Clojure is even showing signs of becoming mainstream in a way no Lisp has been
since mainline Lisp through sometime in the '80s, not counting Scheme's niches
in language research and (temporary? one) education. Or perhaps even better.

~~~
xaa
I view the JVM choice as a pragmatic choice to encourage wider adoption rather
than a technical choice. Possibly it eased implementation too having a high-
quality GC, but overall the drawbacks are quite severe, because they outright
preclude Clojure from being used in situations outside the "long-running
server process" use case.

It is even possible that he viewed the JVM as a stopgap to be abstracted out
when and if the language got popular. It seems they are moving in this
direction with ClojureScript. Clearly he made this decision thoughtfully and
consciously because he was an expert in C++ before he ever wrote a line of
Clojure interpreter, and could have made it native if he wanted.

But the argument "Clojure is successful, therefore all his decisions must have
been optimal" (caracaturing you a little bit) is obviously false. Replace
"Clojure" with "Linux" or even "Windows" and you see the fallacy.

------
mark_l_watson
Some advice please: which OS should I build for, to have the easiest
experience kicking the tires? OS X or Ubuntu 14.04?

I still really enjoy Common Lisp (even though it seems like I spend my time
with Clojure or Haskell) and Clasp, when it is mature, will be a good
incentive to use Common Lisp for more development use cases. (It is easy
enough to build stand alone executables with SBCL, CCL, and Franz, but having
a smaller executable would be really good, if indeed the executables would be
smaller with Clasp).

~~~
drmeister
I developed it on OS X so that's a good choice. The README on github lists the
linux distributions that it's been compiled on.

------
bezzi
Why there is something new about lisp here every fucking day???

~~~
drmeister
Because it's the only language worth talking about :-)

