[macruby-changes] [2344] MacRuby/trunk/TODO

source_changes at macosforge.org source_changes at macosforge.org
Mon Aug 17 13:11:09 PDT 2009


Revision: 2344
          http://trac.macosforge.org/projects/ruby/changeset/2344
Author:   lsansonetti at apple.com
Date:     2009-08-17 13:11:06 -0700 (Mon, 17 Aug 2009)
Log Message:
-----------
refresh TODO list based on the roadmap objectives

Modified Paths:
--------------
    MacRuby/trunk/TODO

Modified: MacRuby/trunk/TODO
===================================================================
--- MacRuby/trunk/TODO	2009-08-17 18:08:12 UTC (rev 2343)
+++ MacRuby/trunk/TODO	2009-08-17 20:11:06 UTC (rev 2344)
@@ -1,84 +1,68 @@
-[X] implement super dispatch
-[X] implement blocks
-[X] implement dynamic strings
-[X] implement exceptions
-[X] implement 64-bit support
-[/] optimized arithmetic operations
-  [X] fixnums
-  [ ] floats
-  [ ] bignums (vectorization)
-[X] method dispatch cache
-[X] optimized recursive method dispatch
+For 0.5 (must do):
+
+[ ] fix irb Binding bugs
+[ ] implement Enumerable::Enumerator
+[ ] 32-bit should be back
+[ ] Hash subclass for immediates
+[ ] backtracing / symbolication
+[ ] try/catch should use a C++ exception
+[ ] rewrite load.c
+[ ] fully implement FFI API
+[ ] support for bigdecimal
+[ ] support for json
+[ ] support for zlib
+[ ] sockets
+[ ] merge stdlib from 1.9.2 trunk
+[ ] rubygems should work (modulo C extensions)
+[ ] most language/core/library specs should run (modulo a very few exceptions)
+[/] port all rb_define_method() calls to rb_objc_define_method().
+[/] port all rb_funcall() calls to rb_vm_call()
+
+For 0.5 (tentative):
+
+[ ] write a pass manager to eliminate unnecessary arrays generated by massigns
+[ ] vectorize bignums
 [ ] block inlining
-[X] constant caching
-[X] fast ivar access
-[X] zero-cost exceptions
-[ ] make returns in blocks and try/catches use zero-cost exceptions
-[X] fast #send
 [ ] fast regexp =~
-[X] fast break
-[X] optimized Symbol's #== #=== #!= when both operands are constants
-[ ] write a pass manager to eliminate unnecessary arrays generated by massigns
-[ ] Array and Hash subclasses to hold immediate Ruby objects without boxing
-[/] implement backtracing/symbolication
-[/] port all rb_define_method() calls to rb_objc_define_method()
+[ ] rakefile-ize instruby.rb
+[ ] finish AOT compiler (only normal mode)
+[ ] multithreaded JIT
+[ ] debugger interface
+[ ] sync with LLVM 2.6 once it's released
 
-    - replace calls to rb_define_method() with a call to
-      rb_objc_define_method() and rewrite the function to 
-      conform to the following signatures:
+Porting from rb_define_method() to rb_objc_define_method():
 
-      // if arity -2
-      VALUE foo(VALUE recv, SEL sel, VALUE args);
+  Replace calls to rb_define_method() with a call to
+  rb_objc_define_method() and rewrite the function to 
+  conform to the following signatures:
 
-      // if arity -1
-      VALUE foo(VALUE recv, SEL sel, int argc, VALUE *argv);
+  // if arity -2
+  VALUE foo(VALUE recv, SEL sel, VALUE args);
 
-      // if arity 0
-      VALUE foo(VALUE recv, SEL sel);
+  // if arity -1
+  VALUE foo(VALUE recv, SEL sel, int argc, VALUE *argv);
 
-      // if arity 1
-      VALUE foo(VALUE recv, SEL sel, VALUE arg1);
+  // if arity 0
+  VALUE foo(VALUE recv, SEL sel);
 
-      // if arity 2
-      VALUE foo(VALUE recv, SEL sel, VALUE arg1, VALUE arg2);
+  // if arity 1
+  VALUE foo(VALUE recv, SEL sel, VALUE arg1);
 
-      // etc.
+  // if arity 2
+  VALUE foo(VALUE recv, SEL sel, VALUE arg1, VALUE arg2);
 
-      In the case of rb_define_global_function(), replace it with
-      rb_objc_define_method(rb_mKernel, ...)
+  // etc.
 
-      In the case of rb_define_singleton_method() for defining class
-      functions and module-level functions, replace it with
-      rb_objc_define_method(*(VALUE *)klass, ...)
+  In the case of rb_define_global_function(), replace it with
+  rb_objc_define_method(rb_mKernel, ...)
 
-      In the case of rb_define_singleton_method() for defining methods on 
-      individual instances of objects, replace it with
-      rb_objc_define_method(rb_singleton_class(obj), ...)
+  In the case of rb_define_singleton_method() for defining class
+  functions and module-level functions, replace it with
+  rb_objc_define_method(*(VALUE *)klass, ...)
 
-      In the case of rb_define_alloc_func(), replace it with
-      rb_objc_define_method(*(VALUE *)klass, "alloc", ..., 0)
+  In the case of rb_define_singleton_method() for defining methods on 
+  individual instances of objects, replace it with
+  rb_objc_define_method(rb_singleton_class(obj), ...)
 
-[/] port all rb_funcall() calls to rb_vm_call()
-[X] port all rb_block_call() calls to rb_objc_block_call()
-[X] remove the YARV code from the project
-[X] refactor the VM sources
-[X] clean objc.m
-[ ] new IO
-  [/] reimplement all IOs using CFStreams
-  [X] clean string.c (remove previous bytestring stuff)
-[/] implement eval/binding (irb)
-[X] implement the BridgeSupport plumbing
-[ ] implement threading
-  [ ] Thread
-  [ ] light threading
-[ ] rubyspec
-  [ ] make regexp specs pass so mspec tools work
-  [/] integrate
-  [ ] pass the 1.9 specs
-[/] all core-features benchmarks should run faster than yarv
-[ ] Integration
-  [ ] Get basic test frameworks to run
-    [ ] test/unit
-    [ ] test/spec
-    [ ] mocha
-  [X] known_bugs
+  In the case of rb_define_alloc_func(), replace it with
+  rb_objc_define_method(*(VALUE *)klass, "alloc", ..., 0)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090817/b2c66d92/attachment-0001.html>


More information about the macruby-changes mailing list