edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/context.rb;C530453
File: context.rb
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/context.rb;C530453  (server)    8/18/2008 10:11 AM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/context.rb;bugs-1
@@ -457,6 +457,13 @@
       references
     end
 
+    def get_case_sensitive_path(pathname)
+      filename = pathname.basename.downcase
+      dir = Pathname.new pathname.dirname
+      result = dir.entries.find { |p| p.downcase.to_s == filename }
+      (Pathname.new(pathname.dirname) + result).to_s
+    end
+
     def get_compile_path_list
       cs_proj_files = Dir['*.csproj']
       if cs_proj_files.length == 1
@@ -466,7 +473,7 @@
         if ENV['mono'].nil?
           result
         else
-          result.map { |p| p.gsub('\\', '/') }
+          result.map { |p| get_case_sensitive_path(p).gsub('\\', '/') }
         end
       else
         raise ArgumentError.new("Found more than one .csproj file in directory! #{cs_proj_files.join(", ")}")
===================================================================
edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Rakefile;C530453
File: Rakefile
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Rakefile;C530453  (server)    8/15/2008 2:05 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Rakefile;bugs-1
@@ -422,7 +422,7 @@
     reporter,tag  = extract_reporter(reporter)
 
     chdir(get_source_dir(:tests) +'util'){
-      cmd =  "#{UserEnvironment.mri_binary} #{UserEnvironment.mspec}/bin/mspec #{tag || 'ci'} -t #{path_to_ruby.join(" ")} -B #{UserEnvironment.config} #{run_spec} #{reporter}"
+      cmd =  "#{UserEnvironment.mri_binary} #{UserEnvironment.mspec}/bin/mspec #{tag || 'ci'} -t #{path_to_ruby} -B #{UserEnvironment.config} #{run_spec} #{reporter}"
       exec_net cmd
     }
   end
===================================================================
edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs;C525618
File: Initializers.Generated.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs;C525618  (server)    8/18/2008 9:02 AM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs;bugs-1
@@ -74,7 +74,7 @@
             ExtendModule(typeof(System.Collections.Generic.IDictionary<System.Object, System.Object>), new System.Action<Ruby.Builtins.RubyModule>(LoadSystem__Collections__Generic__IDictionary_Instance), null, new Ruby.Builtins.RubyModule[] {def19, });
             ExtendModule(typeof(System.Collections.IEnumerable), new System.Action<Ruby.Builtins.RubyModule>(LoadSystem__Collections__IEnumerable_Instance), null, new Ruby.Builtins.RubyModule[] {def19, });
             ExtendModule(typeof(System.Collections.IList), new System.Action<Ruby.Builtins.RubyModule>(LoadSystem__Collections__IList_Instance), null, new Ruby.Builtins.RubyModule[] {def19, });
-            ExtendModule(typeof(System.IComparable), new System.Action<Ruby.Builtins.RubyModule>(LoadSystem__IComparable_Instance), null, new Ruby.Builtins.RubyModule[] {def29, });
+            Ruby.Builtins.RubyModule def33 = ExtendModule(typeof(System.IComparable), new System.Action<Ruby.Builtins.RubyModule>(LoadSystem__IComparable_Instance), null, new Ruby.Builtins.RubyModule[] {def29, });
             DefineGlobalClass("Array", typeof(Ruby.Builtins.RubyArray), Context.ObjectClass, new System.Action<Ruby.Builtins.RubyModule>(LoadArray_Instance), new System.Action<Ruby.Builtins.RubyModule>(LoadArray_Class), new Ruby.Builtins.RubyModule[] {def19, }, new System.Delegate[] {
                 new System.Func<Ruby.Builtins.RubyArray>(Ruby.Builtins.ArrayOps.CreateArray),
                 new System.Func<System.Collections.IList, Ruby.Builtins.RubyArray>(Ruby.Builtins.ArrayOps.CreateArray),
@@ -85,7 +85,7 @@
                 new System.Func<Microsoft.Scripting.Runtime.CodeContext, Ruby.Runtime.BlockParam, System.Object, System.Object>(Ruby.Builtins.ArrayOps.CreateArray),
             });
             DefineGlobalClass("Binding", typeof(Ruby.Builtins.Binding), Context.ObjectClass, null, null, Ruby.Builtins.RubyModule.EmptyArray, null);
