Lots of compatibility and stability fixes.
Minor enhancements to the Cocoa development support.
macirb (DietRB) now supports auto-indentation and completion.


Fix a bug in Digest.digest and Digest.hexdigest when passing the algorithm name.
Fix a bug in Date when not using nsec in substitution for subsec.
Fix a bug in Date.httpdate when an exception "undefined method `size' for nil:NilClass'" was raised.
Fix a bug in #define_method when passed an objc-style selector.
Implement rb_str_modify() MRI API.
Fix a bug in the compiler when converting invoke instructions to call, where debugging metadata would not be properly transfered.
Fix a bug in -[NSArray ==:], make sure it returns false in case the receiver isn't an NSArray, instead of raising an exception.
Fix a bug in Benchmark::Tms#add! when a NameError would be raised.
Fix a bug in CMath.cbrt, when passed a negative value as argument.
Introduce Dispatch::Object which becomes the mother class of all Dispatch classes.
Introduce Dispatch::Object#dispatch_object which returns a raw pointer to the internal libdispatch type.
Fix a bug in BridgeSupport, by avoiding sanity pointer type comparison check in case the given pointer type is 'C'.
Fix missing connections in MacRuby Document-based Application template.
Fix a bug n String#split(sep, limit), when passed value to limit.
Introduce String#pointer which returns a Pointer object wrapping the string's internal storage.
Improve current algorithm to calculate line numbers in stack traces.
Fix a bug in BasicSocket#close_{read,write} where the actual fd would be left intact.
Fix a bug when creating a NameError exception where calling #inspect on the receiver object would raise an exception and cause an infinite loop.
Fix a bug in BasicSocket#close_{read,write} where we wouldn't raise an exception in case the stream was already closed
Fix a bug in BasicSocket#{listen,setsockopt} where we wouldn't raise an exception in case the stream was already closed
Fix a bug in StringIO#read(length). Should return empty string when specified 0 to length.
Fix a bug in StringIO#read(length, buffer). Should set empty string to buffer when calls at EOF.
Fix a bug in File#size. Should throw an IOError exception when calls with closed stream.
Fix a bug in the compilatin of #eval statements with Binding objects. When creating a binding, keep a reference to the top one.
Fix a bug in IO#sysread where it should throw an EOFError.
Fix a bug in IO#sysread(length). Should return empty string when specified 0 to length.
Implement rb_protect() and rb_jump_tag() MRI API.
Add a sample showing how to use CoreLocation to find the user's location and open it in a google map page using the default browser (Scripts/locator.rb).
Fix a bug in the super dispatch when we try to super call a method under the same selector as the current one but on a receiver from a totally different class hierarchy.
Improve +[MacRuby sharedRuntime] to make the load path relocatable in case MacRuby.framework is embedded in a .app.
Improve stack traces by now including yield statements. Attach DWARF metadata when compiling yield calls.
Fix a bug in Method#call where the method cache would not be used.
Implement rb_str_split() MRI API.
Implement rb_hash_tbl() MRI API.
Implement rb_global_variable() MRI API.
Implement rb_iterate() MRI API.
Remove Leopard hacks since it's not supported anymore.
Fix a bug in the compilation of bitfield types. Raise an exception in case the type string is invalid except of crashing the process (as we might be calling from Pointer.new).
Improve Pointer.new by supporting :boolean/:bool as a shortcut to 'B', and :selector/:sel as a shortcut to ':'.
Implement rb_gc_register_address() MRI API.
Introduce Pointer#+ and Pointer#- to allow the user to change the offset of a pointer (returning a new pointer object).
Change Pointer.new to only accept Symbols for type shortcuts.
Fix a bug in BridgeSupport by disabling a check when converting bignums into unsigned long longs as it may trigger false positives when using certain Cocoa APIs.
Fix a bug in the io.h header file, making sure it can be included without CoreFoundation.
Fix a bug in File.expand_path to not resolve symlinks.
Fix a bug in #methods and friends to not include unavailable (undefined, etc.) methods.
Implement rb_call_super() MRI API.
Implement rb_num_coerce_relop() MRI API.
Fix a bug in BigDecimal to throw exceptions when compared with nil.
Fix a bug in IO#gets(nil). Will return all data which was read from the stream.
Fix a bug in IO#gets(nil, limit). Will return data of limited length.
Implement rb_obj_instance_eval() MRI API.
Introduce Kernel#getpass method, which wraps the getpass(3) API.
Fix a bug in the compilation of var slots, where binding slots would be taken first before block dynamic slots.
Fix a parser bug by removing useless range literal optimization.
Fix a bug in IO#gets(limit). Will return nil when calls at EOF.
Fix a bug in IO#readlines(limit) when an infinite loop could be entered.
Fix a bug in IO#gets(0) to return empty string.
Fix a bug in IO#gets(sep, 0) to return empty string.
Update DietRB to 0.6.0 which adds auto-indentation and file path completion in strings.
Improve the compilation of converter routines, by now supporting C-style arrays ('[' ... ']' runtime type).
Fix a bug in IO.readlines, when the last element wasn't returned.
Fix a bug in BrigeSupport, when doing sanity pointer type check, ignore '=' characters in type signatures.
Fix bugs in IO#dup and IO#binmode. Will raise an IOError exception with the closed stream.
Fix warnings in BridgeSupport when poking for the __octype__ hidden boxed ivar.
Fix bugs in IO#close_{read,write} to not wait completion of child process.
Fix a bug in IO.popen to properly cononect the pipe into the stdin of the child process.
Implement pipeline support in IO.readlines.
Fix a bug in IO.read to close resources surely, in case an exception happens.
Fix various bugs in ARGF methods, #each_{line,byte,char}, #getc, #read, #readlines, #getbyte, #read{char,byte,line}, #chars, #lines, #bytes.
Fix a bug in the IO layer to dispatch a message to #write instead of calling the default method directly. This fixes bugs in Zlib::GzipWriter#putc, #print, #printf and #<<.
Fix a bug in StringScanner#rest when it would return nil sometimes.
Fix various String methods, to copy the status of the taint and untrusted flags.
Fix a bug in String#sub! to throw an exception with frozen string, also when replacing was not performed.
Improve the Xcode MacRuby apps entry point, by automatically loading the BridgeSupport files of frameworks linked into the product's executable.
Change +protocolWithName: method signature.  This will avoid the Objective-C runtime to think the returned object is an Objective-C object, which would issue warnings and crash.
NSObject's conformsToProtocol: methods will check if given Ruby classes implement the protocol methods, at runtime.
Fix various formatting bugs in #sprintf().
Fix a bug in the rake clean:rbo Rakefile task, making sure to remove the C extensions' rbo files too.
Fix warnings in macirb.
Fix a bug in String#setbyte.
Fix a 32-bit ABI issue when calling a C function returning a struct that can fit inside a 64-bit integer (such as NSPoint).
Fix a bug in BridgeSupport by not raising a TypeError exception when passing any pointer as an void-...* argument (before this change, only void* arguments where ignored).
Implement \G support in regexp layer.
Fix various bugs in Array#pack.
Fix a performance bug by no longer registering all Objective-C classes as constants after calling #framework, which had the side effect of waking them up, messaging their +initialize method). Instead we now always use the dynamic resolver.
Fix a bug in Kernel$$+.
Implement StringIO#external_encoding and StringIO#internal_encoding.
Fix a performance memory allocation bug, by making sure Match objects created from the same string keep a reference to a unique, frozen string object.
Undefine Symbol#to_str.
Fix a bug in Array#join to return a string when the given array includes an object responding to to_ary/to_str/to_s.
Fix a bug in the YAML extension when parsing numeric strings.
The Foundation framework is now marked as multithreaded by default.
Improve the support of Dir.tmpdir.
Fix bugs related to the compilation of C-level blocks. Now allocate them in the autozone heap and emit a write barrier to the original ruby Proc object, to avoid premature garbage collection of the Proc when calling the C-level block.
Fix bugs in String#chop and String#reverse, to work properly with non-BMP characters.
Fix install permissions for Info.plist and InfoPlist.strings.
Fix a string comparison bug, by making ascii-only strings now compatible with any other string.
Implement $_ (last time) variable setters.
Make NSObject's performSelector: and friends dispatch pure-ruby methods properly.
Fix a bug in Dir.glob to convert paths to unicode normalization form C.
The compiler is now using LLVM 2.8.
Remove the lib/dispatch layer.
Fix a bug when STDIO file descriptors could be closed.
Fix a bug in Array#uniq, to not remove the element of the array when object type is different.
Fix a bug that prevented CSV from parsing all multi-line fields correctly.
Fix various Webrick bugs.
Fix IO.open to not raise a warning in case a block is passed.
Fix a bug in String#lines to yield the paragraph when passed ''.
Implement Module.nesting.
Fix a bug in String#delete (and friends) when an escaped dash character in the transliteration pattern would still be interpreted as a range.
Fix a bug in IO#close, #close_{read,write} to throw SecurityError when $SAFE is 4.
Fix various bugs in Array#product.

Post By Gishore J Kallarackal (2,121 Posts)

Gishore J Kallarackal is the founder of techgurulive. The purpose of this site is to share information about free resources that techies can use for reference. You can follow me on the social web, subscribe to the RSS Feed or sign up for the email newsletter for your daily dose of tech tips & tutorials. You can content me via @twitter or e-mail.

Website: → Techgurulive