<html><body style="-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><base href="http://www.macruby.org/trac/report/16?format=tab&amp;USER=lsansonetti%40apple.com">Hi guys,<br><br>As promised, 0.8 is now released! It's now available in <a href="http://www.macruby.org/files/">http://www.macruby.org/files/</a> and I will push a new website later today with a blog article.<br><br>I would like to thank everyone who participated to this release, reporting bugs and patches. And special thanks to watson1978 who contributed a huge number of changes.<br><br>trunk (and tonight's nightly build) is now using the 0.9 version number. Let's continue fixing the bugs in our 1.0 milestone!<br><br>Highlights:<br><br>Lots of compatibility and stability fixes.<br>Minor enhancements to the Cocoa development support.<br>macirb (DietRB) now supports auto-indentation and completion.<br><br>Changes:<br><br>Fix a bug in Digest.digest and Digest.hexdigest when passing the algorithm name.<br>Fix a bug in Date when not using nsec in substitution for subsec.<br>Fix a bug in Date.httpdate when an exception "undefined method `size' for nil:NilClass'" was raised.<br>Fix a bug in #define_method when passed an objc-style selector.<br>Implement rb_str_modify() MRI API.<br>Fix a bug in the compiler when converting invoke instructions to call, where debugging metadata would not be properly transfered.<br>Fix a bug in -[NSArray ==:], make sure it returns false in case the receiver isn't an NSArray, instead of raising an exception.<br>Fix a bug in Benchmark::Tms#add! when a NameError would be raised.<br>Fix a bug in CMath.cbrt, when passed a negative value as argument.<br>Introduce Dispatch::Object which becomes the mother class of all Dispatch classes.<br>Introduce Dispatch::Object#dispatch_object which returns a raw pointer to the internal libdispatch type.<br>Fix a bug in BridgeSupport, by avoiding sanity pointer type comparison check in case the given pointer type is 'C'.<br>Fix missing connections in MacRuby Document-based Application template.<br>Fix a bug n String#split(sep, limit), when passed value to limit.<br>Introduce String#pointer which returns a Pointer object wrapping the string's internal storage.<br>Improve current algorithm to calculate line numbers in stack traces.<br>Fix a bug in BasicSocket#close_{read,write} where the actual fd would be left intact.<br>Fix a bug when creating a NameError exception where calling #inspect on the receiver object would raise an exception and cause an infinite loop.<br>Fix a bug in BasicSocket#close_{read,write} where we wouldn't raise an exception in case the stream was already closed<br>Fix a bug in BasicSocket#{listen,setsockopt} where we wouldn't raise an exception in case the stream was already closed<br>Fix a bug in StringIO#read(length). Should return empty string when specified 0 to length.<br>Fix a bug in StringIO#read(length, buffer). Should set empty string to buffer when calls at EOF.<br>Fix a bug in File#size. Should throw an IOError exception when calls with closed stream.<br>Fix a bug in the compilatin of #eval statements with Binding objects. When creating a binding, keep a reference to the top one.<br>Fix a bug in IO#sysread where it should throw an EOFError.<br>Fix a bug in IO#sysread(length). Should return empty string when specified 0 to length.<br>Implement rb_protect() and rb_jump_tag() MRI API.<br>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).<br>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.<br>Improve +[MacRuby sharedRuntime] to make the load path relocatable in case MacRuby.framework is embedded in a .app.<br>Improve stack traces by now including yield statements. Attach DWARF metadata when compiling yield calls.<br>Fix a bug in Method#call where the method cache would not be used.<br>Implement rb_str_split() MRI API.<br>Implement rb_hash_tbl() MRI API.<br>Implement rb_global_variable() MRI API.<br>Implement rb_iterate() MRI API.<br>Remove Leopard hacks since it's not supported anymore.<br>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).<br>Improve Pointer.new by supporting :boolean/:bool as a shortcut to 'B', and :selector/:sel as a shortcut to ':'.<br>Implement rb_gc_register_address() MRI API.<br>Introduce Pointer#+ and Pointer#- to allow the user to change the offset of a pointer (returning a new pointer object).<br>Change Pointer.new to only accept Symbols for type shortcuts.<br>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.<br>Fix a bug in the io.h header file, making sure it can be included without CoreFoundation.<br>Fix a bug in File.expand_path to not resolve symlinks.<br>Fix a bug in #methods and friends to not include unavailable (undefined, etc.) methods.<br>Implement rb_call_super() MRI API.<br>Implement rb_num_coerce_relop() MRI API.<br>Fix a bug in BigDecimal to throw exceptions when compared with nil.<br>Fix a bug in IO#gets(nil). Will return all data which was read from the stream.<br>Fix a bug in IO#gets(nil, limit). Will return data of limited length.<br>Implement rb_obj_instance_eval() MRI API.<br>Introduce Kernel#getpass method, which wraps the getpass(3) API.<br>Fix a bug in the compilation of var slots, where binding slots would be taken first before block dynamic slots.<br>Fix a parser bug by removing useless range literal optimization.<br>Fix a bug in IO#gets(limit). Will return nil when calls at EOF.<br>Fix a bug in IO#readlines(limit) when an infinite loop could be entered.<br>Fix a bug in IO#gets(0) to return empty string.<br>Fix a bug in IO#gets(sep, 0) to return empty string.<br>Update DietRB to 0.6.0 which adds auto-indentation and file path completion in strings.<br>Improve the compilation of converter routines, by now supporting C-style arrays ('[' ... ']' runtime type).<br>Fix a bug in IO.readlines, when the last element wasn't returned.<br>Fix a bug in BrigeSupport, when doing sanity pointer type check, ignore '=' characters in type signatures.<br>Fix bugs in IO#dup and IO#binmode. Will raise an IOError exception with the closed stream.<br>Fix warnings in BridgeSupport when poking for the __octype__ hidden boxed ivar.<br>Fix bugs in IO#close_{read,write} to not wait completion of child process.<br>Fix a bug in IO.popen to properly cononect the pipe into the stdin of the child process.<br>Implement pipeline support in IO.readlines.<br>Fix a bug in IO.read to close resources surely, in case an exception happens.<br>Fix various bugs in ARGF methods, #each_{line,byte,char}, #getc, #read, #readlines, #getbyte, #read{char,byte,line}, #chars, #lines, #bytes.<br>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 #&lt;&lt;.<br>Fix a bug in StringScanner#rest when it would return nil sometimes.<br>Fix various String methods, to copy the status of the taint and untrusted flags.<br>Fix a bug in String#sub! to throw an exception with frozen string, also when replacing was not performed.<br>Improve the Xcode MacRuby apps entry point, by automatically loading the BridgeSupport files of frameworks linked into the product's executable.<br>Change +protocolWithName: method signature. &nbsp;This will avoid the Objective-C runtime to think the returned object is an Objective-C object, which would issue warnings and crash.<br>NSObject's conformsToProtocol: methods will check if given Ruby classes implement the protocol methods, at runtime.<br>Fix various formatting bugs in #sprintf().<br>Fix a bug in the rake clean:rbo Rakefile task, making sure to remove the C extensions' rbo files too.<br>Fix warnings in macirb.<br>Fix a bug in String#setbyte.<br>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).<br>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).<br>Implement \G support in regexp layer.<br>Fix various bugs in Array#pack.<br>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).&nbsp;Instead we now always use the dynamic resolver.<br>Fix a bug in Kernel$$+.<br>Implement StringIO#external_encoding and StringIO#internal_encoding.<br>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.<br>Undefine Symbol#to_str.<br>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.<br>Fix a bug in the YAML extension when parsing numeric strings.<br>The Foundation framework is now marked as multithreaded by default.<br>Improve the support of Dir.tmpdir.<br>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&nbsp;Proc when calling the C-level block.<br>Fix bugs in String#chop and String#reverse, to work properly with non-BMP characters.<br>Fix install permissions for Info.plist and InfoPlist.strings.<br>Fix a string comparison bug, by making ascii-only strings now compatible with any other string.<br>Implement $_ (last time) variable setters.<br>Make NSObject's performSelector: and friends dispatch pure-ruby methods properly.<br>Fix a bug in Dir.glob to convert paths to unicode normalization form C.<br>The compiler is now using LLVM 2.8.<br>Remove the lib/dispatch layer.<br>Fix a bug when STDIO file descriptors could be closed.<br>Fix a bug in Array#uniq, to not remove the element of the array when object type is different.<br>Fix a bug that prevented CSV from parsing all multi-line fields correctly.<br>Fix various Webrick bugs.<br>Fix IO.open to not raise a warning in case a block is passed.<br>Fix a bug in String#lines to yield the paragraph when passed ''.<br>Implement Module.nesting.<br>Fix a bug in String#delete (and friends) when an escaped dash character in the transliteration pattern would still be interpreted as a range.<br>Fix a bug in IO#close, #close_{read,write} to throw SecurityError when $SAFE is 4.<br>Fix various bugs in Array#product.<br><br>Tickets closed:<div><br><div>ticket<span class="Apple-tab-span" style="white-space:pre">        </span>summary</div><div>969<span class="Apple-tab-span" style="white-space:pre">        </span>Need to implement rb_gc_register_address</div><div>720<span class="Apple-tab-span" style="white-space:pre">        </span>methods from define_method() can't be performed from ObjC</div><div>281<span class="Apple-tab-span" style="white-space:pre">        </span>Bundles pointing to local MacRuby installation instead of embedded</div><div>922<span class="Apple-tab-span" style="white-space:pre">        </span>Writing a MacFUSE fs doesn't work when delegating methods</div><div>143<span class="Apple-tab-span" style="white-space:pre">        </span>macgem does not set chmod +x on files in archive</div><div>944<span class="Apple-tab-span" style="white-space:pre">        </span>MacRuby should throw an IOError exception when calls Socket#listen #setsockopt with closed socket.</div><div>1012<span class="Apple-tab-span" style="white-space:pre">        </span>Inconsistent Regex behaviour</div><div>493<span class="Apple-tab-span" style="white-space:pre">        </span>signals cannot be intercepted</div><div>936<span class="Apple-tab-span" style="white-space:pre">        </span>Kernel#caller reports the wrong line numbers</div><div>978<span class="Apple-tab-span" style="white-space:pre">        </span>macirb gives a weird error when I dereference a pointer to a CFArray</div><div>981<span class="Apple-tab-span" style="white-space:pre">        </span>File.expand_path should not return actual file path with Symbolic link.</div><div>1015<span class="Apple-tab-span" style="white-space:pre">        </span>mark Cocoa as multithreaded by default</div><div>979<span class="Apple-tab-span" style="white-space:pre">        </span>Find.find standard library broken in macirb</div><div>940<span class="Apple-tab-span" style="white-space:pre">        </span>MacRuby should throw an exception when calls IO#read/write without status of READABLE/WRITABLE.</div><div>238<span class="Apple-tab-span" style="white-space:pre">        </span>rdoc memleaks &amp; segfaults when installing gems</div><div>1026<span class="Apple-tab-span" style="white-space:pre">        </span>IO::open give a warning when passed a block</div><div>993<span class="Apple-tab-span" style="white-space:pre">        </span>Assertion failure : vm.cpp</div><div>783<span class="Apple-tab-span" style="white-space:pre">        </span>Patch for builder.rb error: invalid byte sequence in US-ASCII</div><div>782<span class="Apple-tab-span" style="white-space:pre">        </span>Segfault occurs with exception is raised from object with broken #inspect</div><div>540<span class="Apple-tab-span" style="white-space:pre">        </span>segfault with NSURLDownload with GC on</div><div>1003<span class="Apple-tab-span" style="white-space:pre">        </span>Copied Proc objects cause crash when used as Objective-C blocks</div><div>906<span class="Apple-tab-span" style="white-space:pre">        </span>Double BOM force_encoding bug (from HAML)</div><div>887<span class="Apple-tab-span" style="white-space:pre">        </span>calling join on an Array of BINARY Strings returns UTF-8, may raise Encoding::CompatibilityError.</div><div>823<span class="Apple-tab-span" style="white-space:pre">        </span>String comparison issues when different encodings are used</div><div>925<span class="Apple-tab-span" style="white-space:pre">        </span>MacRuby use an insubstantial rb_str_modify() in ossl_ssl.c</div><div>1022<span class="Apple-tab-span" style="white-space:pre">        </span>move to llvm 2.8</div><div>955<span class="Apple-tab-span" style="white-space:pre">        </span>Problem printing arrays in 0.7</div><div>956<span class="Apple-tab-span" style="white-space:pre">        </span>macirb NSArray ArgumentError</div><div>943<span class="Apple-tab-span" style="white-space:pre">        </span>tab completion of files crashes macirb</div><div>831<span class="Apple-tab-span" style="white-space:pre">        </span>Received request header with Webrick HTTPD is broken after GC is executed.</div><div>737<span class="Apple-tab-span" style="white-space:pre">        </span>Unpack inconsistencies (possibly related to issue #605?)</div><div>1008<span class="Apple-tab-span" style="white-space:pre">        </span>Can't get the last line from $_. Need to implement rb_lastline_get and rb_lastline_set.</div><div>952<span class="Apple-tab-span" style="white-space:pre">        </span>Should set got string to $_ when calls StringIO#gets #readline.</div><div>288<span class="Apple-tab-span" style="white-space:pre">        </span>miniruby bench on 32 bit fails</div><div>895<span class="Apple-tab-span" style="white-space:pre">        </span>MacRuby crashes when trying to parse an XML document with nokogiri</div><div>923<span class="Apple-tab-span" style="white-space:pre">        </span>Kernel#caller returns an empty stack trace</div><div>959<span class="Apple-tab-span" style="white-space:pre">        </span>CALayers can have a problem resolving method in superclass.</div><div>957<span class="Apple-tab-span" style="white-space:pre">        </span>[Macruby sharedRuntime] should relocate paths when embedded in a Objective-C app</div><div>966<span class="Apple-tab-span" style="white-space:pre">        </span>MacRuby encoding error with Mail gem</div><div>632<span class="Apple-tab-span" style="white-space:pre">        </span>performSelector behaves oddly.</div><div>19<span class="Apple-tab-span" style="white-space:pre">        </span>Problems with method_missing</div><div>105<span class="Apple-tab-span" style="white-space:pre">        </span>BridgeSupport can't convert KCGSessionEventTap as an argument for CGEventTapCreate</div><div>428<span class="Apple-tab-span" style="white-space:pre">        </span>AOT compiled script can't get rescued</div><div>928<span class="Apple-tab-span" style="white-space:pre">        </span>"MacRuby throws an exception of ""undefined method `size' for nil:NilClass'"" with Date.httpdate."</div><div>924<span class="Apple-tab-span" style="white-space:pre">        </span>"MacRuby throws an exception of ""Unsupported digest algorithm (OpenSSL::Digest::MD5)."""</div><div>945<span class="Apple-tab-span" style="white-space:pre">        </span>MacRuby should throw an IOError exception when calls Socket#close_read #close_write with closed socket.</div><div>964<span class="Apple-tab-span" style="white-space:pre">        </span>Need to implement rb_global_variable</div><div>985<span class="Apple-tab-span" style="white-space:pre">        </span>Need to implement rb_obj_instance_eval</div><div>965<span class="Apple-tab-span" style="white-space:pre">        </span>Regexp literal with options broken in macirb</div><div>926<span class="Apple-tab-span" style="white-space:pre">        </span>"MacRuby throws an exception of ""undefined method `subsec'"" with DateTime#inspect."</div><div>932<span class="Apple-tab-span" style="white-space:pre">        </span>MacRuby Document-based Application template missing connections, etc</div><div>934<span class="Apple-tab-span" style="white-space:pre">        </span>passing Dispatch::Queue#dispatch_object to FSEventStreamSetDispatchQueue fails</div><div>929<span class="Apple-tab-span" style="white-space:pre">        </span>Colons are always appended to the selector during define_method</div><div>664<span class="Apple-tab-span" style="white-space:pre">        </span>MacRuby Crashes When Scheduling a Block to Run on the Main Thread from a Background Thread</div><div>933<span class="Apple-tab-span" style="white-space:pre">        </span>String#split(sep, limit) is broken when specified a limit.</div><div>963<span class="Apple-tab-span" style="white-space:pre">        </span>Need to implement rb_iterate</div><div>927<span class="Apple-tab-span" style="white-space:pre">        </span>"MacRuby throws an exception of ""undefined method `subsec'"" with Time#iso8601."</div><div>967<span class="Apple-tab-span" style="white-space:pre">        </span>Boolean pointer creation assertion</div><div>982<span class="Apple-tab-span" style="white-space:pre">        </span>Class#public_instance_methods keeps reporting methods after removing them</div><div>983<span class="Apple-tab-span" style="white-space:pre">        </span>Need to implement rb_call_super</div><div>984<span class="Apple-tab-span" style="white-space:pre">        </span>strange scoping error in macirb</div><div>1028<span class="Apple-tab-span" style="white-space:pre">        </span>Strings generated by a directory listing of files with Unicode chars in name cannot be compared</div><div>974<span class="Apple-tab-span" style="white-space:pre">        </span>Failed assertion when creating pointer Pointers</div><div>971<span class="Apple-tab-span" style="white-space:pre">        </span>Pointer constructor bug</div><div>973<span class="Apple-tab-span" style="white-space:pre">        </span>EventMachine fails to build.</div><div>1032<span class="Apple-tab-span" style="white-space:pre">        </span>dispatch library should be removed</div><div>999<span class="Apple-tab-span" style="white-space:pre">        </span>Handle Obj-C protocols better in MacRuby</div><div>648<span class="Apple-tab-span" style="white-space:pre">        </span>"(TypeError) ""unrecognized runtime type"" when receiving a CGEventTapProxy"</div><div>576<span class="Apple-tab-span" style="white-space:pre">        </span>It's possible to close STDOUT (and presumably other standard IO streams)</div><div>968<span class="Apple-tab-span" style="white-space:pre">        </span>"""NATIVE"" symbol is not solved within rubygems."</div><div>961<span class="Apple-tab-span" style="white-space:pre">        </span>MacRuby trunk doesn't show the correct file and line numbers in stacktraces involving blocks</div><div>772<span class="Apple-tab-span" style="white-space:pre">        </span>Assertion fails with 4 bytes non-BMP UTF-8.</div><div>962<span class="Apple-tab-span" style="white-space:pre">        </span>Appscript framework causes EXC_BAD_ACCCESS error with MacRuby 0.7</div><div>990<span class="Apple-tab-span" style="white-space:pre">        </span>Calling some CGContext functions raises 'instance variable __octype__ not initialized' warning</div><div>1013<span class="Apple-tab-span" style="white-space:pre">        </span>Segmentation fault when using readline</div><div>1000<span class="Apple-tab-span" style="white-space:pre">        </span>Xcode fails to load bridgesupport file automatically for user created framework</div><div>520<span class="Apple-tab-span" style="white-space:pre">        </span>Confusion in data type names for Core OpenGL</div><div>1010<span class="Apple-tab-span" style="white-space:pre">        </span>NSPoint/CGpoint =&gt;NaN</div><div>135<span class="Apple-tab-span" style="white-space:pre">        </span>macgem won't install hpricot</div><div>1011<span class="Apple-tab-span" style="white-space:pre">        </span>Sinatra fails silently on MacRuby 0.8 nightly builds</div><div>1004<span class="Apple-tab-span" style="white-space:pre">        </span>warnings when running macirb</div><div>1006<span class="Apple-tab-span" style="white-space:pre">        </span>rake clean target is now missing intermediate build results</div><div>267<span class="Apple-tab-span" style="white-space:pre">        </span>Change permissions on Info.plist and InfoPlist.strings</div><div>382<span class="Apple-tab-span" style="white-space:pre">        </span>undefined constants in Snow Leopard</div><div>1014<span class="Apple-tab-span" style="white-space:pre">        </span>Unhelpful error message when loading the restclient gem</div><div>829<span class="Apple-tab-span" style="white-space:pre">        </span>Retrieving a list of local variables from a Binding instance fails</div><div>1002<span class="Apple-tab-span" style="white-space:pre">        </span>AXUIElement functions won't accept Pointers of type :id</div><div>865<span class="Apple-tab-span" style="white-space:pre">        </span>"String#lines(separator) is broken when specified separator == """"."</div><div>432<span class="Apple-tab-span" style="white-space:pre">        </span>Module.nesting not working</div><div>1001<span class="Apple-tab-span" style="white-space:pre">        </span>All future significant numbers should be novelty tickets</div><div>975<span class="Apple-tab-span" style="white-space:pre">        </span>macri requires superuser permissions to update cache</div><div>91<span class="Apple-tab-span" style="white-space:pre">        </span>rss module doesn't work - problem in dublincore.rb or module_eval</div><div>500<span class="Apple-tab-span" style="white-space:pre">        </span>DRb problems</div><div>421<span class="Apple-tab-span" style="white-space:pre">        </span>MacGem reports wrong executable directory</div><div>848<span class="Apple-tab-span" style="white-space:pre">        </span>Recieving SIGABRT signal from GDB</div><br>Laurent</div></body></html>