Sha256: cad7aeb8081039e5cfdd3bf0d83a5642d22a1ea4b7baeca94321b79c77a57831

Contents?: true

Size: 1.3 KB

Versions: 2

Compression:

Stored size: 1.3 KB

Contents

NEXT:
- (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:

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rouge-lang-0.0.3 misc/TODO
rouge-lang-0.0.2 misc/TODO