--- layout: releasenotes title: New in Mono 3.1.1 version: 3.1.1 releasedate: '2013-07-17' --- 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.