[Pkg-cli-libs-commits] [SCM] ironruby branch, master, updated. debian/20090805+git.e6b28d27+dfsg-1-16-g73ea914

C.J. Adams-Collier cjac at colliertech.org
Wed Feb 3 01:00:41 UTC 2010


The following commit has been merged in the master branch:
commit 488edccb61a33fd06ddcac823768852c807a90f3
Author: C.J. Adams-Collier <cjac at colliertech.org>
Date:   Tue Feb 2 12:28:12 2010 -0800

    removed file, as it is not in upstream tarball

diff --git a/Merlin/Main/Languages/Ruby/Licenses/CHANGELOG.txt b/Merlin/Main/Languages/Ruby/Licenses/CHANGELOG.txt
deleted file mode 100644
index 0a27ab5..0000000
--- a/Merlin/Main/Languages/Ruby/Licenses/CHANGELOG.txt
+++ /dev/null
@@ -1,1199 +0,0 @@
-CHANGELOG
-=========
-
-ironruby-0.6.0.0 - 2009-07-01
------------------------------
-
-	30-6 (sborde)
-		Added Hosting tutorial
-		Conditional execution of a task with :run_unless, typically to ensure
-		prerequite commands are executed
-
-	26-06 (jdeville)
-		Regression tests to close Codeplex bugs:
-			Access is allowed to internal fields 
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1521> 
-			File.expand_path does not support a line number after filename
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=821> 
-			alias_method fails for :do
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1502> 
-			Proc.to_s should include line number where the block was declared
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1509> 
-			WinForms broken
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1501> 
-			$? is not always Process::Status
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1400> 
-			load_assembly(<partial_name>) should work
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1345> 
-			System.Action.new does not work
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1344> 
-			Cannot call CLR constructor of builtin type
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1306> 
-			public(:foo) does not work correctly for mixed-in methods
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1184> 
-			Cannot call new on subtypes of builtin classes whose "new" method has
-			optional arguments
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1085> 
-			visibility of send :define_method
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1060> 
-			Passing a Ruby array to a .NET method that expects an IEnumerable 
-			derivative fails with GetEnumerator call
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=917> 
-			Assert in SetMethodBasesNoLock when calling #== on Ruby class inheriting
-			from CLR class which overrides Equals
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=783> 
-			Wrong behavior when calling redefined methods on object instances
-				from <http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=761> 
-			Can't call the BigIntegerOverload of a method with a DefaultProtocol Attrib	
-	
-	25-06 (tomat)
-	 	Replaces custom block delegates with Func delegates.
-
-	24-06 (tomat)
-		Implements FileTest and fixes race condition in a Rake test.
-
-	23-06 (tomat)
-		Improves implementation of RubyArray.
-	
-	22-06 (jimmysch)
-	 	Fix ironruby_tutorial.rb where "require 'wpf.rb'" wasn't seen as a success
-		on the first attempt. The first execution results in "true" while the next
-		results in "false", and one attempt executed the code twice. The fix is a
-		bit hacky, but will suit unless we can handle detecting "require" better.
-
-	22-06 (tomat)
-		Disables adaptive compilation of Ruby sites in -X:NoAdaptiveCompilation is 
-		set.
-
-	22-06 (jimmysch)
-		IronRuby Tutorial polish:
-			- Starting a tutorial jumps directly to the first task, but shows section
-			  and chapter introductions above it (if they exist).
-			- FrameworkElement#set_or_collapse didn't show the element
-			- select_tree_view_item should only be used if the TreeView was 
-			  constructed with code
-			- "Move to next chapter" button is auto-focused
-			- Always scroll to the bottom on any repl activity
-			- Increase default window size to 640x700
-			- Header now has a bottom shadow instead of a border, to make scrolling
-			  text look cleaner.
-			- Section/Chapter navigation now fills vertical space, and is a 100px wider.
-			- No more tutorial introduction animation; it always shows on the first page.
-
-	20-06 (tomat)
-		Fixes implementation of Kernel#eql?, Kernel#==, Kernel#hash, Array#eql? and
-		Array#hash and improves CLR interop. 
-		Improves performance of Array#- from quadratic algorithm to linear.
-
-		CLR interop:
-		“hash” is mapped to “GetHashCode” and following below rules:
-		1)	A Ruby call to Kernel#hash on a CLR object that overrides GetHashCode 
-		    will call that override.
-		2)	A Ruby call to Kernel#hash on a Ruby subclass of a CLR type will call
-		    the GetHashCode of the CLR type if the Ruby subclass doesn’t implement
-				“hash” method.
-		3)	A Ruby data structure (like Array) that calculates its hash code based
-		    on hash codes of its items dynamically calls “hash” on those items.
-		4)	Any call from C# to GetHashCode on an instance of any Ruby class will
-		    dynamically dispatch to either “hash”, “GetHashCode” or “get_hash_code”
-				whichever is found first in standard method resolution order. If multiple 
-				of these methods are defined in the same class “hash” has highest priority
-				and “get_hash_code” the lowest. This implies that a Ruby method definition
-				with name “hash”, “GetHashCode” or “get_hash_code” in any Ruby class 
-				overrides GetHashCode of the parent CLR class. 
-
-		Similarly is “eql?” mapped to “Equals”.
-
-		Kernel#== is an alias for “eql?” and hence has the same behavior when invoked. 
-		However, 4) doesn’t hold for “==”, i.e. method == defined in a Ruby class does
-		NOT override CLR Equals method. 
-
-		Adds /noadaptive option to unit test driver.
-		Fixes removal of CLR methods.
-
-		Simplifies implementation of IsRemovable on RubyMemberInfo using IsRubyMethod. 
-		IsRubyMethod returns true on all members that were defined by Ruby means, be
-		it explicit method definition (def keyword), alias, alias_method, define_method,
-		public/private/protected, overload, of, etc. CLR members used for definition of
-		a new method (via define_method, alias etc.) are called “detached” (as opposed
-		to “attached” CLR members, which represent the original CLR members). They
-		behave like any Ruby method with respect to method removal.
-
-	19-06 (sborde)
-		Alt-Enter fix for tutorial
-		Add support for multi-line input
-
-	18-06 (tomat)
-		DLR: Fixes bugs and implements new features in interpreter.
-		-	Static field assignment.
-		-	LessThan
-		-	ConvertUnary – should re-box numeric values.
-		-	Force compilation whenever ref/out parameters are encountered.
-		-	Invocation expression with delegate target.
-		-	Unbox – no-op.
-		-	TypeEqual and TypeIs for sealed types.
-
-		Ruby:
-		-	Implements adaptively compiled rules:
-		-	RubyMetaBinder (subclass of all Ruby binders) implements BindDelegate so that:
-		  o It creates AST for the rule calling Bind and wraps the result into a lambda
-		    exactly like call site binder does. 
-			o	If this lambda is interpretable (doesn’t contain loops or other constructs
-				that force compilation) it creates an InterpretedDispatcher that  hooks the
-				lambda’s “Compiled” event so that it gets called back as soon as compiled 
-				delegate is available. Until that happens it dispatches rule invocations
-				to the interpreter. 
-			o	If the lambda is forced-compiled it uses the resulting delegate right away.
-			o	The dispatcher is a generic class generated for Func and Action delegates 
-				with 0..15 generic parameters.
-		-	Also Adds specs for “include?” used on ClrNames. 
-		
-		Adds missing type test to singleton rules.
-
-	17-06 (sborde)
-		Adds WPF content to ironruby_tutorial
-		Improves the testing
-
-	17-06 (dinov)
-		Ruby’s MethodGroupInfo was doing MakeGenericMethod and then returning the
-		generic method.But the types it’s passing in are all generic parameters –
-		so the end result is Ruby produces a method for which 
-		.IsGenericMethodDefinition is false but it contains all of the original
-		generic method parameters.  Now we return the original target so 
-		IsGenericMethodDefinition remains true.  Also updated MissingBlockArgBuilder 
-		so we can know that it doesn’t really prodive any parameters.  Finally the 
-		small set of tests verifying exceptions are throw are updated to expect 
-		successful inference.
-
-	16-06 (sborde)
-		Fix non-deterministic Rake test for "multitask" by adding 
-		  semaphore.synchronize around array access
-		Changed default.mspec so that :core properly excludes the thread tests
-		Abstracts RubyUtils.FileSystemUsesDriveLetters
-		File.expand_path("c:/a..") should return "c:/a"
-		Fix Ruby snippet in DlrInteropTests.cs
-		Change system_spec to redirect output of a child process so that it does not 
-		  clutter the output
-
-	16-06 (jdeville)
-		adds a root directory rake file so rake commands can be run anywhere in the
-		  git repo
-		removed old test tasks. All tests should be run via new tasks that will be 
-		  coming in, or via the mspec command line now
-		rewrite irtest.bat to use Ruby instead of Batch
-		making changes suggested by Ivan to allow compilation on Mono to work again.
-		refactor irtests into a ruby script
-		hook up test tasks, change default to run tests, make git:commit run tests,
-		  namespace compilation, fix IronRuby.Test.exe
-		Most of IronPython now compiles with rake compile. We are only missing 
-		  IronPythonTest.dll, which may be ok
-		Adding more interop tests for delegate creation and invocation. Also adds
-		  IronPython compilation to rake git:commit
-		Make legacy tests work from rake
-		split apps into two component tasks for granularity
-		add test to ensure that basic IronRuby works without ir.exe.config
-		move the no-config tests to mspec under interop\cli, -X tests will go here
-		  eventually
-		code review fixes from Shri
-		more .net interop tests to get rid of test_basic
-		get rid of test_basic.rb
-
-	16-06 (jimmysch)
-		Auto-hide chapter/section navigation
-		Main screen with list of tutorials
-		Use test/spec
-		Totally change around wpf_tutorial.rb -- not perfect yet but it's a start
-		Move general wpf helpers into wpf.rb
-		Fix repl history margin
-		Fix reloading
-
-	16-06 (tomat)
-		Renames Method, UnboundMethod#overloads (plural) to Method, 
-		  UnboundMethod#overload (singular).
-		The old name is still available for now and throws an exception.
-
-		Implements ClrName#==.
-		Groups CLR unit tests into regions.
-
-	13-06 (tomat)
-		Fixes bug in calls to base virtual methods.
-
-	12-06 (tomat)
-		Fixes bug in CLR method lookup failure caching.
-		Implements pre-compilation for rules of methods calls with a block targeting
-		  Ruby methods.
-
-	11-06 (tomat)
-		Fixes bug http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1506: 
-		-X:PrivateBinding does not enable referring to classes that have internal 
-		  visibility 
-	
-	11-06 (tomat)
-		Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1502:
-		alias_method fails for :do.
-
-	11-06 (tomat)
-		Implements CLR member enumeration: methods Module#instance_methods, etc.
-		  now include CLR member names.
-		Adds IronRuby::Clr::Name class, which represents a pair of names of a CLR 
-		  method – the primary name is mangled (Ruby name) the alternative name 
-			is the actual CLR name.
-
-		Reflection methods like Module#instance_methods return instances of ClrName
-	  whenever a CLR member is encountered that could be called by both names.  
-		ClrName has methods to_s, to_sym, to_str, <=>, inspect, dump so that it can 
-		be used wherever a string can be used. The display string for the name uses
-		single quotes so that you can easily distinguish CLR (dual) names from
-		regular names (plain mutable strings).
-
-		>>> System::Byte.instance_methods(false)
-		=> ["-", "%", "&", "*", "**", "/", "-@", "[]", "^", "|", "~", "+", "<", "<<",
-		    "<=", "<=>", "==", ">", ">=", ">>", "abs", "div", "divmod", "modulo", 
-				"quo", "to_f", "to_s", "zero?", "size", 'compare_to', 'equals', 
-				'get_hash_code', 'to_string'
-		, 'get_type_code']
-		>>> l = System::Byte.instance_methods(false).last
-		=> 'get_type_code'
-		>>> l.ruby_name
-		=> "get_type_code"
-		>>> l.clr_name
-		=> "GetTypeCode"
-
-		Now this works with meta-programming as well:
-
-		class System::Decimal
-			instance_methods(false).each do |name|
-				mangled = '__' + name
-				
-				alias_method(mangled, name)
-				private mangled
-				
-				define_method(name) do |*args|
-					puts "method called: #{name}"
-					send mangled, *args
-				end
-			end
-		end
-
-		x, y = System::Decimal.new(1), System::Decimal.new(2)
-		p x + y       # => “method called: +”
-		p x.CompareTo(y)   # => “method called: compare_to”
-
-		The trick here is in new set of define_method overloads strongly typed to 
-		ClrName that define the real method using the ruby_name and alias it using
-		the clr_name. So both CompareTo and compare_to calls are intercepted.
-
-		We might add similar overloads to other methods to improve meta-programming
-		experience for CLR types when needed. 
-
-	10-06 (tomat)
-		Improves the implementation of singleton method dispatch.
-
-		1)	The previous singleton related shelveset made IRubyObject singleton methods
-		    as fast to call as regular methods. Since singletons of Object are frequently
-				used in specs, in fact any top level method calls are dispatched to a Object 
-				singleton, it makes sense to optimize singletons of Object as well. So far
-				we mapped Object to System::Object and Object.new produced an instance of
-				System::Object. Since such instances are pretty useless in .NET – they are
-				essentially empty objects that you can’t do anything with - it is not 
-				necessary to preserve this exact mapping. We still map the Object class
-				to System::Object CLR type, but the underlying CLR type of Object instances
-				is RubyObject. In pure Ruby program the difference is not observable. On 
-				the other hand C# programs will see the instances typed to RubyObject.
-		2)	Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=761: 
-		    Wrong behavior when calling redefined methods on object instances. This 
-				is actually fixed by 1) but the same issue applies on CLR singletons. 
-				Let’s say we have a CLR class C. Once you create a singleton of any of its
-				instance all rules generated for method calls whose receiver is *any*
-				instance of C must check whether the receiver is a singleton object of C 
-				or a regular instance of C. Previously we did this check only for calls to
-				singleton methods. This check is a pretty expensive weak dictionary lookup.
-				One way of optimizing this is to reduce the need of these checks. If we are
-				sure that no singleton method of the given name has been defined on any
-				singleton of C we don’t need to emit this check to the rule. Of course, we
-				need to invalidate such rule as soon as such method is defined. 
-		3)	Fixes potential race conditions in singleton creation.
-
-		These changes improve running time of specs significantly (2x):
-
-	10-06 (tomat)
-		Fixes allocation of structs. A struct can always be allocated by calling new
-		or allocate with no parameters or calling its constructor if available.
-
-	07-06 (tomat)
-		Initial work to improve singletons.
-		•	Improves reflection cache generator – it searches IronRuby.dll for all
-		  types marked by [ReflectionCache] attribute and generates ref-cache entries
-			for all their methods and properties marked with [Emitted] attribute.
-		•	Merges RubyModule.Subclass into RubyModule, i.e. RubyModule now implements
-		  IRubyObject.
-		•	IRubyObjects now hold on their immediate class (not nominal class) and that
-		  reference might change once from a non-singleton to a singleton class.
-			This change allows IRubyObject singletons (including modules and classes when
-			used in static method calls) to have the same rules as non-singleton objects. 
-			The rule no longer needs to hold on such objects.
-		•	Implements module freezing: methods, constants, instance and class variables,
-			mixins cannot be modified on a frozen module. Besides, if an object is frozen
-		  its singleton class is (recursively) frozen as well. 
-		•	Fixes object freezing: instance variables cannot be modified on a frozen object
-		  (we allowed it).
-
-	06-06 (tomat)
-		Fixes Ruby calls to protected generic methods.
-
-	05-06 (tomat)
-		Implements lazy method transformation. Previously a method was transformed to 
-		DLR AST as soon as it was defined (def foo; …; end). We can postpone the
-		transformation until the method is called for the first time. This
-		significantly improves startup time. For example (not NGEN’d):
-
-		require 'benchmark'
-		Benchmark.bm { |x|   x.report {  require 'rubygems'  }  }
-
-			user     system      total        real
-		eager transformation
-			1.622410   0.031200   1.653611 (  1.581316)
-		lazy transformation
-			1.170008   0.031200   1.201208 (  1.099220)
-
-		Although Ruby methods (unlike block) don’t close over variables we still need
-		2 closure variables: the parent lexical runtime scope and the module that the
-		method is declared in (for implementation of super). These were previously 
-		DLR closure variables. They are live constants now. Ruby method 
-		pre-compilation would require additional work, so we don’t support it for now. 
-
-	04-06 (tomat)
-		http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1509&ProjectName=ironruby: 
-		Proc.to_s should include line number where the block was declared
-
-	03-06 (sborde)
-		Reimplemented File.expand_path such that it does not use System.IO.Path. 
-		This allows us to get better compatibility with MRI.
-		The motivating reason was that RSpec does File.expand_path("filename:linenumber"),
-		and the old implementation complained that : is not valid in filenames, whereas
-		MRI allows such input
-		Fixed "[nil].uniq" - Cucumber was running into this.
-		Renamed scripts\ruby19.bat to ruby1.9.bat as "mspec -tr19" seems to have changed.
-
-		Fix non-deterministic Rake test for "multitask" by adding 
-		semaphore.synchronize around array access
-		Changed default.mspec so that :core properly excludes the thread tests
-
-	03-06 (jomes)
-		Make Expression.Type and Expression.NodeType virtual properties, and remove
-		TypeImpl & NodeTypeImpl. This fixes 4 fxcop warnings caused by the *Impl methods,
-		and results in a better API for end users.
-
-	02-06 (tomat)
-		Refactors AstGenerator so that we can use its new instance for each compiled
-		method. This is a preparation for lazy method compilation.
-
-		http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1184: 
-		public(:foo) does not work correctly for mixed-in methods
-		http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1060:
-		visibility of	send :define_method Title is required
-
-		Factors super-forwarders into a separate SuperForwarderInfo <: RubyMemberInfo
-		(it used to be just a flag on member info). The super-forwarder needs to
-		remember the name of the method to forward to since that can change if
-		it’s aliased (see Visibility2C test case).
-
-		Fixes assertion in RubyOverloadResolver - it wasn't expecting DynamicMethod 
-		stubs generated by super calls.
-		Also fixes the super stubs to throw an exception if the super method is abstract.
-
-		http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1345: 
-		load_assembly(<partial_name>) should work
-		http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1501: 
-		WinForms broken
-		http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1344: 
-		System.Action.new does not work
-		http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=917: 
-		Passing a Ruby array to a .NET method that expects an IEnumerable derivative
-		fails with GetEnumerator call
-
-		+ fixes incorrect caching of TypeGroup#new.
-
-		Class#clr_member no longer throws an exception if called on Ruby class – it
-		returns a group of all inherited CLR methods of given name (if there are any).
-		Improves display name of generic types: e.g. Action<int> displays as
-		System::Action[Fixnum].
-
-		http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1470 : Can't call 
-		the BigIntegerOverload of a method with a DefaultProtocol Attribute on the 
-		BigInteger attribute
-
-		+ Bignum.new(1) should call method_missing:
-
-		irb(main):001:0> Bignum.new(1)
-		NoMethodError: undefined method `new' for Bignum:Class
-
-	01-06 (jimmysch)
-		Allow Silverlight binary location to be adjusted based on a msbuild variable. 
-		Merlin builds use the well-known SL path in the source tree by default. A 
-		"SilverlightPath" msbuild variable can be passed to look for the SL binaries
-		there. For IronRuby and IronPython external SL builds either the
-		"SilverlightPath" variable can be set to Silverlight's install location, 
-		or the necessary Silverlight binaries can be copied to 
-		Merlin/Main/Utilities/Silverlight.
-
-		Also scoots around aliases to Silverlight directories.
-
-	01-06 (jdeville)
-		* Added and modified tests to increase code coverage
-		* Rolls in cominteropfix shelveset to make the cominterop generic test 
-		actually run COM interop tests
-		* Moves Rubygems tests to External\Languages\IronRuby\RubyGems-1_3_1-test
-		* Removes Rubygems 1.2 tests
-		* Fixes Rubygems test runner for the above.
-		* makes irtests run the core tests split up, adds cominterop
-		* splits out thread tests into a separate test list
-		* makes ir.cmd use TEST_OPTIONS
-
-	31-5 (tomat)
-		ClrMembers
-
-	29-5 (tomat)
-		Overrides4
-
-	28-5 (jdeville)
-		* Remove temp.rb from IRPowershell, it was only needed to test the script
-		  during development.
-		* Port minsysreq and minsysreq_ps. Next step will be to generalize them to
-		  some different apps.
-
-	26-5 (tomat)
-		Fixes handling of CLR protected and private methods and properties.
-		Enables generic methods in ClsTypeEmitter.
-		Removes RubyCallFlag.TryCall – it’s not used anymore.
-		Fixes calls to Object.Equals instance/static methods.
-
-		Notes on visibility:
-		Ruby visibility is orthogonal to CLR visibility.
-		Ruby visibility is mutable (can be changed using 
-			Kernel#public/private/protected methods), CLR visibility is not.
-		A CLR method group can comprise of methods of different CLR visibility. 
-		  Ruby visibility applies on the group as a whole.
-
-		Ruby-protected members can only be called from a scope whose self immediate
-		class is a descendant of the method owner.
-		CLR-protected members can only be called if the receiver is a descendant of
-		the method owner. 
-
-		Ruby-private members can only be called with an implicit receiver (self).
-		CLR-private members can only be called in PrivateBinding mode
-		(-X:PrivateBinding command line option), the receiver might be explicit or
-		implicit.
-
-		Tests:
-		Since protected methods can only be called on a derived class instance the 
-		specs need to be adjusted accordingly.
-		I’ve fixed generic_spec nad overload_spec and commented out a block in 
-		protected_spec – all the cases there need to be changed to negative cases
-		(all should fail).
-		Removed ROWAN_BIN check in 
-		External.LCA_RESTRICTED\Languages\IronRuby\mspec\default.mspec 
-		so that mspec picks up IR_OPTIONS even if ROWAN_BIN is not set.
-
-	22-05 (jdevillle)
-		(jdeville) Regressions tests for the following CP bugs. 
-		!!!!!Note that closing 1351 means we are upgrading redist-libs and rubygems!!!!:
-		ID	Title	
-		374	irails Foo: undefined method for OpenSLL::Random.random_bytes	
-		459	throw FileNotFoundException => rescue Errno.NoEntryError	
-		466	''.split(//, -1) returns [""] instead of []	
-		572	Error when running Cucumber examples with IronRuby	
-		614	ci_files set needed in mspec config	
-		718	IronRuby ignores RUBYLIB environment variable	
-		727	to_proc not working	
-		814	Allocator underfined for <type> (TypeError)	
-		940	Can't inherit from abstract classes	
-		1028	Missing conversion from Duration to Fixnum (ActiveSupport)?	
-		1351	redist-libs should have rubygems-1.3.1	
-		1352	Test Defects	
-
-		Also:
-		* Categorizes uncategorized specs
-		* includes a TraceListener in default.mspec.
-
-	21-05 (tomat)
-		Improves DLR interop: adds support for GetMember/SetMember with 
-		  method_missing, Binary/Unary ops, indexers.
-		Fixes bugs in DLR interop.
-
-ironruby-0.5.0.0 - 2009-05-19
------------------------------
-
-  18-05 (jdeville)
-    From Jirapong:
-    * Fixed OpenSSL::Random.random_bypes and OpenSSL::Random.pseudo_bytes 
-      (via cherry-pick from Jimmy's repro)
-
-    From Shri:
-    * "ir.exe -Ifoo" should work. We were requiring "-I foo".
-      Removed critical tags in io\close that I noticed were working.
-      Miscellaneous new tests in File.basename
-      Our copy of unit\testcase.rb uses SubclassTracker which is defined in
-      "hacks" and so should require "hacks"
-    * Map #== and #hash to System.Object.Equals/GetHashCode
-    * With the memcache-client gem installed, the Rails tests fail to startup
-      as memcache does TCPSocket.new(addr, port, 0) and we were not handling
-      the third argument
-    * "numeric + someOtherObj" should call someOtherObj.method_missing(:coerce)
-      backtraces now include file names for builtin methods in
-      IronRuby.Libraries.dll in a DEBUG builds and with -X:ExceptionDetail
-    * Enables RubyGems tests in irtests.bat
-    * Add mocha gem
-    * Implement File.chown. It is a nop (on Windows)
-    * ObjectSpace.each_byte:
-      It was not throwing an exception for the unsupported cases.
-      Also, the unsupported cases should throw RuntimeError to match 
-      ActiveSupport/JRuby conventions
-      The return value was also incorrect
-    * NameError should call #inspect on self, not #to_s
-    * #instance_method on singleton classes behaves a bit differently - it 
-      puts a contraint of the nominal type.
-    * UnboundMethod#bind was doing an incorrect type check and not dealing with
-      singleton classes. Factored out RubyContext.IsKindOf for this
-    * Add flexmock gem
-    * Changed some uses of MutableString.Empty (like Array#join with empty array) 
-      to create a new empty string as the user could validly mutate it.
-      - Renamed MutableString.Empty to MutableString.FixedEmpty to make it clear 
-      that the instance should be shared in limited scenarios
-    * Fixes to Module#instance_method per Tomas's feedback from previous code review
-    * File.extname(".foo") should return "", not ".foo"
-    * Removes to_proc hack from Libs\hacks.rb
-    * Tutorial sample app
-
-    From Shay:
-    * Fixing a File.print misbehavior when the global separator is not the default.
-
-    From Jimmy:
-    * IronRack - Run Rack applications (Sinatra, Rails, etc) on IIS
-      (cherry picked from commit aba053caa5f5e10c9da360fd4f2d442406f59079)
-    * Load app by APP_ROOT and config.ru
-      (cherry picked from commit 3da7be50ee63e1fe3a437f95f9ab2220784f9141)
-    * Add "RackVersion" to web.config.
-      (cherry picked from commit 087ad7290217e18b41171e24866bf10c54d6ec0c)
-    * Add README
-      (cherry picked from commit 54edd25b3837a36714c67c5c44653b1b07bdb9f5)
-    * Load a version of Rack denoted by RACK_VERSION
-      (cherry picked from commit 85d98e68a6bb375820370cd8b724311e8ed2304e)
-    * Make readme .markdown
-      (cherry picked from commit 9f8c37e4d4935f51460501ec1526b350d6137397)
-    * Spring cleaning (aka merging Justin Rudd's version)
-      (cherry picked from commit 69916ceb04a3f8ecad570fb89549da7ef56d0a6c)
-    * IIS.Handle(request, response) now it pretty close to compliant with the Rack spec.
-      Added an Request/Response class, so most of the munging around in IIS.Handle 
-      will be moved to those in the future.
-      (cherry picked from commit 025dc983062ae5d5c4d008532c94a5be9dcf925b)
-    * Adds irackup and fixes irake (Method#to_proc hack)
-    * Server name and server port
-      (cherry picked from commit d1257882642b06c0c71d05275d1ae5f84739ed23)
-    * Remove repl.rb from project ...
-      (cherry picked from commit dac7df55ce0217a77dc7f1c92c5b37b6dd0e14f7)
-    * rack.uri_scheme
-      (cherry picked from commit aeebcb0ec8247684a62e0a023a94fb3bb23e49b6)
-    * update sintra test
-      (cherry picked from commit 078aaaddd0c5468173ff1880b1c80091bb22dd80)
-    * Make sure the "env" has MutableString keys, and that Rackup() always 
-      return a Rack app
-      (cherry picked from commit fe3517edb7fdecf6d5ecefd2f87d27d484ebc9f6)
-    * Set TOPLEVEL_BINDING if not already set
-    * Better logging
-    * Fix env vars for Sinatra (and completeness)
-    * TCPSocket#read patch for POST requests in WEBrick
-      (cherry picked from commit 77a060722592b26bb6fc91d47ceddf9ed90c775e)
-    * cleanup of ironruby-rack from railsconf
-    * Move to Merlin/Main/Hosts/IronRuby.Rack
-    * Log KCODE
-    * fix KCODE error message
-    * Add ngen install/uninstall scripts
-      (cherry picked from commit e9d15d93082e8ac8d32ce2a51939c32f8c0cfb03)
-    * require 'System.Windows.Forms'
-      (cherry picked from commit 92932a672921a03210c8aefe23ac0a7d6996ed2d)
-
-  18-05 (jdeville)
-    Initial COM interop tests for IronRuby. These are just a port of
-    IronPython's "app" interop tests. This also changes IronRuby to version 0.5
-
-    Ported  IronPython's DiskUse sample to IronRuby
-
-  13-05 (tomat)
-    Adds support from nested types to Ruby – they are exposed as constants on
-    the declaring type. Also implements removal of namespace member and nested
-    type constants.
-
-    Fixes a bug in autoload – the constant being loaded was removed on a
-    wrong module.
-
-    Improves displaying of generic types and type groups: RubyContext.GetClassName
-    returns a name of the class without generic parameters or runtime id.
-    RubyContext.GetClassDisplayName includes both (runtime id only for classes
-    from foreign runtime). The latter is used for displaying errors and for
-    object inspection.
-
-  12-05 (tomat)
-
-    Fixes class instantiation, including bug 
-    http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1085.
-
-    Several cases need to be distinguished in Class#new:
-    1) The class defines or inherits an initializer (“initialize” method) that
-       is not the default Object#initializer.
-       a. The initializer is a Ruby method (written in Ruby).
-          => Use a default constructor to create the instance and invoke the
-             initializer on it. If the class derives from CLR class with no 
-             default constructor an exception is thrown.
-       b. The initializer is defined in a built-in class/module.
-          i.  The class being instantiated is a Ruby class.
-              Use default constructor and invoke the initializer.
-          ii. The class is a CLR class.
-              Use constructor or factory. Do not call the initializer 
-              built-ins must initialize the object completely in 
-              constructors/factories and provide initializers only for a direct
-              call.
-    2) Otherwise.
-       => Use constructor or factory. Do not call the initializer.
-
-    If the first parameter of a CLR constructor is of type RubyClass it is 
-    considered optional and hidden (like RubyContext or RubyScope) and the 
-    binder passes the class object that represents the class being 
-    instantiated.
-
-    Adds support for RubyContext hidden parameter to the constructor generator
-    in RubyTypeBuilder. The first RubyContext or RubyClass parameter is
-    considered a special hidden parameter. The built type needs to store 
-    RubyClass instance to _class field. If the base constructor already has 
-    RubyClass the derived ctor has the same signature. If the base constructor
-    takes RubyContext the derived ctor takes RubyClass in its place and passes
-    its context to the base ctor. If the base ctor doesn’t have RubyClass or 
-    RubyContext parameter RubyClass parameter is injected. We also need to
-    ensure that we don’t create duplicate constructors (e.g. if there is a
-    parameter-less overload, an overload taking RubyContext and an overload 
-    taking RubyClass).
-
-    Fixes Ruby.sln so that System.Dynamic is not built in Silverlight configurations.
-
-  07-05 (tomat)
-
-   Implements IsAscii() on MutableString – the bit is calculated along with 
-   hashcode and invalidated each time a mutable operation is performed.
-   Enables combination of mutable strings with different encodings/KCoding. 
-   If a string is k-coded it should be treated as byte array for all operations 
-   since 1.8 doesn’t tag the strings with encodings. Hence any k-coded strings 
-   can be combined regardless of their actual encodings. 1.9-encoded strings 
-   must have the same encoding or one of them must have all characters in 
-   range 0..127 (IsAscii == true) – MRI 1.9 allows combination of such strings.
-
-   Fixes:
-    - “IronRuby ignores RUBYLIB environment variable”
-      http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=718
-    - Encoding wasn’t flowing correctly in eval (test Encoding4)
-    - Improves performance of String#*.
-    - MutableString.Content.GetCapacity was wrong.
-
-
-  06-05 (tomat)
-    Improves performance for file IO#read method.
-    Previously we were 10x slower than MRI, now we are approx. 1.5-times faster
-
-  05-05 (tomat)
-    Implements Method#to_proc.
-
-    Implements precompilation of simple Ruby method invocations. Adds 
-    pre-generated rules for call sites that are:
-    1) context bound
-    2) without a block, splat or RHS argument
-    3) with self of runtime type RubyObject strongly typed to Object in the 
-       call site
-    4) the method is resolved to an existing Ruby method or an “empty” 
-       library method
-    5) no context class checks are needed due to protected visibility
-    6) the method doesn’t have optional or unsplatted parameters and the number
-       of mandatory parameters matches the call site
-    7) the method has at most 5 parameters
-
-    The rules are generated to MethodDispatcher.Generated.cs by 
-    MethodDispatcher.Generator.rb. The generator finds blocks in C# code that
-    match this pattern:
-
-    #if GENERATOR
-    <ruby code>
-    #else
-    <C# template>
-    #end
-    #region Generated by …
-    <generated code>
-    #endregion
-
-    It creates a new class G < Generator for each such block end module-eval’s
-    <ruby code> in that class. Then it calls G.new.generate. The default
-    implementation takes the <C# template> and replaces each occurrence of
-    /*$MethodName*/ or /*$MethodName{*/ … /*}*/ in the template by a value
-    returned by a call to MethodName on the generator class. The generator
-    replaces the content of “Generated by” region by the resulting code. The
-    <C# template> is optional – the #else block can be omitted.
-
-    There could be multiple templates in a single file. The generator also
-    searches the file for /*$$*/ comments before evaluating them. Text in 
-    between such comment and following semicolon is evaluated as a Ruby global
-    variable definition. 
-
-    The shelveset also moves event sites (method added/removed/undefined, …)
-    to RubyModule and RubyClass so that they don’t become megamorphic.
-    Encapsulates class version into VersionHandle class.
-
-    Changes perf stats output writer to a file 'perfstats.log'.
-
-    Enables remaining Method specs. Fixes a couple of failures due to wrong arity calculation.
-
-  03-05 (tomat)
-    Fixes a bug in interpreter - if an exception was thrown in finally clause 
-    the handler of that exception didn't get executed since the current 
-    instruction index was already beyond "endIndex". We need to set endIndex
-    to _instructions.Length.
-
-    Ruby: Removes old interpreter.
-
-  01-05 (tomat)
-    Fixes bugs in the new interpreter and implements more features to support 
-    IronRuby. 
-
-    Fixes bug http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=572 
-    and other eval issues related to control flow.
-
-  28-04 (tomat)
-    RubyScope fixes and refactoring.
-
-    This change enables top-level hosted code to define instance methods in 
-    DLR scope. It is no longer necessary to define them as singleton methods.
-    Ruby engine executes the hosted code as if it was executed using 
-    instance_eval on a proc. The behavior is the same except for control flow;
-    break or retry on top-level throws an exception as it does in MRI.
-
-    This unit test illustrates the new behavior:
-
-      // When executed without a scope top-level methods are defined on Object
-      // (as in MRI):
-      Engine.Execute("def foo; 1; end");
-      Assert(Context.ObjectClass.GetMethod("foo") != null);
-
-      // When executed against a scope top-level methods are defined on main 
-      // singleton (not on Object) and also stored in the scope:
-      var scope = Engine.CreateScope();
-      Engine.Execute("def bar; 1; end", scope);
-      Assert(Context.ObjectClass.GetMethod("bar") == null);
-      Assert(scope.GetVariable("bar") != null);
-    
-    Fixes bug in top-level scope compilation – variables from the scope were
-    not bound properly:
-    
-      var compiled = Engine.CreateScriptSourceFromString("some_variable").Compile();
-      scope = Engine.CreateScope();
-      scope.SetVariable("some_variable", "foo");
-      Assert(compiled.Execute<string>(scope) == "foo");
-
-  25-04 (jdeville)
-    - Update to v0.4.0.0
-
-  25-04 (jdeville) 
-    From Danielle:
-    * IListOps.Difference now uses Object#hash and Object#eql? to check for
-      object equality, this fixes the failing spec "Array#- acts as if using an
-      intermediate hash to collect values"
-    * Modified IListOps.RecursiveJoin to make it flag the resulting string as
-      tainted if the given array, at least one of its elements or the separator
-      string are tainted.
-    * Changed IListOps.Repetition to return IList instances of the same type of
-      the given self argument (this fixes also "Array#* with an integer returns
-      subclass instance with Array subclasses")
-    * Various changes to IListOps.Join to clear all of the remaining tags for the
-      specs of Array#join. The tags marked as critical in join_tags.txt are not
-      related to pending bugs for Array#join.
-    * Added ArrayOps.ToAry as Array#to_a and Array#to_ary behave differently on 
-      subclasses of arrays.
-    * Cleaning up tags removing expectations that do not fail anymore.
-    * Changed one overload of IListOps.Equals to make it try to call #to_ary on 
-      the object argument of Array#== and use the resulting array as the actual
-      argument for the equality check.
-    * Changed IListOps.SetElement to make it try to invoke #to_ary on its argument
-      for multi-element sets.
-    * Changed IListOps.Reverse to return IList instances of the same type of the
-      given self argument (this change also fixes the following failing spec: 
-      "Array#reverse returns subclass instance on Array subclasses")
-    * Fixed IListOps.ReverseIndex as Array#rindex should not fail if elements are
-      removed from the array during the iteration over its elements.
-    * Slightly modified IListOps.UniqueSelf as suggested upon review.
-
-    From Jimmy:
-    * Allows symbols to be inside a YAML array
-      http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=375
-    * Fixes for File.dirname, makes all dirname specs pass. For Rails to find 
-      log/development.log
-      http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=499
-    * Uses [NotNull] instead of a explicit check.
-    * Makes __FILE__ and $PROGRAM_NAME (and $0) have canonicalized paths when
-      Ruby is hosted from ir.exe. However, __FILE__ is not messed with when including a file via require/load.
-      Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=545
-    * autoload uses '/' to join load-path and autoload-path
-      Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=674
-    * Code Review changes
-    - Moves command_line/fixtures/file* and language/fixtures/file* to fixtures/
-    - Create RubyUtils.CanonicalizePath, to dependency on IronRuby.Builtins.Glob
-      from IronRuby.Hosting
-    * Code review updates:
-      - Don't combine paths with '/' if the base-path already ends with '/' or '\\'
-      - Remove Glob.CanonicalizePath (in favor of RubyUtils.CanonicalizePath)
-
-    From Jim:
-    * remove Glob.CanonicalizePath as requested by Tomas for CR for Jimmy
-    * add ci_files to default.mspec so mspec ci works
-    * add a filtered function to mspec to simplify default.mspec
-    * categorizing uncategorized specs
-    * removing extra spec files
-    * update rubyspec and mspec
-    * add a file with the git sha1 hashes of current mspec and rubyspec
-    * implement File.umask in order to run the specs
-    * Implement Process.waitall (needed by Process specs)
-      Also implement Errno::ECHILD, Process.uid=, Process.wait and Process.wait2
-    * rebuilt ironruby tags
-    * Code review fixes from Tomas
-    * fixing up some missing tags
-
-  23-04 (jdeville)
-    From Daniele:
-    * Array#first(n) and Array#last(n) on a subclass of Array should return an 
-      instance of Array and not an instance of the subclass.
-    * The result of Array#compact must keep the tainted status of the source 
-      array.
-    * A block passed to Array#delete should be executed only if no element 
-      matches the given object
-    * Array#flatten returns subclass instance for Array subclasses
-    * Array#flatten does not call flatten on elements
-    * Array#fetch passes the original index argument object to the block, not 
-      the converted Integer
-    * Removed unused allocateStorage argument from IListOps.First and 
-      IListOps.Last; Removed the manual protocol conversion bits in IListOps.Fetch
-    * Fix IoOps.ToPrintedString to output a double converted to string using an
-      invariant culture (Issue #597 NumericLiterals1 test fails under french culture)
-    * IListOps.ValuesAt adds a null value to the result if the begin value of 
-      the specified range instance(s) is <= the length of the array and the end 
-      value is >= the length of the array.
-    * Array#uniq! raises a TypeError on a frozen array if modification would 
-      take place.
-    * Fixed ArrayOps.ToArray to return a new RubyArray instance with the 
-      elements of self if self is a RubyArray.Subclass.
-    * Array#initialize with (size, object=nil) uses the block value instead
-      of using the default value
-    * Fixed IListOps.Compare to work with recursive arrays.
-
-    From Shri:
-    - Adding the RubyGems 1.2 tests
-    - Included the 1.3.1 tests as well. They can be used when IronRuby moves up
-      to RubyGems 1.3.1 (which is what MRI 1.8.6p287 uses)
-    - Added Scripts\RubyGemsTests.rb to run the RubyGems tests in the IronRuby 
-      dev environment
-    - Added an optional task (use "irtests.bat -all") to irtests.bat to run the
-      RubyGems tests. We can enable it by default once more people can try it
-      out and make sure it works well
-    - irtest.bat now runs in series by default. Use "irtests.bat -par" to tasks
-      run in parallel
-    - Calling exit in at_exit should set the error code. This is required to 
-      detect if RubyGemsTests.rb succeeded or not
-    - Fixes Array#hash to work with recursive arrays
-    - Also updated ArraySpecs.recursive_array to produce a cycle of length 3. 
-      Previously, it was doing "a << a" multiple times, but this does not 
-      increase the length of the cycle above 2. It just increase the number of 
-      cycles. This change required an update to many files.
-    - Also added a new ArraySpecs.recursive_arrays function which should be used
-      when dealing with two arrays (comparisons, merge, etc). I have only used
-      it in equal_value_spec and eql_spec for now...
-    - Also removed entries from critical_tags.txt since recursive hashing and
-      comparison now works.
-    - Changed irtests.bat to not use "mspec -V" (unless you are using "irtests -par")
-      which was causing very verbose output
-    - Changed irtests.bat to only use two "mspec" tasks so that "irtest -par"
-      will spawn fewer processes.
-    - Changed IronRuby.Tests.exe to show dots for each test instead of printing a
-      new line which is very verbose
-    - Changed irtests.bat to continue running tests even if previous test task 
-      failed. It remembers the failed results and prints the summary at the end.
-    - Added ruby19.bat so that "mspec -tr19" runs with Ruby 1.9. It requires
-      you to set RUBY19_EXE to point to your copy of the 1.9 version of ruby.exe
-    
-    From Jirapong:
-    - fix File.new by re-throw exception
-    - format indent style
-    - added RubyErrno.cs to IronRuby.dll, move EEXIST, EINVAL, and ENOENT 
-      to IronRuby.dll
-    - move RubyErrno's exceptions to exceptions.cs
-
-  15-04 (jdeville)
-    Changes from Shri (Include changes from Jira and Daniele):
-    * Implemented Zlib::GzipWriter.open
-    * Added Kernel.abort
-    * Mapped Errno::EACCES to System.UnauthorizedAccessException
-    * File.delete catches IOException and rethrows Errno::EACCES to match MRI
-    * Adds Errno::EXDEV
-    * Updated rbconfig.rb to work with the dev environment. 
-      Change RbConfig[:ruby_install_name] to "ir". Note that it is not "ironruby"
-      because RubyGems uses this to spawn new processes for running setup scripts
-      , and so it needs to match the executable name (ir.exe).
-    * Added Languages\Ruby\Tests\Interop\uncategorized_spec.rb as a place for devs
-      to add CLR tests. Jim can later move them into the right place in CLR interop
-      test suite.
-    * fix missleading FileMode refer to
-      http://rubyforge.org/tracker/index.php?func=detail&aid=25116&group_id=4359&atid=16798
-    * Fixed another bug in String#%
-    * Bugs in File.rename
-    * Ruby should exit when main thread exits, even if other threads are still alive
-    * Mapped Errno::ENOENT to FleNotFoundException, and 
-      ENOTDIR to DirectoryNotFoundException
-    * fix kernel.open with permission parameter
-    * Fixes on top of Jirapong's fix for Kernel.open
-    * Fixes File.expand_path to workaround a problem "igem i rails" was running into.
-    * Fixes File apis to throw correct exception type
-    * Implements Kernel.abort
-    * Adds Errno::ECONNREFUSED
-    * Exception#message should call Exception#to_s
-    * Fixes paths in rbconfig.rb to work in dev environment
-    * Fix the behaviour of Array#[]= with [start, length]
-    * Delete tags for Array[]=
-    
-    Changes by Jim:
-    * refactor method specs to use a shared behavior
-    * namespace mapping and method addition specs
-    * more namespace specs for adding and removing methods and classes
-    * adding specs mixing Namespaces into Ruby classes
-    * added specs for enums
-    * remove dependencies on ClrAssembly
-    * remove ClrAssembly from Ruby.sln. I'm leaving the ClrAssembly in the Git 
-      repo so that I can reference it when doing my specs
-    * enum reflection specs
-    * spec IEnumerable maps to Enumerable
-    * spec IComparable maps to Comparable
-    * idictionary support specs
-    * Ilist specs
-    * class modification specs (method addition and removal
-    * spec comparable maps to icomparable
-    * specs that Int32 is Fixnum and System::DateTime is Time
-    * adding System::DateTime instantiation specs
-    * interface reflection spec
-    * implementing interfaces
-
-  15-04 (tomat)
-    Moves old interpreter to Ruby.
-    Cleans up scope factories (removes out parameters).
-    A couple of other small tweaks.
-
-  13-04 (tomat)
-    Adds support for .NET operators (op_* special methods). These methods 
-    behave like extension methods so some adjustments were needed in 
-    RubyOverloadResolver to handle “self” correctly. 
-
-    Implements bitwise operators on flag enums: each flag enum gets a
-    FlagEnumeration mixin that includes &, |, ^, and ~ methods. The 
-    implementation is the same as Python have so I factored it out to 
-    EnumUtils in DLR.
-
-    Fixes implementation of RubyObject.ToString and Kernel#to_s so that 
-    “to_s” is called from ToString on Ruby objects and ToString is called 
-    from Kernel#to_s for .NET objects. Also implements ToString on built-ins 
-    where it was missing and it makes sense to have it: range and regex. 
-    Although Array and Hash implement to_s as well the result is a plain 
-    concatenation of string representation of their items (entires). 
-    E.g. [“a b”, “c”].to_s == “a bc”. 
-    I don’t think adding RubyArray/Hash.ToString doing the same would be
-    useful for .NET users.
-
-    Moves Protocols from libraries to IronRuby.dll.
-
-    Implements more DLR interop binders and refactors existing ones.
-    Adds support for COM interop to interop binders and Kernel#methods.
-    Fixes a bug in Ruby AST that emitted wrong code for an empty AST.
-
-  08-04 (tomat)
-    Redesigns the default method binder.
-    Implements partially restricted splatting feature in Ruby.
-    Replaces calls to obsolete methods of default method binder with those using meta-objects.
-
-    Fixes http://ironpython.codeplex.com/WorkItem/View.aspx?WorkItemId=18379.
-
-  04-04 (jdeville)
-    Jim: 
-    - closing Rubyforge 15060 
-    - [#24589] $PROGRAM_NAME in 'English' not working now fixed 
-    - making $0 the same object as $PROGRAM_NAME and adding specs for it. Closes
-      [#24589] $PROGRAM_NAME in 'English' not working 
-    - closing Rubyforge [#15061] tracking: create generic interface type 
-    - closing RubyForge [#15651] NoMethodError expected when calling the private
-      method 'initialize' of a ruby class 
-    - added protected method invocation specs. Closes Rubyforge [#19118] 
-      Protected members not available when inheriting from CLR type 
-    - adding regression test for [#19872] IComparableOps.CompareTo throws argument
-      error when type is Decimal 
-    - added reference support to csc.bat 
-    - closing [#17467] Accessing IronRuby method from C# 
-    - closing [#19950] Dir.glob doesn't handle ** 
-    - closing [#20027] Formatting float to string produces incorrectly 
-      "Infinity" 
-    - closing [#20043] creating a generic type when the type is an interface 
-    - closing [#20052] Calculating 3.0/2.0 produces NaN 
-    - closing Rubyforge [#20263] Dir.glob doesn't handle missing folders 
-    - closing [#20410] GetKCodeName 
-    - adding test to ensure that File.stat returns a File::Stat object 
-    - closing Rubyforge [#20640] Calling File.open with an integer (File descriptor
-      overload) causes the File.open site to be unusable 
-    - closing Rubyforge [#20664] Respecting visibility of methods. Also fixes a
-      compilation error due to multiple IInterface definitions 
-    - Closing RubyForge [#20665] Can't use an indexer on a WPF ResourceDictionary 
-    - removing a tag for predefined 
-    - closing Rubyforge [#21943] NullRef exception thrown while comparing a list 
-      containing elements with overriden == 
-    - closing Rubyforge [#21995] kind_of? not working with when extend is used 
-    - recommiting some changes that were reverted by the merge. Methinks someone
-      in TFS changed them. This makes describe work with 2 strings for shared 
-      behaviors, and it makes csc output #line pragmas 
-    - fixing some more errors from the merge 
-    - Adding class instantiation specs for regular classes with overloaded 
-      constructors
-    - adding regression tests for [#22197] calling super throw Argument Error 
-    - adding StringBuilder specs to get rid of test_basic.rb. Also added 
-      equal_clr_string matcher 
-    - refactor specs to use the equal_clr_string matcher 
-    - basic string specs to remove test_basic.rb 
-    - added more string specs to get rid of test_basic. Also adds field specs 
-    - adding some basic event add and remove specs 
-    - added event invocation specs
-
-    Shri:
-    - YAML should allow spaces. eg the trailing \s\t in 
-      YAML.load("!timestamp '2009-03-22 00:00:00\s\t'") is allowed
-    - Changed igem.bat, irake.bat, etc to work in dev environment where ir.exe
-      is not in the path
-    - File.expand_path("~") should throw ArgumentError is HOME is not set
-    - make orig_name, comment, and split close and finish
-    - compile error when pull form irmain, merge in zlib
-    - spec for finish, close, oriname, and trying to DRY orig_name and comment
-    - make orig_name, comment, close, and finish passed spec.
-    - Implements File.chmod
-    - File.readable? should return false if the given filename does not exist
-    - File.delete should be able to delete a read-only file. This is implemented
-      by making the file writable first. This is the only solution I could find.
-    - Added debugger visualizer for RubyObject so that VS will display the result
-      of to_s in the Watch window.
-    - Adds the wrapper script Merlin\Main\Test\Scritps\ir.cmd so that the Legacy
-      tests (Ruby\Scripts\test.bat) can pass without any failures.
-
-  28-03 (sborde)
-    - Adding unit tests for Ruby's IDMOP support. Failing scenarios are tagged
-      with AreEqualBug and AssertExceptionThrownBug
-    - Added Languages\Ruby\Scripts\ir_wrap.cmd as the replacement for
-      Test\Scripts\ir.cmd which does not exist in GIT. Most of the files are 
-      changed because of this.
-
-  27-03 (jdeville)
-    - modify .gitignore to ignore Bin in addition to bin
-    - Adds ClrAssembly to Ruby.sln
-    - add dlr_config to IronRuby object 
-    - csc describe handles shared specs (multiple arguments) and we now emit 
-      #line pragmas instead of comments 
-    - adding some generic tests and fixing tags, also make default.mspec load
-      ir.exe instead of ir.cmd 
-    - adding some constrained generic specs 
-    - added generic error messages specs. Fixed tag location
-    - split pragma warning to make sure I do not disable unintended warnings. 
-      Refactor conflicting methods 
-    - added class param and conflicting type param specs 
-    - adding specs for ruby classes with type constraints
-    - array conversion specs 
-    - array instantiation specs 
-    - redid IronRuby.dlr_config after Tomas' IronRuby changes 
-    - adding a default conversion spec and a little bit of refactoring 
-    - more array tests 
-    - spec for a static method caching bug i found 
-    - spec method overriding maintains .NET supermethod 
-    - refactor to add some metaclass helpers 
-    - class instantiation specs 
-    - some more class instantiation specs 
-    - sealed class instantiation specs 
-    - generic instantiation specs 
-    - make GenericClass have a method so it isn't EmptyGenericClass 
-    - more generic instantiation specs 
-
-  26-03 (tomat) 
-    Implements atomizer for Ruby call site binders: A new class 
-    RubyMetaBinderFactory creates sites and caches them in dictionaries. Sites 
-    are either bound to a runtime (RubyContext) or not. Bound sites don’t emit 
-    context check, unbound need to. Bound sites don’t take RubyContext as the
-    first parameter any more. They can still take RubyScope if needed (such 
-    sites have HasScope flag set). Replaces SiteLocalStorage with 
-    RubyCallSiteStorage that holds on the context so that it is not necessary 
-    to pass RubyContext to the sites stored in the storage. Updates all sites 
-    in libraries accordingly.
-
-    Adds –ER command line option that enables tracing of meta-objects (rules) 
-    created by Ruby.
-
-    Refactors MetaObjectBuilder to use type restrictions rather than expression
-    restrictions.
-
-    Removes RubyClassAttribute.MixinInterfaces – it didn’t work correctly and
-    was almost unused.
-
-    Also improves handling of BOM in 1.8 mode – we previously did exactly what
-    Ruby does, i.e. report a syntax error from which it is not obvious what’s
-    wrong. If –KU is not specified and UTF8 BOM is found at the beginning of 
-    the source code, the tokenizer reports a level 2 warning, skips the BOM 
-    as if it was whitespace and continues reading the file.
-
-  24-03 (tomat)
-    A couple of breaking changes:
-    - Removes ClrString constant. CLR string should be referred to as 
-      System::String. 
-    - Removes IronRuby library. “require ‘IronRuby’” is no longer needed, IronRuby
-      module is now a built-in module.
-
-    Implements integer/float operations for all CLR primitive numeric types (byte,
-    sbyte, short, ushort, uint, long, ulong, float). Those integer types that fit 
-    in 32-bit signed integer (Fixnum) are widened to Fixnum for all operations. The
-    other integer types are widened to BigInteger. Float is converted to double.
-    The operations on these types don’t narrow their results even if the values
-    fit. For example, (System::Byte.new(1) + 1).class == Fixnum, not System::Byte.
-    This might not be optimal for some scenarios. If we find it important we’ll fix
-    this in future.
-
-    The implementation takes the operations from FixnumOps, BignumOps and FloatOps
-    and moves them to new modules IronRuby::Clr::Integer, IronRuby::Clr::BigInteger 
-    and IronRuby::Clr::Float respectively. These are mixed back into the numeric 
-    types. Some methods need to be specialized for each types, so we generated C# 
-    code for them. Ruby 1.9 script ClrInteger.Generator.rb produces
-    ClrInteger.Generated.cs.
-
-    Implements System::Char and System::String methods so that they behave like an
-    immutable UTF-8 encoded string (of size 1 character in the case of 
-    System::Char). Many methods in MutableStringOps can share implementation with 
-    CLR string. There is still a lot of work to be done here, especially to support
-    encodings. So for now, to make CLR strings work like Ruby frozen strings to a
-    large extent, I’ve implemented method-missing dispatch that forwards to a 
-    MutableString. 
-
-
-ironruby-0.3.0.0 - 2009-03-20
------------------------------
-
-  - Improves Ruby tokenizer and parser by 30%
-  - Moved source code repository to GIT, unsigned builds
-  - Thread library (Thread#stop, Kernel#sleep, Thread#raise, Thread#critical=)
-  - Fixes interpretation of UnaryExpresion cast with a custom method
-  - Implements generic methods parameters binding and explicit overload selection
-  - Makes operations on class hierarchy thread-safe
-  - Fixes binder error message given when an interface name is displayed.
-  - Adds additional RubySpec tests to language/regexp_specs.rb
-  - Fixes Zlib::Inflate#inflate and File#join (for gem install)
-  - Adds -e support to IronRuby using CommonConsoleOptions.Comand.
-  - Regexp literal support for /o
-  - Fixnum + Bignum should yield a Bignum, not a Float
-  - Implements Ruby protected visibility, fixes other bugs in Module (all specs pass now) and assignment in eval.
-  - Implements loading of assembly dependencies.

-- 
ironruby



More information about the Pkg-cli-libs-commits mailing list