Highlights
This release features over 2 months of fixes a few nice features.
We're now back to do simultaneous releases to Windows, Linux and Mac.
The C# compiler has a lot of fixes for async related issues.
New static and dynamic hardware capabilities probing, mono can now exploit hardware caps in many more cases than before.
Blended v5/v7 mode for arm. Some ARM targets require binaries that support all the way from very old CPUs to the most modern ones. Previously we would fail to work on SMP machines when built for UP targets.
Added skeletons for both System.DirectoryServices and System.Windows.Forms.DataVisualization.Charting.
New server focused flag. Run mono with --server to tell the runtime to target performance. With this release, this means an aggressive threadpool scheduler that creates additional threads faster.
We put a lot of effort on windows for this release. Builds are now based on a recent mingw toolchain. We fixes a good number of build issues and bugs in the windows backed.
We have finally switched to use vectored exception handling on windows, which makes it possible, for those of us that like Inception, to debug mono's debugger.
And, finally, PCL has arrived. This means a few fixes in the runtime, class libraries and build tools. And, on Mac, we now ship PCL reference assemblies.
Bugs
- 1782 - Check generic constraints for duplicates.
- 4141 - XmlSchemaImporter needs to consider attributeGroupRef in some case.
- 4344 - xsl:stylesheet always ignored xsl template contents.
- 4668 - C# compiler doesn't like decimal in custom attribute values, so use string.
- 6327 - Correctly install xbuild
- 7126 - Don't allow execution of dynamic assemblies without run access.
- 8637 - omit xml declaration for ToString().
- 8719 - Implements parsing of multi value User-Agent string.
- 8934 - Add more implicit generic array interfaces.
- 10001 - Do not use chunked encoding with CGI/FastCGI.
- 10194 - SetElementValue(nonExistentElementName, null) caused NRE.
- 11294 - Add more system assemblies remapping.
- 11778 - Fix Syscall.readlink() for non-ascii targets.
- 11910 - Implement character validation methods in XmlConvert.
- 12035 - xsi:nil='true' was ignored in some scenario.
- 12469 - Add more conversion methods to XmlAtomicValue.
- 12995 - Avoid an assert in mono_save_seq_point_info () if no seq points are generated for a method.
- 13050 - Properly null terminate strings in mono_dwarf_escape_path ().
- 13065 - Continue single stepping if the same line reached in all cases. Factor out some code code.
- 13191 - Avoid passing partially shared instances to the JIT.
- 13233 - Fix an overflow if MONO_ZERO_LEN_ARRAY is not 0.
- 13289 - Nested partial type inside generic class can have base type defined later than current type inflation happens.
- 13316 - Add nested partial types inside nested partial types to AST.
- 13318 - Schedule internal delay task on default scheduler only.
- 13324 - Lazy initialization of type parameters expanded interfaces.
- 13336 - Handle property with default values.
- 13340 - Another attempt at fixing mono_atomic_load_acquire() on MSVC.
- 13343 - Support FTP download where PWD starts with '\'.
- 13362 - Adds async handling to binary:emitbranchable.
- 13435 - Add some error checking to custom attr parsing and plug a memory leak.
- 13443 - Add clone for error expression.
- 13454 - Lift result of enum substraction when operation is lifted due to non-nullable enum type.
- 13466 - Add *CachePolicy to mobile profile.
- 13476 - Ignore space separators in nowarn arguments.
- 13488 - Add AssemblyAction.Save to the linker.
- 13497 - Check promoted value type binary equality operations against null too.
- 13501 - Correctly parse pragma headers.
- 13509 - Remove CultureInfo.CurrentCulture dependency from ordinal based string::EndsWith.
- 13523 - Write only import section from global namespaces before global attribute sections.
- 13544 - Fix overflow checking in newarray with 64 bit array lengths.
- 13549 - Correctly import nested non-generic types inside generic containers used within same generic container.
- 13552 - Grow underlying buffer only when necessary.
- 13603 - Quote path arguments to opt/llc.
- 13604 - STW handshake/thread shutdown race condition.
- 13626 - Rewrites RuntimeReflectionExtensions to actually do something.
- 13682 - Don't show internal error when default paramater expression cannot be converted to paramter type.
- 13708 - ASP.NET routing constraints should be treated as 'convertible to string'
- 13716 - use XmlSchemaSettings.XmlResolver to resolve schemas.
- 13729 - Fix cross compilation to windows. "Windows.h" should be "windows.h".
- 13731 - Handle partial class case when nested type of partial container depends on parent base type from another partial container.
- 13734 - Disable LLVM for async methods.
- 13736 - Create correct flow branching for single non-default switch section.
- 13742 - Always release DeflateStream unmanaged resources.
- 13767 - Handle custom attributes with nested array of enums.
- 13786 - Update named params parameter converted result expression.
- 13793 - Inflate default parameter expression without type checks
- 13813 - Thread teardown race condition.
- 13817 - Basic optional parameters support in binder.
- 13879 - Verifier support for IReadOnlyList<T> and IReadOnlyCollection<T>.
- 13890 - Relax the restriction on global methods visibility.
- 13892 - Add argument modifiers to generated base proxy when needed.
- 13951 - Avoid lookups in the AOT images during STW.
- 13952 - Don't crash when reporting invalid case label value.
- 13953 - Support OID names in RSACryptoServiceProvider.SignData().
- 13969 - Fix recursive check for non dependent return types during type inference.
- 13970 - Correct parsing of invalid 00000000-0000-0000-0000-000000000000 guid format.
- 13977 - Use the invariant culture calendar if the requested one is not available.
- 13996 - Type parameter inflated interfaces needs to be marked too.
- 14032 - Fixes GZipStream dispose order.
- 14053 - Report error for name collision between property and generic method.
- 14069 - Avoid the managed->copy for ref vtypes with an [In] attribute in n2m wrappers.
- 14077 - HashSet no longer grows in capacity on deserialize
- 14126 - Bad compiler interaction between anonymous method and async
- 14143 - xsl:import in included stylesheet caused compilation error.
- 14168 - Use IReflectType interface instead of TypeDelegator.
- 14185 - Fixes negative symbol definition for few locales to be simple -.
- 14194 - Fix yet another DISABLE_JIT bug in wrapper generation.
- 14217 - Fix an LLVM assertion on structs with unaligned size.
- 14245 - Invalid syntax during attribute target parsing can crash parser.
- 14289 - Probing of generic parameter needs to check both operands.
- 14339 - Clear out the ref fields from MonoDomain before calling mono_gc_clear_domain.
- 14347 - More thorough check for managed type parameters.
- 14351 - Bad compiler interaction between captured this, lambdas and async.
- 14384 - Don't resolve extension method expression when in probing mode.
- 14426 - Perform alignment checks for CAS on 32bits systems.
- 14503 - Add support for invoking interface methods.
- 14505 - Set empty string to TraceListeners for empty assert message.
- 14515 - Fixes parallel enumerable index counter.
- 14544 - Add System.ServiceModel.Activation assembly.
- 14555 - Make suspend work during thread cleanup.