From e34e30eb56611ca5b1655e53ed5b41a5ea7d1a67 Mon Sep 17 00:00:00 2001 From: macournoyer Date: Thu, 26 Feb 2009 17:53:48 -0500 Subject: [PATCH] Update TODO w/ more focused goals --- Makefile | 2 +- README | 13 +++++++++++++ TODO | 51 ++++++++++++++++++--------------------------------- 3 files changed, 32 insertions(+), 34 deletions(-) diff --git a/Makefile b/Makefile index 067aac3..61fa405 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ test: tinyrb sloc: clean @cp vm/scanner.rl vm/scanner.rl.c - @sloccount vm + @sloccount vm lib @rm vm/scanner.rl.c size: clean diff --git a/README b/README index 4f5e598..f24d50f 100644 --- a/README +++ b/README @@ -28,6 +28,19 @@ Compile tinyrb: make test # optional ./tinyrb -h +== What won't be in tinyrb +* alias keyword (see alias_method) +* undef keyword (see undefine_method) +* Alternate string delimiters (%q, %Q, etc.) +* heredoc strings +* Parallel assignment (a, b = 1, 2) +* :: as . (Class::new) +* Character code literal (?c) +* protected, private, public (yes everything is public, mind you) +* ObjectSpace +* Regexp literal (not sure about this one yet) +* ... other to come for sure. + == Credits Inspired by: lua, http://www.lua.org diff --git a/TODO b/TODO index 7da566e..3448b72 100644 --- a/TODO +++ b/TODO @@ -1,44 +1,29 @@ -== Soon -[x] Implement String -[x] Implement Object -[x] Implement Class -[x] Implement Fixnum -[x] Make parser output AST -[x] Implement if, unless -[x] Implement simple method argument passing -[x] Implement while, until -[x] Include GC (Boehm) -[x] Monomorphic method cache (using CallSite) -[x] Implement basic method definition -[x] Implement GET/SETCONST -[x] Implement basic class definition -[x] Pass args to defined methods -[x] Bootstrap all class correctly (nil,true,false too) -[x] Fix CallSite error in recursive calls -[x] Allow reopening classes -[x] Implement Array -[x] Implement Hash -[x] Implement Module -[x] Implement yield -[x] Implement some corelib stuff in Ruby (under /lib) -[x] Implement splat operator +@Next +[ ] Range +[ ] Array splat +[ ] Implement IO +[ ] Implement File +[ ] Implement metaclass +[ ] def .some_method +[ ] Implement Dir +[ ] Allow {...} for block [ ] Implement Proc +[ ] require +[ ] being...rescue +[ ] def...rescue [ ] Fix operator precedence, add () and unary - -[x] Add support for escape chars in strings, (\n, \r, etc.) -[ ] Implement exceptions -[ ] Implement metaclass -[ ] Implement super +[ ] super(...) +[ ] return w/ args *** See TODO in code too! -== Later -[ ] FFI -[ ] Implement IO and File +@Later +[ ] FFI or dl [ ] Compile to file [ ] Embed bytecode of /lib stuff inside executable [ ] puts nil # => nil in MRI [x] Inline some methods (+,<,>,==) as VM instructions, eg.: FIXNUM_ADD, STRING_CONCAT [ ] Cache constant lookup -[ ] Fix Hash to use key.hash (see TODO in hash.c) +[ ] Reimplement Array, Hash using Tuple like Rubinius [ ] Peephole optimization (Remove useless register allocations) [ ] Implement case...when [ ] Implement Float, Bignum @@ -46,7 +31,7 @@ [ ] Sandbox [ ] Get it to build w/ -ansi gcc option (might need to get rid of khash.h) -== Oh Yeah That'll be Cool! +@Someday [ ] Rubygem support w/ http://github.com/fabien/minigems [ ] Replace GC w/ smaller, simpler & embedable one (Io's maybe?) [ ] REPL