Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

120 lines (103 sloc) 4.09 KB
For 0.5 (must do):
[/] sockets
[/] backtracing / symbolication
[/] rubygems should work (modulo C extensions)
[ ] `macgem build' doesn't seem to work
[/] 32-bit should be back
[X] Array subclass for immediates
[ ] Hash subclass for immediates
[ ] try/catch should use a C++ exception
[X] implement 'protected' visibility
[X] implement NODE_LAMBDA (1.9 proc syntax)
[ ] remaining Cocoa bugs
[X] ObjC exceptions should be catchable in Ruby
[X] honor BridgeSupport sel_of_type attribute
[ ] honor BridgeSupport printf_format attribute
[X] add support for variadic functions / methods
[/] support for bigdecimal
(implemented but some specs are failing, need to sync with upstream)
[/] support for json
(implemented, do we have specs?)
[/] support for yaml
[ ] pass remaining specs
[/] support for openssl
[ ] finish porting to the new runtime APIs
[ ] check every RSTRING_PTR call to see if they are not f*cking up the data
[ ] pass specs (do we have some?)
[/] support for zlib
[/] support for Mocha (grep -R 'Mocha TODO' test_vm)
[ ] merge stdlib from 1.9.2 trunk
[/] most language/core/library specs should run (modulo a very few exceptions)
[X] add the DTrace custom probes
[X] port all rb_define_method() calls to rb_objc_define_method()
[/] port all rb_funcall() calls to rb_vm_call()
[/] port all rb_num_coerce_bin() calls to rb_objc_num_coerce_bin()
[/] port all rb_obj_respond_to() calls to rb_vm_respond_to()
[X] refresh copyright headers for 2009
[X] rdoc should work
[/] ri should work
[ ] pager problem (apparent bug of IO.popen)
[ ] some annotations are not available (`macri -T Array' misses a lot), maybe
a YAML merging bug
[X] MacRuby should not ignore SIGINT and other signals
[X] fix autoload bugs
[X] Xcode target for AOT compilation
[/] finish AOT compiler (only normal mode)
[X] should locate `llc' inside MacRuby.framework
[X] macrubyc should handle -arch
[ ] support #require calls when assembling a binary
[X] add a flag to link against libmacruby.dylib (and not .a) when
assembling a binary
[X] sync with LLVM 2.6/ToT
[ ] non-ASCII regexp
[ ] leaks
[X] implement ~RoxorVM
[ ] fix exception leak
[X] delete unused functions after execution
[X] delete unused NODE* after execution
[/] thread issues
[ ] method cache is not thread safe
[X] block dvars are corrupted in case the receiver leaves
ex: 10.times { |i| { p i } }; sleep 1
[ ] blocks are not reentrant
ex:{}; 100.times{{100.times{}}}; sleep 1
[X] lazy GCD VMs are never finalized
[X] random.c is not thread-safe and should be rewritten using random(3)
For 0.6:
[ ] implement Enumerable::Enumerator
[ ] write a pass manager to eliminate unnecessary arrays generated by massigns
[ ] vectorize bignums
[ ] block inlining
[ ] fast regexp =~
[ ] rakefile-ize instruby.rb
[ ] multithreaded JIT
[ ] debugger interface
[ ] fully implement FFI API
[ ] add support for encodings in strings
Porting from rb_define_method() to rb_objc_define_method():
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 -2
VALUE foo(VALUE recv, SEL sel, VALUE args);
// if arity -1
VALUE foo(VALUE recv, SEL sel, int argc, VALUE *argv);
// if arity 0
VALUE foo(VALUE recv, SEL sel);
// if arity 1
VALUE foo(VALUE recv, SEL sel, VALUE arg1);
// if arity 2
VALUE foo(VALUE recv, SEL sel, VALUE arg1, VALUE arg2);
// etc.
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 class
functions and module-level functions, replace it with
rb_objc_define_method(*(VALUE *)klass, ...)
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_module_function(), replace it with
In the case of rb_define_alloc_func(), replace it with
rb_objc_define_method(*(VALUE *)klass, "alloc", ..., 0)
Jump to Line
Something went wrong with that request. Please try again.