> Clojure in Clojure would be a nice start to have e.g. a LLVM frontend.
> But it's really quiet as far as CiC goes, right?

It should be mentioned that writing a Clojure compiler is not a very
long task it basically comes down to the following tasks:

1) Implement the persistent classes (PersistentList, PersistentHashMap, etc.)
2) Implement the LispReader
3) Implement the Compiler
4) Start fixing bugs in core.clj

About a month ago I started implementing Clojure on the Python VM.
It's still in pre-alpha, but the current system can compile and run
over 500 lines of clojure's core.clj.
(https://github.com/halgari/clojure-py)

Now, the fun part is adapting the "clojure-jvm way" of doing things to
a system that your tool-chain prefers. So, for instance, in Java we
have Namespace.java to handle namespace creation, and tracking. But in
Python the module system works perfectly fine for us. So
clojure.lang.Namespace doesn't even exist in clojure-py. Other clojure
functions such as "cast" have absolutely no use at all in clojure-py
and are therefore removed. However, other functions like "vec" are
implemented in pure clojure code in clojure-py, while they are
implemented in java code in clojure-jvm

So next we have to ask a different question, do you want your
clojure-objc compiler to depend on java to run? This is what
clojurescript does. It does not have a compiler written in javascript.
Instead the compiler is written Java, and this compiler outputs
javascript. This means that all clojurescript macros must be
compile-able by clojure-jvm, while the rest of the code has to be
clojurescript compatible. In clojure-py the compiler is written in
python, and is completely independent from clojure-jvm

Finally you'll need to research how hard it is to get llvm to
interface with the objc runtime. So if I say this in clojure:

(instance? clojure.lang.IPersistentList x)

What llvm functions will you call to a) find
clojure.lang.IPersistentList and b) how will you determine the class
of x.

Some things to think about,

Timothy

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

Reply via email to