NEXT: - tests for (. x y) - (ruby/)Time/now ==> Time.now - continue decruft Context, shift tests to Compiler as appropriate; revise most specs. - 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. - everything in ::Rouge should be accessible via rouge.builtin - 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. - 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. core lang --------- - NON-dynamic/special vars - INTERN - FOR - multi-form defn: (defn x ([a] ...) ([a b] ...)) - 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: