Hi guys,

As promised, 0.8 is now released! It's now available in 
http://www.macruby.org/files/ and I will push a new website later today with a 
blog article.

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.

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!

Highlights:

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

Changes:

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.

Tickets closed:

ticket  summary
969     Need to implement rb_gc_register_address
720     methods from define_method() can't be performed from ObjC
281     Bundles pointing to local MacRuby installation instead of embedded
922     Writing a MacFUSE fs doesn't work when delegating methods
143     macgem does not set chmod +x on files in archive
944     MacRuby should throw an IOError exception when calls Socket#listen 
#setsockopt with closed socket.
1012    Inconsistent Regex behaviour
493     signals cannot be intercepted
936     Kernel#caller reports the wrong line numbers
978     macirb gives a weird error when I dereference a pointer to a CFArray
981     File.expand_path should not return actual file path with Symbolic link.
1015    mark Cocoa as multithreaded by default
979     Find.find standard library broken in macirb
940     MacRuby should throw an exception when calls IO#read/write without 
status of READABLE/WRITABLE.
238     rdoc memleaks & segfaults when installing gems
1026    IO::open give a warning when passed a block
993     Assertion failure : vm.cpp
783     Patch for builder.rb error: invalid byte sequence in US-ASCII
782     Segfault occurs with exception is raised from object with broken 
#inspect
540     segfault with NSURLDownload with GC on
1003    Copied Proc objects cause crash when used as Objective-C blocks
906     Double BOM force_encoding bug (from HAML)
887     calling join on an Array of BINARY Strings returns UTF-8, may raise 
Encoding::CompatibilityError.
823     String comparison issues when different encodings are used
925     MacRuby use an insubstantial rb_str_modify() in ossl_ssl.c
1022    move to llvm 2.8
955     Problem printing arrays in 0.7
956     macirb NSArray ArgumentError
943     tab completion of files crashes macirb
831     Received request header with Webrick HTTPD is broken after GC is 
executed.
737     Unpack inconsistencies (possibly related to issue #605?)
1008    Can't get the last line from $_. Need to implement rb_lastline_get and 
rb_lastline_set.
952     Should set got string to $_ when calls StringIO#gets #readline.
288     miniruby bench on 32 bit fails
895     MacRuby crashes when trying to parse an XML document with nokogiri
923     Kernel#caller returns an empty stack trace
959     CALayers can have a problem resolving method in superclass.
957     [Macruby sharedRuntime] should relocate paths when embedded in a 
Objective-C app
966     MacRuby encoding error with Mail gem
632     performSelector behaves oddly.
19      Problems with method_missing
105     BridgeSupport can't convert KCGSessionEventTap as an argument for 
CGEventTapCreate
428     AOT compiled script can't get rescued
928     "MacRuby throws an exception of ""undefined method `size' for 
nil:NilClass'"" with Date.httpdate."
924     "MacRuby throws an exception of ""Unsupported digest algorithm 
(OpenSSL::Digest::MD5)."""
945     MacRuby should throw an IOError exception when calls Socket#close_read 
#close_write with closed socket.
964     Need to implement rb_global_variable
985     Need to implement rb_obj_instance_eval
965     Regexp literal with options broken in macirb
926     "MacRuby throws an exception of ""undefined method `subsec'"" with 
DateTime#inspect."
932     MacRuby Document-based Application template missing connections, etc
934     passing Dispatch::Queue#dispatch_object to 
FSEventStreamSetDispatchQueue fails
929     Colons are always appended to the selector during define_method
664     MacRuby Crashes When Scheduling a Block to Run on the Main Thread from 
a Background Thread
933     String#split(sep, limit) is broken when specified a limit.
963     Need to implement rb_iterate
927     "MacRuby throws an exception of ""undefined method `subsec'"" with 
Time#iso8601."
967     Boolean pointer creation assertion
982     Class#public_instance_methods keeps reporting methods after removing 
them
983     Need to implement rb_call_super
984     strange scoping error in macirb
1028    Strings generated by a directory listing of files with Unicode chars in 
name cannot be compared
974     Failed assertion when creating pointer Pointers
971     Pointer constructor bug
973     EventMachine fails to build.
1032    dispatch library should be removed
999     Handle Obj-C protocols better in MacRuby
648     "(TypeError) ""unrecognized runtime type"" when receiving a 
CGEventTapProxy"
576     It's possible to close STDOUT (and presumably other standard IO streams)
968     """NATIVE"" symbol is not solved within rubygems."
961     MacRuby trunk doesn't show the correct file and line numbers in 
stacktraces involving blocks
772     Assertion fails with 4 bytes non-BMP UTF-8.
962     Appscript framework causes EXC_BAD_ACCCESS error with MacRuby 0.7
990     Calling some CGContext functions raises 'instance variable __octype__ 
not initialized' warning
1013    Segmentation fault when using readline
1000    Xcode fails to load bridgesupport file automatically for user created 
framework
520     Confusion in data type names for Core OpenGL
1010    NSPoint/CGpoint =>NaN
135     macgem won't install hpricot
1011    Sinatra fails silently on MacRuby 0.8 nightly builds
1004    warnings when running macirb
1006    rake clean target is now missing intermediate build results
267     Change permissions on Info.plist and InfoPlist.strings
382     undefined constants in Snow Leopard
1014    Unhelpful error message when loading the restclient gem
829     Retrieving a list of local variables from a Binding instance fails
1002    AXUIElement functions won't accept Pointers of type :id
865     "String#lines(separator) is broken when specified separator == """"."
432     Module.nesting not working
1001    All future significant numbers should be novelty tickets
975     macri requires superuser permissions to update cache
91      rss module doesn't work - problem in dublincore.rb or module_eval
500     DRb problems
421     MacGem reports wrong executable directory
848     Recieving SIGABRT signal from GDB

Laurent
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to