[MacRuby-devel] trunk status update

Eloy Duran eloy.de.enige at gmail.com
Tue Nov 17 01:50:49 PST 2009


Nice. Great work!

On Nov 17, 2009, at 3:23 AM, Laurent Sansonetti wrote:

> Hi guys,
>
> It has been a little bit more than a month since the last status  
> update, which was for beta1. It is now time to release beta2. I am  
> preparing the release at the moment as well as a blog article, but  
> here are the changes.
>
> Enjoy! The final 0.5 release is not far at this point :-)
>
> Highlights:
>
> - rdoc, ri, rack, sinatra are now working.
> - DTrace probes are available. Same as in MacRuby 0.4.
> - BigDecimal, OpenSSL and JSON support (experimental).
> - macrubyc: support for building fat binaries (using the --arch  
> argument).
> - New tool: macruby_deploy, to help you deploying a MacRuby  
> application, by ahead-of-time compiling its source code and  
> relocating the MacRuby framework inside the application bundle. One- 
> click Xcode targets provided.
> - Lots of bugs fixed, especially related to compatibility, thread- 
> safeness and memory/resource leaks.
>
> Details:
>
> - Added JSON support, based on the yajl library (experimental).
> - Fixed a bug when compiling super without arguments, where the  
> method's &block wouldn't be passed.
> - Fixed a bug during singleton class creation where the super class  
> would not have any outer.
> - Fixed a bug in the VM method preparation routine when the current  
> VM class would be a metaclass.
> - The compiler now honors the current VM class when compiling outers.
> - Fixed a crash in String#[] when called with 2 arguments and when  
> the last one is negative.
> - Fixed Object#class to never return singleton classes.
> - Fixed a parsing crash that would happen if a magic comment  
> includes an encoding that we do not recognize.
> - Fixed Object#inspect output to not include extra characters.
> - Fixed #method_missing to be called with Ruby-like selectors.
> - Do not install special methods on singleton classes.
> - Fixed several module mixin bugs.
> - Fixed a bug in Proc#to_s to print lambda status.
> - Implemented 1.9 lambda syntax (->).
> - Now sanitizing method names before passing them to the added/ 
> removed/undefined callbacks.
> - When mixing a class with a module, make sure to JIT methods that  
> already exist in the target class.
> - Fixed a bug when #method_added would be called during method  
> compilation and not registration.
> - Fixed Module#<= to honor included modules.
> - Optimized IO#gets to read from the IO cache if available.
> - Optimized Hash#each to be slightly faster.
> - Optimized Hash#[] to not dispatch #default if it's unnecessary.
> - Optimized #[] and #[]= dispatches for Hash.
> - Optimized #respond_to? by caching results.
> - Fixed a bug in the compilation of global variable assignments  
> where potential exceptions would not properly be intercepted.
> - Bring back #[], #[]= and #<< optimizations (oops).
> - Optimized returns from non-ensure-scoped and non-Proc blocks.
> - void-returning objc calls now return the receiver instead of nil.
> - Fixed a bug in Kernel#respond_to? to avoid recursive calls.
> - Fixed a bug in YAML objects deserialization, where #new would be  
> called instead of #alloc.
> - When changing the visibility of a method that is included in  
> classes, make sure the new flags are recursively applied.
> - When registering a new method, if the given class also responds to  
> the arity-1+1 selector let's make it unavailable, to fully conform  
> to the way Ruby behaves.
> - Fixed a bug in the compilation of super without argument where the  
> scoping method has arguments with default values.
> - Fixed AOT compilation of backquote with a literal string.
> - return-from-block is now active for further dispatch calls inside  
> the same method
> - Do not return-from-block from lambdas (to mimic MRI 1.9).
> - Implemented VM cleanup.
> - Fixed Thread resource leaks.
> - Unregister VM objects created from GCD pthreads.
> - Make sure Thread and GCD blocks are detachable (that they won't be  
> cached and that their dvars will be preserved when leaving the scope  
> where the blocks have been created).
> - Merge to recent CRuby readline.
> - Implemented ObjectSpace finalizers (experimental).
> - Fixed Pointer to work with ^v (void *) type.
> - Fixed a const lookup bug when rb_define_module() wouldn't set a  
> default outer.
> - Call Symbol#to_s if #description is called, instead of #inspect.
> - Better MRI 1.9 C API compatibility.
> - Added OpenSSL extension (experimental).
> - Added macruby_deploy, a tool to help compiling AOT a MacRuby app  
> and relocating MacRuby.framework inside it. Updated "Embed MacRuby"  
> Xcode target and added "Compile" Xcode target.
> - Fixed a x86-64 ABI conformance bug where arguments should be  
> passed by reference when there aren't enough registers to hold all  
> of them.
> - Create -copyWithZone: on every new Object-based Ruby class.
> - Fixed a bug when break/next/redo statements inside exception  
> handlers would not properly end potential landing pads.
> - Fixed sprintf's %p to pass the object address.
> - Fixed a bug in IO.popen.
> - Added support for defined? on any unhandled expression.
> - Swapped our custom Set implementation by the latest code from 1.9.
> - Now generating and installing RDoc ri files.
> - Added YAML support for Struct objects.
> - Free parser node objects post-execution.
> - Do not leak Match objects.
> - Now deleting internal structures, IR and machine code of main  
> functions created by #eval.
> - Do not leak Regexp objects.
> - Fixed a bug in Kernel#open when the given file was opened twice  
> (ouch!).
> - Adding missing GC write barriers in Struct.
> - Do not leak some of the oniguruma internal hash tables.
> - Fixed a couple of ivar slot bugs.
> - Fixed String#dump.
> - Implemented YAML support for date/time.
> - Working around missing 64-bit informal protocol annotations with  
> NSRange.
> - Safe quoting of YAML plain string scalars that look like non- 
> strings.
> - When generating the default objc runtime signature for a pure ruby  
> method, if it starts by 'set' let's use 'void' instead of 'id'.
> - Fixed a const lookup bug (always set the outer of a class to  
> something).
> - MACRUBY_VERSION is now a string.
> - Implemented #remove_method.
> - Fixed a bug in String#dup where the receiver's class would not be  
> honored.
> - Added BigDecimal extension (experimental).
> - Re-enabled File#flock.
> - Fixed a bug where ivars would not work for some builtin subclasses.
> - Implemented YAML.each_document.
> - Fixed a bug when module_function was used as a scope visibility  
> followed by -1 arity methods.
> - Re-implemented #rand and #srand to use random(3) and srandom(3),  
> faster and thread-safe.
> - YAML now handles UTF-16 encoded strings.
> - For a given CF type signature, also register an equivalent without  
> the '=' character to conform to BridgeSupport APIs returning this  
> type by reference.
> - Fixed a bug in the BridgeSupport parser where an exception message  
> would not be correct.
> - A binding created from a method with a block passed-by now has a  
> reference to this block and uses it during evaluation.
> - Fixed many recursive bugs.
> - Fixed a bug when loading scripts where the current VM state  
> wouldn't be restored if an exception happened.
> - macrubyc now generates executables linking against  
> MacRuby.framework dynamically. For a static binary, the --static  
> argument must be passed.
> - Fixed a bug when the AOT bitcode would not be compiled as fully  
> relocatable.
> - LLVM's llc utility, required by macrubyc, is now installed inside  
> the framework's bindir.
> - macrubyc is now able to build fat binaries, accepting --arch  
> arguments.
> - Implemented the rb_provided() method.
> - Fixed many autoload bugs.
> - Fixed a bug where non-specific tags for quoted YAML scalars would  
> be printed.
> - Implemented :inline format for YAML sequences and mappings.
> - Implemented protected visibility check.
> - Added support for AOT compilation of literal bignums.
> - Fixed a bug when handling a sel_of_type argument where the  
> selector may be nil.
> - Fixed a bug in -[ByteString isEqual:] when the given object was  
> not CFString-based.
> - Fixed KVO bugs.
> - Fixed a bug where the return value of #initialize would be returned.
> - Added DTrace probes: method:entry, method:return, raise.
> - Fixed a compilation bug with variables declared inside class  
> definitions.
> - Fixed the uncaught exception routine to not fail if there is no  
> backtrace.
>
> Laurent
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel



More information about the MacRuby-devel mailing list