Mono Changelog

What's new in Mono 6.12.0.200

Feb 14, 2024
  • Fix for Mono.Security.dll security issue in AuthenticodeDeformatter (CVE-2023-35373)
  • Only applies if you use the chktrust tool or the AuthenticodeDeformatter in your code
  • Update bundled NuGet to version 6.6.1
  • Fix a couple issues in the assembly loader

New in Mono 6.12.0.182 (Jun 16, 2022)

  • Fix for NuGet security issue https://github.com/NuGet/Home/issues/11883
  • Various bugfixes

New in Mono 6.12.0.174 (May 24, 2022)

  • Resolved Issues:
  • 19395 Ensure generic parameter constraint type is included when building image
  • 19434 [metadata] Handle MONO_TYPE_FNPTR case in collect_type_images
  • 20218 Trying to open a pseudo-tty throws an exception · Issue #20218 · mono/mono · GitHub
  • 20219 Ignore EINVAL errors on ioctl TIOCMGET/TIOCMSET
  • 20909 [2020-02] Backport Apple silicon support
  • 20918 [2020-02][marshal] Fix VARIANT and BSTR marshaling in structs
  • 20978 [2020-02] Fix the System.String.Replace throwing NotImplementedException
  • 20983 [2020-02] Bump msbuild, roslyn and nuget
  • 20986 [2020-02] Backport r4-conv-i fixes
  • 21006 [2020-02][arm64] Fix wrong marshalling in gsharedvt transition
  • 21018 [2020-02] bump corefx
  • 21029 [2020-02][System.Native] Handle ReadDir EINTR
  • 21042 [2020-02][MonoIO] Wrap calls to open() in EINTR handling
  • 21053 [2020-02] Fix leak in assembly-specific dllmap lookups
  • 21073 [2020-02][MSBuild] Update to vs16.10 branch
  • 21116 [2020-02] Fix memory leak during data registration (#21107)
  • 21126 [2020-02] Start a dedicated thread for MERP crash reporting
  • 21142 [mono] Fix race during mono_image_storage_open
  • 21186 [2020-02][mini] Add GC Unsafe transitions in mono_pmip
  • 21190 2020 02 backport metadata fixes
  • 21195 [2020-02] Adding null check to avoid abort when invalid IL is encountered
  • 21196 [2020-02] [Mono.Profiler.Aot] Write true string wire length
  • 21201 [2020-02] Ignore inherit param for ParameterInfo.GetCustomAttributes
  • 21203 Trying to open a pseudo-tty throws an exception on 5.13+ Linux kernels · Issue #21203 · mono/mono · GitHub
  • 21205 [2020-02][linux] Some pseudo-tty fixes
  • 21209 [2020-02] [mini] Don't add unbox tramopline on generic DIM calls
  • 21218 [MacSDK] Add F# targets to VisualStudio/v17.0 directory
  • 21225 [2020-02][aot] Don't leak unbox trampolines
  • 21240 Revert "[2020-02] Start a dedicated thread for MERP crash reporting (#21126)"
  • 21261 Allow nfloat to be in the ObjCRuntime namespace, and make it work for Xamarin.MacCatalyst.dll as well.
  • 21309 [2020-02] [aot] Prepend the assembly name to the names of gsharedvt wrappers to avoid duplicate symbol errors during static linking.
  • 21351 [2020-02] Adds full path to libcairo for correct assembly directory resolution in monterey
  • 21366 [2020-02] [cominterop] Add coop handle enter/return on native CCW methods
  • 21391 [2020-02] transform sgen_get_descriptor to parallel safe version in job_major_mod_union_preclean
  • 21395 [2020-02][interp] Remove hack for nint/nfloat
  • 21407 [2020-02] Add missing handle function enter/return macros
  • 21419 [2020-02] [AOT] Use .short directive instead of .hword
  • 21420 [2020-02] Avoid an assert in ves_icall_RuntimeFieldInfo_SetValueInternal
  • 21422 [2020-02] vtable setup fix for generic default interface methods in mono runtime
  • 21431 [2020-02] [Tools] Fix mono-api-html MarkdownFormatter.cs to avoid a NRE
  • 21433 [Android] Workaround for invalid return value from clock_nanosleep
  • 21435 [2020-02][Android] Workaround for invalid return value from clock_nanosleep
  • 21452 [2020-02] [AOT] Don't set the 'CorrectedSynthesize' flag in the objc_imageinfo section.
  • 21453 [2020-02][cominterop] Fix CCW memory leak
  • 21460 [2020-02] Use upstream zlib 1.2.12
  • 21471 [2020-02] [mono] Remove some of the restrictions on constrained calls from gsha…
  • 21475 [2020-02] Bump corefx to get MaxResponseHeadersLength fix

New in Mono 6.12.0.122 (Feb 23, 2021)

  • This is a security release which addresses CVE-2021-24112

New in Mono 6.12.0.90 (Oct 8, 2020)

  • Highlights:
  • Various bugfixes
  • In Depth:
  • Runtime:
  • WebAssembly:
  • We continue to work on making our WebAssembly support better. Various sets of issues have been resolved in this release and general performance and feature work is happening as well.
  • Community improvements for AIX/PASE and Haiku:
  • The ports for these systems received a bunch of improvements from community contributor Calvin Buckley (@NattyNarwhal).
  • Class Libraries:
  • CoreFX integration:
  • We continued to replace some of our classes with the implementation from CoreFX to improve performance and compatibility with .NET.
  • Tools:
  • Resolved Issues:
  • 15808 - dladdr shim for gmodule; try to enable crash reporter on AIX
  • 15894 - Move MonoError from managed wrappers to native wrappers.
  • 16461 - [interp] Non-recursive interpreter
  • 16746 - Clean up map.c /map.h
  • 16785 - Modify run-jenkins.sh to adapt wasm build for the OSX CI lane
  • 16816 - [wasm][tests] WASM Safari browser tests
  • 16832 - Replace embedded libgc with Unity fork of recent Boehm (bdwgc)
  • 16855 - [runtime] Add portable cached array creation functions and replace gcc-specific impl.
  • 16949 - [netcore] Propagate ALCs through reflection functions
  • 16954 - [llvm] Use explicit null checks with LLVM.
  • 16982 - Replace mono_assembly_name_free use with mono_assembly_name_free_internal.
  • 16992 - [Coop] Unconvert Microsoft.Win32.NativeMethods.
  • 17116 - [llvm] Use -place-safepoints in JIT mode too
  • 17119 - Inline TLS access.
  • 17131 - Update MERP event type to MonoAppCrash
  • 17160 - Enable more hw intrinsics for AOT
  • 17162 - Now IsExpired property for FormsAuthenticationTicket compares two dates with same kind (UTC)
  • 17163 - [WinForms] Fix Recalculate in ScrollableControl
  • 17173 - [sgen] Optimize LOS for better locality and parallelization.
  • 17195 - Fixes #17190: SerializationException on ListViewItemCount
  • 17212 - [offsets-tool] Update the README.
  • 17214 - [master] Update dependencies from dotnet/arcade
  • 17219 - [mini] Fix check for FastAllocateString that used old name
  • 17222 - Fix check in fix_libc_name to trigger only for libc, not libcups or other names …
  • 17223 - Enable GSS on Linux
  • 17225 - [Mono.Posix] Add support for memfd_create() and file sealing
  • 17226 - [interp] Kill more instructions
  • 17227 - Incorrect constrained virtual call in method using gsharedvt for reference type.
  • 17228 - Running –enable-msvc-only didn’t find jay.vcxproj.
  • 17229 - [interp] Small cleanups
  • 17230 - [netcore] Disable some SafeWaitHandle tests everywhere, not just Linux
  • 17231 - [man] Update MONO_IOMAP docs as it no longer works with corefx System.IO
  • 17233 - Revert mono_runtime_set_main_args in 44ff0597b835d0af62f526169dba3b365c9c3411.
  • 17236 - [sgen] Fix invalid value passed to write barrier
  • 17237 - [netcore] Implement System.IO.HasOverriddenBeginEndRead(Write) icalls
  • 17238 - Add drawing type converters to mobile profiles
  • 17243 - [netcore] Port CoreCLR implementation of Exception.SetCurrentStackTrace
  • 17249 - [mini] print inserted instruction in verbose logging
  • 17251 - [mini] trace snippet should restore return value
  • 17252 - [System.Net.Http] Clean up HttpMessageHandler setup
  • 17254 - Remove varargs from g_assert and g_assert_not_reachable (save 200+ bytes per frame in wasm interp).
  • 17255 - [tests] Disable tests that crash on android sdks
  • 17261 - [sdks] Android runner: properly shutdown runtime for Mono.Debugger.Soft test app
  • 17262 - [eglib] Add newline for failure check prints
  • 17263 - Fix g_assert_not_reached message regression.
  • 17266 - [wasm] Continue loading app even when .pdb files are not found
  • 17269 - Upgrade MSVC native runtime build to VS2019.
  • 17270 - Add null check around sslStream when trying to dispose in MonoTlsStream
  • 17272 - Update Linker. This fixes a Xamarin.Android breakage
  • 17275 - Bump corefx to get Azure testhost change
  • 17279 - Generate LLVM IR for OP_XEQUAL that is recognized by LLVM’s vector pattern recognizers.
  • 17294 - [loader] Fix gnu/lib-names.h define
  • 17297 - Mirror changes from mono/coreclr
  • 17298 - [coop] Use bitfields for coop state machine state representation
  • 17302 - Fix C++ WebAssembly build.
  • 17305 - Fix msvc build warning, empty source main-core.c.
  • 17307 - Bumps corefx to mono/corefx@8e3b279
  • 17312 - Update dotnet sdk version
  • 17313 - [ci] Use Xcode11.1 for XI/XM Mono SDK builds
  • 17315 - [loader] Add an explicit define DISABLE_DLLMAP to control dllmap usage
  • 17318 - [netcore] Avoid suspending threads in Environment.Exit, it can hang process
  • 17321 - [GTK] Bump bockbuild for GtkViewport autoscrolling patch.
  • 17322 - [bcl] Update BCL Linked Size
  • 17326 - [interp] Add constant propagation of integers
  • 17328 - [wasm][http] WasmHttpMessageHandler StreamingEnabled default to false
  • 17330 - Fix SafeHandle marshalling in ref/in/out parameters
  • 17331 - Initial telemetry for netcore builds
  • 17336 - [bcl] add WriteLine(string) override to CStreamWriter needed due to corefx import
  • 17338 - [jit] Fix is_reference checks for intrinsics with byref parameters.
  • 17340 - [wasm] Bump emscripten. Remove generated python cache files.
  • 17341 - [bcl][jit] implement Interlocked.Exchange in terms of object
  • 17344 - [wasm] Add a –native-lib option to the packager to allow linking additional native libraries.
  • 17345 - [cxx][x86] int/ptr casts.
  • 17346 - [cxx][x86] ifndef DISABLE_JIT around mono_arch_emit_prolog.
  • 17347 - [cxx][x86][amd64] Remove unused STORE_MEM_IMM.
  • 17348 - [cxx][netcore] Goto around init.
  • 17349 - [ci] Improve netcore build telemetry by running nupkg and tests through build.sh
  • 17350 - Use functions instead of macros for is_in/is_out.
  • 17351 - [wasm][xunit tests] Disable System.IO.Compression.Tests.BrotliEncoderTests
  • 17355 - [master] Update dependencies from dotnet/core-setup dotnet/corefx
  • 17358 - Removing execution of network tests from WatchOs.
  • 17361 - [netcore] Fix build for Windows with cygwin
  • 17362 - [interp] Constant folding for integers
  • 17366 - [netcore] Remove GenericVectorTests from rsp
  • 17369 - [loader] Unmanaged library refactoring and NativeLibrary implementation
  • 17370 - [bcl] Remove CompareExchange_T
  • 17377 - [cxx] Int vs. enum, static for efficiency, cleanup, fix typo.
  • 17379 - [cxx] [wasm] m2n-gen int/ptr casts.
  • 17380 - [jit][x86][cxx] int/ptr casts in mini-x86.c
  • 17382 - [jit][x86][cxx] int/ptr casts in tramp-x86.c
  • 17386 - [corlib] Mark YieldAwaitable struct readonly
  • 17387 - [netcore] Managed ThreadPool implementation
  • 17388 - [interp][wasm] Remove more varargs to conserve stack.
  • 17391 - Remove the Legacy TLS Provider.
  • 17393 - Cleaning up SslStream, MobileAuthenticatedStream and TaskToApm.
  • 17396 - [profiler] Fix coverage profiler on macos
  • 17400 - [bcl] Add null reference checks to Interlocked.Exchange
  • 17408 - Some updates to make RISC-V buildable again.
  • 17411 - [netcore] Copy Array.Clear impl from CoreCLR
  • 17414 - [sdks] add .gitignore python pycache
  • 17420 - [interp] Replace loading of static readonly fields with LDC
  • 17429 - Replace ICALL_DECL_EXPORT with ICALL_EXPORT. They are always the same and it is only used once.
  • 17430 - Include signal.h unconditionally.
  • 17431 - Support platform-independent newlines in line wrapping in Mono.Options.cs
  • 17433 - Remove dead code left out in #17341
  • 17436 - Use correct variable in mini_get_cpu_features
  • 17437 - [netcore] Implement Array.GetElementSize as intrinsic
  • 17438 - [netcore] Intrinsify Buffer.IsPrimitiveTypeArray
  • 17441 - [cxx][x86] int/ptr casts.
  • 17442 - [interp] Small fixes.
  • 17443 - [cxx] Put extern “C” in MONO_LLVM_INTERNAL.
  • 17444 - [cxx] externC for some icalls, for wasm and ios.
  • 17453 - [wasm] Make sure message pump is working when executing via NODEJS
  • 17456 - [wasm] Export mono_load_runtime_and_bcl so that it is available on the Module.
  • 17458 - [master] Update dependencies from dotnet/arcade dotnet/core-setup dotnet/corefx
  • 17459 - [tests] Replace WATCHOS with MONOTOUCH_WATCH
  • 17464 - [netcore] Disable debugging code in lookup_intrins
  • 17466 - [jit] Avoid running mono_handle_native_crash () on the altstack, it can’t produce a backtrace. AMD64 only for now.
  • 17475 - [reflection] mono_method_get_base_method on a GTD should use canonical ginst
  • 17476 - fix eglib on AIX/PASE
  • 17478 - [debugger] Changing how debugger handles exception when hybrid suspend is enabled
  • 17483 - SetLastError slightly later, in case last error not preserved, and it is just as good.
  • 17484 - [wasm] Bump emscripten to 1.39.0.
  • 17486 - [2019-08] Bump Bockbuild to pick-up gtk# binding change
  • 17489 - [interp] Add a new super instructions pass
  • 17491 - [interp] Retry cprop pass if killing stloc
  • 17494 - [interp] Optimize ldelem instructions
  • 17502 - Fix endian problem due to int/MonoThreadStateMachine confusion.
  • 17503 - [wasm] Enable threads again on CI, it seems to work again.
  • 17505 - Mirror changes from mono/corert,corefx
  • 17507 - [eglib] Assert in g_strlcpy () if src/dest is NULL, instead of printing a warning.
  • 17508 - [wasm] Avoid adding an extra arg to native-to-managed wrappers.
  • 17509 - [wasm][bcl] Fix System.Diagnostics.Trace.TraceError crash.
  • 17510 - [wasm][binding] Add bindings for calling the entry point of an ‘.exe’
  • 17511 - [netcore] Add a few more missing SSE intrinsics.
  • 17514 - [wasm] move jsvu repo back after fixes for v8
  • 17516 - [wasm][sdk] Bump SDK version to 0.2.2
  • 17517 - Rearrange System.Private.CoreLib for easier monorepo integration
  • 17518 - Fix correct accumulated time for parallelized jobs in SGEN.
  • 17519 - [interp] Optimize stelem
  • 17520 - Adjust restart world logging level to match start major/nursery logging.
  • 17522 - Additional and adjusted logging for parallel minor GC.
  • 17525 - [interp] Add super instructions for field storing
  • 17526 - Mirror changes from mono/coreclr,corefx,corert
  • 17527 - [wasm][xunit tests] Exclude some System.Data tests
  • 17534 - [runtime] Implement support for SuppressGCTransitionAttribute.
  • 17535 - [lldb] another fix for handling interp frames
  • 17536 - Lower min/max SSE operations on x64
  • 17537 - [merp] Introduce a new ‘dump mode’ that allows different signal behavior when dumping
  • 17538 - [interp] fix code length for JitInfo
  • 17551 - [mini] Initial tiered compilation work
  • 17553 - Mirror changes from mono/corefx,corert
  • 17554 - [runtime] Make mono_thread_manage external only
  • 17558 - [cxx] Compile mini-llvm.c as C++ if configure -enable-cxx.
  • 17559 - [wasm] Propagate exit code from Main in the test runner.
  • 17565 - Mirror changes from mono/coreclr,corert,corefx
  • 17566 - [runtime] Unbalanced GC Unsafe transitions before shutdown
  • 17570 - [cxx][x86] int/ptr casts
  • 17571 - Mirror changes from mono/coreclr
  • 17577 - [master] Update dependencies from dotnet/arcade dotnet/core-setup dotnet/corefx
  • 17579 - Fix #16206: Change HotkeyPrefix default value in TabControlPainter.cs
  • 17583 - [dim][regression] Explicit interface override
  • 17589 - [embed] Assert when call mono_runtime_object_init
  • 17590 - Bump CoreFX to pickup corefx PR #367 to fix #17133.
  • 17592 - [eglib] Handle dli.dli_sname being NULL in g_module_address ().
  • 17595 - [interp] fix signature mismatch between jitinterp for string constructor
  • 17596 - [wasm] Fix build problems.
  • 17600 - [wasm] Print a useful error message instead of a signature mismatch error on missing icalls.
  • 17602 - Avoid caching of System.dll image and types as they may be unloaded w…
  • 17607 - Implement GC.GetGCMemoryInfo
  • 17608 - Fix #12337: Refact selected indexes in TabControl.Remove
  • 17609 - Mirror changes from mono/coreclr,corefx
  • 17611 - [runtime] Add a –enable-minimal=threads configure option to disable threading support. Use it on wasm.
  • 17612 - Remove some unused icalls.
  • 17615 - [mini] Fix Coverity CID 1455161 & 1455162
  • 17616 - [netcore] Report errors on Windows CI
  • 17623 - [interp] Optimize call path
  • 17625 - [interp] Avoid emitting MINT_SAFEPOINT for every single call
  • 17628 - [System.Net.Http]: Bring HttpClient from CoreFX on monotouch and xammac.
  • 17631 - Bump mono/corefx@6e65509
  • 17636 - [interp] Fix interp logging
  • 17639 - [wasm] Fix xunit test ninja errors.
  • 17641 - [interp] Handle remoting field access same as jit
  • 17642 - [threadpool] cache processor count
  • 17646 - Mono NetCore Windows only build/test.
  • 17648 - [llvm] Fix a case where we treated the dreg of a store_membase instruction as a dreg, its actually the base reg.
  • 17650 - [interp] s/MONO_API_ERROR_INIT/error_init_reuse/g
  • 17653 - [WinForms] Returns real installed input languages on Windows
  • 17654 - [interp] Use GetType instrinsic also on net4x
  • 17660 - [WinForms] Fix #10559 In MaskedTextBox wrong Lines value when Mask se…
  • 17661 - [netcore] Cleanups.
  • 17662 - [WinForms] Fix #12249 scroll orientation was not defined in ScrollEventArgs
  • 17664 - [iOS] Match changes done in xamarin-macios in the SDK runtime.
  • 17666 - [netcore] Improve default constructor lookup,
  • 17667 - [jit] Call mono_class_setup_fields () before accessing field->offset. Fixes https://github.com/mono/mono/issues/17665.
  • 17669 - [WinForms]: Fix #16632 special values (-1 and -2) of ListView Column …
  • 17670 - [WinForms] Fix TabPage position when enabling MultiLine
  • 17672 - Allow runtime to be built with C++ on AIX
  • 17673 - [netcore] Improve Array.CreateInstance
  • 17676 - [WinForms] Fix #13777 DrawToBitmap() did not draw children controls
  • 17680 - [mono] Fix ProcessExit handler argument.
  • 17681 - Remove handles from ves_icall_System_Array_InternalCreate.
  • 17683 - [interp] use mask instead of bool expression
  • 17688 - Intrinsify Activator.CreateInstance for value types with no ctor
  • 17690 - [master] Update dependencies from dotnet/arcade dotnet/core-setup dotnet/corefx
  • 17691 - Explicit update/init only LLVM BTLS repro on external MSVC build.
  • 17692 - [jit] Allow Unsafe.As on gsharedvt types.
  • 17694 - Bump Corefx
  • 17695 - Mirror changes from mono/coreclr
  • 17698 - [wasm] Build the tests with –no-native-strip.
  • 17701 - [loader] Skip the full pinvoke resolution process for __Internal
  • 17706 - Fix MSVC intellisense for LLVM sources.
  • 17708 - Remove handles from ves_icall_System_Array_CanChangePrimitive.
  • 17711 - Handles reduction – 4 MERP functions.
  • 17712 - error_init reduction.
  • 17713 - Remove handles from System.Diagnostics.Debugger.
  • 17719 - [netcore] Complete Monitor.LockContentionCount implementation
  • 17723 - [merp] Remove extraneous waitpid invocation
  • 17727 - [debugger] Assert when async debug a generic method
  • 17730 - Switch away from Start-Process, Wait-Process in build.ps1.
  • 17731 - [WinForms][UIA] Add to the PropertyGrid new internal event to track grid items expanded state update
  • 17732 - [Wasm] Enabled –preload-files without AOT
  • 17738 - [runtime] Fix locking in mono_get_seq_points ().
  • 17739 - [aot] Improve the aot mangler a bit, handle bool/char as a primitive type and avoid emitting a System prefix.
  • 17740 - [profiler] Fix log profiling of native to managed wrappers
  • 17744 - [sdks] Add xunit to iOS test runner and add results reporting
  • 17748 - [wasm] Bump emscripten.
  • 17749 - [LLVM] Change llvm submodule to dotnet-org fork of official LLVM git repo
  • 17751 - [Mono.Security] Do not decode data beyond detected length in ASN1 parser
  • 17753 - [netcore] Run individual CoreCLR test suites
  • 17755 - [WinForms] Fix #16557 DefaultCellStyle was not cloned deeply in DataG…
  • 17757 - [netcore] Fix RuntimePropertyInfo.GetValue() in FullAOT scenarios
  • 17758 - Bump corefx to pick up https://github.com/mono/corefx/pull/370
  • 17761 - Mirror changes from mono/corefx,coreclr,corert
  • 17772 - Delete some LLVM test cases from make dist
  • 17773 - [wasm] Change netcore support to use a prebuilt corefx runtime.
  • 17777 - Mirror changes from mono/corefx,coreclr
  • 17778 - [llvm] use multiple cores to build llvm if ninja is not available
  • 17781 - [runtime] Fix some handle usage in native-library.c
  • 17782 - [interp] Add some missing netcore intrinsics.
  • 17784 - [interp] Add some inline checks from the JIT.
  • 17785 - [MacSDK] Bump xamarin-gtk-theme.py to latest revision from private bockbuild
  • 17789 - [Wasm] Forced filesystem creation
  • 17795 - [runtime] Add MONO_EMPTY_SOURCE_FILE to a couple of files.
  • 17798 - [wasm] Add aot+netcore support.
  • 17801 - [mini] Fix NULL pointer crash in mono_decompose_vtype_opts().
  • 17803 - Mirror changes from mono/runtime
  • 17806 - Remove handles/MonoError from Mono.RuntimeGPtrArrayHandle.
  • 17816 - [Wasm] Update emscripten to 1.39.3
  • 17827 - [llvm] Add support for LLVM JIT on ARM64
  • 17832 - [runtime] Treat calling a non-virtual method through an open delegate the same as the normal case instead of the OPEN_VIRTUAL case.
  • 17834 - Cleanup initialize_object_slots, remove unused GetHashCode (ghc) handling.
  • 17838 - Enable GSS on android
  • 17844 - [llvm] Recognize GEP
  • 17847 - [debugger-agent] Fix CMD_VM_ALL_THREADS returning wrong value due to uninitialized variable
  • 17852 - [interp] Move the freeing of interp method info into a callback.
  • 17853 - [wasm] [bindings] Method invoke signature argument validation.
  • 17856 - [metadata] Remove native threadpool from netcore build
  • 17857 - [interp] fix array_element_size intrinsic
  • 17859 - Fix InternalGetHashCode for boehm/null GC
  • 17862 - [netcore] Run tests with Interpreter
  • 17864 - [wasm][bcl][http] Add more descriptive message to the PlatformNotSupportedException
  • 17866 - Stop referencing files from Mono BCL in Netcore System.Private.CoreLib
  • 17871 - Make configure.ac and Makefile.am work without certain directories
  • 17880 - [interp] Resolve tokens also from wrappers during optimization
  • 17885 - [netcore] Disable libmonoruntime-support.la build on netcore
  • 17887 - Fix warnings in runtime build
  • 17888 - Fix X11 theming
  • 17892 - [eglib] In AIX/generic POSIX, handle null addresses better
  • 17893 - Fix BinaryReader on BE
  • 17894 - Fix flawed BufferTest on big-endian
  • 17898 - Make debugger agent startup faster
  • 17899 - [master] Update dependencies from dotnet/arcade
  • 17900 - [wasm][debugger] Fix issue in debugger variable inspection
  • 17901 - Fix boehm on Windows i386 builds
  • 17908 - Fix bcl-size-diff for PROFILE=wasm
  • 17910 - Remove mkinstalldirs invocation from two places
  • 17911 - [configure.ac] Don’t run compiler server check in netcore mode
  • 17913 - [merp] Use timeline (and generate timeline breadcrumbs) for SendExcep…
  • 17915 - WASM + Netcore.
  • 17919 - [wasm][bcl][http] Fix descriptive message for the PlatformNotSupportedException
  • 17922 - [amd64] do not stack allocate on the application stack for the transtion from alstack handling
  • 17927 - [threadpool] Decrement max_working when worker times out
  • 17937 - [arm] if mtriple is provided, do not set -march
  • 17946 - [wasm][http] Fix race condition as a result of using TaskCompletionSource: RangeError: Maximum call stack size on Safari
  • 17950 - Bump msbuild to track xplat-master
  • 17953 - [interp] Make calli non recursive as well.
  • 17955 - [wasm][binding] Marshal null string correctly.
  • 17956 - [llvm] use range metadata
  • 17956 - [llvm] use range metadata
  • 17960 - [netcore] Improve Jitdiff tool
  • 17965 - [wasm] Add more netcore test suites.
  • 17966 - Interpreter fixes.
  • 17968 - [interp] track valuetype stack for CEE_RET too
  • 17969 - [wasm] Avoid rebuilding corelib in build-wasm-bcl-netcore.
  • 17971 - [wasm] Add beginnings of SIMD support in AOT mode.
  • 17975 - Disable ConnectFailAsync test on AIX
  • 17989 - Bump version to 6.10
  • 17996 - [2019-12] [sgen] Don’t trigger collections during allocation of thread objects
  • 17999 - [2019-12] [profiler] disable inlining when coverage profiler is used and fix allocation sizes
  • 18010 - [2019-12] [System.Net.Http]: Add workaround for #17897.
  • 18026 - [2019-12] Added Obsolete to AppDomain.CreateDomain for monodroid.
  • 18046 - [2019-12] Bump msbuild to track mono-2019-10
  • 18047 - [2019-12] [corlib] add InternalsVisibleTo for Mono.Android
  • 18059 - Remove DNS lookups of the local hostname in tests
  • 18065 - [2019-12] [llvm] Avoid decomposing OP_STOREV_MEMBASE early for types which contains no references.
  • 18074 - [2019-12] [threads] Add back mono_threads_attach_tools_thread as a public API
  • 18077 - [2019-12] Update glib-remap.h to include g_module_address
  • 18092 - Bump msbuild+roslyn to track mono-2019-10
  • 18099 - [2019-12] Bump to mono/corefx@f3815a9
  • 18109 - [2019-12] [mini] Fix delegate trampoline virtual call via delgate Invoke
  • 18110 - [2019-12] [debugger] skip suspend for unattached threads
  • 18125 - [2019-12] [corlib] Rename internal LogLevel enum to avoid conflict with Android LogLevel
  • 18131 - [2019-12] Bump msbuild to track mono-2019-10
  • 18185 - [2019-12] [cominterop] Attach to runtime from IUnknown and IDispatch methods
  • 18187 - [2019-12] Relax faultcode parsing for Soap11 message errors.
  • 18193 - [2019-12] Bump msbuild to track mono-2019-10
  • 18216 - [2019-12] [metadata] Check for GTDs in setup_generic_array_ifaces
  • 18228 - [bcl] Split corlib and System.Core xunit test assemblies for monotouch profiles
  • 18250 - [System] Add additional hardening against race in MonoTlsStream
  • 18258 - [2019-12] Bump msbuild to track mono-2019-10
  • 18266 - [2019-12] [domain] Don’t add NULL runtime to runtimes list
  • 18301 - [2019-12] Use byte-aligned LLVM loads and stores for unaligned mini IR loads and stores.
  • 18304 - [2019-12] Bump msbuild to track mono-2019-10
  • 18311 - [2019-12] [eglib] Don’t define _FORTIFY_SOURCE on Cygwin builds
  • 18322 - [2019-12] Socket.BeginMConnect() should not attempt connections on unsupported address families.
  • 18327 - [2019-12] Pull in DirectoryInfo Invalidate After Create Fix
  • 18329 - [2019-12] Set inited flag after TermInfoDriver initialisation completes
  • 18333 - [2019-12] [debugger] Fix exception handler in a new thread and fix MONO_DEBUG=suspend-on-unhandled
  • 18337 - [2019-12] [metadata] Size 0 Blob heap is ok when resolving assembly refs
  • 18362 - [2019-12] Add SignedCms to the TypeForwards in the System.Security.Cryptography.Pkcs facade
  • 18365 - [2019-12] [jit] Avoid passing a vtable argument to DIM methods when making calls out of gsharedvt methods.
  • 18375 - [2019-12] Bump msbuild to track mono-2019-10
  • 18390 - [2019-12] [reflection] Fix check for Type.FullName to match CoreCLR
  • 18392 - [2019-12] Bump msbuild to track mono-2019-10
  • 18396 - [2019-12] [memory barrier] use pagesize determined by helper
  • 18405 - [2019-12]: Bump corefx to latest 2019-12.
  • 18413 - [2019-12] Bump msbuild to track mono-2019-10
  • 18433 - [2019-12] Bump msbuild to track mono-2019-10
  • 18456 - [2019-12] [sgen] Fixes for max-heap-size option
  • 18458 - [2019-12] [loader] ReflectionOnlyLoad(byte[]) should not apply binding redirects
  • 18460 - [2019-12] [arm] account for signed bit when calculating offset to PLT entry
  • 18470 - [2019-12] [wasm] Improve virtualenv installation script
  • 18476 - [2019-12] Don’t run make install in boehm submodule
  • 18487 - [2019-12] Bump xsp to fix issues with removed Mono.Security APIs
  • 18504 - [2019-12] [debugger] Native thread not executing managed code considered as terminated
  • 18529 - [2019-12] [jit] Compute the instance size/alignment correctly for gshared types whose constraint is a generic valuetype.
  • 18535 - [2019-12] [interp] context can be uninitialized for get_resume_state callback
  • 18562 - [2019-12] [jit] Compute has_references correctly for gshared types whose constraint is a generic valuetype.
  • 18577 - [2019-12] Bump msbuild to track mono-2019-10
  • 18591 - [2019-12] [runtime] Disable lldb backtrace display on osx, it hangs on attaching in lldb.
  • 18595 - [2019-12] configure.ac: remove AC_SEARCH_LIBS for libintl
  • 18611 - [2019-12] [merp] MONO_DEBUG=no-gdb-stacktrace shouldn’t disable MERP
  • 18620 - [2019-12] [corlib] Split corlib xunit tests even more for iOS
  • 18682 - [2019-12] [aot] Avoid inflating gparams with byreflike types during generic sharing.
  • 18705 - Update deprecated query parameter to header
  • 18723 - [2019-12] [merp] Add an exception type for managed exceptions
  • 18733 - [2019-12] [NUnitLite] Bump nunitlite submodule.
  • 18744 - [2019-12] [iOS] Replace removed dsymutil -t switch with -num-threads
  • 18786 - [2019-12] Allow users to switch to MonoWebRequestHandler on Android via UI
  • 18792 - [2019-12] Bump msbuild to track mono-2019-10
  • 18830 - [2019-12] Move offsets-tool into mono/tools
  • 18833 - [2019-12] Make MonoWebRequestHandler linker friendly
  • 18839 - [2019-12] [merp] Increase buffer size for state dump
  • 18862 - [2019-12] Bump msbuild to track mono-2019-10
  • 18889 - [2019-12] Move TestEnvVarSwitchForInnerHttpHandler to nunit (from xunit)
  • 18908 - [2019-12] [bcl] Default XmlSerializer stream serialize to UTF8 Encoding
  • 18911 - Bump bockbuild to bring in Gtk# regression fix
  • 18921 - [2019-12] [merp] Capture Environment.FailFast message in crash report
  • 18946 - [2019-12] [sgen] Disable managed allocator when using nursery-canaries
  • 18956 - [2019-12] Remove TestEnvVarSwitchForInnerHttpHandler test
  • 18964 - [2019-12] [merp] Produce hashes for unmanaged thread stacks also
  • 18984 - [2019-12] Added some parenthesis and a cast to control order of operations.
  • 18986 - [2019-12] Bump msbuild to track mono-2019-10
  • 19018 - [2019-12][runtime] Improve handling crashing signals
  • 19050 - [2019-12] [debugger] Enable reading embedded ppdb
  • 19078 - [2019-12] Bump msbuild to track mono-2019-12
  • 19119 - [2019-12] [merp] Create a signal (‘source’) breadcrumb for the crash dump process
  • 19205 - [2019-12] Bump msbuild to track mono-2019-12
  • 19208 - [2019-12] [corlib] Capture the ExceptionDispatchInfo when rethrowing from TaskContinuation
  • 19243 - [2019-12] [merp] Add breadcrumb for StackHash
  • 19368 - [2019-12] [amd64] align application stack pointer in signal handler
  • 19423 - [2019-12] Force Python 3.x from env in shebang lines
  • 19428 - [mono-2019-12] Bump corefx to get https://github.com/mono/corefx/pull/396
  • 19622 - [2019-12] Bump msbuild to track mono-2019-12
  • 19641 - [2019-12] [System.Runtime.Serialization] Work around specified cast is not valid
  • 19662 - [2019-12] Bump msbuild to track mono-2019-12

New in Mono 6.8.0.123 (Jul 10, 2020)

  • Highlights:
  • Various bugfixes
  • In Depth:
  • Runtime:
  • WebAssembly:
  • We continue to work on making our WebAssembly support better. Various sets of issues have been resolved in this release and general performance and feature work is happening as well.
  • Community improvements for AIX/PASE and Haiku:
  • The ports for these systems received a bunch of improvements from community contributor Calvin Buckley (@NattyNarwhal).
  • Class Libraries:
  • CoreFX integration:
  • We continued to replace some of our classes with the implementation from CoreFX to improve performance and compatibility with .NET.
  • Tools:
  • Resolved Issues:
  • 15808 - dladdr shim for gmodule; try to enable crash reporter on AIX
  • 15894 - Move MonoError from managed wrappers to native wrappers.
  • 16461 - [interp] Non-recursive interpreter
  • 16746 - Clean up map.c /map.h
  • 16785 - Modify run-jenkins.sh to adapt wasm build for the OSX CI lane
  • 16816 - [wasm][tests] WASM Safari browser tests
  • 16832 - Replace embedded libgc with Unity fork of recent Boehm (bdwgc)
  • 16855 - [runtime] Add portable cached array creation functions and replace gcc-specific impl.
  • 16949 - [netcore] Propagate ALCs through reflection functions
  • 16954 - [llvm] Use explicit null checks with LLVM.
  • 16982 - Replace mono_assembly_name_free use with mono_assembly_name_free_internal.
  • 16992 - [Coop] Unconvert Microsoft.Win32.NativeMethods.
  • 17116 - [llvm] Use -place-safepoints in JIT mode too
  • 17119 - Inline TLS access.
  • 17131 - Update MERP event type to MonoAppCrash
  • 17160 - Enable more hw intrinsics for AOT
  • 17162 - Now IsExpired property for FormsAuthenticationTicket compares two dates with same kind (UTC)
  • 17163 - [WinForms] Fix Recalculate in ScrollableControl
  • 17173 - [sgen] Optimize LOS for better locality and parallelization.
  • 17195 - Fixes #17190: SerializationException on ListViewItemCount
  • 17212 - [offsets-tool] Update the README.
  • 17214 - [master] Update dependencies from dotnet/arcade
  • 17219 - [mini] Fix check for FastAllocateString that used old name
  • 17222 - Fix check in fix_libc_name to trigger only for libc, not libcups or other names …
  • 17223 - Enable GSS on Linux
  • 17225 - [Mono.Posix] Add support for memfd_create() and file sealing
  • 17226 - [interp] Kill more instructions
  • 17227 - Incorrect constrained virtual call in method using gsharedvt for reference type.
  • 17228 - Running –enable-msvc-only didn’t find jay.vcxproj.
  • 17229 - [interp] Small cleanups
  • 17230 - [netcore] Disable some SafeWaitHandle tests everywhere, not just Linux
  • 17231 - [man] Update MONO_IOMAP docs as it no longer works with corefx System.IO
  • 17233 - Revert mono_runtime_set_main_args in 44ff0597b835d0af62f526169dba3b365c9c3411.
  • 17236 - [sgen] Fix invalid value passed to write barrier
  • 17237 - [netcore] Implement System.IO.HasOverriddenBeginEndRead(Write) icalls
  • 17238 - Add drawing type converters to mobile profiles
  • 17243 - [netcore] Port CoreCLR implementation of Exception.SetCurrentStackTrace
  • 17249 - [mini] print inserted instruction in verbose logging
  • 17251 - [mini] trace snippet should restore return value
  • 17252 - [System.Net.Http] Clean up HttpMessageHandler setup
  • 17254 - Remove varargs from g_assert and g_assert_not_reachable (save 200+ bytes per frame in wasm interp).
  • 17255 - [tests] Disable tests that crash on android sdks
  • 17261 - [sdks] Android runner: properly shutdown runtime for Mono.Debugger.Soft test app
  • 17262 - [eglib] Add newline for failure check prints
  • 17263 - Fix g_assert_not_reached message regression.
  • 17266 - [wasm] Continue loading app even when .pdb files are not found
  • 17269 - Upgrade MSVC native runtime build to VS2019.
  • 17270 - Add null check around sslStream when trying to dispose in MonoTlsStream
  • 17272 - Update Linker. This fixes a Xamarin.Android breakage
  • 17275 - Bump corefx to get Azure testhost change
  • 17279 - Generate LLVM IR for OP_XEQUAL that is recognized by LLVM’s vector pattern recognizers.
  • 17294 - [loader] Fix gnu/lib-names.h define
  • 17297 - Mirror changes from mono/coreclr
  • 17298 - [coop] Use bitfields for coop state machine state representation
  • 17302 - Fix C++ WebAssembly build.
  • 17305 - Fix msvc build warning, empty source main-core.c.
  • 17307 - Bumps corefx to mono/corefx@8e3b279
  • 17312 - Update dotnet sdk version
  • 17313 - [ci] Use Xcode11.1 for XI/XM Mono SDK builds
  • 17315 - [loader] Add an explicit define DISABLE_DLLMAP to control dllmap usage
  • 17318 - [netcore] Avoid suspending threads in Environment.Exit, it can hang process
  • 17321 - [GTK] Bump bockbuild for GtkViewport autoscrolling patch.
  • 17322 - [bcl] Update BCL Linked Size
  • 17326 - [interp] Add constant propagation of integers
  • 17328 - [wasm][http] WasmHttpMessageHandler StreamingEnabled default to false
  • 17330 - Fix SafeHandle marshalling in ref/in/out parameters
  • 17331 - Initial telemetry for netcore builds
  • 17336 - [bcl] add WriteLine(string) override to CStreamWriter needed due to corefx import
  • 17338 - [jit] Fix is_reference checks for intrinsics with byref parameters.
  • 17340 - [wasm] Bump emscripten. Remove generated python cache files.
  • 17341 - [bcl][jit] implement Interlocked.Exchange in terms of object
  • 17344 - [wasm] Add a –native-lib option to the packager to allow linking additional native libraries.
  • 17345 - [cxx][x86] int/ptr casts.
  • 17346 - [cxx][x86] ifndef DISABLE_JIT around mono_arch_emit_prolog.
  • 17347 - [cxx][x86][amd64] Remove unused STORE_MEM_IMM.
  • 17348 - [cxx][netcore] Goto around init.
  • 17349 - [ci] Improve netcore build telemetry by running nupkg and tests through build.sh
  • 17350 - Use functions instead of macros for is_in/is_out.
  • 17351 - [wasm][xunit tests] Disable System.IO.Compression.Tests.BrotliEncoderTests
  • 17355 - [master] Update dependencies from dotnet/core-setup dotnet/corefx
  • 17358 - Removing execution of network tests from WatchOs.
  • 17361 - [netcore] Fix build for Windows with cygwin
  • 17362 - [interp] Constant folding for integers
  • 17366 - [netcore] Remove GenericVectorTests from rsp
  • 17369 - [loader] Unmanaged library refactoring and NativeLibrary implementation
  • 17370 - [bcl] Remove CompareExchange_T
  • 17377 - [cxx] Int vs. enum, static for efficiency, cleanup, fix typo.
  • 17379 - [cxx] [wasm] m2n-gen int/ptr casts.
  • 17380 - [jit][x86][cxx] int/ptr casts in mini-x86.c
  • 17382 - [jit][x86][cxx] int/ptr casts in tramp-x86.c
  • 17386 - [corlib] Mark YieldAwaitable struct readonly
  • 17387 - [netcore] Managed ThreadPool implementation
  • 17388 - [interp][wasm] Remove more varargs to conserve stack.
  • 17391 - Remove the Legacy TLS Provider.
  • 17393 - Cleaning up SslStream, MobileAuthenticatedStream and TaskToApm.
  • 17396 - [profiler] Fix coverage profiler on macos
  • 17400 - [bcl] Add null reference checks to Interlocked.Exchange
  • 17408 - Some updates to make RISC-V buildable again.
  • 17411 - [netcore] Copy Array.Clear impl from CoreCLR
  • 17414 - [sdks] add .gitignore python pycache
  • 17420 - [interp] Replace loading of static readonly fields with LDC
  • 17429 - Replace ICALL_DECL_EXPORT with ICALL_EXPORT. They are always the same and it is only used once.
  • 17430 - Include signal.h unconditionally.
  • 17431 - Support platform-independent newlines in line wrapping in Mono.Options.cs
  • 17433 - Remove dead code left out in #17341
  • 17436 - Use correct variable in mini_get_cpu_features
  • 17437 - [netcore] Implement Array.GetElementSize as intrinsic
  • 17438 - [netcore] Intrinsify Buffer.IsPrimitiveTypeArray
  • 17441 - [cxx][x86] int/ptr casts.
  • 17442 - [interp] Small fixes.
  • 17443 - [cxx] Put extern “C” in MONO_LLVM_INTERNAL.
  • 17444 - [cxx] externC for some icalls, for wasm and ios.
  • 17453 - [wasm] Make sure message pump is working when executing via NODEJS
  • 17456 - [wasm] Export mono_load_runtime_and_bcl so that it is available on the Module.
  • 17458 - [master] Update dependencies from dotnet/arcade dotnet/core-setup dotnet/corefx
  • 17459 - [tests] Replace WATCHOS with MONOTOUCH_WATCH
  • 17464 - [netcore] Disable debugging code in lookup_intrins
  • 17466 - [jit] Avoid running mono_handle_native_crash () on the altstack, it can’t produce a backtrace. AMD64 only for now.
  • 17475 - [reflection] mono_method_get_base_method on a GTD should use canonical ginst
  • 17476 - fix eglib on AIX/PASE
  • 17478 - [debugger] Changing how debugger handles exception when hybrid suspend is enabled
  • 17483 - SetLastError slightly later, in case last error not preserved, and it is just as good.
  • 17484 - [wasm] Bump emscripten to 1.39.0.
  • 17486 - [2019-08] Bump Bockbuild to pick-up gtk# binding change
  • 17489 - [interp] Add a new super instructions pass
  • 17491 - [interp] Retry cprop pass if killing stloc
  • 17494 - [interp] Optimize ldelem instructions
  • 17502 - Fix endian problem due to int/MonoThreadStateMachine confusion.
  • 17503 - [wasm] Enable threads again on CI, it seems to work again.
  • 17505 - Mirror changes from mono/corert,corefx
  • 17507 - [eglib] Assert in g_strlcpy () if src/dest is NULL, instead of printing a warning.
  • 17508 - [wasm] Avoid adding an extra arg to native-to-managed wrappers.
  • 17509 - [wasm][bcl] Fix System.Diagnostics.Trace.TraceError crash.
  • 17510 - [wasm][binding] Add bindings for calling the entry point of an ‘.exe’
  • 17511 - [netcore] Add a few more missing SSE intrinsics.
  • 17514 - [wasm] move jsvu repo back after fixes for v8
  • 17516 - [wasm][sdk] Bump SDK version to 0.2.2
  • 17517 - Rearrange System.Private.CoreLib for easier monorepo integration
  • 17518 - Fix correct accumulated time for parallelized jobs in SGEN.
  • 17519 - [interp] Optimize stelem
  • 17520 - Adjust restart world logging level to match start major/nursery logging.
  • 17522 - Additional and adjusted logging for parallel minor GC.
  • 17525 - [interp] Add super instructions for field storing
  • 17526 - Mirror changes from mono/coreclr,corefx,corert
  • 17527 - [wasm][xunit tests] Exclude some System.Data tests
  • 17534 - [runtime] Implement support for SuppressGCTransitionAttribute.
  • 17535 - [lldb] another fix for handling interp frames
  • 17536 - Lower min/max SSE operations on x64
  • 17537 - [merp] Introduce a new ‘dump mode’ that allows different signal behavior when dumping
  • 17538 - [interp] fix code length for JitInfo
  • 17551 - [mini] Initial tiered compilation work
  • 17553 - Mirror changes from mono/corefx,corert
  • 17554 - [runtime] Make mono_thread_manage external only
  • 17558 - [cxx] Compile mini-llvm.c as C++ if configure -enable-cxx.
  • 17559 - [wasm] Propagate exit code from Main in the test runner.
  • 17565 - Mirror changes from mono/coreclr,corert,corefx
  • 17566 - [runtime] Unbalanced GC Unsafe transitions before shutdown
  • 17570 - [cxx][x86] int/ptr casts
  • 17571 - Mirror changes from mono/coreclr
  • 17577 - [master] Update dependencies from dotnet/arcade dotnet/core-setup dotnet/corefx
  • 17579 - Fix #16206: Change HotkeyPrefix default value in TabControlPainter.cs
  • 17583 - [dim][regression] Explicit interface override
  • 17589 - [embed] Assert when call mono_runtime_object_init
  • 17590 - Bump CoreFX to pickup corefx PR #367 to fix #17133.
  • 17592 - [eglib] Handle dli.dli_sname being NULL in g_module_address ().
  • 17595 - [interp] fix signature mismatch between jitinterp for string constructor
  • 17596 - [wasm] Fix build problems.
  • 17600 - [wasm] Print a useful error message instead of a signature mismatch error on missing icalls.
  • 17602 - Avoid caching of System.dll image and types as they may be unloaded w…
  • 17607 - Implement GC.GetGCMemoryInfo
  • 17608 - Fix #12337: Refact selected indexes in TabControl.Remove
  • 17609 - Mirror changes from mono/coreclr,corefx
  • 17611 - [runtime] Add a –enable-minimal=threads configure option to disable threading support. Use it on wasm.
  • 17612 - Remove some unused icalls.
  • 17615 - [mini] Fix Coverity CID 1455161 & 1455162
  • 17616 - [netcore] Report errors on Windows CI
  • 17623 - [interp] Optimize call path
  • 17625 - [interp] Avoid emitting MINT_SAFEPOINT for every single call
  • 17628 - [System.Net.Http]: Bring HttpClient from CoreFX on monotouch and xammac.
  • 17631 - Bump mono/corefx@6e65509
  • 17636 - [interp] Fix interp logging
  • 17639 - [wasm] Fix xunit test ninja errors.
  • 17641 - [interp] Handle remoting field access same as jit
  • 17642 - [threadpool] cache processor count
  • 17646 - Mono NetCore Windows only build/test.
  • 17648 - [llvm] Fix a case where we treated the dreg of a store_membase instruction as a dreg, its actually the base reg.
  • 17650 - [interp] s/MONO_API_ERROR_INIT/error_init_reuse/g
  • 17653 - [WinForms] Returns real installed input languages on Windows
  • 17654 - [interp] Use GetType instrinsic also on net4x
  • 17660 - [WinForms] Fix #10559 In MaskedTextBox wrong Lines value when Mask se…
  • 17661 - [netcore] Cleanups.
  • 17662 - [WinForms] Fix #12249 scroll orientation was not defined in ScrollEventArgs
  • 17664 - [iOS] Match changes done in xamarin-macios in the SDK runtime.
  • 17666 - [netcore] Improve default constructor lookup,
  • 17667 - [jit] Call mono_class_setup_fields () before accessing field->offset. Fixes https://github.com/mono/mono/issues/17665.
  • 17669 - [WinForms]: Fix #16632 special values (-1 and -2) of ListView Column …
  • 17670 - [WinForms] Fix TabPage position when enabling MultiLine
  • 17672 - Allow runtime to be built with C++ on AIX
  • 17673 - [netcore] Improve Array.CreateInstance
  • 17676 - [WinForms] Fix #13777 DrawToBitmap() did not draw children controls
  • 17680 - [mono] Fix ProcessExit handler argument.
  • 17681 - Remove handles from ves_icall_System_Array_InternalCreate.
  • 17683 - [interp] use mask instead of bool expression
  • 17688 - Intrinsify Activator.CreateInstance for value types with no ctor
  • 17690 - [master] Update dependencies from dotnet/arcade dotnet/core-setup dotnet/corefx
  • 17691 - Explicit update/init only LLVM BTLS repro on external MSVC build.
  • 17692 - [jit] Allow Unsafe.As on gsharedvt types.
  • 17694 - Bump Corefx
  • 17695 - Mirror changes from mono/coreclr
  • 17698 - [wasm] Build the tests with –no-native-strip.
  • 17701 - [loader] Skip the full pinvoke resolution process for __Internal
  • 17706 - Fix MSVC intellisense for LLVM sources.
  • 17708 - Remove handles from ves_icall_System_Array_CanChangePrimitive.
  • 17711 - Handles reduction – 4 MERP functions.
  • 17712 - error_init reduction.
  • 17713 - Remove handles from System.Diagnostics.Debugger.
  • 17719 - [netcore] Complete Monitor.LockContentionCount implementation
  • 17723 - [merp] Remove extraneous waitpid invocation
  • 17727 - [debugger] Assert when async debug a generic method
  • 17730 - Switch away from Start-Process, Wait-Process in build.ps1.
  • 17731 - [WinForms][UIA] Add to the PropertyGrid new internal event to track grid items expanded state update
  • 17732 - [Wasm] Enabled –preload-files without AOT
  • 17738 - [runtime] Fix locking in mono_get_seq_points ().
  • 17739 - [aot] Improve the aot mangler a bit, handle bool/char as a primitive type and avoid emitting a System prefix.
  • 17740 - [profiler] Fix log profiling of native to managed wrappers
  • 17744 - [sdks] Add xunit to iOS test runner and add results reporting
  • 17748 - [wasm] Bump emscripten.
  • 17749 - [LLVM] Change llvm submodule to dotnet-org fork of official LLVM git repo
  • 17751 - [Mono.Security] Do not decode data beyond detected length in ASN1 parser
  • 17753 - [netcore] Run individual CoreCLR test suites
  • 17755 - [WinForms] Fix #16557 DefaultCellStyle was not cloned deeply in DataG…
  • 17757 - [netcore] Fix RuntimePropertyInfo.GetValue() in FullAOT scenarios
  • 17758 - Bump corefx to pick up https://github.com/mono/corefx/pull/370
  • 17761 - Mirror changes from mono/corefx,coreclr,corert
  • 17772 - Delete some LLVM test cases from make dist
  • 17773 - [wasm] Change netcore support to use a prebuilt corefx runtime.
  • 17777 - Mirror changes from mono/corefx,coreclr
  • 17778 - [llvm] use multiple cores to build llvm if ninja is not available
  • 17781 - [runtime] Fix some handle usage in native-library.c
  • 17782 - [interp] Add some missing netcore intrinsics.
  • 17784 - [interp] Add some inline checks from the JIT.
  • 17785 - [MacSDK] Bump xamarin-gtk-theme.py to latest revision from private bockbuild
  • 17789 - [Wasm] Forced filesystem creation
  • 17795 - [runtime] Add MONO_EMPTY_SOURCE_FILE to a couple of files.
  • 17798 - [wasm] Add aot+netcore support.
  • 17801 - [mini] Fix NULL pointer crash in mono_decompose_vtype_opts().
  • 17803 - Mirror changes from mono/runtime
  • 17806 - Remove handles/MonoError from Mono.RuntimeGPtrArrayHandle.
  • 17816 - [Wasm] Update emscripten to 1.39.3
  • 17827 - [llvm] Add support for LLVM JIT on ARM64
  • 17832 - [runtime] Treat calling a non-virtual method through an open delegate the same as the normal case instead of the OPEN_VIRTUAL case.
  • 17834 - Cleanup initialize_object_slots, remove unused GetHashCode (ghc) handling.
  • 17838 - Enable GSS on android
  • 17844 - [llvm] Recognize GEP
  • 17847 - [debugger-agent] Fix CMD_VM_ALL_THREADS returning wrong value due to uninitialized variable
  • 17852 - [interp] Move the freeing of interp method info into a callback.
  • 17853 - [wasm] [bindings] Method invoke signature argument validation.
  • 17856 - [metadata] Remove native threadpool from netcore build
  • 17857 - [interp] fix array_element_size intrinsic
  • 17859 - Fix InternalGetHashCode for boehm/null GC
  • 17862 - [netcore] Run tests with Interpreter
  • 17864 - [wasm][bcl][http] Add more descriptive message to the PlatformNotSupportedException
  • 17866 - Stop referencing files from Mono BCL in Netcore System.Private.CoreLib
  • 17871 - Make configure.ac and Makefile.am work without certain directories
  • 17880 - [interp] Resolve tokens also from wrappers during optimization
  • 17885 - [netcore] Disable libmonoruntime-support.la build on netcore
  • 17887 - Fix warnings in runtime build
  • 17888 - Fix X11 theming
  • 17892 - [eglib] In AIX/generic POSIX, handle null addresses better
  • 17893 - Fix BinaryReader on BE
  • 17894 - Fix flawed BufferTest on big-endian
  • 17898 - Make debugger agent startup faster
  • 17899 - [master] Update dependencies from dotnet/arcade
  • 17900 - [wasm][debugger] Fix issue in debugger variable inspection
  • 17901 - Fix boehm on Windows i386 builds
  • 17908 - Fix bcl-size-diff for PROFILE=wasm
  • 17910 - Remove mkinstalldirs invocation from two places
  • 17911 - [configure.ac] Don’t run compiler server check in netcore mode
  • 17913 - [merp] Use timeline (and generate timeline breadcrumbs) for SendExcep…
  • 17915 - WASM + Netcore.
  • 17919 - [wasm][bcl][http] Fix descriptive message for the PlatformNotSupportedException
  • 17922 - [amd64] do not stack allocate on the application stack for the transtion from alstack handling
  • 17927 - [threadpool] Decrement max_working when worker times out
  • 17937 - [arm] if mtriple is provided, do not set -march
  • 17946 - [wasm][http] Fix race condition as a result of using TaskCompletionSource: RangeError: Maximum call stack size on Safari
  • 17950 - Bump msbuild to track xplat-master
  • 17953 - [interp] Make calli non recursive as well.
  • 17955 - [wasm][binding] Marshal null string correctly.
  • 17956 - [llvm] use range metadata
  • 17956 - [llvm] use range metadata
  • 17960 - [netcore] Improve Jitdiff tool
  • 17965 - [wasm] Add more netcore test suites.
  • 17966 - Interpreter fixes.
  • 17968 - [interp] track valuetype stack for CEE_RET too
  • 17969 - [wasm] Avoid rebuilding corelib in build-wasm-bcl-netcore.
  • 17971 - [wasm] Add beginnings of SIMD support in AOT mode.
  • 17975 - Disable ConnectFailAsync test on AIX
  • 17989 - Bump version to 6.10
  • 17996 - [2019-12] [sgen] Don’t trigger collections during allocation of thread objects
  • 17999 - [2019-12] [profiler] disable inlining when coverage profiler is used and fix allocation sizes
  • 18010 - [2019-12] [System.Net.Http]: Add workaround for #17897.
  • 18026 - [2019-12] Added Obsolete to AppDomain.CreateDomain for monodroid.
  • 18046 - [2019-12] Bump msbuild to track mono-2019-10
  • 18047 - [2019-12] [corlib] add InternalsVisibleTo for Mono.Android
  • 18059 - Remove DNS lookups of the local hostname in tests
  • 18065 - [2019-12] [llvm] Avoid decomposing OP_STOREV_MEMBASE early for types which contains no references.
  • 18074 - [2019-12] [threads] Add back mono_threads_attach_tools_thread as a public API
  • 18077 - [2019-12] Update glib-remap.h to include g_module_address
  • 18092 - Bump msbuild+roslyn to track mono-2019-10
  • 18099 - [2019-12] Bump to mono/corefx@f3815a9
  • 18109 - [2019-12] [mini] Fix delegate trampoline virtual call via delgate Invoke
  • 18110 - [2019-12] [debugger] skip suspend for unattached threads
  • 18125 - [2019-12] [corlib] Rename internal LogLevel enum to avoid conflict with Android LogLevel
  • 18131 - [2019-12] Bump msbuild to track mono-2019-10
  • 18185 - [2019-12] [cominterop] Attach to runtime from IUnknown and IDispatch methods
  • 18187 - [2019-12] Relax faultcode parsing for Soap11 message errors.
  • 18193 - [2019-12] Bump msbuild to track mono-2019-10
  • 18216 - [2019-12] [metadata] Check for GTDs in setup_generic_array_ifaces
  • 18228 - [bcl] Split corlib and System.Core xunit test assemblies for monotouch profiles
  • 18250 - [System] Add additional hardening against race in MonoTlsStream
  • 18258 - [2019-12] Bump msbuild to track mono-2019-10
  • 18266 - [2019-12] [domain] Don’t add NULL runtime to runtimes list
  • 18301 - [2019-12] Use byte-aligned LLVM loads and stores for unaligned mini IR loads and stores.
  • 18304 - [2019-12] Bump msbuild to track mono-2019-10
  • 18311 - [2019-12] [eglib] Don’t define _FORTIFY_SOURCE on Cygwin builds
  • 18322 - [2019-12] Socket.BeginMConnect() should not attempt connections on unsupported address families.
  • 18327 - [2019-12] Pull in DirectoryInfo Invalidate After Create Fix
  • 18329 - [2019-12] Set inited flag after TermInfoDriver initialisation completes
  • 18333 - [2019-12] [debugger] Fix exception handler in a new thread and fix MONO_DEBUG=suspend-on-unhandled
  • 18337 - [2019-12] [metadata] Size 0 Blob heap is ok when resolving assembly refs
  • 18362 - [2019-12] Add SignedCms to the TypeForwards in the System.Security.Cryptography.Pkcs facade
  • 18365 - [2019-12] [jit] Avoid passing a vtable argument to DIM methods when making calls out of gsharedvt methods.
  • 18375 - [2019-12] Bump msbuild to track mono-2019-10
  • 18390 - [2019-12] [reflection] Fix check for Type.FullName to match CoreCLR
  • 18392 - [2019-12] Bump msbuild to track mono-2019-10
  • 18396 - [2019-12] [memory barrier] use pagesize determined by helper
  • 18405 - [2019-12]: Bump corefx to latest 2019-12.
  • 18413 - [2019-12] Bump msbuild to track mono-2019-10
  • 18433 - [2019-12] Bump msbuild to track mono-2019-10
  • 18456 - [2019-12] [sgen] Fixes for max-heap-size option
  • 18458 - [2019-12] [loader] ReflectionOnlyLoad(byte[]) should not apply binding redirects
  • 18460 - [2019-12] [arm] account for signed bit when calculating offset to PLT entry
  • 18470 - [2019-12] [wasm] Improve virtualenv installation script
  • 18476 - [2019-12] Don’t run make install in boehm submodule
  • 18487 - [2019-12] Bump xsp to fix issues with removed Mono.Security APIs
  • 18504 - [2019-12] [debugger] Native thread not executing managed code considered as terminated
  • 18529 - [2019-12] [jit] Compute the instance size/alignment correctly for gshared types whose constraint is a generic valuetype.
  • 18535 - [2019-12] [interp] context can be uninitialized for get_resume_state callback
  • 18562 - [2019-12] [jit] Compute has_references correctly for gshared types whose constraint is a generic valuetype.
  • 18577 - [2019-12] Bump msbuild to track mono-2019-10
  • 18591 - [2019-12] [runtime] Disable lldb backtrace display on osx, it hangs on attaching in lldb.
  • 18595 - [2019-12] configure.ac: remove AC_SEARCH_LIBS for libintl
  • 18611 - [2019-12] [merp] MONO_DEBUG=no-gdb-stacktrace shouldn’t disable MERP
  • 18620 - [2019-12] [corlib] Split corlib xunit tests even more for iOS
  • 18682 - [2019-12] [aot] Avoid inflating gparams with byreflike types during generic sharing.
  • 18705 - Update deprecated query parameter to header
  • 18723 - [2019-12] [merp] Add an exception type for managed exceptions
  • 18733 - [2019-12] [NUnitLite] Bump nunitlite submodule.
  • 18744 - [2019-12] [iOS] Replace removed dsymutil -t switch with -num-threads
  • 18786 - [2019-12] Allow users to switch to MonoWebRequestHandler on Android via UI
  • 18792 - [2019-12] Bump msbuild to track mono-2019-10
  • 18830 - [2019-12] Move offsets-tool into mono/tools
  • 18833 - [2019-12] Make MonoWebRequestHandler linker friendly
  • 18839 - [2019-12] [merp] Increase buffer size for state dump
  • 18862 - [2019-12] Bump msbuild to track mono-2019-10
  • 18889 - [2019-12] Move TestEnvVarSwitchForInnerHttpHandler to nunit (from xunit)
  • 18908 - [2019-12] [bcl] Default XmlSerializer stream serialize to UTF8 Encoding
  • 18911 - Bump bockbuild to bring in Gtk# regression fix
  • 18921 - [2019-12] [merp] Capture Environment.FailFast message in crash report
  • 18946 - [2019-12] [sgen] Disable managed allocator when using nursery-canaries
  • 18956 - [2019-12] Remove TestEnvVarSwitchForInnerHttpHandler test
  • 18964 - [2019-12] [merp] Produce hashes for unmanaged thread stacks also
  • 18984 - [2019-12] Added some parenthesis and a cast to control order of operations.
  • 18986 - [2019-12] Bump msbuild to track mono-2019-10
  • 19018 - [2019-12][runtime] Improve handling crashing signals
  • 19050 - [2019-12] [debugger] Enable reading embedded ppdb
  • 19078 - [2019-12] Bump msbuild to track mono-2019-12
  • 19119 - [2019-12] [merp] Create a signal (‘source’) breadcrumb for the crash dump process
  • 19205 - [2019-12] Bump msbuild to track mono-2019-12
  • 19208 - [2019-12] [corlib] Capture the ExceptionDispatchInfo when rethrowing from TaskContinuation
  • 19243 - [2019-12] [merp] Add breadcrumb for StackHash
  • 19368 - [2019-12] [amd64] align application stack pointer in signal handler
  • 19423 - [2019-12] Force Python 3.x from env in shebang lines
  • 19428 - [mono-2019-12] Bump corefx to get https://github.com/mono/corefx/pull…
  • 19622 - [2019-12] Bump msbuild to track mono-2019-12
  • 19641 - [2019-12] [System.Runtime.Serialization] Work around specified cast is not valid
  • 19662 - [2019-12] Bump msbuild to track mono-2019-12

New in Mono 6.8.0.96 (Jan 16, 2020)

  • Runtime:
  • WebAssembly:
  • We continue to work on making our WebAssembly support better. Various sets of issues have been resolved in this release and general performance and feature work is happening as well.
  • Community improvements for AIX/PASE and Haiku:
  • The ports for these systems received a bunch of improvements from community contributor Calvin Buckley (@NattyNarwhal).
  • Class Libraries:
  • CoreFX integration:
  • We continued to replace some of our classes with the implementation from CoreFX to improve performance and compatibility with .NET.
  • In this release we tightened up our networking with a few bug fixes.
  • Tools:
  • Resolved Issues:
  • 7377 [Mono.Debugger.Soft] Connections are not properly closed
  • 10641 New arm64_32 architecture (watchOS 5) [arm64_32] make “Debug Mode” work on Watch series 4 with –interpreter
  • 12421 Task calls SynchronizationContext.Post on cancelling
  • 12586 DataContractSerializer is not available
  • 12917 [Blazor] IL Linker not working correctly with IQueryable extensions
  • 14080 condition ‘ji’ not met, with ‘dynamic’ and multithreading
  • 14725 mono 5.20 hangs when called from native thread
  • 14772 Null Pointer Exception after debugger pauses and then continues
  • 15261 [iOS][Tests] There are a number of System.Numeric tests that fail on iOS 32b devices
  • 15262 [iOS][Tests] A number of linq tests fail on iOS 32b devices
  • 15263 [iOS][Tests] A number of tests from Microsoft.CSharp fail on iOS 32b devices.
  • 15307 [iOS][Tests] Several corelib tests crash on iOS32b devices.
  • 15308 [netcore] Make OverlappedTests.PackNegTest Pass
  • 15310 [netcore] Make OverlappedTests.UnPackTest Pass
  • 15646 MERP indefinitely hangs on application quit
  • 15687 [debugger] Update client thread frames after SetIP.
  • 15805 Mono.Net.Security.MonoTlsStream: Crash when stream appears to have already been disposed
  • 15931 1024 hard limit of open file descriptors
  • 15992 Mono crashes during precompiling dll in fullaot mode
  • 15994 Coverity: derefenrecing null in profiler (CID: 1307043) Skip degenerate qsort: num < 2, size == 0, base == 0
  • 15999 [mini] run regression tests with fullaot+llvm
  • 16010 typeof(object).GetMember(“”) does not return an empty array
  • 16024 Native crash in ves_icall_System_Net_Sockets_Socket_Connect_internal
  • 16032 IOException: Sharing violation on path …
  • 16046 [netcore] AOT with unresolved dependencies hits asserts
  • 16122 VS 16.2.0 regression: CopyToAsync from DeflateStream to GzipStream throws NotImplementedException
  • 16172 Interpreter stack size is too large
  • 16192 Embedded Mono hangs when using native threads
  • 16308 Change netcore package to be using release builds
  • 16310 LLVM: ““.AsSpan()[0] doesn’t throw IndexOutOfRangeException
  • 16319 [wasm] Timers do not fire when run inside WebWorkers.
  • 16369 Relocations in .text on arm
  • 16380 [netcore] Regession with AOTed System.Private.CoreLib
  • 16381 [llvm] Assertion: should not be reached at mini-llvm.c:7104
  • 16395 [Mobile] DateTime.Now returns incorrect local time for one hour after entering DST in 39 locales.
  • 16411 JitTests.Float fails on iOS devices in release mode on 2019-08
  • 16415 Timezone data not handled correctly on FreeBSD
  • 16460 System.IO.Path.GetFullPath(“\.pipepipename”): different results on Mono and .NET
  • 16486 FileSystemEventArgs.FullPath throws ArgumentNullException
  • 16605 make distclean fails after build w/ embedded zlib
  • 16616 [netcore] Vector.CopyTo w/ LLVM emits wrong exception
  • 16626 [WinForms] ControlBox property didn`t hide Close button and icon
  • 16689 [merp] missing data in crashing reporting json native frames
  • 16701 C# REPL Unusable on Mono 6 / Ubuntu 19
  • 16709 Disposing the FileSystemWatcher does not close associated file descriptors
  • 16712 SIGSEGV in mono_class_setup_vtable_general
  • 16742 Date.Time parse issue (year 1948) Avoid creating un-representable DateTime for transition point
  • 16759 Stream.ReadAsync continues on different thread
  • 16803 mono_gc_finalize_notify spinning after process exit
  • 16808 LLVM failed for String.GetHashCode
  • 16819 [coop][interp] mono_threads_enter_gc_safe_region Cannot transition thread 0x1952b000 from STATE_BLOCKING with DO_BLOCKING
  • 16824 Crash when debugging iOS application that throws on DispatchQueue
  • 16864 [arm64_32] fix remaining regression tests
  • 16876 [Wasm] Switch to PNSE FileWatcher & Exclude Tests
  • 16879 [Wasm] Determine if System.Net.Http.UnitTests Failures are Relevant
  • 16918 XmlSerializer Deserializing Property with same name as its enum type no longer works
  • 16943 LLVM: recursive calls have overhead in JIT mode
  • 16950 Starting in Mono 6.0 (2019-02), NotImplementedException prevents using StreamWriter with GZipStream for encodings that use a preamble
  • 16974 File.GetCreationTimeUtc() returns the time last modified, not time created
  • 17004 [merp] crash reports have Darwin kernel version in OSVersion field
  • 17017 Out of bounds unhandled exception
  • 17038 [wasm][xunit tests] RemoteExecutorTests.RemoteInvokeWritesToFile fails
  • 17040 [wasm][xunit tests] System.Net.Security.Tests.SslStreamAlpnTests - MissingMethodException: Default constructor not found
  • 17083 Regression: when debugger encounters a not-unhandled exception, it stops and shows “Dns.cs file not found” (Dns being the BCL class used)
  • 17084 Marshalling managed exception contains cut off stacktraces
  • 17133 SystemNative_CopyFile() call to fchmod() introduced in Mono 6.0 is not compatible with the external storage location on some Android OS versions and devices
  • 17139 mono_aot_register_module conflicting definitions
  • 17151 DriveInfo return empty space for system volume on MacOS 10.15 Catalina
  • 17180 [merp] mono_summarize_unmanaged_stack tries to take a lock while calling decode_exception_debug_info
  • 17278 System.BadImageFormatException when reflecting on BCL shipped with Mono
  • 17334 mono_magic_trampoline being called more than expected
  • 17335 Investigate heavy stack from System_Threading_Interlocked_Exchange_T_REF_T_REF__T_REF
  • 17419 [merp] generate a crash report if process is killed with SIGTERM
  • 17549 Debugging ‘async Task Name()' method makes app crash
  • 17569 Await within method with return type Task makes debugging fail
  • 17665 AOT + System.Reflection.Emit + ConstructorInfo doesn’t work as expected
  • 17687 [Regression] Profiler’s calls log SIGABRTs when using GDI+ loader
  • 17718 Delegate does not invoke target virtually
  • 17737 Q: is using loader lock for domain seq_points access correct? (mono runtime) [runtime] Fix locking in mono_get_seq_points ().
  • 17790 [merp] SendMicrosoftTelemetry icall doesn’t do any MERP logging when inducing a Managed Crash
  • 17833 threadpool hang due to unlimited hill climbing
  • 17878 Deadlock in GC during bridge callback from native thread on Android
  • 17924 Mtouch argument interpreter crashes EntityFrameworkCore 3.0 iOS app
  • 17926 [Bug] Segmentation Fault receiving message on WatchOS with debugger attached
  • 17931 Native linking fails for armv7s
  • 18011 [embedding] Chaining Mach exceptions to Mono signals using utility threads

New in Mono 6.6.0.161 (Dec 12, 2019)

  • Runtime:
  • Improved reliability of the Mono Crash Reporter:
  • When Mono crashes it tries to dump a stack trace and other useful info to give developers a way to look into the issue. The crash reporter is now more reliable in certain edge cases.
  • WebAssembly:
  • We continue to work on making our WebAssembly support better. Various sets of issues have been resolved in this release and general performance and feature work is happening as well.
  • Community improvements for AIX/PASE and Haiku:
  • The ports for these systems received a bunch of improvements from community contributor Calvin Buckley (@NattyNarwhal).
  • Class Libraries:
  • CoreFX integration:
  • We continued to replace some of our classes with the implementation from CoreFX to improve performance and compatibility with .NET.
  • Tools:
  • .NET 4.8 reference assemblies:
  • We added reference assemblies for the .NET Framework 4.8 profile. This allows you to build libraries that target .NET 4.8 with MSBuild.
  • Resolved Issues:
  • #7377 [Mono.Debugger.Soft] Connections are not properly closed
  • #8747 FileSystemWatcher calls event after it is Disposed
  • #9621 64 bit cross compilers targeting 32 bit platforms
  • #9664 DateTime.Now or Timezone information do not transition out of DST for all time zones
  • #9706 Dead code eliminator has infinite loop
  • #10641 New arm64_32 architecture (watchOS 5)
  • #10645 WebException is thrown when reading from WebException.Response.GetResponse() stream
  • #10748 Mono.Posix: Syscall.chown has incorrect signature
  • #10848 IsAssignableFrom issue with non-generic interface array
  • #12141 Too many supportedRuntime tags in exe.config file cause problems on Windows
  • #12421 Task calls SynchronizationContext.Post on cancelling
  • #13311 [sdb] Failure to suspend
  • #13408 [sdb] SetIP requires a resume/suspend to update client thread frames
  • #13412 Bump netstandard.dll assembly version to 2.1
  • #13445 Fork regression in Mojave due to MAP_JIT
  • #13804 [MacSDK] pkg-config is 32-bit only
  • #13813 sertion at mono-threads.c:1031, condition `info’ not met
  • #13891 MonoAssembly/MonoImage multi-domain (and ALC) correctness
  • #13923 [DIM] [CoreCLR Test] boring not working
  • #13945 TransactionScope ignores specified IsolationLevel and causes Serializable transactions to be used
  • #14080 condition ‘ji’ not met, with ‘dynamic’ and multithreading
  • #14170 “Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)” after debugger pauses and then continues on nested exception
  • #14181 Pango modules.cache contains jenkins builder path
  • #14214 HttpClient.SendAsync() with > 2 GB response body.
  • #14215 Suggestion: switch to 7z native format instead of ZIP for Mono archives
  • #14243 [Wasm] Assertion at mini-llvm.c:2106, condition clause->flags == MONO_EXCEPTION_CLAUSE_NONE || clause->flags == MONO_EXCEPTION_CLAUSE_FINALLY || clause->flags == MON#O_EXCEPTION_CLAUSE_FAULT not met
  • #14377 Document/fix functions currently not doing GC safe enter/exit around blocking OS API calls.
  • #14495 Use of reabstraction of default interface methods causes System.TypeLoadException: VTable setup of type failed
  • #14555 [runtime] Pointers are not Objects
  • #14724 eglib g_shell_parse_argv() treats in ‘ quote differently from glib
  • #14729 interpreter tests fail on iOS and tvOS for mscorlib tests
  • #14787 Epic: CoreFX tests execution on MonoVM
  • #14792 [sdks][ios] Perform the appropriate cast of objc_msgSend and friends
  • #14793 Mono-Native not working on MacOS Catalina
  • #14809 Cannot box IsByRefLike type 'System.ReadOnlySpan'1' in Forms designer tests with 6.0
  • #14830 [netcore]Implement AssemblyLoadContext.InternalLoad
  • #14839 [xamarin] TimeZoneInfo.Local always returns “Local” name
  • #14841 opt: Unknown command line argument ‘-place-safepoints’ in XI 2019-06 integration
  • #14847 [interp] fix test failures of xtest-System.Runtime.Tests
  • #14864 [corlib] Mark PropertyInfo [Serializable]
  • #14871 [wasm] System.Text.Json struct serialization fails (but works on CoreCLR)
  • #14872 System.Runtime.CompilerServices.UnsafeTests.ReadWriteDoublePointer test failure on devices in Xamarin.iOS
  • #14917 [netcore] Make System.Linq.Expressions.Tests.BindTests.GlobalField Pass
  • #14940 [Wasm] WebAssembly.Net.Http.HttpClient fails under AOT
  • #14945 [netcore] Make System.Linq.Expressions.Tests.ConvertCheckedTests.ConvertCheckedDoubleToULongTest Pass
  • #14946 [netcore] Make System.Linq.Expressions.Tests.ConvertCheckedTests.ConvertCheckedDoubleToNullableULongTest Pass
  • #14948 [netcore] Make System.Linq.Expressions.Tests.ConvertCheckedTests.ConvertCheckedNullableDoubleToULongTest Pass
  • #14957 [bockbuild] Non-git sources (like Nuget) don’t have their cache invalidated properly
  • #14959 [netcore] Make System.SpanTests.SpanTests.MemoryMarshal_GenericStaticReturningSpan Pass
  • #14971 File.Move no longer moves dangling symlinks properly on macOS systems
  • #14972 Xamarin.iOS: System.ExecutionEngineException: Attempting to JIT compile method ‘(wrapper delegate-begin-invoke) System.IAsyncResult System.Func`2:begin_invoke_IAsyncResult__this___T_AsyncCallback_object (ExecutionEngineExceptionTest.AppDelegate,System.AsyncCallback,object)’
  • #14975 Mono profiler crashes when running IDE leak tests for VSMac
  • #15023 [netcore] Make System.Reflection.Tests.GetTypeTests.GetType_EmptyString Pass
  • #15048 [aot] Duplicate .fnstart Directive Compiler Error
  • #15058 [2019-06][iOS] Several tests on iOS fail on a 32b device
  • #15080 [netcore] Make System.Reflection.Tests.TypeInfoTests.IsAssignableFrom Pass
  • #15182 [netcore] Make System.Diagnostics.Tests.StackTraceTests.Ctor_Exception_SkipFrames Pass
  • #15188 [netcore] Make System.Diagnostics.Tests.StackTraceTests.Ctor_Exception_SkipFrames_FNeedFileInfo Pass
  • #15189 [netcore] System.Drawing.Drawing2D.Tests.ColorBlendTests.Ctor_LargeCount_ThrowsOutOfMemoryException
  • #15247 ves_icall_TypeBuilder_create_runtime_class_raw USED 132 handles
  • #15261 [iOS][Tests] There are a number of System.Numeric tests that fail on iOS 32b devices
  • #15262 [iOS][Tests] A number of linq tests fail on iOS 32b devices
  • #15263 [iOS][Tests] A number of tests from Microsoft.CSharp fail on iOS 32b devices.
  • #15265 [watchOS][Tests] The System_xunit-test.dll for watchOS includes tests that should be ignored
  • #15268 [debugger] Add intrinsic for creating a byte array
  • #15307 [iOS][Tests] Several corelib tests crash on iOS32b devices.
  • #15324 [netcore] Make System.Reflection.Emit.Tests.DynamicMethodctor1.ByRefReturnType_DoesNotThrow Pass
  • #15328 [MacOS][Tests] Several tests fail due to a System.IO exception
  • #15329 [MacOS Modern][Tests] System.IO.AnonymousPipe tests are included when they are not supported.
  • #15330 Runtime deadlock
  • #15336 [netcore] Make System.Reflection.Tests.IdentityTests.ParameterEquality2 Pass
  • #15337 [netcore] Make System.Reflection.Tests.TypeTests_GetMember.TestCaseInsensitive1 Pass
  • #15338 [netcore] Make System.Reflection.Tests.TypeTests_StructLayoutAttribute.Test_ExplicitAutoEightFortyTwo Pass
  • #15341 [netcore] Make System.Reflection.Tests.TypeTests_HiddenEvents.GetEventHidesEventsBySimpleNameCompare Pass
  • #15342 [netcore] Make System.Reflection.Tests.TypeInfoDeclaredNestedTypeTests.* Pass
  • #15343 [netcore] Make System.Reflection.Tests.TypeTests_PrefixingOnlyAllowedOnGetMember.TestGetMemberAll Pass
  • #15345 [netcore] Make System.Reflection.Tests.TypeTests_HiddenMethods.GetMethodDoesNotHideHiddenMethods Pass
  • #15346 [netcore] Make System.Reflection.Tests.TypeTests_HiddenProperties.GetPropertyHidesPropertiesByNameAndSigAndCallingConventionCompare Pass
  • #15347 [netcore] Make System.Reflection.Tests.AssemblyTests.CrossAssemblyTypeRefToNestedType Pass
  • #15348 [netcore] Make System.Reflection.Tests.TypeTests_HiddenFields.GetFieldDoesNotHideHiddenFields Pass
  • #15351 [netcore] Make System.Reflection.Tests.TypeTests_HiddenTestingOrder.HideDetectionHappensAfterPrivateInBaseClassChecks Pass
  • #15365 [wasm][framework] Review framework linker descriptions
  • #15441 “pos undeclared” compilation error
  • #15446 [wasm][debugger] display variable in scope
  • #15503 Fix zlib linkage on mingw/msvc builds.
  • #15541 Interpreter doesn’t preserve last error on P/Invoke in MinGW builds
  • #15551 [wasm] generic constraint failure
  • #15556 [sdb] Invocation issue with fixed buffers
  • #15596 [netcore] JitHelpers.EnumEquals and EnumCompareTo are not implemented for Interpreter
  • #15646 MERP indefinitely hangs on application quit
  • #15691 Clear last error for SetLastError=true P/Invoke
  • #15692 Catching IndexOutOfRange doesn’t provide message
  • #15734 [wasm][sdk] Failed package if ENABLE_WASM_THREADS is not active
  • #15740 The wcf don’t allow PUT, DELETE or OPTIONS.
  • #15751 Memory leak in mono 6.0.0.313 for delegates with target that are passed to native code
  • #15760 TypeLoadException thrown for recursive type that .NET allows
  • #15781 MERP Crash Test Can Never Fail
  • #15794 conv.r.un with float argument causes segfault
  • #15825 DeflateStream leaks native memory if not explicitly disposed
  • #15853 Marshal.Release(IntPtr.Zero) throws ArgumentException on Mono, ArgumentNullException on CLR
  • #15878 Crash in mono_coop_mutex_lock while running VS for Mac
  • #15887 [regression] File.GetLastWriteTime fails with specific (GMT+8) timezone
  • #15931 1024 hard limit of open file descriptors
  • #15990 possible floating point regression on ppc
  • #15999 [mini] run regression tests with fullaot+llvm
  • #16010 typeof(object).GetMember(“”) does not return an empty array
  • #16024 Native crash in ves_icall_System_Net_Sockets_Socket_Connect_internal
  • #16032 IOException: Sharing violation on path …
  • #16369 Relocations in .text on arm
  • #16395 [Mobile] DateTime.Now returns incorrect local time for one hour after entering DST in 39 locales.
  • #16411 JitTests.Float fails on iOS devices in release mode on 2019-08
  • #16486 FileSystemEventArgs.FullPath throws ArgumentNullException
  • #16570 Crash on GetParameters() with UnmanagedType.LPArray in dynamic assembly
  • #16689 [merp] missing data in crashing reporting json native frames
  • #16709 Disposing the FileSystemWatcher does not close associated file descriptors
  • #16712 SIGSEGV in mono_class_setup_vtable_general
  • #16759 Stream.ReadAsync continues on different thread
  • #16803 mono_gc_finalize_notify spinning after process exit
  • #16824 Crash when debugging iOS application that throws on DispatchQueue
  • #16864 [arm64_32] fix remaining regression tests
  • #16918 XmlSerializer Deserializing Property with same name as its enum type no longer works
  • #16974 File.GetCreationTimeUtc() returns the time last modified, not time created
  • #17004 [merp] crash reports have Darwin kernel version in OSVersion field
  • #17083 Regression: when debugger encounters a not-unhandled exception, it stops and shows “Dns.cs file not found” (Dns being the BCL class used)
  • #17151 DriveInfo return empty space for system volume on MacOS 10.15 Catalina
  • #17180 [merp] mono_summarize_unmanaged_stack tries to take a lock while calling decode_exception_debug_info

New in Mono 5.20.0 (Apr 25, 2019)

  • Class Libraries:
  • System.Data:
  • The support for SSPI (Security Support Provider Interface) in System.Data assembly has been added. This allows users to connect to SQL servers using SSPI on macOS and Linux. On macOS, no additional dependencies are required whereas on Linux additional package (krb5) needs to be installed.
  • Tools
  • Resolved Issues:
  • #10000 - Type.IsSubclassOf Performance Regression
  • #10031 - unhandled-exception-2.exe crashes crash reporting
  • #10035 - BinaryReaderTest.ReadBytesException and BinaryReaderTest.ReadCharsException fail on FullAOT+LLVM after hybrid suspend change
  • #10070 - recent string loading changes break big endian with mojibake
  • #10143 - Process.GetProcessesByName Memory Leak, Not Disposing Filtered Process Objects
  • #10144 - Generic with “unmanaged” constraint crashes runtime
  • #10227 - ProductHeaderValue parser throws exception for empty values
  • #10243 - opt and llc missing from mono 2018-08 pkg
  • #10244 - [wasm] Make test.js use generated driver and bindings.
  • #10303 - Latest mono on macOS broke Xamarin Studio 5 compatibility: Marshal.SizeOf reports type 0x01 not handled
  • #10309 - Mono issuing SIGSEGV running C# Semantic Tests
  • #10412 - Native crash when debugging with exception watchpoint
  • #10441 - FullAOT LLVM Linux x64 one flaky failure.
  • #10446 - [ WASM ]Build fail host error
  • #10448 - [iOS] CalendarTest.Hijri and CalendarTest.UmAlQura fail
  • #10467 - mono_thread_info_exit ignores exit_code and just passes 0 on.
  • #10483 - iOS cannot save Entity models with Nullable Guid (Guid?) property types (among others) using EF Core 2.1.2.
  • #10488 - HttpWebRequest throws an uncatchable task exception when processing requests simultaneously with timeout specified
  • #10506 - Update CI build scripts to not hardcode -j4
  • #10549 - Wrong characters in decimal number representation on s390x
  • #10598 - Many scary “Your mono runtime and class libraries are out of sync” mono warnings when building for device
  • #10603 - [wasm] Stop using mmap for loading assemblies
  • #10620 - [wasm] Rename sdks WebAssembly framework libraries
  • #10682 - [wasm] Build fails - ninja can not be found.
  • #10735 - mono64[80780:1186894] error: * Assertion: should not be reached at debugger-agent.c:6619
  • #10802 - mono_jit_init on macOS 10.14 has graphics corruption due to mprotect invocation
  • #10834 - Error loading generic override of in parameter
  • #10863 - Possible GC hang while building msbuild with mono/2018-08 and mono/master
  • #11123 - Type.IsSubclassOf throws TypeLoadException
  • #11138 - Hybrid suspend: mono_add_internal_call is broken
  • #11146 - Unhandled exception at the end of MonoDevelop.UnitTesting.Tests test run
  • #11202 - Mac installer does not always clear out old files
  • #11214 - SDK ‘Microsoft.NET.Sdk.Razor’ not found
  • #11303 - ParameterInfo.[Raw]DefaultValue returns Missing.Value for non-null default values of DateTime? and decimal? parameters
  • #11317 - Unexpected behaviour of DateTime.ToString with Korean language on iOS/Android
  • #11378 - [WASM AOT] Method returning a ValueType is not returning its value as a value
  • #11441 - HttpClient requests not cancelled in Dispose()
  • #11478 - [XA] [2018-10] Failure in PropertyInfoTests.GetValue_Invalid
  • #11479 - Loading assembly generated using tlbimp.exe give error in mono runtime
  • #11489 - IronPython 2.7.9 strange issue on mono 5.16
  • #11613 - AOT crash: error: * Assertion: should not be reached at ../../../../../mono/mini/mini-arm64-gsharedvt.c:119
  • #11874 - watchOS: mini test failure in release mode: JitTests.Aot : System.Reflection.TargetInvocationException
  • #11956 - os-event-unix.c:82 assert(event) failure
  • #11965 - [iOS/32bit/device] mscorlib test failures: DoubleFormatterTest.TestFormatStringsN# and DoubleTest.LongLongValueRoundtrip
  • #12069 - MethodInfo.ReturnParameter.IsDefined(type) throws IndexOutOfRangeException
  • #12130 - [watchOS] MT3001: Could not AOT the assembly mscorlib.dll
  • #12235 - Crash while profiling roslyn compiler server
  • #12344 - FastCopy may silently fail to do anything
  • #12362 - Problem with DefaultValueAttribute and Color values
  • #12421 - Task calls SynchronizationContext.Post on cancelling
  • #12461 - ReflectionModelServices.IsExportFactoryImportDefinition should not throw
  • #12724 - xtro-sharpie.exe crashes with “Cannot transition thread 0x10c3ef5c0 from STATE_BLOCKING with DO_BLOCKING”
  • #12747 - System.Reflection.Emit.ParameterBuilder.SetCustomAttribute() throws undocumented ArgumentOutOfRangeException
  • #12831 - [iOS] Generic sharing with long float arguments list
  • #12881 - MonoDevelop SDB regressions
  • #6352 - Bug in TextRenderer.DrawText on Linux
  • #7087 - Calling TcpListener.Create(int port) on multiple threads can fail
  • #8225 - Mono mkbundle output executable throws: “Error mapping file: No error”
  • #8486 - struct with 3 bytes not marshaled correctly with LLVM on watchOS
  • #8575 - GetCustomAttributes on a type from an assembly in the LoadFile context fails
  • #8689 - Memory leak in HttpWebRequest / HttpWebResponse when using a WebProxy
  • #8766 - Starting process with empty ProcessStartInfo.Environment incorrectly inherits all variables
  • #8848 - Error when debugging
  • #9028 - Mono to SQL Server using integrated security no longer works on iOS
  • #9089 - WaitHandle.WaitAny returns invalid result
  • #9418 - SslStream.AuthenticateAsClient throws wrong exception types
  • #9532 - Mono.Unix.Native.Syscall.sys_strerror_r SEGFAULT on musl libc
  • #9566 - flaky runtime.finalizer-exception.exe (Assertion at unwind.c:640, condition `cfa_reg != -1’ not met)
  • #9581 - Update macOS minimal version
  • #9839 - Behaviour difference between Mono and CoreCLR
  • #9870 - iOS: 32-bit device unit test failure: [FAIL] FSharpTest.SprintfTest : Expected: True
  • #9935 - tests/src/baseservices/threading/readerwriterlockslim/upgrader.cs CoreCLR acceptance-test fails
  • #9941 - WASM: Use BrowserHttpMessageHandler when available
  • #9943 - System.Reflection.Assembly.LoadFile should throw ArgumentException for relative path name
  • #9947 - AOT images compiled with safepoints should be usable with MONO_THREADS_SUSPEND=preemptive
  • #9951 - cross build regressed wrt System.Native and “shm_open that works well enough with mmap”
  • #9973 - Update framework facades list used by loader
  • Bugzilla 43447 - SynchronizedCollection.Add throws an ArgumentOutOfRangeException

New in Mono 5.18.0.225 (Jan 3, 2019)

  • Highlights:
  • .NET 4.7.2 support
  • Minimum macOS version changes
  • In Depth:
  • General:
  • Due to limitations in the TLS stack on 10.7 we are updating the minimum macOS development target from 10.7 to 10.9. Mono will be supported only on 10.9 or newer versions starting with this release.
  • Runtime:
  • AOT:
  • Few hard to track race conditions in trampolines unboxing for AOT backend targetting amd64 were fixed.
  • Interpreter:
  • The interpreter received the first set of low-level optimizations, improving the execution time of typeof call by the factor of 10. Further changes were made to avoid unnecessary allocations and support Xamarin native types (nint/nuint).
  • Custom Marshalers:
  • The logic handling custom marshalers, types implementing IICustomMarshaler has been mostly rewritten in managed code with additional caching mechanisms to match .NET Framework behaviour.
  • Optimizations:
  • The intrinsics built on top of SSE41 for Math.Round/Math.Floor/Math.Ceiling were added.
  • Class Libraries:
  • CoreFX convergence:
  • In this release, more CoreFX code was imported in particular in System.Reflection namespace. Many common types in mscorlib System namespace are now fully CoreFX based including System.Math. The Registry implementation on Windows is now fully based on CoreFX implementation.
  • Mono.Options:
  • A new CommandSet.GetCompletions() method was introduced, which returns all possible commands which match a given completion prefix. This is intended for e.g. bash completion support.
  • System.Runtime.InteropServices:
  • It’s now possible to use RuntimeInformation API to detect ARM and ARM64 platforms.
  • System.Data:
  • The support for SSPI (Security Support Provider Interface) in System.Data assembly has been added. This allows users to connect to SQL servers using SSPI on macOS and Linux. On macOS, no additional dependencies are required whereas on Linux additional package (krb5) needs to be installed.
  • Tools:
  • MSBuild:
  • Reference assemblies for .NET 4.7.2 are included to allow targeting .NET Framework 4.7.2 using MSBuild on Mono.
  • Resolved Issues:
  • #6352 - Bug in TextRenderer.DrawText on Linux
  • #7087 - Calling TcpListener.Create(int port) on multiple threads can fail
  • #8575 - GetCustomAttributes on a type from an assembly in the LoadFile context fails
  • #8689 - Memory leak in HttpWebRequest / HttpWebResponse when using a WebProxy
  • #8766 - Starting process with empty ProcessStartInfo.Environment incorrectly inherits all variables
  • #8848 - Error when debugging
  • #9028 - Mono to SQL Server using integrated security no longer works on iOS
  • #9089 - WaitHandle.WaitAny returns invalid result
  • #9532 - Mono.Unix.Native.Syscall.sys_strerror_r SEGFAULT on musl libc
  • #9566 - flaky runtime.finalizer-exception.exe (Assertion at unwind.c:640, condition `cfa_reg != -1’ not met)
  • #9581 - Update macOS minimal version
  • #9839 - Behaviour difference between Mono and CoreCLR
  • #9870 - iOS: 32-bit device unit test failure: [FAIL] FSharpTest.SprintfTest : Expected: True
  • #9935 - tests/src/baseservices/threading/readerwriterlockslim/upgrader.cs CoreCLR acceptance-test fails
  • #9941 - WASM: Use BrowserHttpMessageHandler when available
  • #9943 - System.Reflection.Assembly.LoadFile should throw ArgumentException for relative path name
  • #9947 - AOT images compiled with safepoints should be usable with MONO_THREADS_SUSPEND=preemptive
  • #9973 - Update framework facades list used by loader
  • #10000 - Type.IsSubclassOf Performance Regression
  • #10031 - unhandled-exception-2.exe crashes crash reporting
  • #10035 - BinaryReaderTest.ReadBytesException and BinaryReaderTest.ReadCharsException fail on FullAOT+LLVM after hybrid suspend change
  • #10070 - recent string loading changes break big endian with mojibake
  • #10143 - Process.GetProcessesByName Memory Leak, Not Disposing Filtered Process Objects
  • #10144 - Generic with “unmanaged” constraint crashes runtime
  • #10227 - ProductHeaderValue parser throws exception for empty values
  • #10243 - opt and llc missing from mono 2018-08 pkg
  • #10244 - [wasm] Make test.js use generated driver and bindings.
  • #10303 - Latest mono on macOS broke Xamarin Studio 5 compatibility: Marshal.SizeOf reports type 0x01 not handled
  • #10309 - Mono issuing SIGSEGV running C# Semantic Tests
  • #10412 - Native crash when debugging with exception watchpoint
  • #10441 - FullAOT LLVM Linux x64 one flaky failure.
  • #10446 - [ WASM ]Build fail host error
  • #10448 - [iOS] CalendarTest.Hijri and CalendarTest.UmAlQura fail
  • #10467 - mono_thread_info_exit ignores exit_code and just passes 0 on.
  • #10483 - iOS cannot save Entity models with Nullable Guid (Guid?) property types (among others) using EF Core 2.1.2.
  • #10488 - HttpWebRequest throws an uncatchable task exception when processing requests simultaneously with timeout specified
  • #10506 - Update CI build scripts to not hardcode -j4
  • #10549 - Wrong characters in decimal number representation on s390x
  • #10598 - Many scary “Your mono runtime and class libraries are out of sync” mono warnings when building for device
  • #10603 - [wasm] Stop using mmap for loading assemblies
  • #10620 - [wasm] Rename sdks WebAssembly framework libraries
  • #10682 - [wasm] Build fails - ninja can not be found.
  • #10802 - mono_jit_init on macOS 10.14 has graphics corruption due to mprotect invocation
  • #10863 - Possible GC hang while building msbuild with mono/2018-08 and mono/master
  • #11123 - Type.IsSubclassOf throws TypeLoadException
  • #11138 - Hybrid suspend: mono_add_internal_call is broken
  • #11146 - Unhandled exception at the end of MonoDevelop.UnitTesting.Tests test run
  • #11202 - Mac installer does not always clear out old files
  • #11214 - SDK ‘Microsoft.NET.Sdk.Razor’ not found
  • #11303 - ParameterInfo.[Raw]DefaultValue returns Missing.Value for non-null default values of DateTime? and decimal? parameters
  • #11378 - [WASM AOT] Method returning a ValueType is not returning its value as a value
  • #11441 - HttpClient requests not cancelled in Dispose()
  • #11478 - [XA] [2018-10] Failure in PropertyInfoTests.GetValue_Invalid
  • #11479 - Loading assembly generated using tlbimp.exe give error in mono runtime
  • #11613 - AOT crash: error: * Assertion: should not be reached at ../../../../../mono/mini/mini-arm64-gsharedvt.c:119
  • #11874 - watchOS: mini test failure in release mode: JitTests.Aot : System.Reflection.TargetInvocationException
  • Bugzilla 43447 - SynchronizedCollection.Add throws an ArgumentOutOfRangeException

New in Mono 5.16.0.179 (Oct 10, 2018)

  • Highlights:
  • Hybrid suspend
  • Client Certificate Support
  • C# 7.3 support
  • Resolved Issues:
  • #10000 - Type.IsSubclassOf Performance Regression
  • #10143 - Process.GetProcessesByName Memory Leak, Not Disposing Filtered Process Objects
  • #10309 - Mono issuing SIGSEGV running C# Semantic Tests
  • #10483 - iOS cannot save Entity models with Nullable Guid (Guid?) property types (among others) using EF Core 2.1.2.
  • #6173 - Periodic heapshot mode calculates time difference incorrectly
  • #6466 - System.Diagnostics.ProcessTest.Start1_FileName_NotFound failing on newer Ubuntu
  • #6647 - Jagged arrays cannot be cast to IList
  • #6834 - Frequent timing out of the ‘monitor-abort’ tests on CI
  • #6936 - Mono runtime doesn’t check modreqs for overriding methods
  • #7058 - [interp] pinvoke.exe is flaky
  • #7137 - Step in crashes debugger
  • #7247 - CoreFX System.Text namespace
  • #7260 - StackTrace.GetFrames() does not return frames from captured traces
  • #7305 - Stack overflow when hosting a WCF service when contract interface inherits other interfaces
  • #7356 - Memory leak in HttpWebRequest / HttpWebResponse
  • #7402 - [interp] fix System.Threading.ThreadTest.Test_Interrupt
  • #7525 - Profiler exception clause reporting is broken
  • #7610 - Add System.Memory facade
  • #7649 - Exception stacktrace is null when task delegate is created from local function
  • #7655 - Memory leak in file operations in mono 5.10
  • #7683 - Assertion at /Users/builder/data/lanes/5808/1c6f300e/source/xamarin-macios/external/mono/mono/profiler/log.c:546, condition `mono_lls_insert (&log_profiler.profiler_thread_list, hp, &thread->node) && “Why can’t we insert the thread in the LLS?”’ not met
  • #7685 - Assert ainfo->cinfo->stack_usage % MONO_ARCH_FRAME_ALIGNMENT == 0
  • #7716 - mono’s mscorlib.xml descriptor file seems incomplete for Xamarin.Mac
  • #7731 - MKBundle fails on Windows due to a folder check/missing folder
  • #7785 - Dead link (404) in a runtime execution engine exception
  • #7828 - Invalid instruction generated by regex runtime when using dapper
  • #7944 - CreateDelegate produces delegate wrapping incorrect method
  • #7947 - Missing forwarders from System.Runtime.Extensions
  • #8036 - Update API diff to ignore more attributes
  • #8074 - signing problems in preset fullaot build
  • #8089 - Add System.Drawing.Common facade for Xamarin profiles
  • #8112 - Wrong maximal instruction length of instruction tailcall_membase on ARM64
  • #8122 - CoreFX System.Xml.Linq
  • #8143 - CEE_STELEM for single token fails in wasm interp mode
  • #8149 - Assembly.LoadFile and Assembly.LoadFrom have same behavior
  • #8175 - Changing eglib doesn’t rebuild mono
  • #8177 - [wasm] master broken due to WASM-ERR: missing function: mono_debugger_agent_init
  • #8218 - SN fails when signing x64 assemblies
  • #8250 - assertion failure fullaot llvm System.Drawing.dll
  • #8267 - TimeZoneInfo.Local Id and DisplayName are always: Local
  • #8282 - [android] respect maximum length of a message when using __android_log_write ()
  • #8310 - FSharp build is broken due to new Path.GetFileName() overload
  • #8311 - bug-82022.exe fails in LLVM JIT
  • #8321 - Build break/test failures on FullAOT+LLVM configuration
  • #8329 - mono –interpreter got * Assertion at ..monominiinterpinterp.c:3557, condition `csig->call_convention == MONO_CALL_DEFAULT’ not met
  • #8340 - Issue with black text on console, possibly ncurses
  • #8356 - Hybrid suspend: backtrace in GC Unsafe mode considered harmful (on Linux)
  • #8372 - unload-appdomain-on-shutdown.exe flaky test
  • #8407 - TypeDescriptorTest.TestCreateDesigner and TestGetAttributes broken on FullAOT
  • #8409 - FullAOT test failures/crashes on arm64,armel or armhf
  • #8417 - Redirecting process output when Console.SetOut set gives strange output
  • #8422 - Ambiguous call Encoding.GetByteCount(char[], int, int) and Encoding.GetByteCount(string, int, int)
  • #8430 - Fails to compile without AOT (enable-minimal=profiler,debug,aot)
  • #8447 - ilasm can’t assemble vbbyrefstr parameters
  • #8469 - API/Project Files diff renderer stops at XML end comment –>
  • #8473 - ThreadPoolTests.PerformanceCounter_WorkItems fails occasionally
  • #8488 - Doesn’t compile with Clang on ARM64
  • #8572 - Build fails on Redhat 6.8 with GCC 4.4.7
  • #8575 - GetCustomAttributes on a type from an assembly in the LoadFile context fails
  • #8587 - configure.ac G_HAVE_ISO_VARARGS problems
  • #8597 - System.Reflection.Emit: ParameterBuilder.SetConstant(value) throws ArgumentException for nullable value typed parameters
  • #8623 - Complete the System.Memory types import
  • #8698 - csharp REPL can’t load pkg-config references interactively
  • #8701 - AOT failure if ref readonly with generics is used
  • #8712 - FileSystemWatcher only works for one instance
  • #8721 - System.Threading.Tasks.TaskFactoryTests.FromAsync_BeginCallback failing under XM with 2018-04
  • #8726 - Loading denied assemblies via Assembly.LoadFrom can cause issues, eg. for VSMac
  • #8759 - Build of Master fails with GCC 4.4.7
  • #8787 - ThreadPrincipalTests.PrincipalFlowsToAsyncTask failure on device
  • #8820 - [loader] Mono is too strict when checking for already loaded assemblies.
  • #8848 - Error when debugging
  • #8866 - jit profiler option crashes iOS apps
  • #8897 - “Microsoft.Managed.Core.targets” is missing from roslyn-binaries
  • #8915 - Using BinaryFormatter to deserialize an array in a struct in a parent class fails with unfriendly exception [reproducible test case i promise]
  • #8979 - configure script incorrectly assumes functions are available with some conditions
  • #9002 - ServiceControllerTest.cs is designed to fail.
  • #9023 - Two ValueType properties initialization inline fails in mono-wasm
  • #9031 - HttpWebRequest.EndGetRequestStream throws wrong exception on abort
  • #9033 - DynamicMethod creation fails with “method arguments are incompatible”
  • #9179 - CI build breakage for 2018-04, msbuild
  • #9234 - [System]: Renegotiation in AppleTls requires OS X 10.12+
  • #9277 - Cannot get the exit code from a non-child process on Unix (on Windows)
  • #9318 - watchOS: “fastcc” not supported with Xcode 10’s clang
  • #9753 - [loader] LoadFile from application base should load in default context
  • #9839 - Behaviour difference between Mono and CoreCLR
  • #9869 - iOS: mini test failure in release/llvm mode (JitTests.Math: Expected: 0 But was: 1)
  • #9870 - iOS: 32-bit device unit test failure: [FAIL] FSharpTest.SprintfTest : Expected: True
  • #9943 - System.Reflection.Assembly.LoadFile should throw ArgumentException for relative path name
  • #9996 - The type initializer for ‘System.Data.Entity.Core.Objects.ELinq.ExpressionConverter’ threw an exception. (regression in Mono 5.14)
  • Bugzilla 19436 - [eglib] GMarkup XML parser can’t handle hyphens underscores and periods in element names.
  • Bugzilla 23668 - System.Net.Http.Formatting should not contain Newtonsoft.Json
  • Bugzilla 26983 - Console properties might deadlock for background properties
  • Bugzilla 46917 - Incorrect validation checks in message formater
  • Bugzilla 60065 - Make exception marshaling work with system mono

New in Mono 5.14.0.177 (Aug 8, 2018)

  • Resolved Issues:
  • #6178 - Log profiler should provide startup time in stream header from same source as event timestamps
  • #6186 - Code coverage instrumentation logic should deal with inlining the same way as enter/leave instrumentation
  • #6187 - mkbundle Linux - program doesn’t run on system unless mono-core is installed
  • #6211 - Rare shutdown crash in profiler stress tests
  • #6266 - ArrayTypeMismatchException when using array of generic ICollection or IList
  • #6357 - Keepass crashes when editing an entry notes field in a specific way
  • #6579 - Type.GetInterface fails to find implemented interface when ignoreCase: true is used
  • #6666 - Invalid cast is not checked for nullable types
  • #6752 - System.TermInfoReader cannot handle new NCurses 6 TermInfo files
  • #6767 - Add missing APIs to System.Data
  • #6788 - nuget restore fails to parse valid json from nuget.org with mono/master
  • #6801 - Self-hosted HttpListener gets empty file collection and input stream for multipart PUT or POST requests
  • #6812 - MonoProfilerCoverageData::column is equal 0
  • #6848 - netstandard facade dlls have different public key tokens
  • #6940 - DNS lookup of IPv6-only hosts fails
  • #6948 - [XI]WatchOS apps fail to build with error “Undefined symbols for architecture armv7k” using XI with mono-2017-12 support
  • #6998 - Runtime assert in System.Runtime.Remoting
  • #6999 - test_0_time_drift - mono/tests failure
  • #7016 - Hybrid AOT is not working for some generic methods
  • #7085 - Hybrid AOT breaks setting thread UI culture
  • #7086 - Hybrid AOT throws invalid cast exception on dictionaries indexed with enum
  • #7093 - Regression in Array interface conversions
  • #7095 - Assertion at class-accessors.c:31, condition `mono_class_is_ginst (klass)’ not met
  • #7134 - NullReferenceException while processing concurrent requests with a WCF app
  • #7137 - Step in crashes debugger
  • #7145 - [XI] RuntimeFeatureTest.NoNewFeaturesAdded failure in mscorlib tests
  • #7184 - MSBuild always recompiles project if it has a resx with a windows path.
  • #7199 - finalizer-abort.exe
  • #7200 - Problem building on Arch linux
  • #7240 - dim-sharedgenerics.exe fails with LLVM
  • #7262 - .config with dllmap not working with app domains with shadow copying enabled
  • #7289 - Creating EnumMirror fails in a multi-domain context.
  • #7328 - suggest recursive self-calls do not create trampoline
  • #7338 - Finalizer crashes because of FileSystemWatcher Dispose exception in FileSystemWatcher_mobile.cs
  • #7356 - Memory leak in HttpWebRequest / HttpWebResponse
  • #7364 - watchOS/LLVM crashes at launch on device
  • #7378 - WeakAttribute causes all fields within a class to become weak
  • #7389 - System.CodeDom.Compiler.CodeDomConfigurationHandler throws on initialization
  • #7408 - No longer builds with CentOS 6 (GCC 4.4.7)
  • #7432 - gcsuppressfinalize.exe CoreCLR test started failing after upgrade to Debian 9
  • #7449 - PInvoke to function that takes a struct with an array of double gets incorrect results on Android
  • #7460 - w32handles require much memory when the minimum required is much lower
  • #7535 - [llvm/bitcode] Crash in mono_class_has_failure (class.c:10037)
  • #7536 - Missing Facades from net_4_x that are in 4.7.1.
  • #7537 - new object [int.MaxValue] crashes runtime instead of OOM
  • #7565 - Generic symbol names exported from libmono
  • #7568 - Intermittent failures on bug-80307.exe and other tests using FileSystemWatcher
  • #7610 - Add System.Memory facade
  • #7613 - mprof-report can’t read v13 file that Mono.Profiler.Log can
  • #7620 - DrawToBitmap in Control.cs does not work
  • #7624 - Strict loader still loads incorrect assembly
  • #7637 - iOS release build: “Could not AOT the assembly” -> “p - buf < buf_size not met”
  • #7655 - Memory leak in file operations in mono 5.10
  • #7657 - Method is inaccessible from method in nested classes with inheritance.
  • #7661 - Suppress the degraded allocation warning for the WebAssembly target
  • #7685 - Assert ainfo->cinfo->stack_usage % MONO_ARCH_FRAME_ALIGNMENT == 0
  • #7696 - LINQ bug (ConcatNIterator.ToArray()?)
  • #7729 - [mcs] fails to compile code with Tuple
  • #7786 - “mono/metadata/threads.c:3016, condition `internal’ not met” under certain conditions with the soft debugger attached
  • #7792 - Failure to AOT compile due to condition `load_opcode != OP_LOADV_MEMBASE’ not met
  • #7805 - F# build is broken due to new String.StartsWith overload
  • #7822 - Failing to serialize ConcurrentDictionary with BinaryFormatter
  • #7828 - Invalid instruction generated by regex runtime when using dapper
  • #7860 - illinkanalyzer isn’t whitelisted in the macOS package
  • #7864 - [wasm] Don’t fail when TaskCreationOptions.LongRunning is used
  • #7903 - Mono VS solution has wrong all projects in all profiles used
  • #7920 - build broken with –enable-minimal=soft_debug
  • #8089 - Add System.Drawing.Common facade for Xamarin profiles
  • #8143 - CEE_STELEM for single token fails in wasm interp mode
  • #8267 - TimeZoneInfo.Local Id and DisplayName are always: Local
  • #8310 - FSharp build is broken due to new Path.GetFileName() overload
  • #8311 - bug-82022.exe fails in LLVM JIT
  • #8409 - FullAOT test failures/crashes on arm64,armel or armhf
  • #8417 - Redirecting process output when Console.SetOut set gives strange output
  • #8698 - csharp REPL can’t load pkg-config references interactively
  • Bugzilla 10087 - Process exit can be blocked if the AppDomain.ProcessExit event hangs
  • Bugzilla 11771 - IsolatedStorageFile.GetFileNames() throws exception w/ nested dirs
  • Bugzilla 12850 - FtpWebRequest does not handle remote paths properly
  • Bugzilla 18941 - Calling Marshal.SizeOf() with an Empty struct using Sequential or Explicit returns 0
  • Bugzilla 19038 - Quitting XS caused MainStoryboard.Storyboard to convert to IB file
  • Bugzilla 19436 - [eglib] GMarkup XML parser can’t handle hyphens underscores and periods in element names.
  • Bugzilla 25224 - stack overflow after printfn something
  • Bugzilla 25444 - WCF method with UriTemplate annotation fails with InvalidOperationException
  • Bugzilla 33208 - System.Reflection.Module.ResolveMember() returning inconsistent results when querying dynamic assemblies
  • Bugzilla 46473 - Error: The object with ID N implements the IObjectReference interface for which all dependencies cannot be resolved. The likely cause is two instances of IObjectReference that have a mutual dependency on each other
  • Bugzilla 53272 - Unhandled Exception System.Collections.Generic.KeyNotFoundException in ikdasm
  • Bugzilla 58413 - Environment.Tickcount is changed when the date is changed in android
  • Bugzilla 59184 - MethodInfo.Invoke fails for generic methods with too many/too large arguments
  • Bugzilla 59400 - Wrong interface method is called (two interfaces, covariance)
  • Bugzilla 59779 - HttpClient, when using GZIP, hangs while sending multiple requests in parallel.
  • Bugzilla 60065 - Make exception marshaling work with system mono
  • Bugzilla 60088 - Assertion at ../../../../external/mono/mono/mini/debugger-agent.c:4765, condition `array->len == 1’ not met
  • Bugzilla 60843 - Type 0x15 not handled in custom attr value decoding
  • Further details on this release at:
  • https://www.mono-project.com/docs/about-mono/releases/5.14.0/

New in Mono 5.12.0.226 (May 11, 2018)

  • RUNTIME:
  • Interpreter:
  • A lot of work has been put in stabilising and passing our test suite. Progress has been quite fast and we now pass most of the runtime, mcs, mscorlib and Mono.Debugger.Soft test suites. We are also reaching the point where the Interpreter is able to build the full Base Class Library with Mono C# compiler (mcs).
  • IBM AIX and IBM i:
  • @NattyNarwhal has made the great effort of porting Mono on IBM AIX and i! While a lot features work, such as BoringTLS, other things do not, such as the ahead-of-time compiler or Roslyn. For any question about this port, please join the discussion on our Gitter channel.
  • Haiku:
  • @NattyNarwhal has also made the Haiku port support amd64; unfortunately neither i386 and amd64 work just yet due to various runtime termination issues.
  • WebAssembly:
  • The WebAssembly port features better support through the Mono SDKs effort and several issues were fixed around GC and Base Class Libraries.
  • Jemalloc:
  • We now have an option to support jemalloc as the malloc(3) library, its speed allows for faster desktop applications. You’ll need to compile Mono with --with-jemalloc to enable it and then set MONO_USE_JEMALLOC environment variable at runtime. Jemalloc is known to have much better performance than system memory allocators and is safe in concurrent/re-entrant situations.
  • Profiler: improved GC roots reporting:
  • A rework of the mechanism to report GC roots allows both the Xamarin.Profiler as well as mprof-report to better track their lifetimes.
  • PAL:
  • Added support for nanosecond resolution in file information on platforms where the information is available. This means the return value of APIs like FileInfo.GetLastWriteTime () is now more precise.
  • Diagnostic enhancements:
  • The diagnostic support to inspect generated native code via MONO_VERBOSE_METHOD environement variable was extended to support multiple entries.
  • Class Libraries:
  • HttpWebRequest async handling has been rewritten. This resolves many long-standing and hard to reproduce issues involving requests cancellation or timeout. As HttpWebRequest is used as the underlying implementation by other types like HttpClient this should improve the reliability of a broad range of types.
  • A few internal types were decorated with StackTraceHiddenAttribute to produce more readable managed stack-traces. The improvement will be most noticeable in scenarios involving ExceptionDispatchInfo (e.g. async stack-traces).
  • The System.Security.Cryptography.Xml namespace in the System.Security assembly has been replaced with the CoreFX implementation. This makes Mono XML Signature (also called XMLDSig) support highly compatible with .NET.
  • The ICSharpCode.SharpZipLib assembly was marked as obsolete and will be removed in a future release. We recommend replacing the very old implementation we ship with the official NuGet package available at https://www.nuget.org/packages/SharpZipLib/.
  • TOOLS:
  • illinkanalyzer:
  • A new tool called the Linker Analyzer was introduced, available via the illinkanalyzer command. It helps in advanced scenarios to analyze dependencies which were recorded during linker processing and caused the linker to mark an item to keep it in the resulting linked assembly.
  • VB.NET compiler:
  • We now ship the Roslyn based VB.NET compiler. This is a fully featured VB.NET compiler integrated in msbuild but is also available via the vbc command which supports significantly more features than the old vbnc compiler. We are going to deprecate the old vbnc compiler and we encourage everyone to test the new tool.
  • BUG FIXES:
  • Bugzilla #41294 - Some Mono threadpool performance counters return 0
  • Bugzilla #45901 - Missing .NET code pages ibm775 & ibm737
  • Bugzilla #56071 - Mono.Security.AuthenticodeBase Doesn’t Support PE32+ image format
  • Bugzilla #58413 - Environment.Tickcount is changed when the date is changed in android
  • Bugzilla #59184 - MethodInfo.Invoke fails for generic methods with too many/too large arguments
  • Bugzilla #60088 - Assertion at ../../../../external/mono/mono/mini/debugger-agent.c:4765, condition `array->len == 1’ not met
  • Bugzilla #60225 - Coverage output is missing some types and methods
  • Bugzilla #60298 - LayoutKind.Explicit, Size = 12 ignored with 64bit alignment
  • Bugzilla #60359 - AssemblyName.set_CultureName is not implemented
  • Bugzilla #60568 - WaitHandle.WaitOne(int) doesn’t trigger SynchronizationContext.Wait
  • Bugzilla #60756 - A crash with CEE_RET: value type stack: 0 vs. 8
  • Bugzilla #60848 - Incorrect unicode custom attribute decoding
  • Bugzilla #60862 - Stack overflow throws null (null is caught)
  • Bugzilla #60900 - Error using implicit operator with Nullable
  • Bugzilla #60986 - Memory leak when marshalling Delegate to native code
  • Bugzilla #61202 - Fatal error when adding aspect ratio constraint
  • GitHub #6169 - Thread objects are being leaked
  • GitHub #6187 - mkbundle Linux - program doesn’t run on system unless mono-core is installed
  • GitHub #6192 - System.Reflection.Emit: PropertyBuilder with generic type doesn’t add generic parameter
  • GitHub #6264 - Creating a new instance of X.509 certificate out of another, empty instance of X.509 certificate must not throw
  • GitHub #6283 - Mono is not able to notice a file change in a FileInfo object
  • GitHub #6320 - [arm] unaligned access in ves_icall_System_ValueType_Equals
  • GitHub #6339 - System.TypeLoadException is thrown when run .net standard library with Mono
  • GitHub #6343 - mono/utils/jemalloc does not exist
  • GitHub #6349 - messages during make dist: “file name is too long”
  • GitHub #6379 - Reenable System.Runtime.CompilerServices.Unsafe-xunit test on 32bit
  • GitHub #6383 - System.Diagnostics.ProcessTest.Start1_FileName_NotFound failing
  • GitHub #6401 - Invalid array cast is supported
  • GitHub #6411 - System.Numerics structs are incorrect sizes
  • GitHub #6464 - Socket.Send misses data on Windows
  • GitHub #6490 - Reenable weak-fields.exe test
  • GitHub #6777 - Memory corruption in Mono 5.8.0.108
  • GitHub #6848 - netstandard facade dlls have different public key tokens
  • GitHub #6940 - DNS lookup of IPv6-only hosts fails
  • GitHub #6948 - [XI]WatchOS apps fail to build with error “Undefined symbols for architecture armv7k” using XI with mono-2017-12 support
  • GitHub #6998 - Runtime assert in System.Runtime.Remoting
  • GitHub #7016 - Hybrid AOT is not working for some generic methods
  • GitHub #7085 - Hybrid AOT breaks setting thread UI culture
  • GitHub #7086 - Hybrid AOT throws invalid cast exception on dictionaries indexed with enum
  • GitHub #7095 - Assertion at class-accessors.c:31, condition `mono_class_is_ginst (klass)’ not met
  • GitHub #7184 - MSBuild always recompiles project if it has a resx with a windows path
  • GitHub #7240 - dim-sharedgenerics.exe fails with LLVM
  • GitHub #7262 - .config with dllmap not working with app domains with shadow copying enabled
  • GitHub #7289 - Creating EnumMirror fails in a multi-domain context.
  • GitHub #7338 - Finalizer crashes because of FileSystemWatcher Dispose exception in FileSystemWatcher_mobile.cs
  • GitHub #7364 - watchOS/LLVM crashes at launch on device
  • GitHub #7389 - System.CodeDom.Compiler.CodeDomConfigurationHandler throws on initialization
  • GitHub #7536 - Missing Facades from net_4_x that are in 4.7.1.
  • GitHub #7637 - iOS release build: “Could not AOT the assembly” -> “p - buf < buf_size not met”
  • GitHub xamarin/maccore#628 - mscorlib/Mac/Full: LocalId (MonoTests.System.TimeZoneInfoTest+PropertiesTests.LocalId) fails
  • GitHub xamarin/maccore#629 - iOS 32-bit sim: TimeZoneTest.TestCtors (D02) fails

New in Mono 5.8.0.108 (Feb 1, 2018)

  • Initial WebAssembly port landed. This release includes our preliminary port of mono to WebAssembly. It should be possible to build both the runtime and class libraries targeting it.
  • Runtime:
  • Runtime verifier now supports C# 7.0 byref returns.
  • Improved compatibily with alternative languages that depend on implicit widening of locals.
  • Profiler:
  • New quiet mode to the profiler where a minimal set of events are enabled by default and all high volume events must be explicitly enabled. This gives better control on the profiler and should make it usable for long profiling sessions.

New in Mono 5.4.1.6 (Nov 10, 2017)

  • Bug Fixes:
  • #59281 - System.Threading.AbandonedMutexException: The wait completed due to an abandoned mutex
  • #59302 - Task in Mono 5.4.0.167 is throwing exception “Length cannot be less than zero”
  • #59364 - Assertion at dynamic-image.c:209, condition `prev == MONO_HANDLE_RAW (obj)’ not met
  • #59832 - [iOS]MT3001 error: Could not AOT the assembly error while building iOS/mobile samples
  • #60233 - Assertion in dynamic-image.c after 792b5367cd3a6ffa1a192c4d2d7ace3509cbb646

New in Mono 5.4.0.201 (Oct 17, 2017)

  • RUNTIME:
  • JIT Job Control:
  • The Runtime now controls concurrent method compilation. It avoid multiple threads compiling the same method at the same time and limits the number of threads simultaneously compiling.
  • This shows up as performance issue with applications such as Roslyn that very quickly ramp up a lot of threads.
  • Array element store optimization:
  • Optimize array stores of non-final ref types.
  • Load scalability improvements:
  • Move a few hot data structures in the type loader to use lock free reads. This shown up a scalability botheneck with Roslyn and Visual Studio for Mac first project load.
  • ValueType write barrier optimization:
  • Optimize GC write barriers when value types are involved. This shown up as a performance issue with Roslyn.
  • Make jit method table resizing more scalable:
  • The original table resizing code would count the size of the table on resize, this works fine for small programs but proved to be a problem with Visual Studio for Mac.
  • Reflection queries scalability improvements:
  • Reflection queries must be cached by the runtime as two identical queries must return the same objects. It now use a lock free data structure for reads. This shown up as a performance issue during Visual Studio for Mac first project load.
  • Intrisificy Marshal.PtrToStruct for blitable types:
  • This avoid boxing and unboxing an intermediary object. This results in a 30x speedup on a microbenchmark.
  • Revamped unaligned memory access support:
  • As part of our work to support dotnet platform advances, proper unaligned access was missing from the mono runtime. This feature is used by the new Span type and now it works with ARM cpus.
  • Interpreter works in JIT restricted environments:
  • There are a few things in the interpreter that still require machine specific trampolines that are written in assembly or managed code. We used the JIT infrastructure so far for that, but now we added plumbing to the AOT compiler so they can be pre-generated, and thus the interpreter is usable on platforms where code generation is not allowed during execution. See the interp option in the man page.
  • Interpreter supports ARM and ARM64:
  • We added support for those architectures and also test them on CI.
  • Class Libraries#:
  • Integrated AppContextSwitch code from reference sources which allows all of its compat switches to be used.
  • Added reference assemblies for .NET Framework 4.7. This allows you to build libraries targetting .NET 4.7 using Mono’s msbuild.
  • Tools:
  • We updated the NuGet command line tool (nuget) which is bundled with Mono to version 4.3.0.
  • We updated MSBuild to the latest 15.4 release.

New in Mono 5.4.0.199 Alpha (Sep 27, 2017)

  • RUNTIME:
  • JIT Job Control:
  • The Runtime now controls concurrent method compilation. It avoid multiple threads compiling the same method at the same time and limits the number of threads simultaneously compiling.
  • This shows up as performance issue with applications such as Roslyn that very quickly ramp up a lot of threads.
  • Array element store optimization:
  • Optimize array stores of non-final ref types.
  • Load scalability improvements:
  • Move a few hot data structures in the type loader to use lock free reads. This shown up a scalability botheneck with Roslyn and Visual Studio for Mac first project load.
  • ValueType write barrier optimization:
  • Optimize GC write barriers when value types are involved. This shown up as a performance issue with Roslyn.
  • Make jit method table resizing more scalable:
  • The original table resizing code would count the size of the table on resize, this works fine for small programs but proved to be a problem with Visual Studio for Mac.
  • Reflection queries scalability improvements:
  • Reflection queries must be cached by the runtime as two identical queries must return the same objects. It now use a lock free data structure for reads. This shown up as a performance issue during Visual Studio for Mac first project load.
  • Intrisificy Marshal.PtrToStruct for blitable types:
  • This avoid boxing and unboxing an intermediary object. This results in a 30x speedup on a microbenchmark.
  • Revamped unaligned memory access support:
  • As part of our work to support dotnet platform advances, proper unaligned access was missing from the mono runtime. This feature is used by the new Span type and now it works with ARM cpus.
  • Interpreter works in JIT restricted environments:
  • There are a few things in the interpreter that still require machine specific trampolines that are written in assembly or managed code. We used the JIT infrastructure so far for that, but now we added plumbing to the AOT compiler so they can be pre-generated, and thus the interpreter is usable on platforms where code generation is not allowed during execution. See the interp option in the man page.
  • Interpreter supports ARM and ARM64:
  • We added support for those architectures and also test them on CI.
  • CLASS LIBRARIES:
  • Use AppContextSwitchs from ReferenceSources, which allow all of it compat switches to be used.
  • TOOLS:
  • NuGet updated to version 4.3.0.

New in Mono 5.2.0.104 Preview 1 (Jun 10, 2017)

  • IN-DEPTH:
  • Strong assembly names:
  • Mono will now optionally respect public keys and version numbers when loading strongly signed assemblies. If Mono is invoked with the --assembly-loader=strict option, then requests (whether via a static assembly reference, or using an assembly name using the reflection API) that include a public key token and version number will only load strong named assemblies with a matching token and name (respecting any bindings in relevant app config files).
  • To debug the assembly loading process, set the logging environment variables to trace level “info” or lower and trace filter to include “asm”. (See Logging runtime events.)
  • The current default behavior is the same as in previous Mono versions. It is explicitly available with the --assembly-loader=legacy option.
  • Experimental Default Interface Methods Support:
  • We added experimental support for the current prototype. Check the C# specs
  • CLASS LIBRARIES:
  • System.Numerics.Vectors:
  • Multiple fixes and new intrinsics added. The library is now considered ready for general usage.
  • RUNTIME:
  • Optimized Array Stores:
  • Added a fast path for storing on array of reference values when the stored value is of the same type of the array element type.
  • Class Initialization Improvements:
  • Do hold any runtime locks while running the class initializer. This improves startup scalability.
  • Reduced minor collection pause times:
  • Made the runtime tables used to store reflection information generational, so the GC can avoid scanning them during minor collections. Those tables can become significantly large on workloads like Visual Studio for Mac.
  • Interpreter passes the majority of the JIT test suite:
  • Major progress was made on the interpreter front. It can now run non-trivial programs.
  • MISC:
  • Internal Documentation:
  • We continue to publish internal docs for mono, making it more convenient to browse and search the Mono runtime internals and associated documentation.
  • Static Analysis:
  • In order to holistically improve the correctness and stability of Mono, we have been investing effort in custom static analysis tooling, which will be deployed as part of our continuous build to rule out certain classes of bugs. Recently we have made progress on minimizing the amount of manual annotation work required to add new analyses, making it easier for us to verify more properties of our code.
  • Mangler V1:
  • Managed methods can include a dizzying array of attributes beyond the actual method code. The mangler encodes the attributes which are necessary to create a unique name for each method. If two methods mangle to the same string, they are the same method. This can be thought of as a primary key for each method, and extends to methods which are mono wrappers. Internally, mono is using it to build a deduplicating pass to remove binary bloat associated with generics.
  • Safer Getenv:
  • The functions g_getenv and g_setenv are neither threadsafe nor reentrant. Subsequent calls to g_getenv can cause previous strings returned from it to point to garbage memory. This was leading to issues with System.Configuration that could be seen with HttpClient. Now we lock around these calls and return duplicated memory. This is a serious API change to g_getenv. The string returned must now always be freed. We don’t expect many embedders to be using the version of eglib that is linked into mono for other functions. Those who do might want to check that this change does not introduce memory leaks.
  • BUG FIXES:
  • 580: Type.Load loads strong type despite version mismatch (see Strong assembly names)
  • 49721: Assembly binder uses wrong strongly named assembly when same assembly with different version exists in local folder (see Strong assembly names)

New in Mono 5.0.1 (May 27, 2017)

  • Bug Fixes:
  • #56275 - Unable to copy appname.dll from obj to bin because it is being used by another process - Fixed by earlier disposal of filehandle in pdb2mdb code
  • #56240 - Performance Degradation When Using Expressions - Fixed by making RuntimeHelpers:SufficientExecutionStack () a noop on Android
  • #56177 - peverify fails on FSharp.Core.dll with mono_os_mutex_lock: pthread_mutex_lock failure - Fixed a crash in pedump code
  • #55858 - Microsoft.WebApplication.targets Missing from mono5
  • #56322 - Running nunit tests with domain isolation crashes Mono - Fixed by repairing a handle leak in coop gc
  • #55988 - Apps using Roslyn crash when trying to load Roslyn - Fixed by repairing an assembly loader issue which prevented use of System.ValueTuple
  • #56260 - “This stream does not support writing at System.IO.Compression.DeflateStream.BeginWrite” message
  • #55087 - “System.NotSupportedException: Stack walks are not supported on this platform - System.Reflection.MethodBase.GetCurrentMethod” message on Android

New in Mono 5.0.0.100 (May 12, 2017)

  • Highlights:
  • Shipping Roslyn C# compiler to enable C#7 support
  • Shipping msbuild and deprecating xbuild for better compatibility
  • Enabling concurrent SGen garbage collector to reduce time spent in GC
  • Introducing the AppleTLS stack on macOS for HTTPS connections
  • Continued Progress on .NET Class Library convergence
  • Updated libjpeg in macOS package
  • Further details on the fixes, changes and improvements in this release are available at http://www.mono-project.com/docs/about-mono/releases/5.0.0/.

New in Mono 4.8.1.0 (Apr 13, 2017)

  • Security fix (applies to macOS Mono distribution only):
  • This update resolves the libjpeg issue described in CVE-2013-6629 at https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6629. Our Mono distribution for macOS now includes an updated libjpg. The Mono Linux packages use the libjpg version provided by your distribution.

New in Mono 4.8.0.495 (Feb 23, 2017)

  • API additions for .NET Standard 2.0:
  • We added APIs to comply with .NET Standard 2.0, which is still a work in progress at the time of this writing. Note that in some cases an implementation is still missing and will throw at runtime.
  • TLS 1.2 support:
  • Mono now ships with TLS 1.2, powered by Google’s BoringSSL project.
  • Cross-compilation with MKBundle:
  • The MKBundle tool has been updated to easily support cross-compilation, instead of using a native compiler to compile a bundled executable, Mono has been altered to support payloads embedded in the executable.
  • Changes in the macOS package:
  • Upgraded MSBuild to 15.0
  • Upgraded F# to 4.0.1.20
  • GTK+ and GTK# fixes
  • Bug Fixes:
  • 3323: Assertion when deleting global namespace inside method
  • 3399: [PATCH] pending_exception support is incomplete
  • 3434: Mono Compiler crashes when using a DelegateType as a method call
  • 3706: generics aot jit problem
  • 3735: Attempting to JIT compile method: using Linq’s “Any” fails on the device
  • 3767: Unit test UI table cell extends beyond cell bounds for failed test
  • 3811: DataContractJsonSerializer deserialization fails with subclass of List as known type
  • 3850: ScrollEventArgs in Form_Scroll method has invalid values
  • 3960: DismissModalViewControllerAnimated() crashes on 5.2.9
  • 4006: MonoDevelop fails to start with no warning if Gtk# is not installed on windows
  • 5644: Mono allows to access not accessible method
  • 7467: DefaultNonPersistentConnectionLimit is to low
  • 12571: Usage of XElement with XmlAnyElementAttribute is not supported by XmlSerializer
  • 19594: WebException.Response is null when https request needs proxy authentication
  • 29189: Compiling class referencing corefx facade/contract assemblies raises error “Reference to type System.SByte claims it is defined assembly mscorlib,.. but couldn’t be found”
  • 30686: ZipArchive ctor throws InvalidDataException for WebConnectionStream
  • 30821: Compilation generates CS1701 warning
  • 32374: WebRequest::BeginGetRequestStream incorrectly sets IAsyncResult::CompletedSynchronously to always true
  • 33571: Mono crashes when marshalling fixed arrays
  • 34802: Debugger crash on break-all, step into sequence.
  • 35536: Dns.GetHostEntry no longer supports IPv6
  • 35662: Type System.ServiceModel.Security.Tokens.BinarySecretSecurityToken is missing in assembly System.IdentityModel
  • 39282: [System.IO.Compression] issues with ZipArchiveEntry streams
  • 39859: Xamarin.Android apps on the Samsung Galaxy S7 fails to start with the error System.ExecutionEngineException SIGILL
  • 40603: Mono can’t parse Date in DB wich is in format: “2016-02-04 10:39:11Z”
  • 40916: [System.IO.Compression] ZipArchive can create an ZipArchiveEntry that has a modified time of DateTime.MinValue
  • 41035: DataViewTest2.DataView_ListChangedEventTest occasionally fails with llvm+sgen
  • 41349: System.TimeZoneInfo.IsDaylightSavingTime (DateTimeOffset dateTimeOffset) Not Implemented Exception
  • 41393: [WatchOS 2] Incorrect calling convention for P/Invokes taking structures
  • 41431: [aot] Build fails due to ‘Sgen STW requires a working mono-context’ error
  • 41466: mono_class_is_subclass_of return incorrect value by assuming mono_class_init has been called on parameters
  • 41477: SafeSocketHandle ObjectDisposedException ‘handle’ exception with linked CancellationTokenSource
  • 41492: DateTimeOffset.ToLocalTime() throwing erroneous error
  • 41509: DLR crashes when trying to convert a object to null.
  • 41530: [iOS]TimerTest failing randomly on devices,
  • 41552: HttpResponseMessage does not support multiple Links header entries
  • 41575: A Method That Accepts a FormattableString Object Is Not Called
  • 3323: Assertion when deleting global namespace inside method
  • 3399: [PATCH] pending_exception support is incomplete
  • 3434: Mono Compiler crashes when using a DelegateType as a method call
  • 3706: generics aot jit problem
  • 3735: Attempting to JIT compile method: using Linq’s “Any” fails on the device
  • 3767: Unit test UI table cell extends beyond cell bounds for failed test
  • 3811: DataContractJsonSerializer deserialization fails with subclass of List as known type
  • 3850: ScrollEventArgs in Form_Scroll method has invalid values
  • 3960: DismissModalViewControllerAnimated() crashes on 5.2.9
  • 4006: MonoDevelop fails to start with no warning if Gtk# is not installed on windows
  • 5644: Mono allows to access not accessible method
  • 7467: DefaultNonPersistentConnectionLimit is to low
  • 12571: Usage of XElement with XmlAnyElementAttribute is not supported by XmlSerializer
  • 19594: WebException.Response is null when https request needs proxy authentication
  • 29189: Compiling class referencing corefx facade/contract assemblies raises error “Reference to type ‘System.SByte’ claims it is defined assembly ‘mscorlib,..’ but couldn’t be found”
  • 30686: ZipArchive ctor throws InvalidDataException for WebConnectionStream
  • 30821: Compilation generates CS1701 warning
  • 32374: WebRequest::BeginGetRequestStream incorrectly sets IAsyncResult::CompletedSynchronously to always true
  • 33571: Mono crashes when marshalling fixed arrays
  • 34802: Debugger crash on break-all, step into sequence.
  • 35536: Dns.GetHostEntry no longer supports IPv6
  • 35662: Type System.ServiceModel.Security.Tokens.BinarySecretSecurityToken is missing in assembly System.IdentityModel
  • 39282: [System.IO.Compression] issues with ZipArchiveEntry streams
  • 39859: Xamarin.Android apps on the Samsung Galaxy S7 fails to start with the error System.ExecutionEngineException SIGILL
  • 40603: Mono can’t parse Date in DB wich is in format: “2016-02-04 10:39:11Z”
  • 40916: [System.IO.Compression] ZipArchive can create an ZipArchiveEntry that has a modified time of DateTime.MinValue
  • 41035: DataViewTest2.DataView_ListChangedEventTest occasionally fails with llvm+sgen
  • 41349: System.TimeZoneInfo.IsDaylightSavingTime (DateTimeOffset dateTimeOffset) Not Implemented Exception
  • 41393: [WatchOS 2] Incorrect calling convention for P/Invokes taking structures
  • 41431: [aot] Build fails due to ‘Sgen STW requires a working mono-context’ error
  • 41466: mono_class_is_subclass_of return incorrect value by assuming mono_class_init has been called on parameters
  • 41477: SafeSocketHandle ObjectDisposedException ‘handle’ exception with linked CancellationTokenSource
  • 41492: DateTimeOffset.ToLocalTime() throwing erroneous error
  • 41509: DLR crashes when trying to convert a object to null.
  • 41530: [iOS]TimerTest failing randomly on devices,
  • 41552: HttpResponseMessage does not support multiple Links header entries
  • 41575: A Method That Accepts a FormattableString Object Is Not Called
  • 41602: Compiler fails to recognize Indexer
  • 41616: Mono 4.4.0 crashes when using Socket.ConnectAsync to a unix domain socket if the path doesn’t exist
  • 41667: new DateTime().ToLocalTime() results in an exception
  • 41705: MonoTests.System.Threading.MonitorTest.Enter_Null crashes test runtime with assertion
  • 41775: Zip version needed to extract not correct in System.IO.Compression
  • 41782: [Cycle 7] “System.Net.WebException: Error: NameResolutionFailure” when attempting web requests with certain raw IP addresses
  • 41874: Reflection throws AmbiguousMatchException when calling GetProperty on a class that inherits from a generic base class.
  • 41897: NotSupportedException thrown from IPInterfaceProperties.UnicastAddresses
  • 41937: invoke.exe test asserts on bitcode
  • 41955: Bitcode “missing image did not probe corlib” exception thrown
  • 41979: CodeDom cannot call mcs because of invalid encoding configuration
  • 42057: error CS0121: The call is ambiguous
  • 42169: (managed_alloc) Fatal: Managed allocator missing for (mkbundle) in Mono 4.4.X
  • 42191: sdb deadlocks all the time while XS debugs XS
  • 42198: error CS0529: Inherited interface causes a cycle in the interface hierarchy.
  • 42219: [System.IO.Compression] Cannot create ZipArchive with duplicate entries with same name
  • 42224: Compiler crashed with code: 1, “Await yields with non-empty stack” from AssertEmptyStack ()
  • 42226: WCF client Expecting FaultException raising NotImplemented Exception instead When element is provided.
  • 42271: COOP: gc unsafe mode when printing native backtrace causes crash if GC is triggered
  • 42274: System.IO.Compression.ZipArchive vs System.Xml.XmlReader
  • 42395: Build runs indefinitely and never finishes
  • 42408: WebClient.DownloadString returns 401 Unauthorized when using Basic authentication
  • 42410: String Interpolation available even when langversion < 6
  • 42413: Volatile fields don’t enforce acquire - release semantics like Volatile.Read() and Volatile.Write()
  • 42584: InternalError / Crash when using System.Net.Http and PCL library
  • 42585: Switch fall-through not rejected
  • 42611: wrong compiler error when using IEnumerable.Sum
  • 42625: coop: crash with watchos system tests
  • 42688: Can’t wait for more than 429496 ms (429s)
  • 42702: Unnecessary dependency checks
  • 42750: Deploying an iOS app to iPhone 6S crashes when a breakpoint is set
  • 42843: XmlSerializer does not deserialize UTC Time values on Xamarin.Android but works well on windows.
  • 42864: [Cycle 7] “System.Net.WebException: Error: NameResolutionFailure” on second web request to certain raw IP addresses with HttpClient
  • 42887: Encoding iso-8859-1 throws IndexOutOfRangeException for Unicode surrogate pairs
  • 43022: ZipArchive.Entries is not updated when ZipArchiveEntry is deleted
  • 43032: System.Uri cannot parse url with underscore at start
  • 43099: [watchOS] Cannot enter GC safe region if the thread is not attached
  • 43193: Keep CurrentCulture in async/await
  • 43265: Inconsistency in Compilation of Async Code Compared to MSFT Compilers
  • 43291: Runtime crash at reflection.c:mono_custom_attrs_construct_by_type while calling GetCustomAttributes for a proxy class
  • 43320: Thread aborts in the middle of .cctor and hell break loose
  • 43357: WCSessionReplyHandler crashes WatchKit app
  • 43400: “using static” dependent on compile order
  • 43471: pragma warning disable still shows warnings in “Errors” pad
  • 43512: TimeZoneInfo.ConvertTimeBySystemTimeZoneId ArgumentException
  • 43636: [Cycle 8] “Index was out of range. Must be non-negative and less than the size of the collection” in System.Collections.Generic.List1[T].set_Item() when attempting to compile certain C# code involving tasks, async/await, and try/catch/finally
  • 43695: Nuget resolves .netstandard

New in Mono 4.8.0.395 Alpha Refresh 6 (Jan 4, 2017)

  • Bug fixes:
  • 43696: Delegate caching can invoke unrelated implementation leading to strange results
  • 43718: mcs crashes when unable to resolve type inside lambda using the ‘as’ operator
  • 43786: peverify is broken again
  • 43921: System.Threading.ThreadHelper.ThreadStart_Context tries to allocate, crashes
  • 44025: FTP download issue with IPv6
  • 44109: NetworkCredential does not convert SecureString
  • 44164: gosharp-regexp benchmark triggers unwinding crash when profiling
  • 44168: Can use non-accessible member with nameof
  • 44381: Debugger crash with domain unloading and VSTU
  • 44402: Array doesn’t implement non-generic IEnumerable
  • 44406: Xamarin.Mac.Socket exception:An address incompatible with the requested protocol was used
  • 44413: HttpHeaders.TryAddWithoutValidation behaves differently from .NET
  • 44440: Attempting to JIT error in function with pointer arithmetic
  • 44549: Ide Shuts down: System.ArgumentException: Item has already been added. Key in dictionary: ‘XamlG’ Key being added: ‘XamlG’
  • 44624: Connecting to SQL Server using IPv4 exception.
  • 44707: RemotingConfiguration.Configure() Throws RemotingException Because it Cannot Load ‘machine.config’
  • 44729: Type.GetType(“blah”,true,false) throws TypeLoadException without message
  • 44751: Incorrect code flow analysis with goto and out parameter causes CS0177
  • 44843: SqlCommand.ExecuteReaderAsync throws NotImplementedException
  • 44937: System.Diagnostics.StartProcess does not detect dotnetcore compiled assemblies as managed
  • 44978: HttpClientHandler.SendAsync should throw HttpRequestException for proxy auth failure
  • 44994: DeflateStream decompression is incomplete if reading byte-by-byte
  • 45129: Uri.IsWellFormedUriString returns incorrect result for relative uris beginning with slash
  • 45137: Seeing new AAPT0000 errors when building certain projects against master
  • 45270: Cannot add System.Reactive to watchOS Extension project
  • 45286: C# string interpolation line does not compile on OSX but does on MSBuild
  • 45774: Wrong scopes in .mdb in case of foreach loop
  • 45788: Marshaling a native NULL pointer to a managed array creates a new zero sized array
  • 46175: If the RSA will be used by multiple threads, it has a variety of exceptions.
  • 46190: Overload resolution fails in a case where methods use a named parameter in different positions
  • 46250: Type.GetType with throwOnError true doesn’t throw for a generic instance type with too few generic arguments
  • 47205: Uri.TryCreate throws exception

New in Mono 4.8.0.371 Alpha 2 (Dec 5, 2016)

  • Bug fixes:
  • 3323: Assertion when deleting global namespace inside method
  • 3399: [PATCH] pending_exception support is incomplete
  • 3434: Mono Compiler crashes when using a DelegateType as a method call
  • 3706: generics aot jit problem
  • 3735: Attempting to JIT compile method: using Linq’s “Any” fails on the device
  • 3767: Unit test UI table cell extends beyond cell bounds for failed test
  • 3811: DataContractJsonSerializer deserialization fails with subclass of List as known type
  • 3850: ScrollEventArgs in Form_Scroll method has invalid values
  • 3960: DismissModalViewControllerAnimated() crashes on 5.2.9
  • 4006: MonoDevelop fails to start with no warning if Gtk# is not installed on windows
  • 5644: Mono allows to access not accessible method
  • 7467: DefaultNonPersistentConnectionLimit is to low
  • 12571: Usage of XElement with XmlAnyElementAttribute is not supported by XmlSerializer
  • 19594: WebException.Response is null when https request needs proxy authentication
  • 29189: Compiling class referencing corefx facade/contract assemblies raises error “Reference to type System.SByte claims it is defined assembly mscorlib,.. but couldn’t be found”
  • 30686: ZipArchive ctor throws InvalidDataException for WebConnectionStream
  • 30821: Compilation generates CS1701 warning
  • 32374: WebRequest::BeginGetRequestStream incorrectly sets IAsyncResult::CompletedSynchronously to always true
  • 33571: Mono crashes when marshalling fixed arrays
  • 34802: Debugger crash on break-all, step into sequence.
  • 35536: Dns.GetHostEntry no longer supports IPv6
  • 35662: Type System.ServiceModel.Security.Tokens.BinarySecretSecurityToken is missing in assembly System.IdentityModel
  • 39282: [System.IO.Compression] issues with ZipArchiveEntry streams
  • 39859: Xamarin.Android apps on the Samsung Galaxy S7 fails to start with the error System.ExecutionEngineException SIGILL
  • 40603: Mono can’t parse Date in DB wich is in format: “2016-02-04 10:39:11Z”
  • 40916: [System.IO.Compression] ZipArchive can create an ZipArchiveEntry that has a modified time of DateTime.MinValue
  • 41035: DataViewTest2.DataView_ListChangedEventTest occasionally fails with llvm+sgen
  • 41349: System.TimeZoneInfo.IsDaylightSavingTime (DateTimeOffset dateTimeOffset) Not Implemented Exception
  • 41393: [WatchOS 2] Incorrect calling convention for P/Invokes taking structures
  • 41431: [aot] Build fails due to ‘Sgen STW requires a working mono-context’ error
  • 41466: mono_class_is_subclass_of return incorrect value by assuming mono_class_init has been called on parameters
  • 41477: SafeSocketHandle ObjectDisposedException ‘handle’ exception with linked CancellationTokenSource
  • 41492: DateTimeOffset.ToLocalTime() throwing erroneous error
  • 41509: DLR crashes when trying to convert a object to null.
  • 41530: [iOS]TimerTest failing randomly on devices,
  • 41552: HttpResponseMessage does not support multiple Links header entries
  • 41575: A Method That Accepts a FormattableString Object Is Not Called
  • 3323: Assertion when deleting global namespace inside method
  • 3399: [PATCH] pending_exception support is incomplete
  • 3434: Mono Compiler crashes when using a DelegateType as a method call
  • 3706: generics aot jit problem
  • 3735: Attempting to JIT compile method: using Linq’s “Any” fails on the device
  • 3767: Unit test UI table cell extends beyond cell bounds for failed test
  • 3811: DataContractJsonSerializer deserialization fails with subclass of List as known type
  • 3850: ScrollEventArgs in Form_Scroll method has invalid values
  • 3960: DismissModalViewControllerAnimated() crashes on 5.2.9
  • 4006: MonoDevelop fails to start with no warning if Gtk# is not installed on windows
  • 5644: Mono allows to access not accessible method
  • 7467: DefaultNonPersistentConnectionLimit is to low
  • 12571: Usage of XElement with XmlAnyElementAttribute is not supported by XmlSerializer
  • 19594: WebException.Response is null when https request needs proxy authentication
  • 29189: Compiling class referencing corefx facade/contract assemblies raises error “Reference to type ‘System.SByte’ claims it is defined assembly ‘mscorlib,..’ but couldn’t be found”
  • 30686: ZipArchive ctor throws InvalidDataException for WebConnectionStream
  • 30821: Compilation generates CS1701 warning
  • 32374: WebRequest::BeginGetRequestStream incorrectly sets IAsyncResult::CompletedSynchronously to always true
  • 33571: Mono crashes when marshalling fixed arrays
  • 34802: Debugger crash on break-all, step into sequence.
  • 35536: Dns.GetHostEntry no longer supports IPv6
  • 35662: Type System.ServiceModel.Security.Tokens.BinarySecretSecurityToken is missing in assembly System.IdentityModel
  • 39282: [System.IO.Compression] issues with ZipArchiveEntry streams
  • 39859: Xamarin.Android apps on the Samsung Galaxy S7 fails to start with the error System.ExecutionEngineException SIGILL
  • 40603: Mono can’t parse Date in DB wich is in format: “2016-02-04 10:39:11Z”
  • 40916: [System.IO.Compression] ZipArchive can create an ZipArchiveEntry that has a modified time of DateTime.MinValue
  • 41035: DataViewTest2.DataView_ListChangedEventTest occasionally fails with llvm+sgen
  • 41349: System.TimeZoneInfo.IsDaylightSavingTime (DateTimeOffset dateTimeOffset) Not Implemented Exception
  • 41393: [WatchOS 2] Incorrect calling convention for P/Invokes taking structures
  • 41431: [aot] Build fails due to ‘Sgen STW requires a working mono-context’ error
  • 41466: mono_class_is_subclass_of return incorrect value by assuming mono_class_init has been called on parameters
  • 41477: SafeSocketHandle ObjectDisposedException ‘handle’ exception with linked CancellationTokenSource
  • 41492: DateTimeOffset.ToLocalTime() throwing erroneous error
  • 41509: DLR crashes when trying to convert a object to null.
  • 41530: [iOS]TimerTest failing randomly on devices,
  • 41552: HttpResponseMessage does not support multiple Links header entries
  • 41575: A Method That Accepts a FormattableString Object Is Not Called
  • 41602: Compiler fails to recognize Indexer
  • 41616: Mono 4.4.0 crashes when using Socket.ConnectAsync to a unix domain socket if the path doesn’t exist
  • 41667: new DateTime().ToLocalTime() results in an exception
  • 41705: MonoTests.System.Threading.MonitorTest.Enter_Null crashes test runtime with assertion
  • 41775: Zip version needed to extract not correct in System.IO.Compression
  • 41782: [Cycle 7] “System.Net.WebException: Error: NameResolutionFailure” when attempting web requests with certain raw IP addresses
  • 41874: Reflection throws AmbiguousMatchException when calling GetProperty on a class that inherits from a generic base class.
  • 41897: NotSupportedException thrown from IPInterfaceProperties.UnicastAddresses
  • 41937: invoke.exe test asserts on bitcode
  • 41955: Bitcode “missing image did not probe corlib” exception thrown
  • 41979: CodeDom cannot call mcs because of invalid encoding configuration
  • 42057: error CS0121: The call is ambiguous
  • 42169: (managed_alloc) Fatal: Managed allocator missing for (mkbundle) in Mono 4.4.X
  • 42191: sdb deadlocks all the time while XS debugs XS
  • 42198: error CS0529: Inherited interface causes a cycle in the interface hierarchy.
  • 42219: [System.IO.Compression] Cannot create ZipArchive with duplicate entries with same name
  • 42224: Compiler crashed with code: 1, “Await yields with non-empty stack” from AssertEmptyStack ()
  • 42226: WCF client Expecting FaultException raising NotImplemented Exception instead When element is provided.
  • 42271: COOP: gc unsafe mode when printing native backtrace causes crash if GC is triggered
  • 42274: System.IO.Compression.ZipArchive vs System.Xml.XmlReader
  • 42395: Build runs indefinitely and never finishes
  • 42408: WebClient.DownloadString returns 401 Unauthorized when using Basic authentication
  • 42410: String Interpolation available even when langversion < 6
  • 42413: Volatile fields don’t enforce acquire - release semantics like Volatile.Read() and Volatile.Write()
  • 42584: InternalError / Crash when using System.Net.Http and PCL library
  • 42585: Switch fall-through not rejected
  • 42611: wrong compiler error when using IEnumerable.Sum
  • 42625: coop: crash with watchos system tests
  • 42688: Can’t wait for more than 429496 ms (429s)
  • 42702: Unnecessary dependency checks
  • 42750: Deploying an iOS app to iPhone 6S crashes when a breakpoint is set
  • 42843: XmlSerializer does not deserialize UTC Time values on Xamarin.Android but works well on windows.
  • 42864: [Cycle 7] “System.Net.WebException: Error: NameResolutionFailure” on second web request to certain raw IP addresses with HttpClient
  • 42887: Encoding iso-8859-1 throws IndexOutOfRangeException for Unicode surrogate pairs
  • 43022: ZipArchive.Entries is not updated when ZipArchiveEntry is deleted
  • 43032: System.Uri cannot parse url with underscore at start
  • 43099: [watchOS] Cannot enter GC safe region if the thread is not attached
  • 43193: Keep CurrentCulture in async/await
  • 43265: Inconsistency in Compilation of Async Code Compared to MSFT Compilers
  • 43291: Runtime crash at reflection.c:mono_custom_attrs_construct_by_type while calling GetCustomAttributes for a proxy class
  • 43320: Thread aborts in the middle of .cctor and hell break loose
  • 43357: WCSessionReplyHandler crashes WatchKit app
  • 43400: “using static” dependent on compile order
  • 43471: pragma warning disable still shows warnings in “Errors” pad
  • 43512: TimeZoneInfo.ConvertTimeBySystemTimeZoneId ArgumentException
  • 43636: [Cycle 8] “Index was out of range. Must be non-negative and less than the size of the collection” in System.Collections.Generic.List1[T].set_Item() when attempting to compile certain C# code involving tasks, async/await, and try/catch/finally
  • 43695: Nuget resolves .netstandard

New in Mono 4.8.0.344 Alpha (Nov 18, 2016)

  • API additions for .NET Standard 2.0:
  • We added APIs to comply with .NET Standard 2.0, which is still a work in progress at the time of this writing. Note that in some cases an implementation is still missing and will throw at runtime.
  • Please check the .NET Standard repository on GitHub for more details about .NET Standard at https://github.com/dotnet/standard.

New in Mono 4.6.2.6 RC 1 (Nov 9, 2016)

  • Bug fixes:
  • #44708 - “TrustFailure (The authentication or decryption has failed.) … Invalid certificate received from server.” with “Error code: 0x5” or “Error code: 0xffffffff800b010f” when attempting to access HTTPS servers on ports other than 443
  • #39832 - SIGSEGV when running roslyn

New in Mono 4.6.1.3 (Sep 27, 2016)

  • Bug fixes:
  • #44402 - Array doesn’t implement non-generic IEnumerable

New in Mono 4.6.0.245 (Sep 16, 2016)

  • HIGHLIGHTS:
  • We have added a new implementation of TLS that supports TLS up to version 1.2 (the old version only supported up to 1.0). This is a completely new implementation, and given that it is new, we do not currently default to it, but we hope to switch to it in the future.
  • We have an implementation switcher on both the SslStream and HttpListener classes. The default implementation of SslStream for now continues to be the old Mono TLS implementation, the one that supports SSL and up to TLS 1.0. But it is now possible to switch the implementation to either our new managed implementation or any implementation built on top of something else.
  • You can control this with the MONO_TLS_PROVIDER environment variable. The possible settings are as follows:
  • default - let Mono choose the best implementation available for the platform, currently this is hardcoded to the old implementation, but we will change this once we complete the audit of our TLS stack, and we might change this on a per-platform basis to use SslStream implementations that use some native library.
  • oldtls - Mono’s historical implementation, it only goes up to TLS 1.0.
  • newtls - Mono’s new managed implementation, it supports TLS 1.0 up to 1.2
  • Any full typename - You can specify a fully qualified .NET Type, this can be used to test alternative implementations without changing Mono’s runtime: MONO_TLS_PROVIDER="Mono.Security.Providers.NewTls.NewTlsProvider, Mono.Security.Providers.NewTls, Version=4.0.0.0, Culture=neutral, PublicKeyToken=84e3aee7225169c2
  • For custom implementations, the type should subclass the Mono.Security.Interface.MonoTlsProvider interface from the Mono.Security assembly and have a public parameterless constructor.
  • Mono symbolicate:
  • mono-symbolicate requires symbols to convert native and IL offsets into file names and line numbers. mono-symbolicate original version required its caller to provide a stack trace along with the symbols to be used. The task of mapping a stack trace to the correct symbols was delegated to the caller. Doing such mapping revealed to be a big usability problem as it was necessary to track the stack trace’s assemblies versions externally.
  • Stack trace format changes were introduced to let mono-symbolicate know the symbols of stack traces with: - IL offsets, as there was no way of knowing to which version of the managed assembly the IL refers to. - Native offsets, as multiple .msym are generated and it was not possible to directly link the stack trace to those symbols.
  • The problem of mapping a stack trace IL offsets to the correct managed assembly version was fixed by changing a stack frame such as: at StackTraceDumper.Main () [0x00000] in :0 into one as: at StackTraceDumper.Main () [0x00000] in :0 Where the hash looking part in between is the module version ID (MVID) of the assembly module the method belongs to.
  • The problem of mapping native offsets to the correct .msym version was done by replacing a stack frame such as: at StackTraceDumper.m__0 () in :0 by one as: at StackTraceDumper.m__0 () in :0 The new stack frame also displays the MVID but after the # it also displays what we named as AOTID, a unique identifier embedded into the AOT compiled assembly.
  • With the changes above it is possible to know from the stack frames only which symbols versions are to be used in order to symbolicate it.
  • A symbol directory was also introduced, its purpose is to store managed assemblies into subfolders MVID named and native assemblies into subfolders AOTID named.
  • mono-symbolicate is now able to retrieve the correct symbols versions from the stack trace, and to symbolicate using the symbols in the symbol directory.
  • The changes greatly improved mono-symbolicate usability and eliminated the versioning issues it had before.
  • For mono-symbolicate to work it requires a data structure called compact sequence point to be created and stored while compiling IL to native code. The purpose of compact sequence points is to map native offsets into IL offset so the runtime can display IL offsets instead of native ones.
  • The memory overhead of using compact sequence points is about 10% of the compiled native code size. The time spent compiling increased by 4%, this is usually not an issue, 2ms for whole mscorlib. With AOT compiled assemblies there is the option of storing compact sequence points externally into .msym files, with no overheads at runtime. Overall the overheads were considered a small price to pay for the huge benefit of being able to symbolicate any future stack trace as long as the symbols are properly stored.
  • Mono can still be ran without compact sequence points by doing: MONO_DEBUG=no-compact-seq-points mono Program.exe By doing so Mono runtime will not be able to output IL offsets instead of native ones in the stack traces and mono-symbolicate will not work.
  • Log Profiler v1.0:
  • This Mono release will feature version 1.0 of the log profiler. This is the most stable version of the profiler to date. While there are a few new features, the focus has been on hardening the profiler to run on all sorts of platforms (including Linux, OS X, Android, and iOS) without crashing or otherwise destabilizing the program being profiled.
  • New Features & Changes:
  • The profiler now has support for gathering coverage data. This data can be processed into XML by mprof-report.
  • The profiler will now provide a stack trace with GC handle creation/deletion events when possible, making it easier to track down where a GC handle came from.
  • The profiler now uses a real-time signal to do sampling when supported by the operating system. This leads to significantly better signal delivery rates (usually 99-100%).
  • The profiler now sets SA_RESTART for its profiling signal to work around buggy code in the wild that assumes that a system call can’t be interrupted by arbitrary signals.
  • The profiler now uses a separate thread for sample hit processing, thus ensuring that it will not interfere with performance counter sampling.
  • The profiler will now attempt to switch the internal sampling thread to real-time priority scheduling for more consistent sample signal delivery. This usually only works for root.
  • The profiler now uses a separate thread for flushing buffers to the output file, allowing it to flush buffers in more places.
  • The profiler now flushes all thread-local buffers periodically and during certain global GC events in the program. Therefore, all code in the profiler that manually flushed buffers unconditionally has been removed.
  • The command line argument for sampling frequency is now correctly interpreted as the frequency in Hz, rather than the interval between samples.
  • The default sampling frequency is now 100 Hz (down from 1 kHz).
  • perf support for Linux now works on ARM64.
  • perf support for Linux is now disabled by default as it was too unstable on older kernels. It can still be enabled by passing --enable-perf-events to configure if you know your kernel has working support.
  • Introduced synchronization point events in the format which can be seen as a sort of ‘memory barrier’. A reader can know with certainty that the profiling session will be in a consistent state at every synchronization point.
  • The profiler now emits events for object finalization.
  • The profiler now emits more metadata load/unload and name change events.
  • Cleaned up the log format to not use LEB128 for data types that don’t need it, and to not emit pointless data that was never used.
  • All events in the log format now carry a timestamp.
  • Stability Fixes:
  • Fixed on-demand heapshots often resulting in crashes due to being processed on the profiler’s helper thread.
  • Fixed a GC crash that could occur when sampling and a thread was stopped in the middle of a managed allocator.
  • Fixed a stack corruption that could occur in the old sample hit processing code. This code has been rewritten entirely.
  • Fixed a crash when sampling that was caused by incorrect snapshot iteration logic in Mono’s linked list set code.
  • Fixed a TLS crash that could occur on OS X and iOS when sampling, because sampling signals were being sent to threads before they had finished basic initialization in libc.
  • Fixed crashes on Linux when sampling caused by the ELF header traversal code. This code has been disabled as it didn’t provide information that was particularly useful for programmers writing managed code.
  • Fixed crashes on OS X when sampling caused by invoking the dynamic linker in the sampling callback (async-signal context).
  • Fixed the profiler’s helper thread to reject on-demand heapshot requests when the profiler is not in on-demand mode.
  • Fixed a crash that could happen on startup because Mono’s threading subsystem wasn’t initialized yet.
  • Fixed the internal profiler threads not detaching from the runtime on shutdown.
  • Fixed a number of potential buffer overflows when writing events.
  • Fixed a potential hazardous free crash when shutting down the profiler.
  • Fixed potential race conditions when doing the final sample dump on shutdown.
  • Bug Fixes:
  • Fixed many cases where events would be emitted in an incorrect order. This mainly affected sample hit and method JIT events, as well as GC allocation and move events.
  • Fixed some class load events that could be lost in the profiler’s writer thread.
  • Fixed the profiler missing a lot of metadata unload events because it was shut down too early.
  • Fixed internal profiler threads sometimes showing up in thread start/stop events.
  • Fixed heapshots and coverage recording incorrectly being subject to call depth restrictions.
  • Fixed certain code paths in the profiler not calling fflush on the output file.
  • Fixed a small memory leak in the profiler’s writer thread.
  • Fixed the profiler printing a misleading time went backwards debug message.
  • New default GC bridge processor on Android:
  • The Android implementation makes use of a “bridge processor” which coordinates communication between the Mono and Java garbage collectors. There are three bridge processor implementations included, “old”, “new” and “tarjan”. In 4.6.0 the default has been changed from “new” to “tarjan”. This should result in performance improvements during GC for Android apps (or desktop apps using java.interop) that had not already selected the “tarjan” collector.
  • FullAOT: Generic Value Type Sharing on x86-64:
  • The gsharedvt capability, which allows certain complex uses of generics to be used in FullAOT mode, is now available on the x86-64 ISA on Mac OS X and Linux-based platforms. This means gsharedvt is now available on all platforms where FullAOT itself is supported.
  • New disable_omit_fp option for JIT/AOT compiler:
  • A new flag on the MONO_DEBUG environment variable (MONO_DEBUG="disable_omit_fp") disables an optimization used by the JIT and AOT compilers where the frame pointer is omitted from stack frames. This flag is likely to result in a small performance hit but can improve the ability of external debuggers to properly display function names, particularly when using AOT.
  • Changed search path order for custom profilers:
  • When using a custom profiler library, the mono installation is now preferred over the assembly root or default library search path.
  • Atomics fixes for ARM64:
  • On ARM64, the code that Mono emitted for various atomic operations in the .NET Framework did not result in sufficient memory barriers. This could lead to all sorts of random bugs both in user and framework code. Mono suffered from a similar problem in the runtime C code due to bugs in the atomic intrinsics in GCC and Clang. All of these problems have been fixed, and Mono should be much more stable on ARM64 as a result.
  • BUG FIXES:
  • #37834 - System.IO.File.GetAttributes now honors the “uchg” flag on OS X when determining file writability.
  • #38025 - The debugger now steps and breaks correctly when stepping into, over or out of a function which recursively calls itself.
  • #39669 - When using XML configuration files, a broader set of configuration section types is now available, including System.Configuration.DictionarySectionHandler.
  • #39824 - Exceptions can now be serialized using SerializeObjectState.
  • Some issues with building on Windows have been addressed.

New in Mono 4.4.2.4 Beta 3 (Jul 21, 2016)

  • Bug Fixes::
  • #39100 - ‘library not loaded’ error when using embedded mono
  • #41264 - System “Socket” tests fails on devices with System.ObjectDisposedException
  • #41874 - Reflection throws AmbiguousMatchException when calling GetProperty on a class that inherits from a generic base class.
  • Improvements:
  • NuGet was updated to version 2.12.

New in Mono 4.4.1 (Jul 21, 2016)

  • Bug Fixes:
  • #41775 - Zip version needed to extract not correct in System.IO.Compression
  • #41782 - [Cycle 7] "System.Net.WebException: Error: NameResolutionFailure" when attempting web requests with certain raw IP addresses
  • #41874 - Reflection throws AmbiguousMatchException when calling GetProperty on a class that inherits from a generic base class.
  • Changes in the OS X installation package:
  • The Mono package now uses a file in /etc/paths.d for adding the Mono commands to the PATH on OSX, instead of adding symlinks to /usr/local/bin which is in the PATH by default. A side effect of this is that the Mono commands won’t be available in your terminal session right away until you restart it.
  • If you install Mono in a script or some other automated manner you can run eval $(/usr/libexec/path_helper -s) to reload the PATH changes and make the commands available. We’re looking at integrating this into the installer in a future release.

New in Mono 4.2.3.4 (Mar 7, 2016)

  • Class Libraries:
  • #36116 - [System.Web.Services] Unix paths fix
  • Runtime:
  • #37079 - [jit] Fix the support for gshared types in mini_emit_initobj ()
  • #37273 - [llvm] Disable support for nested clauses.
  • Garbage Collector:
  • #38012 - [sgen] Fix register scanning on ARM
  • Performance:
  • #37846 - [jit] Fix the reference type detection for Volatile:Read/Write ()

New in Mono 4.2.2.30 SR1 (Feb 22, 2016)

  • C# Compiler:
  • #33341 - Set null operator barrier between invocation instance and its arguments
  • Class Libraries:
  • #35857 - [System.Data] Implement CommandBehavior.SequentialAccess support for GetValues method
  • #28693 - [System] Remove arbitrary debugging limit from FileSystemWatcher on OSX
  • #36003 - [corlib] Invalid DateTime format for Finnish and DateTime parser not supporting same separator for date and time (edit)
  • #37171 - [System.Runtime.Serialization] XmlObjectSerializer: fix ISerializable
  • [System.Runtime.Serialization] Static serializer calls directly into internal APIs to fix 4.2.1
  • [corlib] Fix multicast delegate remove behavior
  • [corlib] Fix multicast Method property
  • [System.XML] Fix endless recursion in XmlCompiledTransform on mobile
  • Runtime:
  • #35828 - [runtime] Fix Thread.CurrentThread in non-root appdomains by setting the tls slot in start_wrapper, otherwise Thread.CurrentThread would create a new Thread object so there would be two
  • #20186 - [runtime] Make sure ptr-to-structure and structure-and-ptr wrappers are unique, this is needed by full aot
  • #36292 - [jit] Avoid a verification error in gsharedvt code with ldarga + gshared types
  • #36256 - [aot] Cache inflated methods loaded from aot images to avoid repeating an expensive search
  • #35545 - [runtime] Implement native-to-managed marshalling of byref delegate arguments
  • #36383 - [gsharedvt] Fix support for constrained calls on interfaces.
  • #36566 - [jit] Increase the buffer size used by the dyncall data structures to 512.
  • [threadpool] Fix get min and available threads icalls.
  • [verifier] Fix the verifiers to handle Roslyn style fixed blocks.
  • Garbage Collector:
  • Multiple fixes for rare crashes in sgen.
  • Fix marking of cards on 64bit
  • Don’t hardcode the nursery size in aot write barriers
  • Fix race between block allocation and concurrent sweep
  • Make sure we scan aligned memory regions
  • Profiler:
  • Avoid a crash at shutdown by installing the assembly unload hook for the ‘start_unload’ event instead of the ‘end_un
  • F#:
  • OSX package now ships with 4.0.1.1

New in Mono 4.2.1.102 (Nov 17, 2015)

  • Highlights:
  • More adoption of Microsoft’s open source code
  • Support for PPDB debugging format
  • New threadpool implementation
  • Runtime optimizations
  • Bug Fixes:
  • #32886 - Xamarin-product private bug
  • #33066 - Watch evaluations different in XS than VS
  • #32886 - Xamarin-product private bug
  • #32918 - StackTrace() missing original exception - ExceptionDispatchInfo
  • #32931 - Xamarin-product private bug
  • #33080 - Xamarin-product private bug
  • #32579 - System.Diagnostics.Process.MainModule.FileName does not return full path of the executable and returns 15 chars trimmed value which is same as Process.ProcessName
  • #32539 - Process.ProcessName value fetched using Process.GetProcesses () is trimmed to 15 characters
  • #32947 - App just hangs on iOS9 device with iOS9 SDK
  • #32947 - App just hangs on iOS9 device with iOS9 SDK
  • #32815 - PropertyInfo.Module throws System.NotImplementedException
  • #32832 - C#6 string interpolation with dictionary initializer fails to compile
  • #31877 - SendChunked - "Method must be implemented"
  • #32732 - Xamarin-product private bug
  • #32712 - Incorrect compile error CS4016 when for async function that returns Task
  • #32179 - Consistent crash in mini-arm.c when running FSharp on Raspberry Pi 2
  • #32685 - NRE in ServicePoint.CheckAvaliableForRecycling
  • #32561 - Could not load file or assembly Microsoft.Build.Utilities
  • #31830 - Xamarin-product private bug
  • #27864 - [iOS 8.2] SQLite.net queries fail in iOS 8.2 if they contain UNION or COLLATE
  • #31830 - Xamarin-product private bug
  • #31830 - Xamarin-product private bug
  • #32456 - Expression-bodied properties cause issues in conjunction with XML comments
  • #32060 - Internal compiler error
  • #31932 - Regression: Stack Overflow with native P/Invoke Callback
  • #32179 - Consistent crash in mini-arm.c when running FSharp on Raspberry Pi 2
  • #32137 - System.Text.Encoding.UTF8.EncodingName not the returning human-readable description of the current encoding
  • #31948 - Mono C# compiler incorrectly emits CS0647 for attributes on method parameters
  • #32135 - C# 6 string interpolation and lambdas miscompilation
  • #32130 - Parenthesis around elvis operators do not resolve to nullable
  • #32054 - Internal compiler error using Null Coalescing Operator on System.Nullable
  • #10268 - Linker issue with horizontallistview project in release mode
  • #27620 - Xamarin-product private bug
  • #31921 - Xamarin-product private bug
  • #31830 - Xamarin-product private bug
  • #31451 - mono_trace_set_printerr_handler calls g_set_print_handler instead of g_set_printerr_handler
  • #31784 - Xamarin-product private bug
  • #31829 - Xamarin-product private bug
  • #30023 - Using default constructor in watch window does not work
  • #31635 - UnixMarshal.PtrToString fails with UTF32Encoding
  • #31635 - UnixMarshal.PtrToString fails with UTF32Encoding
  • #31582 - iOS -O=float32 fails for some operations on ARM7
  • #31199 - Seeing ‘Data unprotection failed.’ when attempting to run ‘mono NuGet.exe restore’
  • #30698 - Build fails when building for device using –aot-options=-O=float32 and performing a calculation on float or nfloat variables
  • #31396 - Stack overflow while mono loads roslyn CSharpSyntaxGenerator.exe
  • #30488 - [XI 8.10.1] "Error setting up QueryLanguage class vtable" during AOT of Rx-Linq assembly, related to the linker removing certain methods from the QueryLanguage class
  • #31396 - Stack overflow while mono loads roslyn CSharpSyntaxGenerator.exe
  • #31507 - ObjectDisposedException when canceling postAsync
  • #30904 - Compiler crash with Mono 4.0.1 under Ubuntu 14.04
  • #31398 - Cultures zh-Hans and zh-CHS are equal when they should not be
  • #31336 - HttpClient adds comma in User-Agent
  • #31369 - CodeDom can’t compile code on El Capitan
  • #31289 - Xamarin-product private bug
  • #31231 - Crash with generics makeref
  • #30825 - Null string to mono_mmap_open_handle Regression between 4.1.0.1738 and 4.3.0.109
  • #30880 - IPv4Mask property produces a Not Implemented Exception
  • #31092 - compiler crashed with code: 1
  • #30973 - Incorrect CS0425 when generic base class implements non-generic interface method
  • #30851 - Incorrect (Swedish) date format since version 3.4.0
  • #30741 - MemoryMappedFiles from reference source is causing segfaults
  • #30825 - Null string to mono_mmap_open_handle Regression between 4.1.0.1738 and 4.3.0.109
  • #31020 - Order of interfaces in GetInterfaces() is random
  • #31060 - F# sprintf AOT bug happens still now.
  • #30604 - HttpClient times out when redirected on a Post request
  • #30869 - HttpClient authentication not working
  • #30897 - App crashes with Thai locale selected
  • #30448 - Cecil loads referenced assemblies from GAC specific to the running application, not the referencing library
  • #30868 - ObjectDisposedException in mono 4.0.1.28, but not mono 3.12.1
  • #21520 - mono build is broken because of test-conc-hashtable failing to link
  • #30360 - Error in handling of /etc/localtime file to retrieve time zone on Linux
  • #21520 - mono build is broken because of test-conc-hashtable failing to link
  • #30679 - Error: Compiler crashed with code: 1.
  • #30617 - Stepping over foreach exits method
  • #29491 - Xamarin-product private bug
  • #30698 - Build fails when building for device using –aot-options=-O=float32 and performing a calculation on float or nfloat variables
  • #30695 - Invalid syntax (using ?.) crashes smcs
  • #30587 - Xamarin-product private bug
  • #27103 - mono-service segfault reflection.c:7477
  • #30043 - Disposing a FileSystemWatcher object causes ArgumentOutOfRangeException
  • #30472 - Xamarin-product private bug
  • #29927 - Http Response doesn’t UnescapeDataString
  • #29927 - Http Response doesn’t UnescapeDataString
  • #30551 - Potential race in do_rehash
  • #30529 - Xamarin-product private bug
  • #30469 - String interpolation with escaped bracket generates wrong result
  • #30478 - Inner finally block not called
  • #30502 - AssemblyName.CultureName implementation differs from .NET.
  • #30507 - Xamarin-product private bug
  • #29928 - Problems with encodings
  • #29928 - Problems with encodings
  • #30204 - Xamarin-product private bug
  • #28187 - Calling System.Environment.Exit() leads to SIGABRT: Assertion at mini-exceptions.c:834, condition `domain’ not met
  • #29726 - NSTimer stops if tick handler processing takes long time but only in 32-bit ARMv7 code
  • #29906 - Static method TimeZoneInfo.GetSystemTimeZones() is not thread safe.
  • #30349 - Xamarin-product private bug
  • #30267 - Constant value ‘invalid decimal constant’ cannot be converted to a ‘double’
  • #28793 - SynchronizationContext.SetSynchronizationContext leaks back inappropriately into caller
  • #29928 - Problems with encodings
  • #30060 - Xamarin-product private bug
  • #30276 - Xamarin-product private bug
  • #19697 - WCF SendTimeout not working in Xamarin
  • #23792 - SOAP response incorrectly truncated at chunk boundary on Android using httpClient to send SOAP over SSL
  • #30205 - Xamarin-product private bug
  • #23792 - SOAP response incorrectly truncated at chunk boundary on Android using httpClient to send SOAP over SSL
  • #30171 - BinaryReader.ReadChar() returns incorrect result on 8.10
  • #24968 - All characters are allowed as Unicode escape sequences within identifiers
  • #28398 - * Assertion: should not be reached at class.c:6405
  • #30099 - Xamarin-product private bug
  • #3811 - DataContractJsonSerializer deserialization fails with subclass of List as known type
  • #28398 - * Assertion: should not be reached at class.c:6405
  • #29970 - [MonoNativeFunctionWrapper] doesn’t work with methods that return structures on 32bit device
  • #29615 - Bug during linking
  • #1856 - Wrong stack trace when exception is re-thrown
  • #29538 - Xamarin-product private bug
  • #29667 - Mono v4.0 crashes after a while
  • #29808 - Xamarin-product private bug
  • #29823 - 4.0 Regression - SqlConnectionBuilder broken after migrating to System.Data reference source
  • #29276 - Use of possibly unassigned field for sub struct on out parameter
  • #29665 - [Regression] System.InvalidProgramException: Invalid IL code
  • #29459 - Could not load file or assembly ‘System.ServiceModel’ or one of its dependencies. The system cannot find the file specified.
  • #29506 - invalid IL generated for async method
  • #29691 - Compiler error for read-only auto-properties with certain names
  • #29177 - Mono-hosted OWIN server crashes under load.
  • #29078 - Commit f763a006329a4a04aac7ea7a4fa03cad18b20193 has broken application
  • #28918 - MTOUCH: error MT0000: Unexpected error - Please file a bug report at http://bugzilla.xamarin.com
  • #29211 - [XI 8.10] Enabling linker with Profile 7 PCL that uses System.IO.Compression causes "Could not load file or assembly ‘System.IO.Compression’" at runtime
  • #20048 - Socket ctor missing
  • #20048 - Socket ctor missing
  • #29183 - Array constructor fails to construct multi bound array
  • #25717 - Calling a created delegate for value type fails in Mono but works in Windows
  • #4148 - JavaScriptSerializer invalid json primitive
  • #4148 - JavaScriptSerializer invalid json primitive
  • #28069 - Compiler Crash, async, not existing variable
  • #28692 - GetCustomAttributes seems to return attributes in a different order than in windows.
  • #28876 - Satellite assembly finder fails for memory-loaded assemblies with GetDirectoryName(): Invalid path
  • #28876 - Satellite assembly finder fails for memory-loaded assemblies with GetDirectoryName(): Invalid path
  • #28209 - Xamarin-product private bug
  • #29044 - "using static" not consulted for nested type
  • #29039 - CultureInfo.GetCultures(CultureTypes.SpecificCultures) returns broken ar-SA culture
  • #24647 - ExceptionDispatchInfo::Throw does not replace capture stack trace
  • #28976 - "using static" not consulted for libraries
  • #28747 - Xamarin-product private bug
  • #28823 - strange behaviour causing loaded classes to appear unloaded when referenced from class attributes and using nay kind of linking.
  • #28961 - AOT error when upgrading to Unified API
  • #28557 - Xamarin-product private bug
  • #28857 - Nursery-canaries and AOT causes assertion failure
  • #26362 - [Process] Exited event raised while process still running
  • #26362 - [Process] Exited event raised while process still running
  • #28369 - mono runtime crash "assertion ‘hash != NULL’ failed"
  • #28847 - Xamarin-product private bug
  • #17817 - Convert.ToUInt64 with base 10 does not check range
  • #28777 - GZipStream (DeflateStreamNative) native exception after Flush() with no buffer data: Internal error (no progress possible) Flush
  • #28837 - Problems determining overloading candidate
  • #28774 - mcs crashes with stack overflow when compiling class with Lazy and stackalloc byte[]
  • #28772 - New auto-implemented property error with the first C# 6.0 alpha update.
  • #28014 - Type is not serializable with a type-forwarded SerializableAttribute
  • #28777 - GZipStream (DeflateStreamNative) native exception after Flush() with no buffer data: Internal error (no progress possible) Flush
  • #28747 - Xamarin-product private bug
  • #17817 - Convert.ToUInt64 with base 10 does not check range
  • #1856 - Wrong stack trace when exception is re-thrown
  • #28022 - Mono C# compiler incorrectly emits error CS0053 when using protected internal members in a derived class that is nested inside another class
  • #28211 - Getting "error MT3001: Could not AOT the assembly" When Building for Device
  • #28617 - Linker-modified System.Net.Http.Primitives.dll causes ArgumentOutOfRangeException during mono-cil-strip
  • #28617 - Linker-modified System.Net.Http.Primitives.dll causes ArgumentOutOfRangeException during mono-cil-strip
  • #28653 - Invalid CS0311 error for overloaded generic method with dynamic parameter
  • #28648 - Invalid CS0118 error when a custom namespace called "var" is declared and var used in code
  • #28645 - Invalid CS1908 error for dynamic parameter with DefaultParameterValue attribute
  • #24086 - Runtime test - TestDaylightSavingsTime fails against Asia/Amman for 2012 DateTimes
  • #28172 - 3.12.1.
  • #28651 - Invalid CS1501 error for overload with optional parameter in interface
  • #17615 - Unexpected parsing with Lithuanian culture
  • #28611 - Xamarin-product private bug
  • #28201 - Mono C# compiler incorrectly emits CS0229 when referencing from a DLL a property in an interface that hides a method from an interface that it is derived from.
  • #28196 - FlowAnalysis issue with out parameter and finally and delegate containing a return
  • #26109 - Xamarin-product private bug
  • #28435 - Xamarin-product private bug
  • #28296 - mcs incorrectly reports CS0188: The `this’ object cannot be used before all of its fields are assigned
  • #28213 - Xamarin Studio on OSX fails to compile where Visual Studio 2013 succeeds
  • #26936 - Xamarin-product private bug
  • #28296 - mcs incorrectly reports CS0188: The `this’ object cannot be used before all of its fields are assigned
  • #28296 - mcs incorrectly reports CS0188: The `this’ object cannot be used before all of its fields are assigned
  • #28292 - Internal compiler error when an interpolated string is too long
  • #28293 - Unexpected symbol error when two interpolated strings are used with the ternary operator
  • #28209 - Xamarin-product private bug
  • #28383 - Marshal.AllocCoTaskMem(0) incorrectly returns null
  • #28209 - Xamarin-product private bug
  • #27667 - Xamarin-product private bug
  • #28311 - Xamarin-product private bug
  • #28331 - Custom Attributes incompatability
  • #28290 - Marshal.AllocCoTaskMem does not throw OutOfMemoryException on alloc failure
  • #28235 - System.Type change to reference source broke IronPython
  • #27787 - Xamarin-product private bug
  • #28181 - * Assertion: should not be reached at debugger-agent.c:5957
  • #28184 - ParameterInfo.GetCustomAttributes returns null in some cases
  • #28098 - After running a mono process the shell no longer shows input chars
  • #19823 - InvalidOperationException in ServicePoint.RemoveConnectionGroup
  • #19823 - InvalidOperationException in ServicePoint.RemoveConnectionGroup
  • #27725 - Missing day names in ar-EG culture
  • #18171 - [System.Xml.Linq, System.Runtime.Serialization] XElement implements IXmlSerializable, but lacks parameterless constructor, and has incorrect QName in KnownTypeCollection
  • #14856 - XmlDocument.Load() throws Exception if XmlResolver is set to null
  • #2917 - XslCompiledTransform.Load ignoring xsl:output properties
  • #27597 - csharp REPL on Windows doesn’t accept any input
  • #26363 - [Process] StartTime is unset for all Processes returned by Process.GetProcesses
  • #27982 - Inconsistent behavior in DynamicAttribute.Equals() method
  • #26858 - HttpListener’s scheme parser is case sensitive
  • #27737 - Xamarin-product private bug
  • #27565 - Xamarin-product private bug
  • #26989 - Xamarin-product private bug
  • #27147 - Xamarin-product private bug
  • #27147 - Xamarin-product private bug
  • #25254 - Xamarin-product private bug
  • #26998 - Issue with DataContractJsonSerializer - Deserialize type incorrect on iOS
  • #25559 - Memory leak in Microsoft.Win32.Registry.toKey()
  • #27697 - Debugger crash: error: * Assertion at ../../../../../mono/mono/mini/debugger-agent.c:2475, condition `tls’ not met
  • #27614 - Native interop: out LPArrays cause crash
  • #27707 - Xamarin-product private bug
  • #20764 - WebMessageFormatter crashes with void return type OperationContract
  • #27258 - Two build problems on s390x
  • #25559 - Memory leak in Microsoft.Win32.Registry.toKey()
  • #27533 - C#6 interpolated string raises Internal compiler error during parsingSystem during compilation
  • #27525 - C#6 interpolated string raises NotImplementedException: CloneTo during compilation
  • #27441 - Better compiler error message for unexpected symbol/unexpected character.
  • #27492 - Build error in reference sources for System.ComponentModel namespace
  • #27269 - Xamarin-product private bug
  • #19334 - BeginWrite failure at System.Net.Sockets.NetworkStream.BeginWrite
  • #27386 - HttpClient doesn’t honor BaseAddress with the Get*Async methods
  • #27338 - Xamarin-product private bug
  • #27352 - HttpRequestMessage: adding Accept header with multiple values fails
  • #16475 - Method not found: ‘System.Web.Routing.RouteCollection.get_AppendTrailingSlash’
  • #21810 - Method not implemented: ‘System.Web.HttpApplication.RegisterModule’
  • #35301 - Difference in behavior of Type.InvokeMember method

New in Mono 4.0.5.1 (Nov 10, 2015)

  • Bug Fixes:
  • 34470: Can’t compile F# app on OS X El Capitan
  • 34345: If /usr/local/bin folder does not exist, the mono path entry is not created

New in Mono 4.0.4.4 (Oct 1, 2015)

  • Bug Fix:
  • 33585: El Capitan System Integrity Protection support.
  • El Capitan SIP removes DYLD_ environment variables when launching programs from the shell. This adversely affects our users. The fix is to extend the search path for dynamic libraries to include the prefix where mono is installed. Which is not usually on the dynamic linker path.

New in Mono 4.0.4.1 (Sep 24, 2015)

  • Improvements:
  • Various stability improvements
  • Bug Fixes:
  • 31060: F# sprintf AOT bug happens still now.
  • 30276: monotouch-test (classic) assert with Assertion at ../../../../../mono/mono/metadata/class.c:4818, condition `method->klass->generic_class’ not met
  • 28777: GZipStream (DeflateStreamNative) native exception after Flush() with no buffer data: Internal error (no progress possible) Flush
  • 30043: Disposing a FileSystemWatcher object causes ArgumentOutOfRangeException
  • 30869: HttpClient authentication not working

New in Mono 4.0.3.20 (Aug 14, 2015)

  • Improvements:
  • Various stability improvements
  • Bug Fixes:
  • 28600: Some LLVM artifacts are being written to the base project dir rather than obj/$Config/
  • 26205: System.IO.Package.LoadRelationships throws null reference for some NuGet packages with PCLs generated on Windows
  • 30868: ObjectDisposedException in mono 4.0.1.28, but not mono 3.12.1
  • 31582: iOS -O=float32 fails for some operations on ARM7
  • 30043: Disposing a FileSystemWatcher object causes ArgumentOutOfRangeException
  • 31060: F# sprintf AOT bug happens still now

New in Mono 4.0.2.4 (Jun 15, 2015)

  • Improvements:
  • XBuild fixes (MonoDevelop no longer fails to build if Gtk#3 is installed)
  • Bug Fixes:
  • 29639: Moq related Nunit tests fail with RemoteException (Unix transport error) since Mono 4.0
  • 29898: Bump Mono NuGet to 2.8.5
  • 29935: XAttribute.ToString() outputs wrong result if attribute contains namespace

New in Mono 4.0.1.44 (Jun 3, 2015)

  • Improvements:
  • 1727: Fixed DateTime parsing of Xml strings.
  • Fixed intrinsic signature checks to take into account the ‘this’ parameter
  • Redesigned profiler buffer flushing and method reporting to provide correctly ordered events to consumers.
  • Use the same dwarfhw register mapping on x86 for both LLVM and jitted code, the one used by LLVM is the official version.
  • Fix decimal comparison by using signed char comparison of signs; Fix size of jmp instruction sequence
  • Correctly disable seq points in wrappers on android.
  • Improve Visual Basic build support
  • Fix the initialization of the pid array in ves_icall_System_Diagnostics_Process_GetProcesses_internal ().
  • Avoid calling task_for_pid on osx 10.5+ and ios.
  • Improve error checking when setting up class vtable.
  • Bug Fixes:
  • 26998: Allow abstract base classes in lists
  • 28209: Fix freeing invalid memory in CreateProcess () if the executable was not found.
  • 28557: Transition from step over to step into when control leaves managed code.
  • 28847: Disable deadce in the liveness2 pass as well when compiling for sdb.
  • 28918: Mark SecurityDeclarations
  • 29039: First specific culture returned by enumerator was not fully initialized.
  • 29177: Check SP on thread suspend correctly.
  • 29667: Remove inappropropriate use of Marshal.SizeOf.

New in Mono 4.0.0 (Apr 30, 2015)

  • Highlights:
  • Adoption of Microsoft’s open source code
  • C# 6.0
  • Floating point optimizations
  • We dropped support for the 2.0, 3.5 and 4.0 assemblies
  • Updated IKVM
  • Lighter Debugger overhead
  • Basic PowerPC64 LE support

New in Mono 3.12.0 (Jan 14, 2015)

  • Highlights:
  • Major performance and memory consumption improvements on SGen.
  • Improve the heuristic of the ThreadPool to maximize efficiency and minimize the number of Threads
  • Experimental preview on new Windows installer
  • Garbage Collector:
  • Reorganized how major heap blocks are manipulated for increased efficiency of the major collection.
  • Reduced memory consumption by better sizing of allocation buckets.
  • Switched to a simpler heuristics for major heap sizing that is more stable and avoid unexpected spikes.
  • Removed the parallel collector, it was an experimental feature that did not provide an effective speedup. It will be brought back in the future with a functioning design.
  • Removed the fixed heap configuration, it was an experimental feature that did not deliver enough of a performance improvement. Removed for the additional complexity.
  • Canaries are now supported for the nursery. Canaries is a lightweight debugging tool for detecting memory corruption. Enable it with the new “nursery-canaries” option in the MONO_GC_DEBUG environment variable.
  • Threadpool:
  • Switched to adaptative hill climbing for sizing the pool. This fixes the cases where the old algorithm would cause thrashing by spinning too many threads.
  • The supervisor thread now goes into deep sleep when no new jobs are submitted for a while. This should save power on targets running on batteries.
  • Runtime:
  • Implement the new suspend machinery on Windows, amd64 and arm. The new machinery is known to be more reliable and results in significantly less hangs when using advanced threading features of the platform.
  • The minimum version support of Windows is now WinXP SP2, it was Windows 2000 before. (Wait what?)
  • Tooling:
  • Debugger support for 64bits Windows.
  • Multiple fixes in the profiler to make statistical sampling reliable and functional on unix targets without kernel assisted sampling.
  • Performance:
  • X86 code now generate pushless code. This is faster on modern cpus and produces smaller unwind information.
  • Reworked internal runtime locking to do less work under hot locks and do more optimistic metadata loading.
  • Class Libraries:
  • OS X now uses an experimental FileSystemWatcher that relies on kqueue. It works and doesn’t require polling.
  • Packaging:
  • New experimental Windows installer available. It’s a technical preview so any feedback is welcome.
  • BUG FIXES:
  • Runtime:
  • Avoid asserts on shutdown when the appdomain unload callbacks are called on the debugger thread during shutdown. Fixes #24342.
  • Fix the calculation of the epilog size for EH info. Fixes #24577.
  • Fix a class initialization race which happens if a class initializer initializes a got slot before it finishes running. Fixes #23242.
  • Fix OP_LOCALLOC on arm so it correctly adjusts sp with the param area size even if the size is large. Fixes #24221.
  • Disable the extension of i8/i16 arguments to i32 on arm64, since the ios calling convention passes them differently than i32. Fixes #22800.
  • Use NULLIFY_INS () to nullify instructions and use MONO_INST_NEW to create phi node instructions to avoid asserts in the spill pass. Fixes #24006.
  • Rewrite the way direct calls are made between llvm methods. Previously all calls were made to plt entries and the plt entry symbols were aliased to point to the corresponding method if the method was directly callable using the .set assembler directive. This doesn’t seem to work with newer LLVM/CLANG versions, so do this completely on the LLVM side using Value::replaceAllUsesWith (). Fixes #23976.
  • Make process handles non-shared. Fixes #23423.
  • Fix the return of vtypes containing a single fp member from pinvoke methods on OS X/x86. Fixes #23813.
  • Fix an SRE assert. Fixes #19039.
  • Implement 5dbf97e66057f8626c53fcea30f1988d6627e5a2 for calls made from NEWOBJ too. Fixes #23557.
  • Make each CASTCLASS_CACHE patch unique by generating a unique identifier from the method index and an per-method counter. Fixes #23478.
  • Disallow generic classes with explicit layout. Fixes #23438.
  • Add an option to make debugger invokes virtual. Part of the fix for #23385.
  • Allow renaming of threadpool threads. Fixes #23206.
  • Fix the unregistration of our exception handler on Windows. Fixes #23221.
  • Make calls from gshared to gsharedvt sharable methods indirect since otherwise at runtime we might find an instantiation and we cannot patch the call, leading to performance problems. Fixes #23021.
  • Allow the SIZEOF opcode in gsharedvt code if it doesn’t reference a gsharedvt type. Fixes #22711.
  • Fix mono_marshal_free_ccw (). Fixes #22414.
  • Class Libraries:
  • Fixes DbEnumerator current property to clone read data. Fixes #24452
  • Allow sending of text data longer than 4000 characters by using a different column type. Fixes #21172.
  • Implement MonoGenericClass:GetCustomAttributes () for created types. Fixes #23769.
  • Improved BlockingCollection.AddAny. Fixes #22775.
  • Implement KnownTypes for DataContractJsonSerializer. Fixes #23058
  • HttpQSCollection.ToString now url encodes values. Fixes 22557.
  • Call SetupRequestAsync only after ContentType changes. Fixes 19529.
  • Notify parent task when child task uses NotOnFaulted. Fixes #23594
  • Use TZ transitions when AdjustementRules are ignored. Fixes 23170.
  • Timespan ticks formatting rewrite. Fixes #23376
  • Improved Json deserialization of floating-point numbers. When DataContractJsonSerializer was created from type object, deserialization of floating.point numbers was not possible. Fixes 21583.
  • Test Json deserialization of a floating-point number as object. Covers 21583.
  • Rss20ItemFormatter.ReadFrom now sets Id when guid is PermaLink. Fixes 23262.
  • fix bug #23318 - XComment.ToString() accepts “invalid” values.
  • Uri made from UNIX path and RelativeOrAbsolute is now relative. Fixes 22954.
  • UriParseComponents no longer decodes ‘@’ in UserInfo. Fixes 23246.
  • Update en-NZ designators. Fixes #22212
  • Update to my last fix for bug #22129.
  • Copy out/ref parameters on async call; bug #22129.
  • If not specified assume that array items are nullable. Fixes #19012.
  • Added optional serialization based on ShouldSerialize{V}. SerializationCodeGenerator and XmlSerializationWriterInterpreter will no longer serialize an attribute named {V} if its object has a method named ShouldSerialize{V}() that returns false. {V}Specified now is also checked to be true before serializating the attribute even if it is a property that is not settable. Fixes #1852.
  • GMT DateTimeOffset is now properly parsed. Fixes #22851. GMT date formats set useutc to true, so now useutc is checked to init DateTimeOffset with a zero offset.
  • Improved CalendricalCalculations fixed_from_dmy methods. Fixes #21930. In some cases fixed_from_dmy is used with the month parameter greater than the number of months of that year. Year is now incremented until month parameter is valid.
  • Enumerate all subdirectories including the first one. Fixes #22857
  • Encode ContentDisposition name. Fixes #18422
  • When needed serialized objects are now implicitly converted. Fixes #20403.
  • Fix ClientWebSocket.ReceiveAsync() with small buffer; bug #22704.
  • Tokenize dash only in range values. Fixes #22764
  • Added time format with only offset. Fixes #22558.
  • fix bug #6512 (by Mikkel Kruse Johnsen) - don’t deserialize GET parameters.
  • Added support for UriComponents.SerializationInfoString. Fixes #21571.
  • Unify handling of default ctor and zero. Fixes #22591
  • Make SendAsync state free to handle recursive calls. Fixes #22724
  • Actually fix #22179 to allow concurrent requests.
  • DateTime.Parse now handles unlimited number of fractional digits. This change was made because .NET can parse ISO8601 format with an unlimited number of fractional digits. Fixes #22417.
  • Added test ISO8601FractionalDigits. Covers #22417.
  • Delay reflection hit to actual execution point. Workarounds #22522
  • Update RequestMessage.RequestUri.AbsoluteUri after redirect. Fixes #22383
  • Catch exceptions thrown by SerialPortStream.Dispose () when called from the finalizer. Fixes #15514
  • KeyPairPersistence now tries to fix folder permissions. An exception is no longer thrown if the folder permissions can be fixed. Fixes bug 19274.
  • C# Compiler:
  • A pointer-type may be used as the type of a volatile field. Fixes #23770
  • Correctly identify constant switch section when value match is not section start. Fixes #23475
  • Check for true/false user operators on unwrapped nullable type. Fixes #23199
  • More tweaks to conditional tokenizer. Fixes #23319
  • Populate inherited constraints member cache from types not only base types. Fixes #23017
  • Fix removing incomplete generic types from eval cache. Fixes #22393
  • Parsing of ternary expressions whose then condition is a lambda. Fixes #22523
  • MSBuild:
  • Use ToolPath when building ToolTask execution path. Fixes #22981

New in Mono 3.10.0 (Oct 6, 2014)

  • HIGHLIGHTS:
  • Implemented System.IO.Compression.FileSystem.
  • Uri now implements the .NET 4.5 behavior, it can be reverted to the old behavior in the same way by setting the System.Uri::s_IriParsing static field to false.
  • PERFORMANCE:
  • Remove unnecessary locking from core metadata parsing functions.
  • Avoid cache thrashing of locals array when looping over enumerator.
  • BUG FIXES:
  • Runtime:
  • Fix support for unaligned offsets in the store_membase_imm opcodes. Fixes #23267.
  • Fix the lookup of nested types which have a namespace. Fixes #21653.
  • Increase some opcode sizes. Fixes #23026.
  • Always pass the imt arg to interface calls in gsharedvt methods. Fixes #22624.
  • Store the epilog length in MonoArchEHJitInfo instead of encoding it in jinfo->unwind_desc, since the latter can overflow for methods with large epilogs. Fixes #22685.
  • Add a mono_thread_detach_if_exiting () public api function which can be called by embedding code to detach the runtime if the code is running from a pthread dtor. Fixes #21164.
  • Fix yet another native types problem. Fixes #22053.
  • Fix the leaking of mach ports introduced by 98bbf8512aec0fa01b4426583280f6d231d22187. Fixes #22068.
  • Add support for constrained calls with vtype return types in gsharedvt code. Fixes #22109.
  • Fix the PLATFORM_GNU check so it works with gnueabi etc. as well. Fixes #21520.
  • Don’t make runtime invoke signatures generic. Fixes #21973.
  • Allow v8..v15 in unwind info on arm64. Fixes part of #21615.
  • Fix Process.PrivateMemorySize64 etc. on ios. Fixes #21882.
  • Fix enum->int casts in gsharedvt code. Fixes #21893.
  • Don’t assert when loading a generic methodspec with 0 arity. Fixes #19097.
  • Avoid asserting when a cattr cannot be loaded. Fixes #21653.
  • Avoid making generic calls from gsharedvt methods normally, go through the rgctx infrastructure instead. Fixes #21677.
  • Class Libraries:
  • Fix Uri UserInfo parsing. Fixes 23246.
  • Update RequestMessage.RequestUri.AbsoluteUri after redirect. Fixes #22383.
  • Fixes XContainer attempt to create a XNode from a null value. Fixes #20151.
  • Changed XObject OnChanged and OnChanging to use Owner. When XObject.Owner is not a XElement XObject.Parent returns null and the owner would not be notified of changing and changed events. Fixes #18772.
  • Process XslLiteralElements with only child attributes as empty ones. Fixes #14751.
  • ‘finally’ protect ClientRuntimeChannel.Begin/EndProcess(). Fixes #22179.
  • WebClient.OpenWrite() must get the response on close. Fixes #10163.
  • Fix WebClient.UploadValuesTaskAsync(); Fixes #20359.
  • Improve System.Security.Claims. Fixes #22282.
  • Fixed serialization of XmlNode field with attribute XmlAnyElement. Fixes #3211.
  • Handle String::Format with escaped closing }. Fixes #22114
  • Add a missing check to TypeBuilder.CreateType (). Fixes #22059.
  • Xml Serialization of Base class w/o a parameterless constructor. Removed validation code that did not allowed serialization of base classes without a parameterless constructor. Fixes #6913.
  • Fixed XmlSerializer to handle attribute XmlSchemePrivider.IsAny. XmlSerializer no longer outputs a root element with class name when the class has the attribute XmlSchemeProvider and IsAny is true. Fixes #11916
  • Test that DeflateStream.Read does read an empty stream. Covers #19313.
  • Reseting all private key values to null is required because a new import may not overwrite existing values. Fixes #18482.
  • Handle quoted filename value. Fixes #21960.
  • Dispose XmlReader using correct value. Fixes #21771.
  • C# Compiler:
  • Don’t use `1 naming for compiler generated second level and deeper nested types. Fixes #22893.
  • Extend missing type check to type lookups. Fixes #20933.
  • Fix copy and paste error in constraints checker. Fixes #22131.
  • Speed up nullable tokenizer. Fixes #20195.
  • Coalescing operator if the lhs of a null is a integer type that is larger than the integer type on the rhs. Fixes #22054.
  • Check for duplicate destructors. Fixes #21983.
  • Switch statement with constant block at first label. Fixes #21805.
  • Decimal constants modulo folding. Fixes #21743.
  • Update codegen for boolean loads. Fixes #21685.
  • MSBuild:
  • Workaround for issues with CreateItem task where metadata are not generated due to up-to-data inputs. Fixes #23022.
  • Add KeepDuplicates etc. to 4.0 as internal. Fixes #20961.

New in Mono 3.8.0 (Sep 5, 2014)

  • Highlights:
  • Major performance and scalability improvements across the the whole runtime.
  • Finished the Windows 64 port.
  • Debugger wire protocol optimized for usb connections.
  • Debugger:
  • Updated wire protocol better handles high latency connections such as those found when doing USB debugging.
  • Client library now aggressively caches information and batches requests. Under one test scenario single stepping packets transmitted dropped from 2233 to only 16, which the latency going from seconds to 20 milliseconds.
  • Performance:
  • The JIT now better handle long remainers by powers of two, generating significantly better code.
  • Over 10x faster code is generated for delegates that only invoked once. C# features such as async and LINQ produces a lot of those delegates, so this improvement will impact everyone.
  • Improved alias analysis can now handle second order aliases and eliminate null checks.
  • The runtime now has a concurrently readable hashtable that can makes reflection heavy workloads significantly faster and more scalable.
  • Garbage Collection:
  • Optimized one of the core data structures of the garbage collector should result in 5 to 10% reduction in collection times.
  • BUG FIXES:
  • Runtime:
  • Fix the leaking of mach ports introduced by 98bbf8512aec0fa01b4426583280f6d231d22187. Fixes #22068
  • Fix Process.PrivateMemorySize64 etc. on ios. Fixes #21882
  • Fix enum->int casts in gsharedvt code. Fixes #21893
  • Avoid making generic calls from gsharedvt methods normally, go through the rgctx infrastructure instead. Fixes #21677
  • Fix another native-types problem. Hopefully fixes #21670 and #21636
  • Use alias information to eliminate explicit null checks. Fixes #21645
  • Initialize fields in MonoField:GetFieldOffset () if needed. Fixes part of #21604
  • Properly handle rethrow outside of catch blocks. Fixes #20412
  • Disable runtime unit tests on linux, because it cannot be linked due to circular dependencies between libraries. Fixes #21520
  • When parsing a method header, ensure we pass any available generic context. Fixes #21388
  • Added new mono_domain_set_config function; used to fix ConfigurationErrorsException in #10468
  • Only apply the maverick stack size hack to the main thread. Fixes #10096
  • Don’t hardcode the temp dir to /tmp, use g_get_tmp_dir instead. Fixes #20894
  • Explicit thread GC data around instead of relying on TLS storage. Fixes #20360
  • Make WaitForPendingFinalizers () really wait for the finalizers added by a previous GC. Fixes #20503
  • Fix the marshal7.cs test, longs can be aligned to 4 bytes on 32 bit linux, and the runtime no longer aligns structure sizes to 8 bytes. Fixes #20788
  • Fix the popping of LMF frames during unwinding. Fixes #20616
  • Fix the marshalling of ByValTStr types which have a size specified. Fixes #20674
  • Fix the decoding of MonoJitInfo. Fixes #16439
  • Make it possible to create views to magic zero size files such as /dev/zero. Fixes #19460
  • Free static bound delegate wrappers of dynamic methods. Fixes #19058
  • Don’t perform double accounting of offset for named memory segments. Fixes #20591
  • Avoid joining attached threads. Fixes #19343
  • Fix support for custom marshallers defined in other assemblies. Fixes #20020
  • Fix a jit assertion on a class which contains an empty struct as a static field. Fixes #20349
  • Applied patch from Kyle Edwards [email protected]. Fix isinf () check with clang. Fixes #20244
  • Fix constrained type unwrap for enum types. Fixes #18371
  • Class Libraries:
  • Handle quoted filename value. Fixes #21960
  • Correctly handle partial chunk sizes. Fixes #20583
  • Tweak Dictionary initial capacity to be more conservative. Fixes #21375
  • Handle closed-over-null delegates created with IL when using InvokeDynamic. Fixes #21196
  • Fix a race in a Task test. Fixes #20921
  • Contract the values array when decoding an array with a negative number and a trailer that evals to zero. Fixes #20456
  • Fixes issue with expression columns and IsNull. Fixes #20925
  • Array qsort without head allocation. Fixes #20922
  • Enum::TryParse ignores leading whitespaces. Fixes #20870
  • Fix disposing of DelegatingHandler. Fixes #20818
  • Fix digest authentication (bug #18799)
  • Only recycle ServicePoints from the idle timer (fixes #19823)
  • Changed ConcurrentDictionary.Contains(KeyValuePair) to also compare value. Fixes #16990
  • Add System.ServiceModel.Security assembly. Fixes #20108
  • Removed NET_2_1 conditional blocks from FileInfo. Fixes #19862
  • C# Compiler:
  • Update codegen for boolean loads. Fixes #21685
  • Effective base class can include inherited types. Fixes #21390
  • Handle duplicate resume point registration. Fixes #21387
  • Arguments can be empty when reporting missing params argument. Fixes #21215
  • Flow analysis of moved arguments. Fixes #20983
  • Run new initializer await checks only in async context. Fixes #20614[system.data] Parse numeric expressions using invariant culture. Fixes #20582
  • Reachability analysis should ignore local variables declarations. Fixes #20603
  • Check for missing dependencies of container types. Fixes #20382
  • Resolve event expression when testing left side expression. Fixes #20493
  • Flow analysis of binary expressions not using logical operators. Fixes #20515
  • MSBuild:
  • Add 4.5.1 framework. Fixes #20827
  • Parsing conditions with property references. Fixes #20634
  • Implements property functions using constructor syntax. Fixes #12999
  • Debugger:
  • Avoid clearning event requests if they reference an assembly which is unloaded. Instead, remove the assembly reference from the event request so it stays active. Fixes #9924.

New in Mono 3.6.0 (Aug 13, 2014)

  • Highlights:
  • Runtime performance counters have been integrated into the profiler.
  • The profiler now produces backtrace for statistical mode. tracing mode now works on arm.
  • Big refactoring on the class library build. We're now much closer to having it build on windows without cygwin.
  • We now distribute nuget on mac.
  • Debugger:
  • It now support line and column ranges. pdb2mdb supports it.
  • It now supports for changing the current line in the top frame.
  • Lots of bugfixes and performance improvements.
  • The debugger now support reading simple properties without calling their getter.
  • Added buffered response mode to improve network efficiency on high latency links such as USB.
  • GC:
  • The GC bridge got a lot of performance work. There are now two new modes that can significantly improve some workloads.
  • Class libraries:
  • Multiple http stack improvements.
  • System.IO.Compression is now implemented
  • System.Security.Claims
  • Performance:
  • Reworked locking to drop a hot lock in method lookup.
  • Use fine grained locking instead of a big hot lock.
  • Better hashing of some runtime internal items to avoid some corner-case slowdowns with generics.
  • Profiler:
  • It now produces backtraces in statistical mode.
  • Added periodical flushing that should help interactive users.
  • It now collects and reports performance counter information. See mprof-report.
  • Misc:
  • Fixed the handling of the volatile. CIL prefix.
  • We now distribute ikdasm
  • Optimized EqualityComparer for more types.
  • Mono.Unix.Native.Syscall.getxattr() can now return Errno.ENOATTR on OS X.
  • Our msbuild implementation can now build Project K and Roslyn
  • Bug fixes:
  • Add System.ServiceModel.Security assembly. Fixes #20108
  • [sdb] Avoid clearning event requests if they reference an assembly which is unloaded. Instead, remove the assembly reference from the event request so it stays active. Fixes #19924.
  • [mcs] Fix betterness logic for default vs params parameters. Fixes #19754
  • [mcs] Flow analysis of binary expressions not using logical operators. Fixes #20086
  • [mcs] Emit unmanaged version info from AssemblyFileVersion. Fixes #20057
  • [mcs] Fix expression tree conversion type for lifted enum equality comparisons. Fixes #19938
  • [mcs] Report error when named argument for param parameter is given but not all formal parameters are provided. Fixes #19878
  • [mcs] Unify reachable label lookup. Fixes #19887
  • [mcs] Don't release field address copy before it's used. Fixes #20040
  • [mcs] Fix error reporting propagation for loop statements. Fixes #20034
  • Rename configure.in -> configure.ac. Based on PR #976.
  • [System] Fix parsing of IPv6 addresses (bug #18574)
  • [mcs] Emit better code for null coalescing operator with nullable return type. Fixes #19702
  • [mcs] Add explicit array conversion involving type parameters. Fixes #18474
  • [Http]: Cleanup chained async operations; bug #19161.
  • [runtime] Clean up an #ifdef block.
  • [corlib] Add Guid hex format parsing with whitespaces. Fixes #19915
  • [System.Net.Http] Parsing productinfo like headers with missing version. Fixes #19881
  • [System] Throw IOE in more cases when dealing with an invalid Process object. Fixes #19864
  • [MWF] Fix opacity of form (#19856)
  • [MWF] Fix ComboBox list to not display offscreen (#15462)
  • [MWF] Fix Screen.FromRectangle (#8271)
  • [MWF] Implement multi-display support on Linux (Fixes #325669)
  • [runtime] Fix decoding of jagged arrays in custom attributes. Fixes #19825.
  • [MWF] Don't try to remove non-child control (#19818)
  • [MWF] Add unit test for #19818
  • [runtime] Avoid calling mono_thread_current () in sgen_thread_detach (), since it can construct objects. Fixes #19755.
  • [runtime] Avoid passing commands to lldb using the python api, it doesn't seem to work well in script files. Fixes #19732.
  • [runtime] Fix Process.TotalProcessorTime becoming negative. Fixes #19739.
  • [bcl] Fix Process.PrivateMemorySize64 on osx, we now return task_baic_info.resident_size. Fixes #19738.
  • Clean up the usage of FILETIME structures, avoid accessing them as gint64 since that would lead to alignment problems. Hopefully fixes #19739.
  • [sdb] Avoid stack overflows when a boxed vtype recursively references itself using fields. Fixes #18914.
  • [profiler] Filter more event types in mprof-report based on time (more xambug #11904).
  • [profiler] In mprof-report fix handling of the time filter when starting from 0 (xambug #11904).
  • [http] Convert string output data using BOM header when available. Fixes #19667
  • [system.net.http] Fix encoding of Content-MD5. Based on patch by nberardi. Fixes #19644
  • [sdb] Avoid placing implicit sequence points at offsets where the IL stack is empty when using symbol file based sequence points. Fixes #13640.
  • [eglib] Remove test-glib code, we don't have to maintain compatibility with glib any more. Fixes #19638.
  • [mcs] Don't report interface implementation errors for optional implementations. Fixes #18030
  • [corlib] Rethrow user not initialization exception when lazy initialization throws. Fixes #19564
  • [mcs] Include more unicode categories in parsing identifier part character. Fixes #18229
  • [MWF] Clear currentCell before disposing (fixes #19567)
  • [MWF] Unit test for DataGridView bug (#19567)
  • [mcs] Emit null constant value for default parameters of generic types to indicate not missing value. Fixes #19033
  • [mcs] Do type parameter conversion involving type parameters using dependency rules. Fixes #18473
  • [dlr] Emit correct code for convert of nullable types. Fixes #19500
  • [mcs] Emit all method like members in same order as they appear in source code. Fixes #19509
  • [mcs] Convert extended underlying enum constants to their underlying type. Fixes #18866
  • [mcs] Don't apply reference type is optimization for dynamic expressions. Fixes #19423
  • [mcs] Inflate anonymymous method with correct type arguments when async this requires hoisting in parent type. Fixes #19176
  • [mcs] Fix using type relationship check for type parameters. Fixes #18639
  • [mcs] Caching of type argument types should not happen under error conditions. Fixes #18282
  • [linq] Use hashtable lookup instead of linear scan for groupby keys. Fixes #18673
  • [mcs] Private member can still have base members when in nested types. Fixes #19378
  • [mcs] Make unused event warning reporting consistent to csc. Fixes #19095
  • [mcs] Add parent storey reference only when this is not captured directly. Fixes #19077
  • [MWF] Fix AutoSize behavior of FlowLayoutPanel (#2912)
  • [corlib] Fix extra await context switch when custom SynchronizationContext does not change. Fixes #17878
  • [XML] Fix bug #9541 by Bart Verthé - do not reset document schema when reading an element.
  • [system] Don't terminate response reading on bad cookie value. Fixes #18868
  • Fixed xamarin #18898 # / novell #595899 DataRowView indexer should not break on "completed" added rows (any rows other than the IsNew one)
  • [corlib] Defer TypeInfo instantiation logic in DefinedTypes. Fixes #19082
  • [jit] Fix an unreachable code part in mini_emit_memset (). Fixes #19083.
  • [jit] Fix the lookup of the AOT version of Interlocked.Exchange in full-aot mode. Fixes #19070.
  • [llvm] Fix a few problems with longs on 32 bit platforms. Fixes #18925.
  • [runtime] Improve the hashing of MONO_TYPE_VAR/MONO_TYPE_MVAR. Hopefully fixes #18880.
  • [Mono.Security] Send all the certificates (except the root) from an SSL/TLS 'Server certificate' message (7.4.2 in RFC2246). Fixes #16974
  • Revert "[runtime] Improve the hashing of MONO_TYPE_VAR/MONO_TYPE_MVAR. Hopefully fixes #18880."
  • [System.Core] Don't auto increment when trimming hashset. Fixes #18687
  • [system.net.http] Close service-point slot on explicit dispose. Fixes #18848
  • [interpreter] Disable fast call invocation using methodinfo delegates due to aot limitation. Fixes #18688
  • [runtime] Improve the hashing of MONO_TYPE_VAR/MONO_TYPE_MVAR. Hopefully fixes #18880.
  • [corlib] Add SortVersion. Fixes #18770
  • [jit] Make generic ctor calls made out of gsharedvt methods indirect, since they cannot be patched. Fixes #18634.
  • [corlib] Make invariant NumberFormatter thread static too as it has internal static state. Fixes #18599
  • [corlib] Filter out any right-to-left sign characters. Fixes #18522
  • [Fix] Bugzilla #18213 - System.Runtime.Caching.MemoryCache doesn't honor SlidingExpiration
  • [System.Xml.Linq] Fix XNamespace.GetName locking to not be racy. Fixes #18564.
  • [jit] Fix rethrowing of exceptions in thumb mode. Fixes #18448.
  • [mcs] Fix recursive resolving of crefs (#18511)
  • [mcs] Adding unit test for #18511
  • [System.Net.Http] Incomplete byte ranges parsing. Fixes #18494
  • [corlib] Optimize EqualityComparer for common value types. Fixes #18400
  • [mcs] Flow analysis of nested binary expressions inside anonymous methods was missing on left/right reset. Fixes #18417
  • [mcs] Emit field initializer with expression tree in all user constructors. Fixes #18308
  • [System.ServiceModel.Web] Fix JsonQueryStringConverter.ConvertValueToString to work when running on any culture [#18437]
  • [System.XML] Fix handling of space in XSL value-of elements (#18113)
  • [System.XML] Fix XSL node-set bug (#18114)
  • [System.XML] Fix handling of global variables in XSLs (#18118)
  • [Fix] Bugzilla #18235 - System.Runtime.Caching.MemoryCache doesn't order expirable items correctly.
  • [Fix] Bugzilla #18182 - ConcurrentQueue.TryPeek() is not thread safe
  • [sgen] Restore hazard pointers in suspend signal handler. Fixes #15695.
  • [corlib] Fix localized resource loading bug (#14987)
  • [MWF] Fix crash from null control in ContainerControl (#10537)
  • [MWF] Fix TableLayoutPanel layout bug (#8907)
  • System/PCL: Implement HttpWebRequest.SupportsCookieContainer, WebRequest.CreateHttp; Fixes #18378
  • [bxc#18361] mdbrebase: use File.Move instead of FileInfo.MoveTo
  • [MWF] Fix clipping of last line of dropdown (#2462)
  • [MWF] Release capture when clicking LinkLabel (Fixes #2787)
  • [MWF] Fix text position on buttons (#463149)
  • [MWF] Fix crash when setting Row.Height (Fixes #2394)
  • [MWF] Unit test for Row.Height/MinimumHeight bug (#2394)
  • [interpreter] Implement simple quote expression. Fixes #18248
  • [MWF] Fix size of text area on message box (Fixes #2090)
  • Fix setter of TableLayoutPanel.LayoutSettings throws unwanted exception (Novell bug #497562)
  • Add unit test for Novell bug #497562
  • [Fix] Bugzilla #18245 - System.Runtime.MemoryCache.GetValues() throws LockRecursionException with expired items - GetValues() calls MemoryCacheContainer.GetEntry() which now gets an EnterUpgradeableReadLock needed by ExpireIfNeeded() - Added a test case
  • [MWF] Fix hang if clipboard source application closes down (fixes #674098)
  • [Printing] Improve reported printer settings (Fixes #602934)
  • [Printing] Add unit test for Novell bug #602934
  • [Sys.Data] Fix Novell Bug #519648
  • [Sys.Data] Add unit tests for Novell bug #519648

New in Mono 3.4.0 (Aug 8, 2014)

  • Revamped HttpWebRequest/ServicePoint stack:
  • Should properly reuse connections.
  • Uses the specified Idle times.
  • NTLM support has been improved.
  • SSL/TLS operations on via async APIs are now implemented using async patterns internally to greatly alleviate Thread Pool abuse.
  • Network stack:
  • Now allows developers to control which cipher suites to use with TLS/SSL.
  • ARM:
  • Emit shorter floating point operations when possible
  • Hard float support: Mono now should work on Linux distributions which uses a hard float (armhf) ABI, like the Raspberry PI.
  • Documentation:
  • Updated documentation stubs to the 4.5 .NET API.
  • mono-api-html:
  • Now supports regular expressions when specifying members to ignore (e.g. mono-api-html -i 'INSCopying$').
  • Breaking changes:
  • mkbundle on Mac OS X now must always link against the Objective-C Runtime (-lobjc, however, it is recommended to link against the Foundation framework as well (-framework Foundation).

New in Mono 3.0.12 Beta (Jun 20, 2013)

  • New:
  • Added PCL support to xbuild, mono's MSBuild implementation.
  • Fixed multiple hangs that happen during shutdown or appdomain unload
  • Merged most of the ARM support for NaCl
  • mkbundle now uses IKVM.Reflection
  • Mono is now compatible with OSX 10.9
  • Bugs:
  • 5904 - Fix incorrect end-of-stream with null callback.
  • 10887 - Handle shifts by multiple of 32 correctly.
  • 11945 - Better handle default value BigInteger.
  • 12329 - Properly handle csc when AOT code using the async keyword
  • 12342 - Implement Task::AsyncWaitHandle
  • 12349 - Keep cancellation token for all running requests.
  • 12361 - Resolve unreachable block with correct flow settings.
  • 12394 - Older versions of iOS don't have pthread_mutexattr_setpolicy_np
  • 12412 - Fix support for dynamic methods in collect_method_images ().
  • 12429 - Use a different function for emitting write barriers for gsharedvt types which can handle reference types too.
  • 12446 - Run YieldAwaitable tests on default synchronization context.
  • 12461 - Make sure the behavior between GetFiles and EnumerateFiles are the same regarding symlinks.
  • 12493 - Fix random unit test failures on the bots
  • 12494 - Keep the exception object alive during debugger suspensions.
  • 12509 - Clear ss_invoke_addr when stopping single stepping so runtime invokes don't stop single stepping.
  • 12541 - Use the proper value to calculate whenever to do a near call on amd64.
  • 12549 - Keep hoisted this when lambda parent is async lambda.
  • 12568 - Check class level type parameters used in explicit delegate parameters conversion.
  • 12572 - Correct encoding transformation flags for type arguments arrays without dynamic element.
  • 12583 - Resolve switch cases without look aheah look-up.
  • 12611 - Mark MonoCMethod (runtime subclass of ConstructorInfo) as serializable.
  • 12655 - Make the MONO_DISABLE_SHARED_AREA env variable actually work.

New in Mono 3.0.10 Beta (Apr 27, 2013)

  • A hot-fix release.
  • Reverted parallel mkbundle.
  • Fixed duplicated debug symbol problem in the compiler.

New in Mono 3.0.0 Beta (Oct 23, 2012)

  • C# Async compiler
  • Unified C# compiler for all profiles
  • 4.5 Async API Profile
  • New High performance Garbage Collector (SGen - with many performance and scalability improvements)
  • Metric ton of runtime and class library improvements.
  • F# 3.0 bundled in the OS X distribution.
  • Integrated new Microsoft's Open Sourced stacks:
  • ASP.NET MVC 4
  • ASP.NET WebPages
  • Entity Framework
  • Razor
  • System.Json (replaces our own)

New in Mono 2.10.9 Build 11 (Jun 1, 2012)

  • MacOS Updates:
  • This release bundles the new version of Gtk+ 2 that has been fine tuned for MacOS X and fixes hundreds of problems that have been reported by users of MonoDevelop on Mac. In addition, it adds support for Lion's Smooth Scrolling.
  • Changes:
  • Fix a libgdiplus issue that had forced linking against Apple's X11 stack for text rendering.
  • Fix issue where a native crash causes MonoDevelop to hang and neither Force Quit nor kill -9 would terminate it (Xamarin #2548).
  • Fix sgen failing with Assertion at sgen-gc.c:2506, condition `mono_sgen_need_bridge_processing ()' not met.

New in Mono 2.10.8.1 Beta (Jan 5, 2012)

  • Revert Pango to 1.28.4 to resolve a crash when opening the MonoDevelop about box on Snow Leopard.
  • Fix a libgdiplus issue that had forced linking against Apple's X11 stack for text rendering.
  • Fix issue where a native crash causes MonoDevelop to hang and neither Force Quit nor kill -9 would terminate it (Xamarin #2548).

New in Mono 2.10.8 (Jan 5, 2012)

  • Changes:
  • Updated the Task Parallel Library to include the latest fixes from our main development branch.
  • SQLiteConnection can now set the threading mode (Xamarin #652)
  • Improved the debugger protocol to speed up debugging and value lookup
  • Added basic support for MSBuild 4.0 (Leszek Ciesielski, Paul Selormey)
  • NuGet now runs on Mono
  • Phalanger 3.0 now runs with Mono
  • Adds support for some Azure libraries
  • Added support for bundling profilers in a static binary
  • The profiler can now log its data to any file descriptor (for over-the-net profile logging)
  • SGen now has native support for object systems that implement ToggleRefs
  • Mobile Profile now contains System.IO.MemoryMappedFiles
  • Added PerformanceCounters for JIT statistics
  • Add support for Android CPU count.
  • HashSet can now be serialized (Neale Ferguson)
  • Bug Fixes:
  • The --profile loader will now work on MacOS X without setting any environment variables
  • Fixes slow start on threads (Xamarin #1036)
  • Fixed the SGen interaction between weak references and ephemerons
  • Fixes --profile=log on x64 systems (Xamarin #971)
  • Fixes crash on some debugging configurations (Xamarin #1093)
  • Fixes timezone race condition (Xamarin #1055)
  • Fixes SendAsync reporting the wrong number of bytes sent (Xamarin #531)
  • Plug a managed leak in the ASP.NET stack (HttpResponse)
  • Fix an infinite loop in Path.GetTempFileName
  • Fixes Soap12 message serialisation incorrect for ReplyTo header value (Xamarin #1244)
  • Linked away exception on AsyncWaitHandle.WaitOne() on device (Xamarin #1144)
  • Fixed MonoDoc to avoid loading the same documentation more than once (fixes MonoDoc browser)
  • Fixes regression in System.Diagnostics.Process.PrivateMemorySize64 (Xamarin #1459)
  • ASP.NET fix for WebResource.axd and hashes containing /
  • ServiceModel now allows https endpoints (Xamarin #1203)
  • ServiceModel now allow requests with no headers (Xamarin #1205 and #1207 by Mario Kosmiskaso)
  • Fix for WebOperationContext.IncomingResponse (Xamarin #1209 by Mario Kosmiskaso)
  • Fix for propagating operation context (Xamarin #1210 by Mario Kosmiskaso)
  • Fix WebConnectionStream to return the correct length for input streams
  • Fix serialization reader (Xamarin #1462)
  • Various fixes to System.IO.Packaging
  • mono-service now passes the command line arguments to the services
  • Alternate path separator on Unix improves compatibility with Windows software
  • Fixes xsi:nil handling (Xamarin #1198)
  • Fixes hang caused by gdb attaching to the wrong process when Mono hard-crashes
  • Fixes the handling of XmlSchemaFrom importing, which is exposed by WebSphere WSDL tools
  • Fixes crash on inlined code that contained some patterns of exception throwing (Xamarin #1835)
  • Fixes monotonic clock on OSX and iOS (Xamarin #1366)
  • Fixes leak in Process class if WaitForExit was not called (Xamarin #1682)
  • Fixes typo in ASP.NET's SQLServer SessionState
  • Fixes marshaling of IPv6 addresses in Win32
  • Fixes race in ServiceModel.Logger
  • Fixes string truncation in Tds protocol (Xamarin #1916, Neale Ferguson)
  • Fixes System.Data DataView sorting
  • Fixes Debug information for dynamic methods (Novell #731579)
  • On Android, stdout/stderr become the logcat
  • Fixes ConditionalWeakTable behavior with SGen (Xamarin #1175)
  • Fixes SIGSEGV during GC when write barrier is set to cardtable (Xamarin #1917)
  • Added JSonSerializer support for nullables (Xamarin #163)
  • Fixes deadlock on SDB (Xamarin #2190)
  • Fixes heuristics for inserting breakpoints (Xamarin #407)
  • Fixes Array.Containsfor null items via ICollection (Xamarin #2260)
  • Fixes scanning of complex values in SGen (Xamarin #228)
  • Fixes assignability of arrays with generic interfaces (Xamarin #2304)
  • Fixes FullAOT support for iterating Linq.OrderedEnumerable (Xamarin #2155)
  • Fix a libgdiplus issue that had forced linking against Apple's X11 stack for text rendering on MacOS.
  • Fix issue on Mac where a native crash causes MonoDevelop to hang and neither Force Quit nor kill -9 would terminate it (Xamarin #2548).
  • Mobile Profile Fixes:
  • Xamarin 233: support commit/rollback/update events in iOS/Sqlite
  • Xamarin 154: Support Dispose on BinaryReader on the Mobile Profile
  • SGen bridge processing is now a two-step process (used for Mono/Android)
  • Xamarin 1999: all threads are now wrapped in NSAutoreleasePools.

New in Mono 2.10.2 (Jun 6, 2011)

  • Major Highlights:
  • This release can run Microsoft's OrchardCMS, an open source CMS system built using the best .NET practices, and uses the delightful Razor engine.
  • We added support for PostgreSQL to Orchard and submitted our patches to the OrchardCMS community.
  • Both Mac packages are now self-contained. If you previously downloaded the Framework and the C SDK you can now install just the SDK (MDK) package.
  • Changes Since Mono 2.10:
  • ASP.NET MVC:
  • Bug preventing MVC3 apps from running has been fixed
  • Fix 668655: MVC3: error accessing the query variables collection
  • OrchardCMS should work with Mono
  • 671753: Route.GetVirtualPath must take ambient values into account.
  • Parallel FX:
  • The default task scheduler now uses the runtime ThreadPool, instead of its own pool
  • OSX:
  • Fixes 594642, problem with GetAllInterfaces
  • Performance Counters are now supported on OSX
  • Respects signal handlers when reporting crashes
  • CSDK pkg now contains .dSYM and .mdb files for debugging
  • MDK pkg replaces CSDK and includes all content of Framework pkg
  • HttpListener:
  • Fix regression on HTTP Authentication
  • Xbuild:
  • Allow MSBuildExtensionsPath to be overridden by setting the environment variable $MSBuildExtensionsPath
  • Use the correct path separator for handling environment variable MSBuildExtensionsPath, fixes xbuild on windows. Bug #674337.
  • #674630: Handle errors in trying to create AssemblyName from invalid full names.
  • WCF:
  • System.ServiceModel: extensive serialization bug fixes.
  • Simple InstanceContext.Extensions implementation by David Schmitt (#674057)
  • Bug fixes:
  • 688033: Arrays don't support MemberwiseClone
  • 688007: WebClient.OpenRead() fails when trying to access an anonymous ftp site
  • 687580: Mono 2.10.1WCF fails with '(400) Bad Request' when the calling client uses URIs that should be functionally equivalent such as IP address instead of machine name
  • 687399: [threadpool] Deadlock upon shutdown with pending jobs in appdomains
  • 686371: Second HTTP request times out if previous HEAD request resulted in 403
  • 686269: [SDB] Debugger resumes execution when it should do a single step
  • 685368: Behavior difference with HttpWebResponse.Close between Mono and .Net
  • 685267: PostBack problem
  • 685116: Fails to redirect to the Login Form when using AJAX (using Forms Authentication timeout)
  • 685069: Two races in Mono.WebServer.FastCGI/Connections.cs that occur under heavy load
  • 685042: Thrown exception when serializing a class that implements from IDictionary using DataContract
  • 684803: XmlSiteMapProvider parsing: Can't find a site map node for the url: Default.aspx
  • 684438: SIGABRT we can't encode valuetypes, we should have never reached this line
  • 683712: DataConverter.Unpack reads a double when float is speficied
  • 683642: GetProperty on Binding does not return the proper result
  • 683519: garbage collector waking up threads that are sleeping infinite
  • 683409: SMP problems on ARM
  • 683339: POST variables are not transferred to HttpContext.Request.Params nor FormCollection in MVC3 app
  • 683203: Directory.GetFiles error or crash if pattern is unusual
  • 682963: gstring.c:116: assertion 'val != NULL' failed
  • 682957: XmlElement deserialization failed with DataContractSerializer.
  • 682869: mono-2-10 cannot build Test/System.Web.Routing/RouteTest.cs: "error CS1061: Type `System.Web.Routing.RouteCollection' does not contain a definition for `MapPageRoute' and no extension method `MapPageRoute' of type `System.Web.Routing.RouteCollection'..."
  • 681553: FindControl not working as expected
  • 681552: There is no service pack information in Environment.OSVersion
  • 681548: HttpListenerRequest.Url.OriginalString in mono mismatches .Net version
  • 681421: CombineVirtualPaths method in VirtualPathProvider is ignored
  • 681164: OutputCacheAttribute in MVC causes 100% CPU usage and mono to stop responding
  • 679586: Unknown type System.Collections.Generic.CollectionDebuggerView error when viewing Parametrized collection in debugger
  • 679467: .cctors run in incorrect order
  • 679183: .NET Incompatibility: Task.WaitAll(new Task[] {}) throws an ArgumentException
  • 679174: ConcurrentBag.GetEnumerator() yields uninitialized elements
  • 678705: MenuListRender off-by-one fails to close tag
  • 678662: Exception "invalid handle specified" because mono_thread_pool_cleanup() is called twice
  • 678473: HttpResponse.WriteFile maps files to absolute path
  • 678269: ModuleBuilder.GetToken causes SIGSEGV
  • 678164: Threads started by native code that call into managed code get IsBackground==False
  • 677746: Crash: Assertion at mono-wsq.c:73, condition `mono_wsq_count (wsq) == 0' not met
  • 677550: Fixed buffers are broken
  • 676993: Invalid cast exception doing xml validation
  • 676671: Microsoft.Build.BuildEngine.EventSource.AnyEventRaised is not fired
  • 676650: FileLogger throws on setting parameters
  • 676615: when compiling under -DDEBUG threads.c:761 references non-existing variable
  • 676587: Debugger Crashes
  • 676368: Should not use ODBC statement handles after SQLDisconnect called
  • 676260: Dns.GetHostEntry(Dns.GetHostName()).HostName is different from Dns.GetHostName()
  • 676060: System.IO.MemoryStream can throw NullReferenceExceptions when expanding internal buffer
  • 676020: ReadToNextSibling does not move as expected
  • 676009: XDocument.Load throws "(DTD) is prohibited in this XML"
  • 676008: Form name and id are incorrectly rendered with master pages.
  • 675777: the negation part of an expression like "0 - non_constant_expr" is ignored by mcs
  • 675731: System.Net.HttpWebRequest does not normalize Method property to uppercase
  • 675620: ArgumentNullException thrown when calling SyndicationContent.WriteTo
  • 675464: Runtime should support "long form" signatures for .NET 1.1 assemblies
  • 674630: Better error message for invalid assembly
  • 674580: An exception is thrown when trying to read UTF-16-encoded XML files
  • 674490: Mono.Debugger.Soft.VirtualMachine.EnableEvents dislikes EventType.Step
  • 674224: Compiler crashes with NullReferenceException - worked with mono 2.8.2
  • 674120: BigInteger comparision operators failing
  • 674057: Trivial implementation for InstanceContext.Extensions
  • 673793: Assembly loading fails when path contains national language characters
  • 670874: Incorrect result of WebFormViewEngine.FileExists with MVC 3 & precompilled site
  • 670714: Display problem with XSP4
  • 669836: Unhandled exceptions thrown in threads other than the UI thread aren't caught by the debugger
  • 669303: F-Spot crashes on load.
  • 668867: Processes needs to be waited for to not turn into zombies
  • 668696: [Regression] SynchronizationLockException when accessing HttpApplicationState after Lock() is called
  • 667513: System.Web.Routing throws NotImplementedException when PathInfo is set
  • 667329: Key duplication when adding: sessionState
  • 666736: UDP support
  • 660412: Setting MONO_EXTERNAL_ENCODINGS environment variable to "default_locale" causes crash on startup if an assembly is in directory containing national characters
  • 658184: System.Configuration.Save() still not working in Mono 2.8.1
  • 656468: System.Console.CapsLock incorrectly throws a System.NotSupportedException
  • 655934: TextReader: ReadToEnd and ReadLine not implemented correctly
  • 655474: JavaScriptSerializer cannot serialize a relative Uri
  • 650695: System.Web.HttpNotFoundHandler missing
  • 672907: List: Properly check the array argument to match MS semantics
  • 672446: Generic sharing bugfix
  • 673592: Soft debugger was crashing the runtime on Windows
  • 673828: Fix ARM thunk creation in dynamic methods.
  • Transactions: do deep copies of transaction (required for Orchard/NHibernate)
  • 669807: Cache session item locks as the item might be cleared before the lock needs to be released.
  • Fix ARM/darwin lookup of Thread Specific Data/Descriptors
  • Implement memory barriers for ARM
  • 672939: fixes missing methods while running MonoDevelop
  • 669815: Fixes crash on IronRuby test suite
  • 661461: Fixes a case where Assembly.Load(AssemblyName) did not work with some partial names
  • 662867: Attribute.GetCustomAttributes was failing in searching inheritance chain against overridden method ToString()
  • Workaround Linux/gcc/ARM bug
  • 665893: Fixes a crash when a generic method that calls another generic method was called
  • Fix infinite loop in DiscoveryMessageSequence equality comparison
  • 667921: Fix crash in multi-threaded LINQ
  • System.IO.TextReader now provides a default implementation for ReadLine and ReadToEnd
  • Console:TerminfoDriver is now more tolerant to failures
  • 656468: Console, avoid throwing exceptions for unsupported console features on Unix
  • Fix stop_debugger_thread () on windows.
  • #669836: Treat exceptions that are caught by mono_runtime_invoke() as unhandled in SDB
  • Enabled UDP stack on Mobile platforms.

New in Mono 2.8.10 (Oct 8, 2010)

  • C# 4.0
  • Defaults to the 4.0 profile.
  • New Garbage Collection engine
  • New Frameworks:
  • Parallel Framework
  • System.XAML
  • Threadpool exception behavior has changed to match .NET 2.0:
  • potentially a breaking change for a lot of Mono-only software
  • See information below in the "Runtime" section.
  • New Microsoft open sourced frameworks bundled:
  • System.Dynamic
  • Managed Extensibility Framework
  • ASP.NET MVC 2
  • System.Data.Services.Client (OData client framework)
  • Performance:
  • Large performance improvements
  • LLVM support has graduated to stable: Use mono-llvm command to run your server loads with the LLVM backend
  • Preview of the Generational Garbage Collector
  • Version 2.0 of the embedding API
  • WCF Routing
  • .NET 4.0's CodeContracts
  • Removed the 1.1 profile and various deprecated libraries.
  • OpenBSD support integrated
  • ASP.NET 4.0
  • Mono no longer depends on GLIB

New in Mono 2.6.1 (Feb 10, 2010)

  • WCF client and server, the subset exposed by Silverlight 2.0
  • LLVM support, to improve performance on server/computational loads
  • Co-routine framework Mono.Tasklets
  • Preview of LINQ to SQL using DbLinq
  • New Soft Debugger, integrated with MonoDevelop 2.2
  • Joint release with MonoDevelop 2.2
  • System.IO.Packaging
  • csharp shell now supports auto-completion
  • xbuild can now build most msbuild projects
  • Support for CoreCLR security:
  • Mono debuts a full metadata and IL verifier
  • Security system used by Silverlight applications, reusable for other cases.

New in Mono 2.4.2.3 (Nov 19, 2009)

  • Simple precompiled MVC app does not run on Mono 2.4.2
  • (https://bugzilla.novell.com/show_bug.cgi?id=524726) - Precompiling for / then deploying elsewhere causes failure for ASP.NET apps.

New in Mono 2.2 (Mar 10, 2009)

  • The code generation engine has been replaced from tree-based representation that we used for 1.0.x, 1.2.x, 1.9 and 2.0 releases to a representation that is better suited for advanced optimizations, the Linear IL engine.
  • The new engine already outperforms the old engine in many computationally intensive tasks.
  • Generic sharing is now turned on in all cases. You can control the sharing setup using the MONO_GENERIC_SHARING environment variable.
  • Generic sharing is now supported on ARM.
  • Ahead of Time Compilation
  • Support for Full Ahead of Time Compilation, generic sharing, and static linking is now available.
  • Support for monitoring the runtime internals is now available through a new PerformanceCounters implementation.
  • A new GUI tool `mperfmon' is available to allow developers and administrators to monitor the system performance.
  • It is now possible to load code externally into a Mono process to debug or augment code live.
  • A new assembly: Mono.Management wraps this functionality.
  • Support for SIMD instructions has been added to the Mono JIT. See this page (http://tirania.org/blog/archive/2008/Nov-03.html) for more information about the SIMD support.
  • The Documentation for this library (http://go-mono.com/docs/monodoc.ashx?tlink=0@N:Mono.Simd) includes the API-level description of the new data types introduced in this new release.
  • The performance benefits of using these SIMD-aware vector types is anywhere between 1.5x to 10x depending on the use cases.
  • A new Mono.CSharp.Evaluator class and library is available to allow developers to embed the C# compiler into their own applications. This provides C# in a Compiler-Service modality that developers can use to extend their applications.
  • This can be used to load scripts written in C# dynamically, but executing at the same speed as C# compiled pages or to add dynamic features to your application or even adding a console to debug your application on a live deployment.
  • A new interactive shell for C# is available, the command is called "csharp", more details are available on the csharp manual page and on the CsharpRepl page.
  • The C# shell currently requires Mono for any C# 2.0 and 3.0 support. Version 1.0 will also run on the .NET Framework.
  • The shell has support for attaching to existing processes, so it is possible to use the csharp shell to debug live applications.
  • A GUI version of the shell, gsharp is also included in the mono-tools package.
  • Our compiler will now replace any references to the empty string with a reference to the String.Empty field (more efficient).
  • The C# compiler now defaults to warning level 4 (the previous default was level 3).
  • Compiler parsing errors detection and parser error recovery has been improved which should lead to much cleaner syntax error reporting.
  • The regex interpreter used by the System.Text.RegularExpressions package has been rewritten to be more efficient.
  • Additionally, a regex-to-CIL compiler has been implemented which provides dramatically better performance at the cost of increased setup time, this compiler is activated when RegexOptions.Compiled is passed to the Regex class constructors. The old interpreter is still available, and can be used by defining the MONO_OLD_RX env variable.
  • In previous versions, Mono always interpreted regular expressions.
  • New Routing handler in ASP.NET 3.5 SP1 has been implemented. This includes ASP.NET Abstractions layer and will be used for ASP.NET MVC.
  • Nearly 200 reported bugs have been fixed since the 2.0 release.
  • Calling Application.EnableVisualStyles () will now use native rendering on Windows.
  • Our static code analyzer has been updated with new filtering options (severity, confidence, number of defects), 32 new rules (total 183) and many enhancements and fixes to existing rules. Full release notes are available on here (http://anonsvn.mono-project.com/source/trunk/mono-tools/gendarme/NEWS).
  • The Mono Windows installer has been updated to include GTK# 2.12.7.
  • Build
  • It is now possible to cross-compile Mono for Windows using Linux and MinGW. Details are available on the Compiling Mono page.
  • Various upgrades to the Console implementation, it will now respond appropriately to changes on terminal sizes.
  • Some libraries are too small to qualify for an assembly and are more conveniently used in source code form. With Mono 2.2 we debut code snippets, these are used by copying the code into your application. For example, to use Mono.Options parsing library, you would do: cp `pkg-config --variable=Sources mono-options` .
  • Mono.Options and Mono.DataConvert are now available in this form.
  • Jonathan Pryor's Mono.Options library is now included as a Source Code Snippet that you can integrate into your application.
  • This is a command line editor that replaces Console.ReadLine() for interactive applications. It provides editing in the command line and support for history
  • The Mono DataConvert library provides encoding and decoding of bytes, words, strings and other data types to and from various CPU endianness.

New in Mono 2.0.1 (Oct 30, 2008)

  • Bug 426309 - Crash with microsoft-compiled binary (https://bugzilla.novell.com/show_bug.cgi?id=426309)
  • Bug 431304 - reverse invoke via COM when marshaling a BSTR by ref retval fails to convert MonoString to native string. (https://bugzilla.novell.com/show_bug.cgi?id=431304)
  • Bug 433908 - Problem with Npsql and pooling (https://bugzilla.novell.com/show_bug.cgi?id=433908)
  • Bug 431811 - Process.HasExited does not work on Mono 2.0 runtime (https://bugzilla.novell.com/show_bug.cgi?id=431811)
  • Bug 434620 - Structure Corruption (https://bugzilla.novell.com/show_bug.cgi?id=434620)
  • Bug 428406 - InvalidCastException when casting multi-dimensional jagged arrays (https://bugzilla.novell.com/show_bug.cgi?id=428406)
  • Bug 434544 - JIT / Runtime corruption (https://bugzilla.novell.com/show_bug.cgi?id=434544)
  • Bug 432673 - Invalid IL code in ctor () (https://bugzilla.novell.com/show_bug.cgi?id=432673)
  • Bug 426264 - Function return inconsistent ulong value, which has dummy parameter of a Class and a ulong (https://bugzilla.novell.com/show_bug.cgi?id=426264)
  • Bug 430963 - Optimization - Don't allocate 32kb buffer in CachedRawResponse that is never used (https://bugzilla.novell.com/show_bug.cgi?id=430963)
  • Bug 430040 - TcpClient breaks after 1000 consecutive connections (https://bugzilla.novell.com/show_bug.cgi?id=430040)
  • Bug 435549 - Memory leak with Response.Cache.SetCacheability(HttpCacheability.Public); (https://bugzilla.novell.com/show_bug.cgi?id=435549)
  • Bug 432466 - NPIV screens in an NVP deployment cannot assume presence of ZOS (https://bugzilla.novell.com/show_bug.cgi?id=432466)
  • Bug 433741 - PATCH for OdbcDataReader.GetBytes() (https://bugzilla.novell.com/show_bug.cgi?id=433741)
  • Bug 416462 - Remoting takes an inordinate amount of time when passing 4KB or 8KB strings (https://bugzilla.novell.com/show_bug.cgi?id=416462)
  • Bug 437691 - System.InvalidCastException: Cannot cast from source type to destination type. at System.Web.HttpApplicationFactory.AttachEvents (System.Web.HttpApplication app) (https://bugzilla.novell.com/show_bug.cgi?id=437691)
  • Bug 437289 - with EnableSessionState="False" access to Context.ApplicationInstance.Session; should throw an exception

New in Mono 1.9.5 (Mar 15, 2008)

  • This is the last release before the 2.0 release of Mono, it is a stable release and at this point the generics and the VM are supported feature complete.
  • This version fixes a bug in reflection that affects existing Gtk# deployments; To install this release you should install the new version of Gtk# (released at the same time as Mono).
  • C# compiler now defaults to the C# 3.0 mode.
  • Silverlight support is now enabled by default.
  • Optimization: Generics code sharing [Mark].
  • AOT support for ARM processors [Zoltan].
  • Runtime bugs fixed/closed in this release
  • Continued the work on the Mono verifier and making the runtime more robust when coping with broken assemblies.
  • Core LINQ (Linq to Objects) library support has been updated to the .NET 3.5 API [JB, MarekS]
  • System.Xml.Linq is now part of the standard distribution [Atsushi]
  • Tools
  • A new tool gui-compare can be used to compare API changes between different assemblies or descriptions of APIs. You can use this to track API changes in your libraries to ensure no regressions have occurred accidentally.
  • gui-compare comes with various presets that allow developers to explore the APIs that Mono ship against the Microsoft published APIs and profiles
  • For the first time Gendarme is available inside a Mono release. Gendarme is a tool to find problems in software. Gendarme inspects programs and libraries that contain code in ECMA CIL format (Mono and .NET) and looks for common problems with the code, problems that compiler do not typically check or have not historically checked.
  • Contributors: Sebastien Pouliot, Aaron Tomb, Russell Morris, Christian Birkl, N�stor Salceda, Nidhi Rawal, Lukasz Knop, JB Evain, Daniel Abramov, Andreas Noever, Adrian Tsai
  • C# 3.0 is now the default mode of operation for the C# compiler. It is no longer necessary to specify the -langversion:linq command line option.
  • Due to this new default, the System.Core.dll assembly is now referenced and this might cause some type ambiguities, in particular with the "Action" type (System.Action from System.Core vs Gtk.Action for example). The fix is to either use fully qualified names for Gtk.Action, or to use namespace aliases.
  • There are a couple of known limitations: very complicated LINQ statements still fail to compile, and Expression trees are not completely supported in this release.
  • The mcs/gmcs parsers have also been unified, which will help reduce the maintenance burden on the compiler.
  • New mapping feature. This feature makes it easier to make your cross-platform applications work on many platforms without changing the configuration settings. More information can be found on this page. [Marek]
  • Batch compilation of sites. Unlike previously, the 2.0 applications are now by default compiled in the batch mode. That means, the first time a request is made to a location, files from the location are compiled together into one assembly (separate assemblies are used for .aspx and .as[hmc]x files). It makes the requests to other files at the same location much faster and reduces clutter in the temporary directory. [Marek]
  • The XSP test suite has been given a facelift. Both 1.1 and 2.0 sets of tests now share the design and navigation. Many samples were fixed or completed. [Marek]
  • Speed optimization in the System.Web assembly [Mainsoft, Marek]
  • The OSX native backend has been vastly improved and is now the default for Windows.Forms applications on OSX. The X11 driver is still available, to use it you must set the MONO_MWF_MAC_FORCE_X11 environment variable [Geoff].
  • More support for WebBrowser events/DOM [Andreia].
  • Many fixes for RichTextBox and AutoScaling [Luke Page and James Purcell respectively].
  • Major improvements to the PropertyGrid control some of which are listed below [Ivan N. Zlatev].
  • Merged properties support.
  • Full support of Structures, Arrays and other Value Types.
  • Full support of TypeConverters and UITypeEditors and their features. Also many fixes and improvements to our TypeConverters and UITypeEditors.
  • ICustomTypeDescriptor support.
  • Support for attributes that can be applied to properties and influence their behavior in the PropertyGrid (e.g PasswordPropertyTextAttribute).
  • Graceful error handling and reporting.
  • Over 50 bugs have been fixed in the PropertyGrid. Special credits go to [Andy Hume] for his extensive testing.
  • Over 100 reported bugs fixed for this release. [Winforms team and contributors].
  • Implementation of the .NET 1.1 and 2.0 Design-Time framework [Ivan N. Zlatev].
  • Hosting: DesignSurface, DesignSurfaceManager.
  • Loaders: BasicDesignerLoader, CodeDomDesignerLoader.
  • Serialization: DesignerSerializationManager, CodeDomSerializerBase, CodeDomSerializer, MemberCodeDomSerializer, RootContext, ExpressionContext, StatementContext, etc.
  • Out of the box support for serializing and deserializing Components, WinForms Controls, Properties, Events, Primitives, Enums, Collections, etc is provided.
  • WinForms Designers: ComponentDesigner, ControlDesigner, ScrollableControlDesigner, ParentControlDesigner, DocumentDesigner, FormDocumentDesigner, PanelDesigner, SplitContainerDesigner, etc.
  • Services implementations provided: UndoEngine, EventBindingService, MenuCommandsService, ISelectionService, IReferenceService, IExtenderProviderService, IExtenderListService, ITypeDescriptorFilterService, IDesignerHost, IComponentChangeService, etc.
  • The implementation should be sufficient to implement at least a Windows Forms designer. An example can be found in the mwf-designer module in our Subversion repository. One major missing bit is the BehaviorService to aid the designer interaction.
  • Many fixes to support the Dynamic Language Runtime are available as part of this release. It is now possible to build and use the DLR with Mono.
  • System.Core: A HashSet implementation is now available on System.Core and we have updated the TimeZoneInfo class.
  • Stdlib.signal() has been deprecated, as its use was inherently usafe. Stdlib.signal()'s functionality has been replaced with a pair of members: [Jonathan Pryor]
  • Mono.Unix.Native.Stdlib.SetSignalAction (Mono.Unix.Native.Signum, Mono.Unix.Native.SignalAction) permits specifying whether to perform the default action (SignalAction.Default), ignore the signal (SignalAction.Ignore), or generate an error (SignalAction.Error) when the specified signal is generated.
  • The Mono.Unix.UnixSignal class permits instances to represents the signal itself, supporting polling to see if the signal has been generated via the UnixSignal.IsSet instance property, or blocking the current thread until the signal has been generated with UnixSignal.WaitOne().
  • The mono-service and mono-service2 programs no longer poll every 500ms to pause, continue, or stop a service. They will instead sleep until the signal is generated. [Jonathan Pryor]
  • More support in the IO classes for Visual Basic [Rolf]
  • New support for controlling the number of requests that are passed to the mod-mono-server process. If you have not changed the number of threads in the Mono thread pool, this can help you prevent deadlocks caused to the Mono ThreadPool getting exhausted by incoming HTTP connections ([Joshua]).
  • This is controlled with two new Apache directives: "MonoMaxActiveRequests" and "MonoMaxWaitingRequests".
  • SSL/TLS now support X.509 server certificate using wildcards (e.g. *.novell.com) [Sebastien]

New in Mono 1.2.6_4 (Jan 30, 2008)

  • Native Windows.Forms driver for MacOS X allows Winforms-based applications to run without an X server.
  • Support for the ASP.NET AJAX APIs and controls.
  • Support for FastCGI deployments: ASP.NET can now be deployed on a multitude of servers that implement the FastCGI protocol (lighttpd for example) in addition to Apache.
  • Windows.Forms now supports the WebControl on Windows and Linux using Mozilla.
  • Runtime will now consume much less memory for 2.0-based applications due to various optimizations in generics support as well as including many new performance improvements and an updated verifier and an implementation of CoreCLR security.
  • C# compiler is quickly approaching full 3.0 support, most of the basics work right now (except support for System.Query.Expression AST generation).
  • The QA team ran 910 test cases during 11 test runs.
  • Over 50 bugs were fixed / backported to the Mono 1.2.6 branch.
  • Mono 1.2.6 can now be used as an SDK for creating Silverlight 1.1 applications on all platforms. This allows developers to create applications that target Silverlight without requiring a Windows installation.