There seems to be a few steps involved in this from, what I'm seeing. >From what I'm seeing of the source, there's two files I'll be dealing with
closure.clj -- defines functions for looking up info about libraries, functions, etc. compiler.clj -- actually defines the compiler To start with, I'm thinking of trying to compile ClojureScript in ClojureScript. I know this won't work if the user has optimized ClojureScript at all, but it should be a good testing point. The first step in this process would then be to write a version of closure.clj in ClojureScript. Somehow it would present the same interface as closure.clj but in a JS environment. I'll have to look into how well that may work out. I'm going to call this file the platform.clj file. >From there I'll need to take a look at the GSOC work (where is that currently?) to see how much of the compiler I'd need to modify. But we'd basically need to re-write the compiler to use only ClojureScript compatible forms. From there it should be fairly complete. So the way I'd then port ClojureScript to Python would be the following: 1) Write a platform.clj (closure.clj) file for Python. This would somehow allow Java to tap into Python and run reflection on the modules in Python. 2) Implement a Python back-end for the GSOC pluggable-backend 3) Compile compiler.clj into one massive python file 4) Write a new platform.clj file to just look at the Python VM instead of going from Java->Python->Modules 5) Compile compiler.clj into one massive python file 6) ... 7) Profit! Long term I'm only seeing that we'll need to write 3 files each time we want to port ClojureScript to a new platform: 1) The Java version of platform.clj 2) The compiler backend 3) A "native" version of platform.clj I'm going to look into the GSOC stuff next to make sure I'm not going to duplicate anyone's work. 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