Release Name: 0.9.2
Notes:
The IronRuby team is pleased to announce version 0.9.2! As IronRuby approaches
1.0, these 0.9.x releases contain important bug fixes and enhancements that
IronRuby users request; this release fixes/closes 44 bugs. For more information
see the "Bugs fixed" section, and the CHANGELOG.
This release is the first to give IronRuby a MSI-based installer for Windows.
Try it out and let us know if it does not install on your system. While the
installer also contains Silverlight binaries, it's suggested to still use the
zip release for Silverlight, as there are some configuration issues with the
MSI.
As always, if you encounter any issues with IronRuby please report it here:
http://ironruby.codeplex.com/WorkItem/Create.aspx.
== Contributors
Shri Borde, Ivan Porto Carrero, Jim Deville, Tomas Matousek, Jimmy Schementi,
Dino Viehland
== Breaking changes
Kernel#require no longer loads Python files, IronRuby#require should be used
instead.
== Bug fixed
44 workitems fixed or closed since 2009-09-28
1. Unimplemented format directives in unpack?
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1695)
2. puts throws System.Text.DecoderFallbackException with binary data
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1001)
3. The Ruby Console Throws an Exception on Every Command After a Blank Line is Passed First
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1649)
4. Cannot assign literal Fixnum values to SByte array, and cannot convert Byte to SByte (even via Int32)
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1681)
5. Issues with name mangling
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1677)
6. Net::HTTP.post_form doesn't work
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1529)
7. IO#read seems to chop off the first character
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1353)
8. Rails Controllers need public :default_url_options
Implements defined?(super) and fixes defined? applied on a method call to
respect visibility.
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1354)
9. Time.now throws an exception when the current culture is pl-PL, ru-RU, etc
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2030)
10. Indexing into Tye[] fails
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2686)
11. Can't convert System::Single to BigInteger
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2191)
12. Can't Assign to CLR fields with #send
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1651)
13. System::Char values are incorrectly converted when used in a method with a System::Single argument
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2189)
14. define_method weirdness
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2765)
15. Calling a method created on a Proc fails if passed a block
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=730)
16. possible bug in method resolution
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2051)
17. Command line options -V not working (should be pulled out)
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=616)
18. -e doesn't allow begin blocks
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1558)
19. Kernel.System method doesn't capture stderr
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1741)
20. .NET numeric types don't select correct operators
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2163)
21. System::TypeLoadException when including C++/CLI interface with modopts
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=772)
22. System::Decimal, decimal data ignored when comparing
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2753)
23. -2147483648 is a Bignum?
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=546)
24. Can't call a ref overload by picking the overload
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1849)
25. Binding object[] via :send is broken
if a CLR array is passed to params-array parameter it is not treated as a
single parameter. Instead the overload resolver “splats“ it by default
(implements C# semantics). This is not the right behavior for Ruby. I’ve added
ExpandParams virtual method that allows the language to specify for a given
MethodCandidate whether its params array/dictionary should always be expanded
and thus never use the incoming array as the params array.
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2421)
26. C# constructor with internal visibility inaccessible when using -X:PrivateBinding
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2243)
27. mspec :cli is failing. Require from command-line (ir.exe -r boo.rb) does not appear to be implemented
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2171)
28. tracking: StrongBox doesn't bind for ref/out params
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2462)
29. Strange behaviour with -r option in ir.exe
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1989)
30. First entry in array created from range does not seem to subtract correctly
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2146)
31. Incorrect error message for non-existant method
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2514)
32. Ruby console throws error for missing parens when MRI doesn't
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2654)
33. Wrong class name
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1878)
34. Interface with generic methods
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1357)
35. Error with cyrillyc text in Sharepoint
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1442)
36. Splatting COM out params
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2609)
37. Can't use do_sqlite3
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2037)
38. tracking: Shell stdlib
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1486)
39. Calls to ObservableCollection[String] are broken
Previously, generic type definitions were handled as super-classes for their
instantiations so that it is possible to add a Ruby method on a generic type
definition and call it from any instantiation. This approach breaks when
inheriting from a generic type – the inheritance hierarchy is incorrect.
It makes more sense to treat generic type definitions as modules – they can’t
be instantiated, don’t define any callable methods and we can mix them into
their instantiations instead of inheriting from them.
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2907)
40. tracking: RSS stdlib ($POSTMATCH not implemented)
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1483)
41. Ruby type builder emits incorrect metadata for types derived from Ruby built types
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2949)
42. some_method (1+2)+5 throws an exception (because of the space)
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2924)
43. assert_raise (from test::unit) fails if testing for CLR exception fails
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2182)
44. UTC and RACC Type Error
(http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2946)
Changes:
CHANGELOG
=========
ironruby-0.9.2.0 - 2009-10-29
-----------------------------
Here are all the commits for this release:
http://github.com/ironruby/ironruby/commits/v0.9.2
Up until the first commit after the last release:
http://github.com/ironruby/ironruby/commit/03054a5be81928afaacd16b5ef5d4067f7ecc69a
The following commit messages are for all the commits in GIT which are
marked as "sync to tfs" or something to that effect:
-------------------------------------------------------------------------------
User: merllab
Date: Wednesday, October 28, 2009 4:24:48 PM
Comment:
(tomat) DLR:
Misc fixes to Hosting API:
- Implements BindInvokeMember on ScopeStorage.
- Makes ScriptScope constructor internal.
- ObjectOperations.GetMember<T> … performs language specific conversion to T, like ConvertTo<T> and GetVariable<T>
- All methods that take IAttributesCollection are obsolete.
- Try(Get/Set)Variable(Handle) on ScriptEngine are obsolete.
- ScriptRuntime.CreateScope should take IDynamicMetaObjectProvider
Ruby
- Kernel#require no longer loads Python files, IronRuby#require should be used instead.
- Fixes possible race condition in global scope initializer.
-------------------------------------------------------------------------------
User: merllab
Date: Wednesday, October 28, 2009 12:47:58 PM
Comment:
(tomat) DLR:
The overload resolver should handle a candidate set with no callable method (e.g. have unbound generic parameter). Adds a BindingResult value that indicates such case.
Ruby, Python:
Disables VSHost process in CLR4 configurations to enable debugging in VS2010. VS2010 doesn’t handle multiple TargetFrameworkVersions per project correctly when launching VSHost process.
Ruby:
Simplifies ClsTypeEmitter and adds support for overriding default indexers.
Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2907:
Previously, generic type definitions were handled as super-classes for their instantiations so that it is possible to add a Ruby method on a generic type definition and call it from any instantiation. This approach breaks when inheriting from a generic type – the inheritance hierarchy is incorrect. It makes more sense to treat generic type definitions as modules – they can’t be instantiated, don’t define any callable methods and we can mix them into their instantiations instead of inheriting from them.
Adds an overload to String.new that takes a byte[] and turns it into a binary string.
Implements a debug view from RubyMethod.
Fixes:
http://vstfdevdiv:8080/WorkItemTracking/WorkItem.aspx?artifactMoniker=730017
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2949
Fixes super calls in partial trust.
-------------------------------------------------------------------------------
User: merllab
Date: Tuesday, October 27, 2009 2:16:40 PM
Comment:
(jimmysch) Shri:
Merge branch 'master' of git://github.com/ironruby/ironruby
Fix to irtests.rb for changing Silverlight install folder (it has changed once again to 3.0.40818.0)
Ivan:
Fixes package task for ironruby
Fixes rake build for mono
Updated to 0.9.1 tag
Scripts to ensure compatibility with mono based distros
Jim:
tag string scanner spec added in legacy fixing
More cleanup of legacy tests.
Some specs have been moved to MSPEC, some have been deleted since they are
covering duplicate areas as MSPEC.
remove extraneous 1 file
This makes one large method creating a large hash, but it saves duplication
specs for properties and methods on structs and interfaces
fixes dev.ps1.
set-envvar is added which acts like cmd's set method. If you call it with no
arguments, then it lists the contents of the $env provider, if you call it with
an arg of x=foo, then it sets $env:x to foo.
Specs for nullable parameters and properties
Merge branch 'master' of git@github.com:ironruby/ironruby
includes a insert-path cmdlet so that we do not rely on files on my computer
Specs that regexp matching a multibyte string shouldn't throw an error.
Also adds general -K specs.
Jimmy:
Fix IronRuby tutorial scrolling bug, and clean up TryRuby tutorial a bit
Woops, forgot to actually disable the test in Silverlight
Get IronRuby tutorial tests running in Silverlight again, and only show the console when running tests.
IronRuby tutorial - allow "silverlight" method to be used in chapters as well.
Cleanup IronRuby tutorial scripts
Clean up Silverlight sample-scripts
Cleans up LoadRootVisual and LoadComponent
Remove files from Tutorial which should not be checked in
DLR.createSilverlightObject should use DLR.settings, so user-defined defaults are used for all controls.
Also various other commits from Jim and Jimmy that TFS wouldn't let me add
-------------------------------------------------------------------------------
User: merllab
Date: Sunday, October 25, 2009 11:26:39 PM
Comment:
(tomat) Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1483.
-------------------------------------------------------------------------------
User: merllab
Date: Sunday, October 25, 2009 9:55:54 PM
Comment:
(tomat) Fixes http://vstfdevdiv:8080/WorkItemTracking/WorkItem.aspx?artifactMoniker=797512.
-------------------------------------------------------------------------------
User: jdeville
Date: Thursday, October 22, 2009 4:48:46 PM
Comment:
Installer for IronRuby. After running rake package, if you run build c:\ironruby from this directory, you will get a IronRuby.msi file in the current directory. The installer has optional installation of:
* Std Lib
* Samples
* Silverlight binaries
* Addition of installation directory to %PATH%
Enjoy
-------------------------------------------------------------------------------
User: merllab
Date: Wednesday, October 21, 2009 5:37:29 PM
Comment:
(sborde) Implements Thread.exclusive. Enables a minimal test for Shell which was blocked on Thread.exclusive
-------------------------------------------------------------------------------
User: merllab
Date: Sunday, October 18, 2009 9:22:55 PM
Comment:
(tomat) DLR:
Fixes ScriptScope’s BindSetMember – it needs to convert the result expression to Object.
Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2421 – if a CLR array is passed to params-array parameter it is not treated as a single parameter. Instead the overload resolver “splats“ it by default (implements C# semantics). This is not the right behavior for Ruby. I’ve added ExpandParams virtual method that allows the language to specify for a given MethodCandidate whether its params array/dictionary should always be expanded and thus never use the incoming array as the params array.
Interpreter – implements TypeIs instruction (fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2462).
Ruby:
Moves methods related to libraries from RubyModule to the library initializer.
Fixes
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1849
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2243
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2171
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1989
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2146
-------------------------------------------------------------------------------
User: merllab
Date: Sunday, October 18, 2009 8:01:56 PM
Comment:
(tomat) DLR:
Fixes ErrorSink to throw SyntaxErrorException only if the severity is FatalError or Error (i.e. not for warnings).
Ruby:
Fixes bugs:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2514
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2654
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1878
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1357
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2609
-------------------------------------------------------------------------------
User: merllab
Date: Thursday, October 15, 2009 12:36:35 AM
Comment:
(sborde) Disables tests failing on Ivan's build machine
-------------------------------------------------------------------------------
User: merllab
Date: Wednesday, October 14, 2009 11:47:56 PM
Comment:
(tomat) Python, DLR:
Fixes Dev10 build.
Fixes bug http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=772 - new type builder doesn’t handle modops correctly.
Ruby:
Fixes bugs:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=616
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2163
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=772
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2753
-------------------------------------------------------------------------------
User: jdeville
Date: Wednesday, October 14, 2009 3:15:51 PM
Comment:
Makes irtests work correctly in modes without -p. It was hanging due to cmd /K
-------------------------------------------------------------------------------
User: merllab
Date: Monday, October 12, 2009 1:35:22 PM
Comment:
(tomat) Generalizes clr_member to support calls to an explicit implementation of an interface method as well as a base class method hidden by a “new slot” method.
-------------------------------------------------------------------------------
User: merllab
Date: Monday, October 12, 2009 12:36:39 PM
Comment:
(tomat) Fixes bug in class initializer call - initialize defined via define_method didn't work.
-------------------------------------------------------------------------------
User: merllab
Date: Friday, October 09, 2009 5:48:40 PM
Comment:
(tomat)
DLR and Python changes:
Adds an explicit Single -> BigInteger conversion (V4 BigInteger has this conversion).
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2191: Can't convert System::Single to BigInteger
Ruby:
Bugs:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1651: Can't Assign to CLR fields with #send
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2189: System::Char values are incorrectly converted when used in a method with a System::Single argument
Also fixes overload resolution conversion preference in cases:
- Enum/Enum’s underlying int type -> prefer int unless the actual type exactly matches Enum
- System::String/ System::Char -> prefer String.
Removes a reference to a non-existent file from Ruby.Build.csproj.
-------------------------------------------------------------------------------
User: merllab
Date: Friday, October 09, 2009 1:38:57 PM
Comment:
(tomat) DLR (interpreter):
Fixes interpreted stack underflow when interpreting void methods.
Finishes implementation of IndexExpression.
Implements a workaround for http://vstfdevdiv:8080/WorkItemTracking/WorkItem.aspx?artifactMoniker=796414. Delegate.CreateDelegate blows up if the target MethodInfo is an Array::Get/Set method. These methods are generated at runtime by type loader.
DLR (Hosting API):
Implements ObjectHandle overloads of (Try)ImplicitConvertTo.
Fixes:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2686
Ruby
Disables default protocol for enums which partially fixes:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2490
-------------------------------------------------------------------------------
User: merllab
Date: Thursday, October 08, 2009 10:32:26 AM
Comment:
(tomat) Implements defined?(super) and fixes defined? applied on a method call to respect visibility.
Fixes:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1354
-------------------------------------------------------------------------------
User: merllab
Date: Wednesday, October 07, 2009 5:34:23 PM
Comment:
(tomat) Reimplements RubyRegex so that it works correctly with 1.9-encoded strings, respects KCODE regex options and $KCODE variable.
Fixes rindex used with Regex.
Fixes how Kernel#inspect displays instance variables – MRI seems to not display them for classes not defined in Ruby except for Object.
Fixes bugs in RubyBufferedStream.WriteBytes, MutableString.IndexOf, MutableString.LastIndexOf,
Win32OLE so that it doesn’t report a syntax warning.
Fixes .NET interop specs: Interop\net\method\fixtures\classes.rb
Fixes:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2027
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2190
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1927
-------------------------------------------------------------------------------
User: merllab
Date: Tuesday, October 06, 2009 1:51:22 PM
Comment:
(tomat) None
-------------------------------------------------------------------------------
User: merllab
Date: Monday, October 05, 2009 4:56:57 PM
Comment:
(dinov) None
-------------------------------------------------------------------------------
User: merllab
Date: Monday, October 05, 2009 12:52:55 PM
Comment:
(tomat) Fixes/implements serialization of arrays, strings, encodings and exceptions.
Also includes fixes to istty and Win32API for Unix.
-------------------------------------------------------------------------------
User: merllab
Date: Wednesday, September 30, 2009 3:16:17 PM
Comment:
(tomat) Fixes issues with Kernel#`, system and exec. Paths with spaces and shell commands were not handled correctly.
Also fixes a bug in mspec/lib/mspec/helpers/ruby_exe.rb – it didn’t handle spaces in RUBY_EXE path correctly.
Implements Win32API library – irb depends on it if run on Windows and it “worked” only due to a bug in Kernel#`.
Fixes IO#tty? – it only returns true if the console stream is not redirected to a file or a pipe. Adds some specs to test this.
Disables Process::UID and Process::Sys specs on Windows.
-------------------------------------------------------------------------------
User: merllab
Date: Wednesday, September 30, 2009 11:40:13 AM
Comment:
(dinov) 24742 Can't delete default module docstring with 2.6 RC1
Module initialization should always assign __doc__
24741 New module with 2.6 RC1 has docstring
Same as 24742
24735 HAPI: PythonEngine does not release ScriptScopes in RC1
We need to hold onto a ScopeStorage objects via a WeakReference – not a strong reference as we do today.
24720 Unexpected site.py behavior - loaded from current dir
DLR shouldn’t force a set of default paths on languages. IronPython should append current directory only after importing site.
24692 Removing a read-only dir should raise an error with errno set to EACCES
When .NET throws an IOException we need to use Marshal.GetLastWin32Error() to get the correct error code for re-throwing
24690 errno.errorcode dict has keys and values inverted
Need to un-invert the values
24691 os.path.abspath should handle invalid paths
Need to deal with drive separators when handling invalid paths on Windows.
24636 Attempt to override __dict__ on a subclass of module (type(sys)) fails in IPy
This is all kinds of broken. We need to lookup in the types MRO for user defined attributes in the custom __getattribute__/__setattr__/__delattr__ methods. We also need to make sure that we’re not defining __dict__ on a subclass whose base classes already have it defined (added a new test case not involving modules to test_class for this).
Also:
Adding ImplicitConvertTo to hosting APIs and updating LanguageContext to receive bool? Indicating explicit, implicit, or language defined.
Fixing “pecified path” error message to include the S
Removing GC.SuppressFinalize call from XRange iterator that isn’t needed
Adding fast path for creating ints from bools
Fixing stack overflow when accessing __doc__ - given
-------------------------------------------------------------------------------
User: jdeville
Date: Monday, September 28, 2009 10:34:44 AM
Comment:
makes rake compile's flags match up with msbuild
-------------------------------------------------------------------------------
User: tomat
Date: Monday, September 28, 2009 9:49:23 AM
Comment:
Fix in initializer generator.
-------------------------------------------------------------------------------
|