[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