New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TSan] Yet another idea about whitelisting data races #5310

Merged
merged 2 commits into from Aug 10, 2017

Conversation

Projects
None yet
7 participants
@cherusker
Contributor

cherusker commented Aug 4, 2017

I would like to propose another idea about how to deal with the instrumentation of data races. Inspired by atomic.h and the G_UNLIKELY macro, a (maybe the) solution might be to use inline functions that wrap around increments, additions, ...

The Main Problem:

  • Any kind of locking and synchronisation (like using the functions of atomic.h) is no option in performance critical situations like mempool.c.
  • TSan instrumentation can only be blocked on a function level; TSan can be told to ignore whole functions, however, it can not be told to ignore single instructions.
  • Big functions might contain "harmless" and harmful data races. By "harmless" I mean things like counters that are only used for debugging / reporting.
  • There are a lot of data races (> 30) that are simple reporting / debugging counters (e.g. the whole of mono_stats in class-internals.h).
  • Once a function is blacklisted, any alteration that produces a harmful data race in combination with that blacklisted function will not be detected. In fact, that is my main concern when blacklisting whole functions!

The Idea:

Using inline functions that follow the exact same interface like the functions in atomic.h.

  • Known data races can be documented in the code, exactly where they occur (no documentation is needed as it is extremely readable / transparent).
  • Due to inlining, the original machine instructions are not altered if TSan is not activated. Thus, there is no performance impact.
  • RacingIncrement () can be quickly changed to InterlockedIncrement (), should the need arise.

To demonstrate the idea, I used mono_stats in class.c as a specimen. I also tested proper function inlining on Fedora 26 with gcc 7.1.1 and clang 4.0.0 (both with -O2) and all results were as expected: The code was exactly the same - with RacingIncrementSize (&mono_stats.foo) and with ++mono_stats.foo.

I really hope that this idea gets accepted by the community since I would love to finally have the possibility of blacklisting single racy instructions. Detecting actual (harmuful) data races would be a lot more precise and reliable. If accepted, I would of course expand these function family (we will need things like RacingExchange (), RacingAdd (), RacingSub () and more) to tackle all races that are connected to debugging / reporting.

As we talked about this topic before, I would kindly ask at least @luhenry, @vargaz, @alexrp and @lambdageek about thoughts and opinions.

@dnfclas

This comment has been minimized.

dnfclas commented Aug 4, 2017

@cherusker,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

#include <mono/utils/mono-compiler.h>
MONO_NO_SANITIZE_THREAD
static inline gint32

This comment has been minimized.

@alexrp

alexrp Aug 4, 2017

Member

These functions should also be marked MONO_ALWAYS_INLINE.