-            DefineGlobalClass("ClrString", typeof(System.String), Context.ObjectClass, new System.Action<Ruby.Builtins.RubyModule>(LoadClrString_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null);
+            DefineGlobalClass("ClrString", typeof(System.String), Context.ObjectClass, new System.Action<Ruby.Builtins.RubyModule>(LoadClrString_Instance), null, new Ruby.Builtins.RubyModule[] {def33, }, null);
             DefineGlobalClass("Dir", typeof(Ruby.Builtins.RubyDir), Context.ObjectClass, new System.Action<Ruby.Builtins.RubyModule>(LoadDir_Instance), new System.Action<Ruby.Builtins.RubyModule>(LoadDir_Class), new Ruby.Builtins.RubyModule[] {def19, }, null);
             #if !SILVERLIGHT
             DefineGlobalClass("Encoding", typeof(Ruby.Builtins.RubyEncoding), Context.ObjectClass, new System.Action<Ruby.Builtins.RubyModule>(LoadEncoding_Instance), new System.Action<Ruby.Builtins.RubyModule>(LoadEncoding_Class), Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] {
@@ -423,6 +423,7 @@
             });
             
             module.DefineLibraryMethod("&", 0x29, new System.Delegate[] {
+                new System.Func<Microsoft.Scripting.Math.BigInteger, System.Int32, System.Object>(Ruby.Builtins.BignumOps.And),
                 new System.Func<Microsoft.Scripting.Math.BigInteger, Microsoft.Scripting.Math.BigInteger, System.Object>(Ruby.Builtins.BignumOps.And),
                 new System.Func<Microsoft.Scripting.Runtime.CodeContext, Microsoft.Scripting.Math.BigInteger, System.Object, System.Object>(Ruby.Builtins.BignumOps.And),
             });
@@ -457,11 +458,13 @@
             });
             
             module.DefineLibraryMethod("^", 0x29, new System.Delegate[] {
+                new System.Func<Microsoft.Scripting.Math.BigInteger, System.Int32, System.Object>(Ruby.Builtins.BignumOps.Xor),
                 new System.Func<Microsoft.Scripting.Math.BigInteger, Microsoft.Scripting.Math.BigInteger, System.Object>(Ruby.Builtins.BignumOps.Xor),
                 new System.Func<Microsoft.Scripting.Runtime.CodeContext, Microsoft.Scripting.Math.BigInteger, System.Object, System.Object>(Ruby.Builtins.BignumOps.Xor),
             });
             
             module.DefineLibraryMethod("|", 0x29, new System.Delegate[] {
+                new System.Func<Microsoft.Scripting.Math.BigInteger, System.Int32, System.Object>(Ruby.Builtins.BignumOps.BitwiseOr),
                 new System.Func<Microsoft.Scripting.Math.BigInteger, Microsoft.Scripting.Math.BigInteger, System.Object>(Ruby.Builtins.BignumOps.BitwiseOr),
                 new System.Func<Microsoft.Scripting.Runtime.CodeContext, Microsoft.Scripting.Math.BigInteger, System.Object, System.Object>(Ruby.Builtins.BignumOps.BitwiseOr),
             });
@@ -478,6 +481,7 @@
             
             module.DefineLibraryMethod("<<", 0x29, new System.Delegate[] {
                 new System.Func<Microsoft.Scripting.Math.BigInteger, System.Int32, System.Object>(Ruby.Builtins.BignumOps.LeftShift),
+                new System.Func<Microsoft.Scripting.Math.BigInteger, Microsoft.Scripting.Math.BigInteger, System.Object>(Ruby.Builtins.BignumOps.LeftShift),
                 new System.Func<Microsoft.Scripting.Runtime.CodeContext, Microsoft.Scripting.Math.BigInteger, System.Object, System.Object>(Ruby.Builtins.BignumOps.LeftShift),
             });
             
@@ -495,6 +499,7 @@
             
             module.DefineLibraryMethod(">>", 0x29, new System.Delegate[] {
                 new System.Func<Microsoft.Scripting.Math.BigInteger, System.Int32, System.Object>(Ruby.Builtins.BignumOps.RightShift),
+                new System.Func<Microsoft.Scripting.Math.BigInteger, Microsoft.Scripting.Math.BigInteger, System.Object>(Ruby.Builtins.BignumOps.RightShift),
                 new System.Func<Microsoft.Scripting.Runtime.CodeContext, Microsoft.Scripting.Math.BigInteger, System.Object, System.Object>(Ruby.Builtins.BignumOps.RightShift),
             });
             
@@ -1361,9 +1366,15 @@
             });
             
             #if !SILVERLIGHT
+            module.DefineLibraryMethod("symlink", 0x31, new System.Delegate[] {
+                new System.Func<Microsoft.Scripting.Runtime.CodeContext, System.Object, Ruby.Builtins.MutableString, System.Object>(Ruby.Builtins.RubyFileOps.SymLink),
+            });
+            
+            #endif
+            #if !SILVERLIGHT
             module.DefineLibraryMethod("symlink?", 0x31, new System.Delegate[] {
+                new System.Func<Microsoft.Scripting.Runtime.CodeContext, System.Object, System.Object, System.Boolean>(Ruby.Builtins.RubyFileOps.IsSymLink),
                 new System.Func<Microsoft.Scripting.Runtime.CodeContext, System.Object, Ruby.Builtins.MutableString, System.Boolean>(Ruby.Builtins.RubyFileOps.IsSymLink),
-                new System.Func<Microsoft.Scripting.Runtime.CodeContext, System.Object, System.Object, System.Boolean>(Ruby.Builtins.RubyFileOps.IsSymLink),
             });
             
             #endif
@@ -4220,8 +4231,8 @@
             });
             
             module.DefineLibraryMethod("match", 0x29, new System.Delegate[] {
+                new System.Func<Microsoft.Scripting.Runtime.CodeContext, Ruby.Builtins.MutableString, System.Object, System.Object>(Ruby.Builtins.MutableStringOps.MatchObject),
                 new System.Func<Microsoft.Scripting.Runtime.CodeContext, Ruby.Builtins.MutableString, Ruby.Builtins.RubyRegex, System.Object>(Ruby.Builtins.MutableStringOps.MatchRegexp),
-                new System.Func<Microsoft.Scripting.Runtime.CodeContext, Ruby.Builtins.MutableString, System.Object, System.Object>(Ruby.Builtins.MutableStringOps.MatchObject),
             });
             
             module.DefineLibraryMethod("replace", 0x29, new System.Delegate[] {
===================================================================
edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/FileOps.cs;C525618
File: FileOps.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/FileOps.cs;C525618  (server)    8/15/2008 12:01 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/FileOps.cs;bugs-1
@@ -669,7 +669,11 @@
         //umask
         
 #if !SILVERLIGHT
-        //symlink
+        [RubyMethod("symlink", RubyMethodAttributes.PublicSingleton, BuildConfig = "!SILVERLIGHT")]
+        public static object SymLink(CodeContext/*!*/ context, object/*!*/ self, [NotNull]MutableString/*!*/ path) {
+            throw new NotImplementedError("symlnk() function is unimplemented on this machine");
+        }
+
         [RubyMethod("symlink?", RubyMethodAttributes.PublicSingleton, BuildConfig = "!SILVERLIGHT")]
         public static bool IsSymLink(CodeContext/*!*/ context, object/*!*/ self, [NotNull]MutableString/*!*/ path) {
             return RubyStatOps.IsSymLink(RubyStatOps.Create(context, path));
@@ -746,12 +750,21 @@
 
         [RubyMethod("zero?", RubyMethodAttributes.PublicSingleton)]
         public static bool IsZeroLength(CodeContext/*!*/ context, object self, [NotNull]MutableString/*!*/ path) {
+            string strPath = path.ConvertToString();
+
+            // NUL/nul is a special-cased filename on Windows
+            if (strPath.ToLower() == "nul")
+                return RubyStatOps.IsZeroLength(RubyStatOps.Create(context, path));
+
+            if (DirectoryExists(context, strPath) || !FileExists(context, strPath))
+                return false;
+
             return RubyStatOps.IsZeroLength(RubyStatOps.Create(context, path));
         }
 
         [RubyMethod("zero?", RubyMethodAttributes.PublicSingleton)]
         public static bool IsZeroLength(CodeContext/*!*/ context, object self, object path) {
-            return RubyStatOps.IsZeroLength(RubyStatOps.Create(context, path));
+            return IsZeroLength(context, self, Protocols.CastToString(context, path));
         }
 
         #endregion
===================================================================
edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/MutableStringOps.cs;C524960
File: MutableStringOps.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/MutableStringOps.cs;C524960  (server)    8/18/2008 9:30 AM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/MutableStringOps.cs;bugs-1
@@ -2958,7 +2958,7 @@
 
         [RubyMethod("reverse")]
         public static MutableString/*!*/ GetReversed(CodeContext/*!*/ context, MutableString/*!*/ self) {
-            return CreateSubClass(context, self, self).Reverse();
+            return RubyUtils.FlowTaint(context, self, CreateSubClass(context, self, self).Reverse());
         }
 
         [RubyMethod("reverse!")]
===================================================================
edit: $/Merlin_External/Languages/IronRuby/yaml/IronRuby.Libraries.Yaml/Initializer.Generated.cs;C509767
File: Initializer.Generated.cs
===================================================================
--- $/Merlin_External/Languages/IronRuby/yaml/IronRuby.Libraries.Yaml/Initializer.Generated.cs;C509767  (server)    8/18/2008 9:03 AM
+++ Shelved Change: $/Merlin_External/Languages/IronRuby/yaml/IronRuby.Libraries.Yaml/Initializer.Generated.cs;bugs-1
@@ -21,6 +21,7 @@
             
             
             ExtendModule(typeof(Microsoft.Scripting.Math.BigInteger), new System.Action<Ruby.Builtins.RubyModule>(LoadMicrosoft__Scripting__Math__BigInteger_Instance), null, Ruby.Builtins.RubyModule.EmptyArray);
+            ExtendModule(typeof(Microsoft.Scripting.SymbolId), new System.Action<Ruby.Builtins.RubyModule>(LoadMicrosoft__Scripting__SymbolId_Instance), null, Ruby.Builtins.RubyModule.EmptyArray);
             ExtendModule(typeof(Ruby.Builtins.FalseClass), new System.Action<Ruby.Builtins.RubyModule>(LoadRuby__Builtins__FalseClass_Instance), null, Ruby.Builtins.RubyModule.EmptyArray);
             ExtendClass(typeof(Ruby.Builtins.Hash), new System.Action<Ruby.Builtins.RubyModule>(LoadRuby__Builtins__Hash_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null);
             ExtendModule(typeof(Ruby.Builtins.Integer), new System.Action<Ruby.Builtins.RubyModule>(LoadRuby__Builtins__Integer_Instance), null, Ruby.Builtins.RubyModule.EmptyArray);
@@ -37,7 +38,6 @@
             ExtendModule(typeof(System.Exception), new System.Action<Ruby.Builtins.RubyModule>(LoadSystem__Exception_Instance), null, Ruby.Builtins.RubyModule.EmptyArray);
             ExtendClass(typeof(System.Object), new System.Action<Ruby.Builtins.RubyModule>(LoadSystem__Object_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null);
             ExtendModule(typeof(System.Scripting.None), new System.Action<Ruby.Builtins.RubyModule>(LoadSystem__Scripting__None_Instance), null, Ruby.Builtins.RubyModule.EmptyArray);
-            ExtendModule(typeof(Microsoft.Scripting.SymbolId), new System.Action<Ruby.Builtins.RubyModule>(LoadSystem__Scripting__SymbolId_Instance), null, Ruby.Builtins.RubyModule.EmptyArray);
             Ruby.Builtins.RubyModule def1 = DefineGlobalModule("YAML", typeof(Ruby.StandardLibrary.Yaml.RubyYaml), null, new System.Action<Ruby.Builtins.RubyModule>(LoadYAML_Class), Ruby.Builtins.RubyModule.EmptyArray);
             Ruby.Builtins.RubyClass def2 = DefineClass("YAML::Stream", typeof(Ruby.StandardLibrary.Yaml.YamlStream), Context.ObjectClass, new System.Action<Ruby.Builtins.RubyModule>(LoadYAML__Stream_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] {
                 new System.Func<Microsoft.Scripting.Runtime.CodeContext, Ruby.Builtins.Hash, Ruby.StandardLibrary.Yaml.YamlStream>(Ruby.StandardLibrary.Yaml.RubyYaml.YamlStreamOps.CreateStream),
@@ -57,6 +57,18 @@
             
         }
         
+        private void LoadMicrosoft__Scripting__SymbolId_Instance(Ruby.Builtins.RubyModule/*!*/ module) {
+            
+            module.DefineLibraryMethod("taguri", 0x9, new System.Delegate[] {
+                new System.Func<Microsoft.Scripting.Runtime.CodeContext, System.Object, Ruby.Builtins.MutableString>(Ruby.StandardLibrary.Yaml.YamlSymbolOps.TagUri),
+            });
+            
+            module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] {
+                new System.Func<Microsoft.Scripting.Runtime.CodeContext, System.Object, Ruby.StandardLibrary.Yaml.RubyRepresenter, Ruby.StandardLibrary.Yaml.Node>(Ruby.StandardLibrary.Yaml.YamlSymbolOps.ToYaml),
+            });
+            
+        }
+        
         private void LoadRuby__Builtins__FalseClass_Instance(Ruby.Builtins.RubyModule/*!*/ module) {
             
             module.DefineLibraryMethod("taguri", 0x9, new System.Delegate[] {
@@ -261,18 +273,6 @@
             
         }
         
-        private void LoadSystem__Scripting__SymbolId_Instance(Ruby.Builtins.RubyModule/*!*/ module) {
-            
-            module.DefineLibraryMethod("taguri", 0x9, new System.Delegate[] {
-                new System.Func<Microsoft.Scripting.Runtime.CodeContext, System.Object, Ruby.Builtins.MutableString>(Ruby.StandardLibrary.Yaml.YamlSymbolOps.TagUri),
-            });
-            
-            module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] {
-                new System.Func<Microsoft.Scripting.Runtime.CodeContext, System.Object, Ruby.StandardLibrary.Yaml.RubyRepresenter, Ruby.StandardLibrary.Yaml.Node>(Ruby.StandardLibrary.Yaml.YamlSymbolOps.ToYaml),
-            });
-            
-        }
-        
         private void LoadYAML_Class(Ruby.Builtins.RubyModule/*!*/ module) {
             
             module.DefineLibraryMethod("add_domain_type", 0x12, new System.Delegate[] {
===================================================================
