New in Mono 3.1.1

Release date: 17 Jul 2013

What’s new

Mono now defaults to sgen

Fixed AOT on OSX 10.9

Update Mono.Cairo to include APIs from cairo 1.10

Update the LLVM used from Nov-2012 to Jul-2013

Several optimizations to improve string performance, exposed by a naive implementation of Sudoku:

  • Enable managed allocation using gsharing
  • Implemented the string allocator for SGen
  • Fixed String.Contains, as it is not supposed to be culture aware (Mono was, so we took a big perf hit, and were wrong)

Added a dummy implementation of System.Net.Http.WebRequestHandler

On iOS, managed-to-native wrappers now follow the native ABI and can be unwinded.

Better FreeBSD support, sgen and dtrace can now be enabled

Bug fixes

  • 3324 - Make WebClient report an error when the download aborted prematurely.

  • 12457 - Add [Serializable] to X509Certificate2 (added in .NET 4.0)

  • 12544 - Fix order of capturing of this inside switch statement.

  • 12608 - Rewrite lifted binary operators to match C# spec more closely.

  • 12638 - Fix MethodImplOptions argument checks.

  • 12640 - Make ServicePointManager hash on the proxy as well as uri and use_connect

  • 12731 - Emit dwarf line number info using .file/.loc assembler directives on osx.

  • 12741 - Fix register allocation for hw remainder opcodes on armv7s.

  • 12745 - Block task awaiter until task completes.

  • 12762 - Use directly captured this instead of parent reference for nested state machine inside another state machine without anonymous storey.

  • 12786 - When unloading domains, free dynamic assemblies first.

  • 12799 - Mutate generic catch block type when needed.

  • 12856 - Fix MethodInfo::ToString () to properly format generic structs.

  • 12889 - Recover more from invalid throw statement.

  • 12892 - Path.GetFullPath() may return incorrect relative path under Windows

  • 12898 - Verify if the catch type is valid under the method context.

  • 12949 - Call correct ApplyToExtraTarget base override.

  • 12991 - Do system.object type scan after all references are loaded.