@@ -0,0 +1,31 @@
/**
* \file
* Contains inline functions to explicetly mark data races that should not be changed.

This comment has been minimized.

@alexrp

alexrp Aug 4, 2017

Member

explicitly

This comment has been minimized.

@cherusker

cherusker Aug 4, 2017

Contributor

thanks!

@alexrp

This comment has been minimized.

Member

alexrp commented Aug 4, 2017

I like this idea.

@cherusker cherusker changed the title from [TSan] Yet another idea of whitelisting data races to [TSan] Yet another idea about whitelisting data races Aug 4, 2017

@@ -0,0 +1,31 @@
/**

This comment has been minimized.

@alexrp

alexrp Aug 4, 2017

Member

You need to add this file to mono/utils/Makefile.am and msvc/libmonoutils.vcxproj, msvc/libmonoutils.vcxproj.filters.

@cherusker cherusker force-pushed the cherusker:cherusker-2017-08-04-racing-h branch from 388a26f to 7d30a0c Aug 4, 2017

@@ -755,17 +755,17 @@ typedef struct {
typedef struct {
guint64 new_object_count;
size_t initialized_class_count;
size_t generic_vtable_count;
gsize initialized_class_count;

This comment has been minimized.

@lambdageek

lambdageek Aug 4, 2017

Member

Is there any reason to prefer glib types to standard C types in internal headers?

This comment has been minimized.

@cherusker

cherusker Aug 4, 2017

Contributor

I'm just working with the code since June and most things I do are based on observation. Personally, I do not not have any preferences (yet). However, I understand that the glib types are preferred wherever possible. (I might be wrong there!)

My thought was that atomic.h uses gint* so it might be nice to use all g* types in racing.h to keep some kind of consistency. And, since racing.h works with gsize AND mono_stats has this guint64 value anyways, I thought that (again talking about consistency) it would be nice to have those affected fields defined as gsize in mono_stats as well.

Introduce racing.h
- introduce the `RacingIncrement* ()` functions
- test the `RacingIncrement* ()` functions with races of `mono_stats` in class.c
- add racing.h to Makefile.am, libmonoutils.vcxproj and msvc/libmonoutils.vcxproj.filters

@cherusker cherusker force-pushed the cherusker:cherusker-2017-08-04-racing-h branch from 7d30a0c to a72b665 Aug 4, 2017

@vargaz

This comment has been minimized.

Member

vargaz commented Aug 4, 2017

Can we call this something other than racing ? Like Unlocked or something ?

@cherusker

This comment has been minimized.

Contributor

cherusker commented Aug 4, 2017

@vargaz Yeah sure, I like that idea; I'll change it to UnlockedIncrement () and unlocked.h etc!

[fixup!] Rename "racing" to "unlocked"
- rename racing.h to unlocked.h
- update new file name in Makefile.am and *.vcxproj* files
- rename the functions from Racing* to Unlocked*
- update the macro logic

@lewurm lewurm requested a review from luhenry Aug 7, 2017

@lewurm

lewurm approved these changes Aug 7, 2017

@lewurm lewurm merged commit bc84302 into mono:master Aug 10, 2017

11 of 12 checks passed

Windows x64 Build finished. No test results found.
Details
API Diff No public API changes found.
Details
Linux AArch64 Build finished. 46804 tests run, 1408 skipped, 0 failed.
Details
Linux ARMv5 soft float Build finished. 46774 tests run, 1403 skipped, 0 failed.
Details
Linux ARMv7 hard float Build finished. 46774 tests run, 1403 skipped, 0 failed.
Details
Linux i386 Build finished. 46807 tests run, 1400 skipped, 0 failed.
Details
Linux x64 Build finished. 46807 tests run, 1402 skipped, 0 failed.
Details
Linux x64 FullAOT Build finished. 20903 tests run, 528 skipped, 0 failed.
Details
OS X i386 Build finished. 45564 tests run, 1283 skipped, 0 failed.
Details
OS X x64 Build finished. 45564 tests run, 1285 skipped, 0 failed.
Details
Test Result Viewer Click to view aggregated test results (Xamarin internal).
Details
Windows i386 Build finished. 40405 tests run, 1111 skipped, 0 failed.
Details

@cherusker cherusker deleted the cherusker:cherusker-2017-08-04-racing-h branch Aug 10, 2017

baulig added a commit to baulig/mono that referenced this pull request Aug 15, 2017

Sync with master commit "9d84dcb2fc35af1d75450045a8212bf5ab3ff383".
Squashed commit of the following:

commit 731fc662a91453285f51c8b14a7ec722dc2ed3e0
Author: Martin Baulig <mabaul@microsoft.com>
Date:   Tue Aug 15 13:25:00 2017 -0400

    Add scripts/csi to .gitignore.

commit 38584d257a08ec276fb4bf6ee69be7c867b48b0b
Author: Martin Baulig <mabaul@microsoft.com>
Date:   Tue Aug 15 13:12:47 2017 -0400

    Cosmetic; remove unnecessary cast and fix compiler warning.

commit 9765bf3a15943f25699595f954f0b6c9dad6154a
Author: Martin Baulig <mabaul@microsoft.com>
Date:   Tue Aug 15 13:08:12 2017 -0400

    [System]: Fix minor leaks in AppleTls. (mono#5369)

    These should be automatically collected by the GC, but explicitly disposing
    will keep memory usage more stable over time and keep pressure off the GC.

commit fb9369dd240b4c0051f24361a154536a80683a0e
Author: Martin Baulig <mabaul@microsoft.com>
Date:   Tue Aug 15 13:00:18 2017 -0400

    [System]: Fix major AppleTls memory leak.  Bug #56814. (mono#5370)

commit 77b846cb52ce82f6f1d2143c5cef20934551f7ac
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Tue Aug 15 11:16:48 2017 -0400

    [runtime] Use HOST_ defines instead of PLATFORM_ defines. (mono#5362)

commit 88ccb31be5c34b7678f09b23ea062bffd0e1de48
Author: Ankit Jain <ankit.jain@xamarin.com>
Date:   Mon Aug 14 21:07:15 2017 -0400

    [msbuild] bump to help debug wrench build failure

commit 25c8c5357ea623d28f11d335b69a93b346ee24a5
Author: Alexis Christoforides <alexis@thenull.net>
Date:   Mon Aug 14 16:27:34 2017 -0400

    [MacSDK] Update bockbuild to work around build/staging issue
    Commit message: Allow for non-fatal shell execution, and turn “install_name_tool” staging failures to warnings as we find a more permanent solution to AOT dylibs not always having enough field space for the new path (all other dylibs made in the build with the XCode toolchain typically do, as they are built with the “-headerpad_max_install_names” flag.

commit 3ae24b80ab545e5ccdb39a8fdba0568249d6e429
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Mon Aug 14 13:22:20 2017 -0700

    [mini] Add test for implicit widen on argument stores.

commit f54743d70639d355df0ca9f8e8a235b3079e1343
Author: Aleksey Kliger <aleksey@xamarin.com>
Date:   Wed Aug 9 18:38:50 2017 -0400

    [remoting] transparent proxy GetType of an interface should return the
    interface Type, not MarshalByRefObject. (Fixes #17325)

    If a RealProxy instance is created (using the protected RealProxy(Type)
    constructor) for an interface, mono internally sets up a MonoRemoteClass which
    looks like a proxy for a MarshalByRefObject instance that happens to implement
    the given interface.  However mono_class_proxy_vtable just does a memcpy() to
    setup the MonoVTable:type field of the transparent proxy's vtable.  That type
    field is hit by the JIT when System.Object.GetType() is called - and on .NET
    Framework GetType for a transparent proxy of an interface returns the interface
    not (as Mono used to) typeof(MarshalByRefObject).

    Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=17325

commit 19b0b6802b83c85c90d8af042d448dc7ba0ffac1
Author: Aleksey Kliger <aleksey@xamarin.com>
Date:   Thu Aug 10 18:35:27 2017 -0400

    [test] Add regression test for GetType() of a transparent proxy.

    Check that calling GetType() on a transparent proxy of a RealProxy of an
    interface returns that interface type.

commit 3c84621aceecfbe2f23f58a3a5602ee6700ea135
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Mon Aug 14 14:51:55 2017 -0400

    [runtime] Fix a warning.

commit b947cf3190b2eac73ea5011a140964d658af58ae
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Mon Aug 14 19:27:13 2017 +0200

    Bump nuget to latest 4.3.0 release (mono#5368)

commit d44b90ec35c81aaecccbcf61f37cf51dd5be609e
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Mon Aug 14 14:15:18 2017 +0200

    Bump nuget-buildtasks

    Includes NuGet/NuGet.BuildTasks#35

commit 1879fd96d75bd6165f77fd8ddc132740caffd45d
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Mon Aug 14 00:28:50 2017 -0400

    Fix a warning.

commit a4b09efc0a81ac8bcbaf4fa427fba4d200773bf3
Author: Uri Simchoni <uri@vfunction.com>
Date:   Sun Aug 13 09:46:42 2017 +0300

    [profiler] Fix log profiler SetMonitorEvents icall

    Set the right flag when enabling/disabling monitor
    event profiling

commit 6c3af34ebb1207a2a82591119fd1dc97016fc2ba
Author: Jonathan Chambers <joncham@gmail.com>
Date:   Sat Aug 12 10:54:01 2017 -0400

    Use eglib g_* allocators rather than malloc/calloc (mono#5359)

commit 63c92269895b025f97817f57df89146b27483f9d
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Sat Aug 12 16:37:03 2017 +0200

    [acceptance-tests] Increase the profiler-stress timeout to 9 hours.

    msbiology seems to take longer than 8 hours on 32-bit OS X.

commit b2d46340cd46b742925094b0c0b48cc8554d1e67
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Sat Aug 12 03:07:47 2017 -0400

    Bump roslyn-binaries.

commit 93e948425ca9097d17321f308b272fd961ec7de6
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Fri Aug 11 15:19:30 2017 -0700

    [jit] Add implicit widening of stores to args of types < 4 bytes.

    This fix follows what was done for #58379 but for arguments.

commit b7d969abf6bbeea03c0fe4892ff03d23666cf0cd
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Fri Aug 11 23:52:47 2017 +0200

    [ci] Add CI_TAGS for apidiff and ms-test-suite

    Easier to maintain than the "label" which could change depending on the bots.

commit daf5b1675e94a29fcb8f36c8e59ca28922c07a5e
Author: Ankit Jain <radical@gmail.com>
Date:   Fri Aug 11 17:53:45 2017 -0400

    Install Roslyn binaries, including msbuild tasks to msbuild/Roslyn (mono#5251)

    .. directory, which is `$mono_prefix/lib/mono/msbuild/15.0/bin/Roslyn/`

    Mono installs `csc.exe` but the corresponding
    `Microsoft.Build.Tasks.CodeAnalysis.dll` required for supporting msbuild C#
    projects is installed by msbuild. But these two can get out of sync,
    like they did and had to be worked around in
    mono/msbuild#19 .

    Instead, we now install all the relevant roslyn bits (C# and VB) from the same
    source. Only the msbuild specific files are copied to the Roslyn folder.
    VBCSCompiler, csi and their dependencies are symlinked from `lib/mono/4.5`.

    Also:

    - csi.exe is included since the tool is surfaced as an msbuild task,
      and that requires the *Scripting.dll assemblies.
    - VBCSCompiler* - shared compiler is installed
    - vbc.exe doesn't work on mono currently, so skipping that
    - And `Microsoft.DiaSymReader.Native.{amd64,x86}.dll` are dropped.

commit 39c30f77c107228d17719c9eadf08f18bed3264f
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Fri Aug 11 14:53:37 2017 -0700

    Address reviewer feedback.

commit 42f40d91add313cbdde91edf9008502dd461179b
Author: Ankit Jain <ankit.jain@xamarin.com>
Date:   Fri Aug 11 17:29:29 2017 -0400

    [msbuild] Bump to xplat-master branch HEAD

commit d698a8e928673ab89c174d8af274682e46d4eca0
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Fri Aug 11 22:20:53 2017 +0200

    [acceptance-tests] Bump coreclr submodule

commit c5d5755e66726c093adf418366a3152e0465d22c
Author: Alexis Christoforides <alexis@thenull.net>
Date:   Fri Aug 11 14:13:09 2017 -0400

    [MacSDK] Switch to HTTPS for downloading SQLite

commit 2c3f1251d7625d7fba7cba2df57415653277a740
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Fri Aug 11 19:31:05 2017 +0200

    [profiler] Fix code coverage support.

commit 11341a13fcc6e710396c97175bbd683c94444351
Author: Alexis Christoforides <alexis@thenull.net>
Date:   Fri Aug 11 12:22:36 2017 -0400

    Update Bockbuild for a CI fix/update (shorter build paths for MacSDK)

commit 96e46ff1b9ab35699ef4586f764679207145ae28
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Fri Aug 11 16:22:02 2017 +0200

    [bcl] Clean up FRAMEWORK_VERSION 4.0 and 2.0 checks (mono#5356)

    We don't build those profiles anymore, we have a net_4_x configuration instead.

commit a8fe499284138599f2b07efc15b4defb6be0f256
Author: Uri Simchoni <uri@vfunction.com>
Date:   Thu Aug 10 22:49:16 2017 +0300

    [docs] mprof-report manpage - remove "onlycoverage" log profiler option

    This option does not exist in the code.

commit 597f65b91048c0d6a50c025c9d24d79c5ffca7bb
Author: Uri Simchoni <uri@vfunction.com>
Date:   Thu Aug 10 22:48:36 2017 +0300

    [docs] mprof-report manpage - document heapshot-on-shutdown

    Document the heapshot-on-shutdown log profiler option.

commit 36db63ff2e1b2ae2da7717ca37ebc1dc7780bb38
Author: Uri Simchoni <uri@vfunction.com>
Date:   Fri Aug 11 09:56:20 2017 +0300

    [docs] mprof-report manpage - document '#' output option

    Document ability to use the log profiler with an open file
    descriptor.

commit f78453a26cc42ed67c91f11d9047aef04022bc5b
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Thu Aug 10 20:29:10 2017 -0400

    [llvm] Avoid generating invalid llvm IR when a finally clause contains a loop which branches back to the beginning of the finally clause. (mono#5354)

commit d06e41a7f9eeda1bb51f1b57a318835b08663e10
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Thu Aug 10 15:22:07 2017 -0700

    [mini] Emit widen ops when storing to locals of size < 4. Fixes #58379.

commit 9fb93199cccb933e7dc53d10869784c0e03ba972
Author: Jonathan Pryor <jonpryor@vt.edu>
Date:   Thu Aug 10 16:22:31 2017 -0400

    [mono-api-html] Allow `-r` to ignore class removals

    Allow `mono-api-html -r REGEX` to be used to silence messages
    regarding class and namespace removals in addition to member removals.

commit cf0292eb02ca0c5348cac040c2c2afa97fb48ae2
Author: Uri Simchoni <uri@vfunction.com>
Date:   Wed Aug 9 13:44:39 2017 +0300

    [docs] mprof-report manpage -- fix desctiption of existing file behavior

    Fix the description of what happens when the output file already exists.

commit f19f699c082782d42f1cf135f4e13e3becd20829
Author: Uri Simchoni <uri@vfunction.com>
Date:   Wed Aug 9 13:42:33 2017 +0300

    [docs] remove non-existant option from log profiler manpage

    The option of prepending a '-' to the log profiler output
    filename is not supported by the code - remove it.

commit d94cc3ceb40a15631ee9ee36ef937fcffb3c0d11
Author: Uri Simchoni <uri@vfunction.com>
Date:   Wed Aug 9 13:39:21 2017 +0300

    [docs] Capitalization / puctuation fixes in mprof-report manpage.

commit a87ea252ae03b474fc144e74b28fb2c23e93fc75
Author: Marek Safar <marek.safar@gmail.com>
Date:   Thu Aug 10 21:00:31 2017 +0200

    More codeowners updates

commit 0293dc1551cee48f69523dd0bf043c37ce4800b6
Author: Marek Safar <marek.safar@gmail.com>
Date:   Thu Aug 10 20:17:37 2017 +0200

    Update codeowners

commit 7f5a8bb0f6dee0cac0798b7b6800180845c51abc
Author: cherusker <prince.cherusker@gmail.com>
Date:   Mon Aug 7 14:12:53 2017 +0200

    Distinguish between the XSI-compliant and the GNU-specific version of `strerror_r ()`
    - add USE_STRERROR_R_XSI to use the feature test macros conveniently later
    - deal with the GNU-specific version of `strerror_r ()` separately (leave the code for the XSI-compliant version untouched)
    - make `buff_len` size_t as this is ISO compliant (even though it should not really matter in this case)

commit 35e3cf3c039ced9f9fddfb0e3d4a9a990d1cf312
Author: Armin Hasitzka <cherusker@users.noreply.github.com>
Date:   Thu Aug 10 18:22:16 2017 +0200

    Add rules to run TSan with run-jenkins.sh (mono#5254)

    - export TSan flags that are used by the compiler and the compiled program
    - introduce `make_timeout` to set individual timeouts for `make` based on the config (e.g. TSan will only get 30 minutes to complete)

commit 08496e33013b7fe780102ca5a0e53e01332748a1
Author: Mikhail Filippov <Mikhail.Filippov@jetbrains.com>
Date:   Wed Aug 9 14:11:54 2017 +0300

    Add implementation and tests for MatrixValueSerializer and MatrixConverter

commit c6ec2680fce543787a9e03a87315042442fea069
Author: Mikhail Filippov <Mikhail.Filippov@jetbrains.com>
Date:   Wed Aug 9 14:16:22 2017 +0300

    Uncomment fixed SizeConveter tests

commit 3dfe5c1e3c05e01e520b9c65b52f1eb523942c5c
Author: Aleksey Kliger <aleksey@xamarin.com>
Date:   Wed Aug 9 11:31:17 2017 -0400

    [monodis] Not all override methods are errors

    Check whether mono_get_method_checked returned an error, if not, just decode
    the override normally.

    This partly reverts f100c2f

commit 744b1d8e9be4fcda460d2f604836ef1b6fcde970
Author: Armin Hasitzka <cherusker@users.noreply.github.com>
Date:   Thu Aug 10 16:16:02 2017 +0200

    [TSan] Yet another idea about whitelisting data races (mono#5310)

    * Introduce racing.h
    - introduce the `RacingIncrement* ()` functions
    - test the `RacingIncrement* ()` functions with races of `mono_stats` in class.c
    - add racing.h to Makefile.am, libmonoutils.vcxproj and msvc/libmonoutils.vcxproj.filters

    * [fixup!] Rename "racing" to "unlocked"
    - rename racing.h to unlocked.h
    - update new file name in Makefile.am and *.vcxproj* files
    - rename the functions from Racing* to Unlocked*
    - update the macro logic

commit e1ea26400218e2884e590c30c7b8a8110801de8b
Author: Ankit Jain <ankit.jain@xamarin.com>
Date:   Wed Aug 9 21:07:10 2017 -0400

    [msbuild] Bump to xplat-master branch HEAD

commit edd79a8b17cfcdc33c8929e8a694274d1a31bf30
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Thu Aug 10 02:33:23 2017 +0200

    [mono-symbolicate/mdoc] Don't fail tests in mcs mode (mono#5348)

    The checked in test files which the test suites in mono-symbolicate
    and mdoc verify their output against have a few roslyn-specific
    things in them and would fail when running in mcs mode.

    While in theory we could check in both mcs- and roslyn-specific
    test files it seems not worth the effort and we should just skip
    the tests in mcs mode so we get greener builds on platforms
    where we still use mcs by default.

monojenkins added a commit that referenced this pull request Aug 23, 2017

[TSan] Unlocking MonoStats, GCStats and JITGCStats (#5381)
[TSan] Unlocking MonoStats, GCStats and JITGCStats

As the `Unlocked* ()` functions have been approved in #5310, I used them to blacklist some of the most obvious counting variables whose data races should be ignored: `MonoStats`, `GCStats` and `JITGCStats` (more to follow if approved).

Please find details about all changes within the commit messages.

baulig added a commit to baulig/mono that referenced this pull request Sep 1, 2017

Sync with mono/master commit "19046502886ad7697b4c6642337441a7fdafd28a".
Squashed commit of the following:

commit e82634a55776a1124a5ef4a6c742d13c79ac0a6d
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Thu Aug 31 07:17:02 2017 -0400

    [sdb] Fix support for async debugging in optimized mode, roslyn generates valuetype IAsyncStateMethod implementations. Fixes #58728. (mono#5476)

commit 7110833d7e8dbe255ce82e2932049fd20e81272f
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Thu Aug 31 10:53:35 2017 +0200

    [bcl] Fix a few hardcoded socket ports in tests (mono#5471)

    * [System] Fix a few hardcoded socket ports in tests

    Those could've shown up as "address already in use" in CI.

    * [System.Runtime.Remoting] Fix a few hardcoded socket ports in tests

    Those could've shown up as "address already in use" in CI.

    Additionally remove a copy of RemotingServicesTest.cs from corlib
    which also exists in System.Runtime.Remoting in updated form.

    * [System.ServiceModel] Fix a few hardcoded socket ports in tests

    Those could've shown up as "address already in use" in CI.

    * [System.Net.Http] Fix a few hardcoded socket ports in tests

    Those could've shown up as "address already in use" in CI.

    The additional "keep-alive" header in Send_Complete_NoContent() and
    Send_Transfer_Encoding_Chunked() is because we were using the same
    port for all tests before so other tests would clear the header.
    This doesn't happen now that we use distinct test ports.

    * [System.ServiceModel.Web] Fix a few hardcoded socket ports in tests

    Those could've shown up as "address already in use" in CI.

commit e250d9f6cc73c9ba69fa3318154e9eae68a2b542
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Thu Aug 31 00:41:53 2017 +0200

    Revert "Merge pull request mono#5330 from alexanderkyte/dedup_mkbundle"

    This reverts commit 9a287c0, reversing
    changes made to 4a79280.

    It breaks tons of tests.

commit b9164d6739f59cad9789b1ac4bde4011661377f7
Author: Martin Baulig <mabaul@microsoft.com>
Date:   Wed Aug 30 13:43:36 2017 -0400

    [Mono.Security]: Add 'MonoTlsProvider.SupportsCleanShutdown' and 'MonoTlsSettings.SendCloseNotify'. (mono#5465)

    Only send close_notify when using BTLS and explicitly requested via 'MonoTlsSettings.SendCloseNotify'.

commit c77819f16ed144fce1b1bc163b72c904110db62b
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Sun Aug 13 06:43:36 2017 -0400

    [runtime] Document mkbundle AOT options in man pages

commit 5f7d3ec1cb8962f78eb165f68849258dde3f872c
Author: Alexander Kyte <alkyte@microsoft.com>
Date:   Mon Aug 7 17:25:52 2017 -0400

    [runtime] Fix tracking of dedup module in mkbundle

commit 08b261b1cd427c1194e30456ffb36b16f3d17f3c
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Mon Jul 10 18:12:32 2017 -0400

    [runtime] Add mkbundle support for dedup

commit 1e7fd43a851c5e785b0bc09a2f16f54ce18aab86
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed Jun 7 14:42:34 2017 -0400

    [runtime] Clean up temp mkbundle aot directory

commit 09131a532faabd7d5b59ae2ae06a14d4d01e03d0
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed Jun 7 01:19:12 2017 -0400

    [runtime] Fix mkbundle internationalization test results, build all

commit cd8a679ea8b62e1017f6d4911831c34b8fd8eda3
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Tue Jun 6 18:41:13 2017 -0400

    [runtime] Provide config to mkbundle

commit cc5793c167894634971838f7bd6c79fb9feda646
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Mon Jun 5 17:52:59 2017 -0400

    [runtime] Don't re-aot when running BCL tests

commit f14567a6646f34b4fd5376de632f5d3e3020d3ed
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Mon Jun 5 15:18:41 2017 -0400

    [runtime] Skip not supported tests with mkbundle

commit 4850f483e51aa1fdb2945ca67e1cdac4540949eb
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed May 31 14:13:09 2017 -0400

    [runtime] Build stripper and use with mkbundle

    Preliminary linker support ran into dependency-finding bug
    with the monolinker.exe binary. Fix postponed until later.

commit 3685f89bb99dc1ac1a38b4d1c069d78d6f4739bf
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed Jun 7 14:44:45 2017 -0400

    [runtime] Add target to mkbundle all tests before CI

commit 24c87bf113efbe07a27b5cdc933c1d89b7978d06
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed Jun 7 14:44:36 2017 -0400

    [runtime] Move testing dll into profile

commit 0c756a6ce1477635e31cac16b50281b7346d2f78
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed Jun 7 14:44:16 2017 -0400

    [runtime] Fix in-tree building for mkbundle

commit de39aea0707f9678f8f1fa6ace0a0f9b03042821
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed Jun 7 14:44:09 2017 -0400

    [runtime] Skip building System.Security, System.IdentityModel tests on testing_aot_full

commit b0eeda759fa662f559afbb67b4c5e1d479e1504c
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed Jun 7 14:43:58 2017 -0400

    [runtime] Use mkbundle in BCL tests

commit c4270b37668048ca24e0e7f5bd0989f92835abe7
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed May 3 11:48:37 2017 -0400

    [runtime] Fix path resolving for mkbundle

commit 9ca84de9e16de2eee9ad0ad870c678c8e5bde451
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Tue May 2 13:38:59 2017 -0400

    [runtime] Add new dedup interface to mkbundle

commit 6e6e70c364db702cf30aa443ee58959ec62a7474
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Mon May 1 17:32:14 2017 -0400

    [runtime] Fix mkbundle compilation on OSX

commit f7c5ea02ac0b517e90c9d646efd0edfc944c7a39
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed Jun 7 14:43:48 2017 -0400

    [runtime] Enable compiling aot with mkbundle

commit 228003ef127bd2c92ee4c7e6823756354d1bea21
Author: Alexander Kyte <alexmkyte@gmail.com>
Date:   Wed Jun 7 14:43:39 2017 -0400

    [runtime] Add aot arguments to mkbundle

commit c7a98a4388184fd6d5d42c2d77ba26fe9d5881de
Author: Armin Hasitzka <cherusker@users.noreply.github.com>
Date:   Wed Aug 30 12:16:20 2017 +0200

    Update Clang's ThreadSanitizer blacklist (mono#5467)

commit 8e5ff842ec3110b8c27731c398020e09b0c50f03
Author: Joshua Peterson <petersonjm1@gmail.com>
Date:   Wed Aug 30 05:59:57 2017 -0400

    Call `g_utf8_to_utf16` with a proper argument (mono#5470)

    * The sizes of `glong` and `gsize` differ on 64-bit Windows.
    * In order to avoid uninitialized data in the high four bytes of the `bytes` argument to `mono_unicode_from_external`, call `g_utf8_to_utf16` with a `glong`, then copy the result.

commit 6a617161462ba223292268aebcef529971cdc45b
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Tue Aug 29 22:05:12 2017 +0200

    Revert "[runtime] Wait for the thread to really exit in Thread.Join (). (mono#5454)"

    This reverts commit ec30afd.

    It causes test failures on s390x.

commit 4e98fee260a99614a16ae2209dbcdf0b837010d2
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Tue Aug 29 21:45:59 2017 +0200

    Revert "[llvm] Add support for building with more recent versions of the mono llvm branch, in particular https://github.com/mono/llvm/tree/2017-07-06-5a1ffa96376e8a3ee895b782790591e5e7814ccf, which is based on llvm 5.0. (mono#5408)"

    This reverts commit f01f854.

    It broke a bunch of tests with llvm.

commit 725b3632ad596bd3115f04f4e0bd166fc4cacef1
Author: Marek Safar <marek.safar@gmail.com>
Date:   Tue Aug 29 19:47:37 2017 +0200

    [PEAPI] Don't add mscorlib reference when no type needs it

commit f341e96ac9d46d045535825cbb13ca5bfb546b69
Author: Marek Safar <marek.safar@gmail.com>
Date:   Tue Aug 29 16:23:00 2017 +0200

    [ilasm] Adds noautoinherit option

commit 38a99d7ad4cae044920751be5abdcdd335cf6e49
Author: Marek Safar <marek.safar@gmail.com>
Date:   Tue Aug 29 15:51:55 2017 +0200

    [ilasm] Adds AggressiveInlining support

commit fac5e77688cbb1013c242155e181252db6fbd99b
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Tue Aug 29 09:18:43 2017 +0200

    Remove leftover targets from Makefile.am (mono#5466)

    win32getdeps and win32setup don't apply anymore.

commit e188f938e712d2b207393d6bb44f269faefd87c4
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Mon Aug 28 21:42:39 2017 -0400

    [llvm] Add support for building with more recent versions of the mono llvm branch, in particular https://github.com/mono/llvm/tree/2017-07-06-5a1ffa96376e8a3ee895b782790591e5e7814ccf, which is based on llvm 5.0. (mono#5408)

commit a3be8e5ed6e2d7afcbfb6ddb1df96587203111c6
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Mon Aug 28 21:38:29 2017 -0400

    [runtime] Wait for the thread to really exit in Thread.Join (). (mono#5454)

commit c3e2042e63da16b7fa195ef95b378875b2f02c97
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Mon Aug 28 21:37:08 2017 -0400

    [sgen] Move the mono_gchandle_ functions to sgen-mono.c for consistency, add sgen_gchandle () functions instead. (mono#5460)

commit fd86cae5e7e362a1d99cf9b0cc7473dd0e5146db
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Mon Aug 28 21:36:42 2017 -0400

    [sdb] Make the IL in dtest-excfilter.il valid. (mono#5463)

commit fb16067d35d185faf30d5d26385ef9bf58a6c5a7
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Mon Aug 28 04:37:53 2017 -0400

    [amd64] Make code patching smp safe for the case where we emit a mov + call_reg. Hopefully fixes #57959. (mono#5452)

commit 427beae682b23a4e7da2dcc930d27a7357c8abf8
Author: Bernhard Urban <bernhard.urban@xamarin.com>
Date:   Mon Aug 28 07:57:00 2017 +0200

    [gc counters] avoid using Interlocked*64 functions as they are broken on some arches (mono#5451)

    They are implemented via a global lock, which can lead to deadlooks in
    some situations, e.g.

    ```
    -0  0xb6c92e14 in sigsuspend () from /lib/arm-linux-gnueabi/libc.so.6
    -1  0x0043f3b4 in suspend_signal_handler (_dummy=35, info=0xb4afe6d0, context=0xb4afe750) at mono-threads-posix-signals.c:177
    -2  <signal handler called>
    -3  0xb6de6bc4 in __pthread_mutex_unlock_usercnt () from /lib/arm-linux-gnueabi/libpthread.so.0
    -4  0x00440f00 in InterlockedCompareExchange64 (dest=0x530700 <worker+64>, exch=0, comp=0) at atomic.c:578
    -5  0x002f228c in InterlockedRead64 (src=0x530700 <worker+64>) at ../../mono/utils/atomic.h:398
    -6  0x002f29a0 in COUNTER_READ () at threadpool-worker-default.c:194
    -7  0x002f3320 in worker_park () at threadpool-worker-default.c:426
    -8  0x002f3774 in worker_thread (unused=0x0) at threadpool-worker-default.c:488
    -9  0x002e66b0 in start_wrapper_internal (start_info=0x0, stack_ptr=0xb4b00000) at threads.c:982
    -10 0x002e6894 in start_wrapper (data=0x5a8f38) at threads.c:1044
    -11 0xb6de31a8 in start_thread () from /lib/arm-linux-gnueabi/libpthread.so.0
    -12 0xb6d3a1bc in ?? () from /lib/arm-linux-gnueabi/libc.so.6
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)

    Thread 4 (Thread 0xb40ff440 (LWP 10198)):
    -0  0xb6deb56c in __lll_lock_wait () from /lib/arm-linux-gnueabi/libpthread.so.0
    -1  0xb6de584c in pthread_mutex_lock () from /lib/arm-linux-gnueabi/libpthread.so.0
    -2  0x00440e6c in InterlockedCompareExchange64 (dest=0x559868 <gc_stats+8>, exch=2855648, comp=2844091) at atomic.c:570
    -3  0x0039bdcc in InterlockedAdd64 (dest=0x559868 <gc_stats+8>, add=11557) at ../../mono/utils/atomic.h:392
    -4  0x003a1b50 in collect_nursery (reason=0x5083f4 "Nursery full", is_overflow=0, unpin_queue=0x0) at sgen-gc.c:1865
    -5  0x003a3794 in sgen_perform_collection (requested_size=4096, generation_to_collect=0, reason=0x5083f4 "Nursery full", wait_to_finish=0, stw=1) at sgen-gc.c:2539
    -6  0x003a35f0 in sgen_ensure_free_space (size=4096, generation=0) at sgen-gc.c:2505
    -7  0x00389db0 in sgen_alloc_obj_nolock (vtable=0xb4d174d0, size=64) at sgen-alloc.c:256
    -8  0x0036e330 in mono_gc_alloc_vector (vtable=0xb4d174d0, size=64, max_length=12) at sgen-mono.c:1743
    -9  0xb6c16a38 in ?? ()
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)
    ```

    fixes https://bugzilla.xamarin.com/show_bug.cgi?id=59039

commit 7737b62c94dcfc143837a0690cd8a25bae50e177
Author: HinTak <htl10@users.sourceforge.net>
Date:   Sun Aug 27 22:55:11 2017 +0100

    More informative g_error message

    Encountered this message while running the new mkbundle simple-cross functionality introduced recently. "Function not supported" is seen on both Mac OS X and Ubuntu. Will possibly file a separate bug since HAVE_MKDTEMP should be true... but it should be "Function mkdtemp not supported" in any case.

commit 950d0891a8f1876cd2e9e7bf8ba44a06ec0bf41b
Author: HinTak <htl10@users.sourceforge.net>
Date:   Sun Aug 27 22:44:09 2017 +0100

    remove redundant duplicate word 'not'

    Found a consecutive 'not' pair while searching the code for somethng else.

commit 000782dd33745c361d0bbaf6b258788d288ac880
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Sun Aug 27 03:35:50 2017 -0400

    [runtime] Use the AC_FUNC_STRERROR_R() autoconf macro to distinguish between the two possible signatures for strerror_r (). (mono#5453)

commit 87580b0b81883fa8fe989d1183d669aa7795e35d
Author: HinTak <htl10@users.sourceforge.net>
Date:   Sun Aug 27 12:21:59 2017 +0800

    Fixing confusing typos

    Fixing confusing typos - should be self-explanatory.

commit 3195b7e9a9be33e3a4a3c9f1f887b7e95eb19ceb
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Sat Aug 26 04:53:24 2017 -0400

    [jit] Assert that the trampoline code is called in gc unsafe mode, throw exceptions by returning the exception to the assembly trampoline code and throwing it from there. (mono#5409)

commit a2aec2fc41d61bfcdee84f0b3079511fe4078e6d
Author: Uri Simchoni <urisimchoni@users.noreply.github.com>
Date:   Sat Aug 26 06:24:47 2017 +0300

    [amd64] silence compiler warning (mono#5435)

    Silence a GCC warning about param_regs and return_regs not being
    used.

commit 30b369b5d7655b34668d2d1c4248e7490b177ca0
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Fri Aug 25 21:58:52 2017 +0200

    [System] Disable SocketTest.SendAsyncFile for now (mono#5447)

    It's one of the flaky tests that we have had for a very long time.

    There's work in progress fixing it as part of
    mono#5345 and https://bugzilla.xamarin.com/show_bug.cgi?id=43172
    but I think we should disable it in the meantime for clean CI.

commit 7547a81206d33f32916199cd72761415600e385d
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Fri Aug 25 21:57:20 2017 +0200

    [configure.ac] Don't include the .build number in runtime-corlib version (mono#5449)

    It's causing unnecessary complexity because we need to create a new
    monolite when bumping the .build number in a major.minor.build
    version like from 5.2.0 -> 5.2.1

    corlib version bumps are very rare in those cases and even then
    you can just increment the MONO_CORLIB_COUNTER variable.

commit 833846c4eb27d034b2db07b6cef0fea3f8fe695d
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Fri Aug 25 21:06:36 2017 +0200

    [profiler] Correct the description of the 'legacy' option.

commit 436671d65b80239c93637401f10e4d9fb2b70690
Author: Martin Baulig <mabaul@microsoft.com>
Date:   Fri Aug 25 12:58:50 2017 -0400

    [System]: Cleanup debugging and use the same technique from the new web stack. (mono#5441)

    * Cleanup debugging and use the same technique from the new web stack.

    * The MARTIN_DEBUG conditional has been renamed into MONO_TLS_DEBUG.

    * Moved the actual implementation into MNS.MonoTlsProviderFactory.

    * We now use an environment variable called 'MONO_TLS_DEBUG' to
      enable debugging (so to get debugging, you need to both compile with
      -define:MONO_TLS_DEBUG and set that environment variable).

    The new web stack has a conditional and environment variable called
    'MARTIN_WEB_DEBUG'.

    * Use [Conditional] instead of #if.

commit 20c23ddce5721d7f67af2b99e7c32ac0b204c500
Author: monojenkins <jo.shields+jenkins@xamarin.com>
Date:   Fri Aug 25 18:14:40 2017 +0200

    [msvc] Update csproj files (mono#5450)

commit 1f325d59840af38ef6a573b5ef31e3ff3a6d59d2
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Fri Aug 25 14:36:44 2017 +0200

    [man] Cleanup mentions of monocov in mono.1 (mono#5446)

    Coverage support was added to the log profiler in a5ab6c6
    and the monocov profiler was removed with 1657026.

commit d3563fff7ca699142a3db7df9d7bc79b71072a28
Author: Jonathan Chambers <joncham@gmail.com>
Date:   Fri Aug 25 03:46:34 2017 -0400

    Retrieve thread lazily and avoid special case for defer. We were trying to get thread when in defer mode even for EVENT_KIND_VM_DEATH and hitting assert since current thread was not available. (mono#5440)

commit eef6fcabd0c10801650f42c3acc95d0eda260c28
Author: Jonathan Chambers <joncham@gmail.com>
Date:   Fri Aug 25 03:38:11 2017 -0400

    Ensure exception out argument is initialized to NULL. (mono#5424)

commit 6287b11d845fc9de2b4d328e40da688935aef52b
Author: Martin Baulig <mabaul@microsoft.com>
Date:   Thu Aug 24 16:13:04 2017 -0400

    [System]: Cleanup internal TLS APIs in preparation of adding renegotiation support. (mono#5426)

    * [btls]: Bind new native APIs to support renegotiation.

    * mono_btls_ssl_set_renegotiate_mode(), mono_btls_ssl_renegotiate_pending():
      New native methods.

    * MonoBtlsSsl: Added SetRenegotiateMode() and RenegotiatePending().

    * MonoBtlsSslRenegotiateMode: New internal enum.

    * [System]: Cleanup internal Mono.Net.Security.MobileTlsContext APIs.

    Use tuple `(int ret, bool wantMore)' return value instead of out variables.

    * [System]: Check for pending exceptions in MobileAuthenticatedStream.

    This should fix some issues where we're hanging instead of throwing
    an exception if something went wrong.

commit 21d156d34aef1cc56151c884bc11d0a91d0bcf55
Author: Alex Rønne Petersen <alpeters@microsoft.com>
Date:   Thu Aug 24 17:08:49 2017 +0200

    [profiler] Add a missing method_leave event for the CEE_MONO_RETOBJ opcode.

commit 40c349fd10e741428f4bc70e3628f193c42a5cfc
Author: Alex Rønne Petersen <alpeters@microsoft.com>
Date:   Thu Aug 24 17:08:20 2017 +0200

    [profiler] Add a missing method_tail_call event when the tailc optimization is enabled.

commit 789c583cbb554249c8b291d02f23f51db45518e1
Author: cherusker <prince.cherusker@gmail.com>
Date:   Thu Aug 24 16:16:02 2017 +0200

    Complete the function prototype

commit 79e706fc97e53078d20b1d51afc574585af604f5
Author: Marek Safar <marek.safar@gmail.com>
Date:   Thu Aug 24 10:37:05 2017 +0200

    [mcs] Update logic when checking for tuple element names when overriding inherited member

commit 7c84271253750344cfc32a1c66b2f1d0c9c31978
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Wed Aug 23 22:46:10 2017 -0400

    Revert "[runtime] Fix a warning."

    This reverts commit f996175.

    Revert this as the original code was right, there is a problem with the defines.

commit c767a546d9e27dbfa7f3d505531ca9ef1635703e
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 22 13:15:04 2017 -0700

    [wasm] Don't define MONO_CROSS_COMPILE in the wasm configure.ac

commit ebf27836670f8d337959844904635314f8260500
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 22 13:02:10 2017 -0700

    [utils] Fix mono_valloc and mono_valloc_aligned malloc-based implementation.

commit 80723179154f9c13e760ae36c8b3cf23a2d9bd94
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 22 11:42:33 2017 -0700

    [wasm] Add wasm stubs for object-offsets and sgen-archdep.

commit 442807ec17ee254804799afc89283bf2eef59908
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 22 11:42:01 2017 -0700

    [wasm] Add wasm strings to mono-config.c

commit 25f8b7339593e6d2ff332af99190da3176d9b6d7
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 22 11:37:28 2017 -0700

    [wasm] Add comments explaining the magic strings in mono-dl-wasm.c

commit a97d816318906d6d845b1e470808a164a2a1710a
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 22 11:36:45 2017 -0700

    [readme] Document --enable-wasm

commit 88d4c6a805d165a7f23b32422eda4c007b2f3ede
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Mon Aug 21 16:26:04 2017 -0700

    [wasm] Add threading, dl and hwcap support for wasm.

commit c0dbc42db882f00d5b94dff9b9e8389396bf8f9b
Author: Neale Ferguson <neale@sinenomine.net>
Date:   Tue Aug 22 11:29:27 2017 -0400

    Remove unnecessary ifdefed code

commit f7eff0f6a9d4e64ae5916189ec7004040b177da4
Author: Neale Ferguson <neale@sinenomine.net>
Date:   Fri Aug 18 11:22:04 2017 -0400

    Skip load if same register

commit daa0cbfe426bd0054aade4755db5e665565b1a27
Author: Neale Ferguson <neale@sinenomine.net>
Date:   Thu Aug 17 16:42:54 2017 -0400

    Add support for z13 processor

    The z13 supports some useful instructions that can be exploited
    by the JIT. Most notably the compare-and-branch instructions can
    reduce a two instruction sequence to one. The load-and-add command
    eliminates the more complex compare-and-swap sequence.

    The z13 also supports three operand instructions dst,src1,src2
    which eliminate checks and loads for instructions like add and subtract.

    The unaligned.cs test has been changed to cater for big-endian platforms.
    For s390x only, the --trace option will result in a file per thread
    being created rather than the traces being written to stdout and
    sometimes intermixing incomplete trace entries.

commit b2ada70e9c559820ccef1c908b851f2dfe17f477
Author: Armin Hasitzka <cherusker@users.noreply.github.com>
Date:   Wed Aug 23 19:50:34 2017 +0200

    [TSan] Unlocking MonoStats, GCStats and JITGCStats (mono#5381)

    [TSan] Unlocking MonoStats, GCStats and JITGCStats

    As the `Unlocked* ()` functions have been approved in mono#5310, I used them to blacklist some of the most obvious counting variables whose data races should be ignored: `MonoStats`, `GCStats` and `JITGCStats` (more to follow if approved).

    Please find details about all changes within the commit messages.

commit ca6dba77d255f63fdc92048f8da3e1ffb4bdf0cc
Author: Marek Safar <marek.safar@gmail.com>
Date:   Tue Aug 22 18:30:08 2017 +0200

    [threadpool] Reduce logging verbosity level. Fixes #58829

commit b071366f4f64ebbbb0abb2585365ff2d94c2a627
Author: Elastino <lee@serialimage.com>
Date:   Wed Aug 23 12:42:16 2017 +0900

    Added compile target option as library

    Added -t:library since mcd does not interpret output filename for dll suffix.
    Without -t:library option, it fails to compile.
    {code}
    mono$ mcs -debug+ -r:System.Core Options.cs -o:Mono.Options.dll
    error CS5001: Program `Options.exe' does not contain a static `Main' method suitable for an entry point
    Compilation failed: 1 error(s), 0 warnings
    {code}

commit 75e44d09b42a33bda85b40eeaaef7fac32ffe789
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Tue Aug 22 16:53:01 2017 -0400

    Revert "Disable pinvoke2.exe test on OSX i386 for now (mono#5411)"

    This reverts commit 4d89d5f.

    Revert this as the problematic test is disabled in libtest.c.

commit ad532132bf31acc7b793441105b759f29f178665
Author: Zoltan Varga <vargaz@gmail.com>
Date:   Tue Aug 22 14:46:48 2017 -0400

    [runtime] Disable a test which asserts because of an abi break in recent xcode/clang versions. Works around #58901.

commit 84f196c616c59d05fe70931b1b71bb627f307640
Author: Rogier Hofboer <r.hofboer@nl.ccv.eu>
Date:   Tue Aug 22 13:38:25 2017 +0200

    [Mono.Security] Bugfix of bug 23153. Certificate loop variable not used to find certificate

commit ebf486b80f413f46882c5729303228a5140b6d1d
Author: Jo Shields <joshield@microsoft.com>
Date:   Tue Aug 22 10:18:20 2017 -0400

    [msi] Fix typos in f9bdab7

commit c87c221fd2d54afa159531a0bf0247371e65497e
Author: Infko <recollectionforgot@gmail.com>
Date:   Tue Aug 22 21:11:43 2017 +0800

    [Syndication]Fix Runtime crash when parsing pubTime in RFC822 format (mono#5416)

commit 45cfb9f10fe259201cd0fb643cc50001e72eb483
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Tue Aug 22 15:05:59 2017 +0200

    [bcl] Remove unused left over .args files

commit 9dca54f3c9af9cbabad905a15bfe3c911ec4c66d
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Tue Aug 22 12:49:35 2017 +0200

    [MacSDK] Whitelist the csi script

commit 41eff91fa897823872a133f038d52cde8322ea5c
Author: markusbeth <markus.beth@web.de>
Date:   Tue Aug 22 02:49:37 2017 +0200

    enable some tests for System.Text.UnicodeEncoding (mono#5414)

    Remove attribute Category ("NotWorking") from tests GetString_Odd_Count_0
    and GetString_Odd_Count_ff as they are now working.

commit 631960d9761eeee41610c02e66b019fc1afd0e58
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Mon Aug 21 15:31:05 2017 -0700

    [utils] Fix atomic fallout implementation function naming.

commit 91f379c61a272430bdd32cf691338fdb84f575d7
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Mon Aug 21 15:30:16 2017 -0700

    [wasm] Add wasm stubs for MonoContext and membar ops.

commit 22728af39b93d53fb50282a15459864df6e45da2
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Mon Aug 21 15:14:43 2017 -0700

    [WASM] Hack configure.ac to support wasm. Use --enable-wasm instead of --host / --target

commit d9c333162c38a1c1f44230f675303dc523793f36
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Mon Aug 21 17:33:40 2017 +0200

    Fix method-access.exe test (mono#5412)

    The exception message of a MethodAccessException was changed in 7b88115.
    This caused the method-access.exe test to fail since it checked for the old format.

commit 65ca9793ddb1e6b34a564d1982525193fef9d7e3
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Mon Aug 21 17:09:06 2017 +0200

    Disable pinvoke2.exe test on OSX i386 for now (mono#5411)

    Reenable once https://bugzilla.xamarin.com/show_bug.cgi?id=58901 is fixed.

commit 7feefe5ca1f2bb6675e3fd779636fcdc58061a3d
Author: Jo Shields <joshield@microsoft.com>
Date:   Mon Aug 21 09:59:36 2017 -0400

    [msi] Pull in MSI changes from Mono 5.2 branch

    (cherry picked from commit 929575b)

commit 925580fb4e895d585dd968f8fe85c1daadaea23e
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Mon Aug 21 15:28:44 2017 +0200

    Bump libgdiplus (mono#5393)

commit d126f8dc80ff3dfb6288014f3d4c92ac926c1e82
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Mon Aug 21 13:45:58 2017 +0200

    Bump timeout for TaskTests.Delay_Simple (mono#5410)

    Should be reverted once https://bugzilla.xamarin.com/show_bug.cgi?id=58877 is investigated and fixed.

commit dc240f7432f2de9632dcae4eb363c47766747fa4
Author: Marek Safar <marek.safar@gmail.com>
Date:   Mon Aug 21 13:04:34 2017 +0200

    Use absolute paths to avoid ambiguity

commit bf19c99aa96b10eb8301f440ed9bfd9d9ae36a54
Author: Marek Safar <marek.safar@gmail.com>
Date:   Mon Aug 21 10:45:30 2017 +0200

    CODEOWNERS update

commit 7a3b8fdcd4f64eb62190e589f727cfb7c31ccc97
Author: Jonathan Chambers <joncham@gmail.com>
Date:   Fri Aug 18 21:34:29 2017 -0400

    Add null check for target to optimized delegate constructor code path. Fixes case 58888 (mono#5404)

commit 8138352fc9ad63e1a241472cfb5666346284097d
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Sat Aug 19 02:40:54 2017 +0200

    Update CODEOWNERS

commit fcddabf204aee980607ff232aa2be22195ed6d02
Author: Miguel de Icaza <miguel@gnome.org>
Date:   Fri Aug 18 20:05:32 2017 -0400

    Remove lingering bits from removed prj2make tool (mono#5405)

commit a983487a6a23650b96d5cd3caffcafbb19fb1fb6
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Fri Aug 18 15:40:03 2017 -0700

    [pedump] Have the assembly search hook look at the same directory of the assembly being verified.

    Unfortunately using mono_set_assemblies_path is not much of an option as it disables the MONO_PATH env var
    and that's needed when working with an in-tree pedump - cuz having to `make install` all the time is BS.

commit e3d51333158011eded7e340b8ca7bce07d637d2e
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Fri Aug 18 15:00:45 2017 -0700

    [verifier] Base constructors can only be called on uninit'd this pointers. Fix #12157.

commit a87447c7b0acbd6ea25fd56cadd328318b5d8b50
Author: Marek Safar <marek.safar@gmail.com>
Date:   Fri Aug 18 23:13:29 2017 +0200

    More codeowners updates

commit 4f531342e45e7046c14765f01f8032a6a3fbf1e3
Author: vkargov <kargov@gmail.com>
Date:   Fri Aug 18 08:09:30 2017 -0700

    [jit] Don't emit a redundant move in lazy fetch trampolines on AMD64. (mono#5346)

commit 7b892efb098780f9e849436a8184c00555eb6b9a
Author: Aleksey Kliger <aleksey@xamarin.com>
Date:   Thu Aug 17 18:56:49 2017 -0400

    [threads] Use designated initializer syntax in MAKE_SPECIAL_STATIC_OFFSET

    Originally we used a C90-style struct initializer `{ (index), (offset), (type)
    }`.  Unfortunately, SpecialStaticOffset is defined with fields in a different
    order on big-endian and little-endian machines.  Using a designated
    initializer, we don't have to care about the order.

commit 873daa00366ef7562a7816f131aa17a2d9b3f462
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Thu Aug 17 15:47:27 2017 -0700

    [runtime] Format MethodAccessException method names to use the same formating as reflection. Fixes #41279

    Add mono_method_get_reflection_name that returns the string managed is expecting.

commit 7be787bb14194d0f937bfedebe7e4ce859c75aed
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Thu Aug 17 11:33:37 2017 -0700

    [runtime] Don't set pkey to a value that will be freed immediately after.

commit cfc4ac51f269a586c081be497b9f2920e1c2e952
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Thu Aug 17 11:01:04 2017 -0700

    update CODEOWNERS

commit 58f010df906f59b826f0e64ae500a45a32b82856
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Wed Aug 16 15:42:33 2017 -0700

    [verifier] Check methodimpl table for duplicated. Fixes mono#11696

commit 2101f826371090e905ffe38b49a2457f3a28ce02
Author: Ludovic Henry <ludovic@xamarin.com>
Date:   Thu Aug 17 19:11:23 2017 +0200

    [marshal] Rethrow in native-to-managed wrapper to keep exception stacktrace (mono#5384)

    * [marshal] Rethrow in native-to-managed wrapper to keep exception stacktrace

    Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58782

    * [interp] disable tests for 58782 as they rely on appdomains

commit 490cc16acc4326208d148ed9f73ef53d81c3984d
Author: Ludovic Henry <ludovic@xamarin.com>
Date:   Thu Aug 17 19:03:40 2017 +0200

    [w32error] Add ENODEV -> ERROR_DEV_NOT_EXIST error translation (mono#5385)

    Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58738

commit 816338a9bce4dca4d109f5654647cb2a2106af64
Author: Eberhard Beilharz <eb1@sil.org>
Date:   Wed Aug 16 12:33:18 2017 -0600

    [SWF] Fix string drawing truncation in combo boxes

    This fixes Xamarin-10321. This change fixes the problem in SWF rather
    than in libgdiplus which has the advantage that it works with both
    Cairo and Pango renderers.

    Without the additional NoWrap flag the text will wrap at a word boundary,
    which results in the combo box showing lines with potentially a lot of
    empty space at the end. With the NoWrap flag we render only one line,
    displaying as many characters as possible in that one line.

commit a86d15c9bc4cfd8f6e3e0ff32b6bef4c88a36402
Author: Armin Hasitzka <cherusker@users.noreply.github.com>
Date:   Thu Aug 17 09:54:26 2017 +0200

    Use the `Unlocked* ()` functions to blacklist specific load / store operations (mono#5387)

    - avoid blacklisting whole functions with `MONO_NO_SANITIZE_THREAD`
    - change `long` to `gint64` as it is more portable

commit be587490d0f36d109ca05b571c916e08146e9488
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Wed Aug 16 16:43:11 2017 -0700

    [corlib] When parsing the ECMA key, don't produce a public key. Fixes #58637

    The key was incorrectly encoded and triggered heap corruption.

commit 4e51450cfc2602f43672001a0db5c67d10602db8
Author: Ludovic Henry <ludovic@xamarin.com>
Date:   Wed Aug 16 22:21:13 2017 +0200

    [corlib] Increase timeout for MonoTests.System.Runtime.Remoting.TestSynchronizationReleasedOnMultipleAcquire (mono#5373)

commit c010cf5ef7109d38c8f711291724ff14fa7fddda
Author: Alexander Köplinger <alex.koeplinger@outlook.com>
Date:   Wed Aug 16 19:09:28 2017 +0200

    Bump bockbuild

commit 25e8623d30fcdcfc7b64692c7b65e7b78fab8eba
Author: Marek Safar <marek.safar@gmail.com>
Date:   Wed Aug 16 13:15:41 2017 +0200

    Update list of denied assemblies

commit 94bee91122f9ca72233014cb347833f7db72b6f3
Author: Ankit Jain <ankit.jain@xamarin.com>
Date:   Tue Aug 15 23:50:09 2017 -0400

    [msbuild] bump to xplat-master branch HEAD

commit 286b744c9544f52c764456a3b01711652c02c859
Author: Ankit Jain <radical@gmail.com>
Date:   Tue Aug 15 23:51:29 2017 -0400

    [msbuild] Install a `deniedAssembliesList.txt` to support denied ... (mono#5358)

    ... assemblies.

    msbuild tries to filter out the denied assemblies, which mono refuses to
    load, during a build. It uses the `deniedAssembliesList.txt` installed
    to `$mono_prefix/lib/mono/xbuild` to identify them.

    This was generated with:

     `$ mono tools/nuget-hash-extractor/nuget-hash-extractor.exe nugets guids_for_msbuild > mcs/tools/xbuild/data/deniedAssembliesList.txt`

    This file needs to be kept in sync with any changes in the assemblies
    denied by the runtime.

    msbuild PR that adds support for this -
    mono/msbuild#23 .

commit 3302a8695914fcec55387ccd5bea8e4faaa3fcf7
Author: Ankit Jain <ankit.jain@xamarin.com>
Date:   Tue Aug 15 22:55:13 2017 -0400

    [msbuild] bump to xplat-master branch HEAD

commit c41700548b99638b5805eb08e1e7f49733c3badd
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 15 14:56:09 2017 -0700

    [verifier] Add workaround for verifying corlib and valid-only output.

commit c2340aacc20f14d9965c04665820dedf3983884f
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 15 14:54:47 2017 -0700

    [verifier] Handle csc encoding of enums in cattr blobs. Fixes #58168.

commit a23c81bdc1c811fa8f3c4e4061e3550d9ed2ef23
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 15 14:53:17 2017 -0700

    [runtime] Add WINDOWS_RUNTIME type attribute that csc  generates

commit 69e6b478cde17123cc29d8a2c3fca50d1b2a4154
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 15 14:32:38 2017 -0700

    [verifier] Avoid double init of metadata when using pedump.

    This is a workaround for the larger problem of it using a non-standard init sequence.

    Tracked as https://bugzilla.xamarin.com/show_bug.cgi?id=58793

commit 2d35e1b837fa58a48fc033cb565b5de130278883
Author: Rodrigo Kumpera <kumpera@gmail.com>
Date:   Tue Aug 15 14:28:21 2017 -0700

    [verifier] Partially revert 6d37ffd. It adds internal a header to a public one.

commit f3bf264e3d16e7e1150605d179bd69d500f374d0
Author: Marek Safar <marek.safar@gmail.com>
Date:   Tue Aug 15 23:14:36 2017 +0200

    netstandard dependant facades update after 2.0 release (mono#5371)

commit 531a4f8b319c98f566fda83a0dcaea617af215ef
Author: Aaron Bockover <abock@xamarin.com>
Date:   Tue Aug 15 11:37:41 2017 -0400

    mkbundle: avoid NREs and print useful errors

    When scanning for references, emit an error when loading the assembly
    into the universe fails or when loading a referenced assembly by
    name fails.

commit 917f18aef3f67239e81936c90262414e8c5264a4
Author: Ankit Jain <ankit.jain@xamarin.com>
Date:   Tue Aug 15 16:39:27 2017 -0400

    [msbuild] bump to help debug wrench build failure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment