NEXT: - extend DESTRUCTURE from LET to FN, etc. - refactor DEFN, DEFMACRO, LET, BINDING(?) to make use of above - may be faster for general wrapper classes to use Struct? miscellaeny ----------- - MACROEXPAND - SPEED test. run core specs a few times and time. - organise boot.rg - test the whole core - omit Ruby from tracebacks? - better exceptions/errors - readline autocomplete ruby interop ------------ - accessing the scope/self (DSLs!) - proc or lambda? setting ARITY. May need to emulate with generated code. - DEFN/DEFMACRO/etc. should create strict lambdas, but FN/#() should not. Emulate by accepting |*a| and selecting ourselves how strict we want to be. "hard" tasks ------------ - have a core "apply" function which can be used by eval, defmacro, etc. - continue decruft Context, shift tests to Compiler as appropriate; revise most specs. core lang --------- - NON-dynamic/special vars - INTERN - FOR - multi-form defn: (defn x ([a] ...) ([a b] ...)) (generalise defmacro's) - atoms (actually multithreaded), refs, agents - rest of the clojure core API (maybe even in clojure.core ns) - clojure-ish IO libraries which expose async IO - defprotocol -- looks important! ISeq, ISeqable, ISequential and what have you. - metadata on all collections (not just symbols) vim: set cc=80: