Hi guys, It has been a long time since I did a status report here, but I have been busy :) Here is a status about what happened since 0.5 beta 2 until we started working on 0.6. I think 0.5 is good enough to be released as final now. I will prepare the release and hopefully it will go out later today. Highlights: - HotCocoa support is back! Also, HotCocoa is no longer developed in the MacRuby repository but on GitHub: http://github.com/richkilmer/hotcocoa . We hope that by being on GitHub, HotCocoa will evolve faster. Be sure to do a 'macrake install hotcocoa'. - AOT compiler is more stable, supports compilation of multiple Ruby files into shared/dynamic libraries. It is also documented in a man- page, be sure to check it out for a detailed list of options and some use case examples. - GCD API is complete, frozen and fully documented. Stay tuned for GCD tutorials on the website. - Better runtime symbolication (backtraces) by emitting DWARF annotations. - Numerous miscellaneous bug fixes! Changes: - macrubyc: better CPU architecture check - ruby catch/throw statements now use specialized C++ exceptions instead of setjmp/longjmp - macrubyc: make sure compilation works if paths contain spaces - macrubyc: no longer use llvm-config for C++ compilation flags but rbconfig - fixed Module#method_defined? - rake build: ignore RUBYOPT - templates: updated rb_main.rb to honor .rbo files - GCD: ignore exceptions raised inside GCD blocks - do not cache blocks for functions - openssl extention: misc fixes - #throw must clear the current VM exception before unwinding the stack - GCD: fixed a few race conditions - define the GC and ObjectSpace API as module functions - start tagging non-RObject classes to not use ivar slots - added Module#__properties__ to return the list of Objective-C properties - never overwrite -[NSObject hash] - when registering a method as a BS informal protocol, pad the signature with @ in case the ruby arity is greater than the objc one - property handle missing 64-bit bridgesupport annotations in informal protocols for pointer types - fixed a bug when inserting an object into a KVO array - str.split('') should split into characters - honor nil backtraces when printing an uncaught exception - misc KVC bug fixes - templates: switched from .nib to .xib - GCD: block shared/dynamic variables are now copied - GCD: Queue#dispatch and Group#dispatch are gone. Replacements: Queue#async(group=nil) and Queue#sync - macrubyc: don't forgot to initialize load path and program name - GCD: aliased Queue#to_s to Queue#label - emit DWARF metadata at compilation time and use it to establish backtracing later at runtime - fixed Time marshalling - GCD: don't try to release a NULL semaphore - fixed a whole lot of crashes on 32-bit - macrubyc: added support for AOT compiled source code objects in #require - macrubyc: added manpage - GCD: when finalizing a dispatch semaphore, re-equilibrate before release to avoid a crash - fixed #method_missing and #respond_to? for NSProxy-based objects - fixed some class variables bugs - when changing the visibility of a method and duplicating its entry in the lookup table, be sure to keep the same flags too - added Pointer out-of-bounds access check - optimized #to_path conversion - fixed Fixnum#odd? and Fixnum#even? - fixed a thread-safety bug in RoxorCore::retype_method() - #extend_object: honor nested modules - added some basic support for multibyte regexps - FFI::Library#attach_function: the first argument can also be a symbol - macrubyc: generate better tmpfiles to allow multiple compilations of the same project - GCD: added rdoc documentation for all APIs - fixed a bunch of super-dispatch bugs - added preliminary (not complete) support for objc methods aliasing - fixed a bug when accessing regexp match special variables - fixed a bug in String#dump in case the receiver is a bytestring - fixed a bug in the #send method inliner where protected methods would not be callable - removed HotCocoa from the repository. It is now living on github as a separate gem. - implemented Thread.kill and Thread.exit - rb_str_dup(): in case the receiver is not a pure CF string, send - mutableCopy - Thread.list: do not return the internal thread list but a copy instead - don't use #delete to remove a thread from the internal list since it might trigger custom methods which might acquire the core lock and therefore cause a deadlock - implemented #[] and #[]= as shortcuts for objectForKey: and setObject:forKey: - GCD: added sources API - do not uncache a block if the context (self) is different - templates: do not load rb_main.rb twice Laurent