Awesome, thanks a lot.

Sent from my iPhone

On 02/10/2010, at 01:44, Laurent Sansonetti <lsansone...@apple.com> wrote:

> Hi guys,
> 
> MacRuby 0.7 is now ready to be released. I created a branch called "0.7" 
> which might host minor fixes, and I'm now working on preparing the release 
> and announcement post. It should now be released very soon, likely Monday (we 
> want to do more testing).
> 
> In the meantime, trunk becomes MacRuby 0.8, where the story continues!
> 
> Thanks to everyone working on this release, which closes a successful 5 
> months development cycle.
> 
> Following are the complete release notes, the upcoming announcement post will 
> be clearer :-)
> 
> Highlights:
> 
> * Better Ruby compatibility. Better C extensions support. This release has 
> about 90% of RubySpec coverage.
> * Better concurrency. Dispatch cache has been rewritten to be thread safe. 
> Fixed several race conditions and deadlocks. MacRuby can now handle a 
> significant number of concurrent HTTP requests through ControlTower. Fixes 
> and improvements in the Dispatch library.
> * Better Cocoa support. Reduced runtime overhead, fixed minor problems and 
> simplified the integration with Cocoa classes. C-style blocks are now 
> supported in MacRuby, assuming you install the new BridgeSupport preview 
> release. The sandbox(7) functionality is now exposed in the Sandbox class.
> * Better performance. MacRuby's kernel primitives are now pre-compiled into 
> LLVM bitcode and inlined later into the module. Fixed minor performance 
> regressions introduced in last release. Optimized codegen, instance variables 
> and multiple assignments. In JIT mode, cold paths are now interpreted and not 
> JIT compiled. Introduced a regression performance suite.
> * MacIRB has been rewritten from scratch. The new version (called DietRB) is 
> lighter and better implemented. It should be compatible with the old IRB.
> * Started working on static Ruby compilation, which generates executable 
> binaries embedding the MacRuby runtime, not making use of the JIT compiler or 
> BridgeSupport runtime metadata. This is a work in progress and we intend to 
> finish it in the next release.
> * Mac OS v10.5 (Leopard) is no longer supported. We require MacRuby users to 
> upgrade to Snow Leopard.
> 
> Other changes:
> 
> * Fixed clang/clang++ build.
> * Fixed a crash when trying to create a byte string out of an empty NSString.
> * Fixed a small typo in the compilation error message.
> * Fixed a bug when bridgesupport files for linked frameworks wouldn't be 
> loaded.
> * Fixed a crash when calling #to_json on a symbol.
> * Fixed a bug in Method#call which would incorrectly change the safe level.
> * Now filtering the symbols we expose in the macruby dylib.
> * Avoid calling xmalloc() with a zero size (fixes several performance 
> problems).
> * #sysread with a len argument must return a binary string, not UTF-8.
> * Allow Pointer objects of type 'c' to be passed as C-style char arrays.
> * Fixed a bug in NSString#== where an exception would occur if the operand 
> cannot be converted as a string.
> * Got rid of the NSNumber glue, it's useless since NSNumbers are always 
> converted.
> * In case we are in a .app with MacRuby.framework embedded inside, relocate 
> the load paths accordingly.
> * Deal with numeric escapes in regexps.
> * Symbol#to_proc now generates a Proc that can accept a variable number of 
> arguments.
> * Fixed minor bugs in symbol and enumeration.
> * Implemented of String#encode.
> * Fixed String#each_byte to return positive numbers.
> * Made NSObject#== and NSObject#eql? use -[NSObject isEqual:].
> * Fixed minor bugs in Array and implemented #rotate, #rotate!, #select!, 
> #keep_if, #sort_by!.
> * More robust runtime signature parsing, by dynamically allocating the 
> temporary buffer instead of using a static array (which might be too small 
> when parsing big signatures like in CoreAudio).
> * Be careful when compiling the struct #new method, some fields might be 
> large (ABI-wise) structures.
> * Fixed minor bugs in Dir, implemented #home.
> * Create symbols from the auto zone, allowing associative references to work 
> without emitting warnings/errors.
> * Fixed minor bugs in Enumerable and implemented #flat_map, #collect_concat, 
> #each_entry, #each_slice, #each_cons, #each_with_object.
> * Fixed a bug in the compilation of the alias keyword, some arguments can be 
> interpolated symbols (not literals).
> * Removed the sigbus/sigsegv signal handlers, let macruby crash immediately 
> to make the life of crashtracer easier.
> * Fixed minor bugs in Enumerator and implemented #each_with_object, 
> #with_object.
> * Fixed minor bugs in File and implemented #absolute_path and #size.
> * Backported latest net/http from ruby trunk.
> * Fixed minor bugs in Fixnum and implemented #magnitude.
> * Fixed minor bugs in Float and implemented #rationalize.
> * Added some missing MRI C-APIs.
> * Added support for the nkf extension.
> * Fixed a bug when popping exceptions from compiled code.
> * Fixed minor bugs in the GC module.
> * Made the division of negative fixnums behave like MRI.
> * Fixed minor bugs in Math.
> * Fixed #define_method with a Proc to compile a stub with the same arity as 
> the block.
> * Cleaned up public headers.
> * Simplified the Core Data Xcode template.
> * Better ivar slot system for RubyObject + misc fixes/cleanup.
> * Introduced the VM_VERIFY_IR environment variable to force a LLVM module 
> verification. Made sure the RubySpec suite runs with no verification error.
> * Webrick bug fixes.
> * Follow API changes in LLVM.
> * Define the encoding constants in upper case, also.
> * Some of the VM primitives are not precompiled into bitcode and later 
> inlined. 
> * Reduced usage of std::vector.
> * New sample code: Suru, a to-do list app that uses Core Data for storage.
> * Fixed a bug when rbconfig.rb would not honor ARCH_FLAG.
> * Don't recognize ^v as a CF type + misc cleanup.
> * A more efficient class flags mechanism.
> * Reduced the number of default slots in RubyObjects to 4.
> * rake now accepts optional CC and CXX variable to setup custom compilers. To 
> compile with clang, use rake CC=clang CXX=clang++.
> * Fixed a bug in IO#read when the given buffer wouldn't be truncated.
> * Don't temporarily disable the collector when booting the runtime.
> * Do not raise ArgumentError in the case where the method has been undefined.
> * Implemented String#each_codepoint and String#codepoints.
> * macrubyc: when linking a final executable, also link against Foundation and 
> libauto since some of their symbols can now be inlined.
> * Set the actual backtrace to Obj-C exceptions, instead of an empty array.
> * Per-vm method cache + misc fixes/improvements.
> * Fixed the return value of NSArray#reject.
> * Ruby strings now respond to #to_data which returns an NSData object 
> wrapping the internal storage.
> * Implemented File#realpath and File#readdirpath.
> * Implemented IO#sysread (unbuffered reading).
> * Ruby version is now set to 1.9.2.
> * Do not run node if node is not executable.
> * Do not allow creation of pointer to "v".
> * Removed usage of autozone weak references.
> * macrubyc: always link using the current macruby's libdir.
> * Allow reserved keywords to be used as function keyword arguments.
> * Removed usage of RTTI.
> * macrubyc: now strip symbols from binaries.
> * Strip symbols from shared and static library during install.
> * Fixed minor encoding bugs in net/protocol and resolv.
> * Fixed a bug in IO#sysread to make sure the buffer is properly resized.
> * Don't instantiate the JIT when running in AOT mode.
> * Honor the target triple from the deserialized kernel module
> * Expose the VM_KERNEL_PATH variable to specify a kernel bitcode file.
> * When the default -description is called, avoid calling #to_s on the object 
> if the implementation is the same.
> * Fixes using ruby Array methods on SBElementArray objects.
> * Create all functions with internal linkage since the super dispatcher no 
> longer requires external symbols.
> * AOT: when preparing methods, also pre-compile objc stubs (currently, only 
> generic ones).
> * Added Object#to_plist and Kernel#load_plist for property list manipulation.
> * Fixed bugs in open3 lib and Process.spawn.
> * Time now inherits from NSDate.
> * Before acquiring the core lock when resolving a method, make sure the VM 
> object has been created/registered, since it might be needed when adding the 
> method and if called by a foreign thread it might cause a deadlock.
> * Fixed the compilation of while loops with empty bodies (ex: '() while 1').
> * C extension Ruby files are now pre-compiled during build.
> * +[MacRuby sharedRuntime]: don't forget to init the JIT!
> * When creating a regex matcher, don't crash if there is no capture.
> * macrubyc: added --sdk option (work in progress).
> * Fixed build on 10.5. But it's no longer supported, so don't use it.
> * Reduce/restore safe level when formatting an exception (since it may taint 
> objects).
> * Fixed bignum promotion when multiplying fixnums.
> * Don't crash when trying to deal with constants whose symbols cannot be 
> located or constants tagged as magic cookies.
> * Added support for splat when clauses inside empty-case statements (don't 
> ask me why).
> * Make sure Bignum#modulo uses the implementation function.
> * Fixed a minor bug in ENV#rassoc.
> * Added support for comparison of recursive structs.
> * Fixed a bug in IO#gets.
> * When preparing a block, make sure to write barrier the reference to self.
> * Always return 'main' as the top level object description.
> * String#gsub with block: don't check for receiver mutable state.
> * Removed Array#nitems and fixed Array#count for empty arrays.
> * Thread#join: when timeout is provided, make sure to do multiple sleeps and 
> return appropriately if the given thread has finished.
> * Fixed #marshal_load for non-array arguments.
> * Fixed bugs in the NSString forwarding methods.
> * Implement Socket#sendfile.
> * Fixed many crash bugs discovered by fuzzing.
> * Added a Sandbox class that adds sandbox(7) functionality.
> * Implement #remove_instance_variable for RubyObjects.
> * Fixed #remove_instance_variable for native objects.
> * Fixed several bugs in the BridgeSupport parser to make it read the files 
> created by the new generator.
> * Lots of openssl bug fixes.
> * New sample code: Sketch, a MacRuby port of the existing Objective-C 
> application.
> * Added basic support to define/message ignored selectors (retain & friends).
> * Fixed the compilation of store instructions to not be compiled as volatile, 
> allowing further optimizations.
> * Fixed a crash when yielding a block inside a loop in a thread.
> * Fixed a bug in Method#== where it wouldn't work on pure objc methods.
> * Honor the original string encoding when generating substrings out of a 
> regexp matcher.
> * When unregistering a thread, mark is as dead very early to avoid pthread 
> mutex lock problems when potentially canceling it later.
> * Raise an exception in case we try to stop the only running thread.
> * Fixed many zlib bugs/crashes.
> * #instance_eval: don't attempt to create singleton classes on symbols.
> * Fixed a compiler bug where it would assume that the argument of the undef 
> keyword would always be a literal symbol.
> * Honor bridgesupport metadata when calculating the default objc signature of 
> a new method.
> * Better C implemention of iconv.
> * Make sure rake won't overload -copy.
> * When trying to convert a string into a numeric type, raise an exception in 
> case the string encoding isn't ASCII incompatible.
> * Mutex#try_unlock: Add the mutex to the current thread mutexes on success.
> * Fixed a 1.9 bug in File.basename.
> * Fixed marshal load of large integers.
> * Fixed a bug when string-formatting numeric types.
> * Don't attempt to #load directories.
> * When killing the main thread, just exit the program.
> * Fixed a bug in File.extname.
> * Rewrote the regexp layer in pure C to avoid binary incompatibility issues 
> with ICU.
> * +[MacRuby sharedRuntime]: initialize the load path.
> * pack(U) should set an encoding of UTF-8.
> * String#strip: don't strip non-ASCII whitespaces.
> * Fixed #flatten not setting untrust state.
> * Properly reap child processes before closing their IO objects.
> * Hash#to_a: transfer untrusted status to the new array.
> * Honor ThreadGroup frozen state.
> * Don't allow a Thread object to be initialized twice.
> * Avoid mutual recursion while setting outers.
> * Merge webrick security fix from 10.6 SU.
> * Fixed a bug in the BridgeSupport parser when dealing with circular 
> dependencies + minor bug fixes.
> * Fixed multiple AOT feature #requires.
> * Fixed a memory leak in the BridgeSupport parser.
> * Fixed String#sum to accept bits argument greater than 64.
> * macrubyc: now accept more linker options: --compatibility_version, 
> --current_version and --install_name.
> * #sprintf: don't try to mutate symbols.
> * Optimized IO read_all.
> * Fixed alignment bugs in the GCD layer.
> * Dir.tmpdir: returns NSTemporaryDirectory() in last resort and not /tmp.
> * Re-cache Obj-C variadic calls when argc is different than cached.
> * macgem now asks confirmation before overriding binaries w/ different 
> shebang.
> * When a GCD block exits because of an uncaught exception, write a message on 
> stderr.
> * When a thread exits prematurely because of an exception, write a message on 
> stderr once the thread object is being finalized only if #join was never 
> called.
> * Range#each: make sure break works in all cases.
> * Fixed reentrance bugs in #load & friends.
> * Synced bigdecimal extension with upstream code + fix some crashers 
> (heap/stack corruption).
> * Don't crash when using defined?(super) out of a method block.
> * BridgeSupport parser: in 32-bit mode, ignore elements having only type64 
> attributes.
> * Let's complain when trying to resize a string with a negative capacity like 
> MRI does.
> * Don't raise an exception when comparing an NSDictionary with a non-one.
> * No longer install digest.h.
> * Issue write barriers when storing objects into Binding slots (this should 
> fix most of the macirb crashers).
> * Fixed a bug in the super dispatcher: in case we can't locate the receiver's 
> class in the ancestors chain, because it may have been extended, let's assume 
> the super method will be in the direct superclass instead.
> * #require: forget about the current binding during parsing.
> * Rewrote AOT .rbo files loading mechanism: now using a callback routine 
> instead of calling directly the main scope from the dylib constructor, since 
> the dyld trampoline will not properly forward C++ exceptions.
> * Added 2 new sample code scripts: javascript.rb and webrick.rb.
> * Fixed a bug when changing a method's visibility to public would not be 
> taken into account.
> * Don't invalidate respond_to and dispatch caches while we are still booting 
> the runtime.
> * When calculating a backtrace path from a -e script, omit the current 
> directory.
> * File.unlink: rewrote so that the arguments aren't wrapped inside an array 
> anymore, to avoid a resurrection error in lib/tempfile.rb.
> * Fixed a silly bug in String#setbyte.
> * macrubyc: disable frame pointer elimination optimization because it will 
> mess up with the backtracing routine which walks through the stack.
> * Added basic support for __method__ and __callee__.
> 
> Fixed tickets:
> 
> 677    Macruby segfaults when performing symbol#to_json
> 702    AudioTimeStamp.new crashes MacRuby 0.6
> 773    Segfault occurs when specified $SAFE=4 and exception is generated.
> 739    String#match calls block twice
> 879    open-uri/stringio throw enoding errors
> 710    MacRuby 0.6 performance decline from 0.5 in AO Bench
> 841    Segfault occurs when calls the Rake::Application#const_warning.
> 872    An Instance of Thread is not necessary to be able to reinitialize.
> 740    Building LZMA gem fails
> 511    GCD crash with indirect method access
> 741    All character encoding of the string become UTF-8 when use 
> force_encoding.
> 719    IO.read is broken
> 716    Undefining a method and then calling the method with a different arity 
> than the original fails wrong
> 790    Exception is not generated when calls Thread.stop with only one thread.
> 902    Bus error with OpenSSL::Random.pseudo_bytes.
> 728    pre-definition of true conflicts with the mysql gem
> 708    nkf must be bundled and functional
> 785    Thread.join(limit) is brocken.
> 691    Runtime should allow pointer types for C-string arguments
> 864    String#sum(bits), throws an exception when specified bits >= 64.
> 694    framework 'Cocoa' in macirb crashes 0.6, 0.7
> 669    Unable to find QTKit constant within a MacRuby app
> 826    Symbol#instance_eval raises a TypeError
> 835    Abort occurs when kills the MainThread.
> 761    Integer 2  multiplication by self seems wrong
> 328    Calling a ObjC-method with a named argument which is a Ruby keyword 
> does not work
> 784    Exception is generated when change Hash's key.
> 830    Assertion fails when calls undef with Symbol including expression 
> interpolation.
> 802    Assertion or Segfault occurs when calls the Zlib::Deflate.deflate.
> 451    "Attempting to require ""nkf"" results in a LoadError"
> 369    Change wording of sample-macruby/buildall.rb
> 631    soap4r is not working for me
> 807    rack does not work due to regexp compilation error
> 617    Reopening Symbol Appears to Cause auto malloc[16067]: error for object 
> 0x1016090b0: auto_zone_set_associative_ref
> 824    Calls to #validateUserInterfaceItem: have no effect
> 463    Intermitent crashes with MacRuby 0.5 HEAD (2009/11/26), Ruby threads 
> and RestClient/Net:HTTP
> 808    sinatra does not load
> 764    Weird instance variable value of C extension.
> 859    rubygems load error when running script using evaluateFileAtPath:
> 522    URI.parse  insecure operation
> 584    BigMath.sqrt always returns NaN
> 766    macrake overrides /usr/bin/rake
> 586    """macgem build"" fails."
> 612    RegexpError: U_REGEX_BAD_ESCAPE_SEQUENCE
> 652    """alias"" keyword doesn't compile with 
> symbolized-interpolated-strings"
> 877    rb_vm_struct_fake_set & rb_vm_resolve_const_value crash w/ NSOperation 
> in Skreenics
> 695    Bitwise operations on Float results in Seg fault
> 685    inject doesn't work with Procs
> 650    Issues with passing procs/methods to #map
> 882    Bus error with catch / throw, Using 32bit arch.
> 767    Some minor issues with framework constants
> 825    Segfault occurs with Iconv#iconv and Iconv.iconv when calls that nil 
> is specified for string.
> 699    While installing twt, failed compile in yajl
> 776    Segfault occurs with empty `case' clause and splat argument `when' 
> clause.
> 803    remove_instance_variable bug
> 712    Feature Request: Add Support for C-Level Blocks
> 66    Death by Iconv
> 425    RSpec not working
> 775    Segfault occurs when calls Bignum#modulo
> 730    macrubyc is failing on trunk
> 618    Range#each problem with Infinity
> 675    Trying to do I/O on empty NSString crashes MacRuby
> 701    Hash: complex keys don't work correctly
> 725    rake should support CC and CXX flags
> 462    "Net::HTTP Gives ""Insecure Operation"" When Using HTTPS"
> 777    Segfault occurs when calls ENV#rassoc.
> 778    Segfault occurs when calls IO#syswrite
> 659    ER: Calling #== on an Obj-C object calls -isEqual:
> 703    Call AudioDeviceCreateIOProcID() cause assertion failed
> 729    rbconfig.rb does not honor ARCH_FLAG
> 779    Segfault occurs when use Struct which set Struct's instance to member.
> 857    ld: duplicate symbol _vm_ivar_get
> 862    [BUG] ERROR(VpDivd): space for remainder too small
> 707    raising an exception inside a rescue raises the rescued exception 
> instead of the new exception
> 750    Net::HTTP.get fails
> 746    Net::HTTP assertion failed
> 340    "http.get failing with the error ""wrong chunk size line:  
> (Net::HTTPBadResponse)"""
> 689    Net::HTTP.post_form() is broken.
> 680    String.crypt crashes when called with no arguments
> 430    MacRuby does not reap processes started with popen
> 686    security escalation bug via pretty_print & Dir.entries
> 692    Embedded MacRuby still tries to use ruby library from 
> /Library/Frameworks
> 690    calling `!= nil' on an NSString raises a TypeError exception
> 815    Macrake crashes at initialization
> 843    Can't load the same files with MultiThread at the same time.
> 503    connect to udp socket: getaddrinfo: nodename nor servname provided, or 
> not known (SocketError)
> 844    Assertion fails when use the same variable with more iterators, and 
> use Thread.
> 838    "Assertion fails when use #hex on String converted into ""utf-16le""."
> 744    map on an array delivered by terminal app via scripting bridge gives 
> an immutable error
> 847    Assertion fails when calls Mutex#unlock, after calls Mutex#try_lock 
> several times.
> 866    String#strip shouldn't strip unicode whitespaces
> 711    MacRuby caught SIGSEGV when call Dispatch::Job#add many times
> 770    IO#gets is broken when specified limit.
> 780    Segfault occurs when calls Proc after GC was executed.
> 752    description -> to_s infinite loop
> 852    "IO#read should return """" in outbuf when calls the IO#read(length, 
> outbuf) with position of Discriptor == EOF."
> 754    TCP socket is disconnected when used IO#gets and IO#puts.
> 735    Array#reduce on an Array from CalCalendarStore returns nil
> 722    Multiple Threads are causing Segmentation Faults
> 732    Ruby strings should have a to_data method
> 627    Obj-C exception raised within a rescue block are not catched
> 592    No such file to load -- ubygems (LoadError)
> 731    uninitialized constant IO::WaitReadable / IO::WaitWritable
> 573    Creating a void pointer causes abort()
> 549    Class variables are not initialised properly.
> 499    Order declaring class hierarchy gets MacRuby confused about instance 
> variables
> 696    net/ftp doesn't work
> 590    Process.spawn not implemented
> 760    C-level blocks are not supported
> 758    Time objects should work with #to_plist and #load_plist
> 236    Array.pack bug
> 853    "File.extname('.....x') should return """"."
> 889    Bus error with OpenSSL::ASN1.decode.
> 858    """rake spec:ci"" crashes."
> 816    Assertion fails on multi-threaded code
> 869    Assertion failure when printing pathExtensions for an NSURL
> 809    Bus error doing cipher encryption with OpenSSL
> 867    Hash#to_a can't copy status of untrust.
> 810    MacRuby can't install the nokogiri of rubygems.
> 620    Yielding a block inside a loop in a thread crashes the VM
> 819    Getting references to Method instances leads to segfault
> 870    Array#flatten can't copy status of untrust.
> 753    An error occurs when access to Webrick's HTTPServer.
> 820    raising alternative Exception object in rescue block does not work.
> 811    Bus error encrypting/decrypting with OpenSSL
> 813    
> /Library/Frameworks/MacRuby.framework/Versions/0.6/usr/lib/ruby/1.9.0/csv.rb:1817:in
>  `block': Unclosed quoted field on line 1. (CSV::MalformedCSVError)
> 850    "File.basename is broken when calls the File.basename("".."", "".*"")."
> 893    Bus error with OpenSSL::ASN1::Sequence.to_der
> 804    Constant lookup fails in instance_eval of a singleton class
> 814    SegFault running CGI script from command line
> 727    re.h header missing
> 663    Kernel#sprintf formatting broken on trunk
> 502    Marshalling large integers returns the wrong value.
> 846    Can't load the file when the file and the directory of the same name 
> exist in load-path.
> 757    NSProgressIndicator takes 100% CPU
> 873    ThreadGroup doesn't honor frozen state
> 763    rb_singleton_class() calls can't be interpreted
> 890    Bus error with OpenSSL::X509::Name.new.
> 905    "Can't install the rubygems that create a file in ""/usr/bin/""."
> 891    Bus error with OpenSSL::Netscape::SPKI.to_der.
> 912    macirb crash on launch
> 894    Bus error with OpenSSL::X509::Attribute.new
> 892    Bus error with OpenSSL::X509::CRL.issuer.to_der
> 897    Bus error with OpenSSL::PKey::EC#dsa_sign_asn1.
> 914    September 22nd nightly build fails trying to install mongrel
> 898    Bus error with OpenSSL::X509::Request#to_der
> 885    string formatter %-8s with symbol crashes
> 919    URI::HTTP path_query method is private in MacRuby but not in MRI
> 880    Bus error with Dispatch::Source, Using 32bit arch.
> 900    Assertion fails with OpenSSL::X509::Certificate.issuer.to_der
> 899    Bus error with OpenSSL::PKCS7#to_der
> 723    bug when calling the same variadic method multiple times with 
> different arity
> 
> Laurent
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel@lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to