Code Review: contributions6

tfpt review /shelveset:contributions6;REDMOND\jflam

Ruby only

This wraps up a number of community contributions into a single
shelveset for expediency. This shelveset passed SNAP this morning. We
are now passing 2011/2961 (67%) of community specs.

Rakefile:

  •   some case sensitivity changes to ensure that things continue to 
    

compile on case-sensitive filesystems (*nix)

  •   using methods in fileutils instead of hand-rolled platform 
    

specific shell commands

  •   adding a mono switch 'noconfig' to ensure that mono continues to 
    

compile

ModuleOps:

  •   Expanding patch #19745 from Wayne K. to add support for 
    

passing strings or objects that implement to_str to private, protected,
and public

MutableStringOps:

  •   Added alias for String#intern implementation and some comments
    

RegexpOps:

  •   Added some constants
    
  •   Expanded patch 19749 from Wayne K. (an implementation of ===)
    

ExceptionOps:

  •   Added to_str implementation to fix bug #19625
    

TimeOps:

  •   Expanded patch #19230 from Eric N. for Time methods. 
    

Added comments as well as fixing a number of conversion and
interop-related bugs. This isn’t complete yet, and the specs aren’t very
valuable for verifying the behavior of these methods until we get
backtick or system() working.

FileOps:

  •   Expanded patch #19708 for File#exists? to handle directories 
    

correctly

  •   Expanded patch #19004 for File#expand_path to handle corner 
    

cases correctly. Note that this still requires work to make our
directory paths identical to Ruby. Right now the paths returned are
Windows paths (Ruby on Windows returns *nix style paths).

RubyScope:

  •   Incorporated trivial bug fix on range check:  #19754
    

Specs:

  •   Enables specs for kernel, module, and matchdata.
    

Thanks,
-John

This is a test of our new mechanism for getting our code review mails
out to you. This is an existing change that’s already in SVN, but this
will give you an idea of what future mails will look like.

Notice that there is an attached diff in the original mail - you can use
whatever diff viewing tool that you want to see the changes. This gives
you some context to the changes that you’ll be seeing. The diff works -
but is based on our internal source layout not the external layout.

External folks - please just reply to this mail (NOT reply-all) as this
will generate a bounce message back to the list if you have comments
about the change.

Thanks,
-John

expandpath implementation:

  •   GetFullPath, Path.Combine can throw various .NET exceptions. We 
    

might need to catch them and throw the exceptions Ruby throws.

Other than that looks good.

Tomas