tfpt review /shelveset:Various5;REDMOND\tomat Reviewed F2F by Dino and John. - Implements $KCODE global variable. - Implements ToString() and ToByteArray() methods on MutableString - they create a copy of the content converted to System.String or byte[] preserving the content representation. - Fixes bug #19309: double should be parsed using an invariant culture - Fixes bug #19867: $0 and $: not initialized correctly - initializes $0. - Fixes bug #15982: re-opening the class "Class" need update version? * Incorrect tests were emitted when dispatching on modules/classes - Makes method dispatch multi-runtime safe (the missing check caused sharing of the rule across runtimes) - Improves and fixes bugs in MutableString construction from literals and by concatenation of embedded expressions ("foo #{x} bar"): * to_s string conversion protocol needs to be applied * "#{x}" was broken - to_s wasn''t called on x * Optimizes concatenation: * Where possible the compiler performs the concatenation (like x = "foo" "bar"). * Special-cases concatenation helpers for all combinations of at most two literal and variable arguments. * Some more optimizations are still possible. - Implements Regex#to_s, Regex#inspect, Regex#options * Fixes bug #19756: Regular expression substitution - Changes instantiation of Ruby classes defined in libraries * C.new doesn''t invoke "initialize" method anymore if C is a library class. * "initialize" can therefore be invoked only via send, from subclasses (directly or using super) and when instantiating a subclass that has no "initialize" method. In these cases the call is reinitializing an existing object. - Fixes one of the Array#initialize overloads * This didn''t work previously: Array.new(class C; def to_int; 5; end; self; end.new) { ''foo'' } - Implements parameterless Proc#new * This overload searches the lexical scope chain for a method scope and picks its block parameter. - Fixes #19805: Wrong number of type of arguments for Class * Implements Class constructor that creates an anonymous class - Fixes #19953: class_eval adds methods to the wrong class - Fixes EqualityComparer: it shouldn''t call ''eql?'' if the values being compared are reference-equal. - Refactors Struct#new and fixes some issues there. - Fixes some specs. Tomas -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20080514/56f15a40/attachment-0001.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: Various5.diff Type: application/octet-stream Size: 221585 bytes Desc: Various5.diff URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20080514/56f15a40/attachment-0001.obj>