tfpt review /shelveset:merge-3;REDMOND\jflam
This shelveset fixes a number of open bugs on Rubyforge and adds some
features that we need to get the latest rubinius specs running.
we used to alias MatchData to
System.Text.RegularExpressions.Match. However, to fully implement
MatchData we need to also hold onto a reference to the original string
that we matched against. A new MatchData type was created (MatchData.cs)
which wraps the existing .NET Match object. This also touches
MutableStringOps.cs, RubyOps.cs, RubyScope.cs,
finished implementing all methods. 16 out of 16 specs pass
implemented to_a which closes bug #19903
added ctor overload to close bug #19927
made some changes to return MatchData objects instead of Match
made some changes to return boxed integers via
RuntimeHelpers.Int32ToObject() instead of explicit boxing. This also
removed overloaded constructors to close bug #19956. But this
exposes a new problem about Type aliasing that is described by bug 20035
(referencing a System::DateTime explicitly does not allow you to call
the .NET constructors - only the Ruby-defined constructors).
fixed Time#- bug - #19955
fixed some very old bugs #15996, #15995 related to including
non-sensible things (include 1, include nil). RequireNonClasses() method
now throws the correct Ruby exceptions. This also touches
added an implementation of String#rindex which closes #19904. We
pass all specs except for 4 which fail because of differences between
.NET regex and Ruby regex.
cleaned up some code here, was about to work on glob
implementation (bugs #19843 #19950, but handed off to Curt)
added an implementation of File#basename which closes #19905.
passes all specs except for one which is wrong, and one which is
unix-specific. These things are likely bugs in Ruby.
#File.basename('baz.rb', 'z.rb').should == 'ba' -- bad test #File.basename("bar.txt.exe", ".txt.exe").should == "bar" -
unix-only, should be wrapped in platform
added an implementation of File.file? to close #19949
added a static Empty MutableString
added delegation thunks to LastIndexOf()
fixed our Equals() implementation to correctly distinguish
between different types of strings (CLR vs. MutableString)
fixes a bug related to what "w+" means in .NET. - its
Fixed bug #19885 by adding the -I command line switch which lets you
specify the library load path. I’ve redefined our internal alias.txt
file to generate aliases for rbd and rbx that include a pointer to where
the MRI libs are stored in our layout.
Fixed bug #17810, which was a long-standing perf bug.
Fixed bug #20007, by allowing users to pass nothing for
attr_accessor/reader/writer. This is really a bug in Ruby, but the
current implementations allow this behavior, and there are apps that
actually depend on it (RbYAML).