2012/4/4 Raphaël AMIARD <raph.ami...@gmail.com>:
> Hi Aaron !
>
> Those application are intended for submission on the google summer of code
> site. I think both Clojure developer and google will eventually get them if
> i understood the system right.
>
> Thank you very much for the editing help proposition, it would be terribly
> helpful, since i'm not used to write long prose in english :) The markdown
> source for the applications is disponible on my github pages repository. A
> lot of the text is shared between the two applications.
>
> I'm gonna look more seriously into the ClojureScript to gambit scheme
> compiler, but from a preliminary look, it seems like there is mostly the
> emit function/methods changing, like i thought. It would be interresting to
> modularize the backend in clojurescript, and then modify clojure-scheme to
> fit the new modular backend scheme.
>
> I have more trouble understanding the CinC project. Is it an attempt to port
> the Clojure java compiler to clojure ? I'm gonna look at the code more
> closely this afternoon.

Yes, one way of looking at CinC would be as porting the clojure java
compiler to be a "backend" to the clojurescript compiler. I started by
extracting the analyzer from clojurescript and removing several
assumptions it was making about cljs. I then moved the compiler into
clojure.java.compiler and started porting over the java compiler to
the same multimethod framework. Outputting java requires more type
information than outputting javascript, that's all calculated by
walking the ast in clojure.java.compiler/ast.clj

 Eventually (that's such a loaded word, it's very dependent on the
amount of time I have to work on it), once I finish the "java" backend
I'd like to add back the javascript one. In my scheme it would end up
somewhere like "clojure.js.compiler" and basically just be the emit
multimethods from cljs moved.

My todos:
  1) Finish porting over the remaining special forms (I have try/catch
mostly working locally, just need to finish it and push it out)
  2) Verify that I can compile core.clj "from nothing". Currently I'm
cheating by just copying the defs from the bootstrap compiler, the
target compiler should be able to build all its functionality just by
compiling core.clj just like the current one does
  3*) Move protocols "to the bottom". There are a few places where
I've kept the assumptions of the current compiler about how FNs extend
abstract classes using inheritance. It would be nice to be more like
clojurescript here, only using protocols and deftype rather than
Interfaces and inheritance.
  4*) Write nice deftype based implementations of the persistent
datastructures. This is probably a worthy GSoC task of its own and it
would help clojurescript even without my project
  5*) Add clojurescript back as target of the CinC compiler.
  6*) It would also be neat to look at some of the other compilers
that have been popping up (rpython, scheme) and see if they would work
as CinC backends

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