Version 6, last updated by stuart.halloway at Mar 29 07:56 2011 UTC

Read this first!

Clojure issue tracking now lives at http://dev.clojure.org/jira, and the wiki is at http://dev.clojure.org. These Assembla pages are kept online for historical interest only.

This is a page for design work on a new compiler written in Clojure. It is not a promise of such a compiler, nor of any features.

 

  • Write the Clojure compiler in Clojure so all future enhancements will involve Clojure coding
  • Make more people familiar with the operation of the compiler
  • Host independence
    • Ease porting
  • All Clojure?
    • Some RT?
  • Analysis phase produces well-documented AST as Clojure data
  • Improvements over current compiler
    • fully functional, no dynamic vars
    • threaded immutable environment
    • more separation of host concerns
      • type reflection etc
  • Move ASM out of clojure.jar
    • use ASM instead of reflection for type info
    • move to more current ASM
  • Think about future features like:  
    • letmacro
    • primitive args/returns in fns
  • Tackle namespace issues?
    • Namespaces follow classes
      • thus can follow schemes like OSGi
    • Get rid of global namespace registries?
    • Get rid of mapping classnames -> class instances
  • Backends
    • Experiment with generating Java source?
    • ASM
    • CLR/DLR
    • JS
    • ?