Files | Admin

Notes:

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. -------------------------------------------------------------------------------