Skip to content
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

Install Roslyn binaries, including msbuild tasks to msbuild/Roslyn #5251

Merged
merged 1 commit into from Aug 11, 2017

Conversation

radical
Copy link
Member

@radical radical commented Jul 21, 2017

.. 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.

@radical
Copy link
Member Author

radical commented Jul 21, 2017

@marek-safar roslyn-binaries needs an update to include all the files from the nuget package. And then this can be merged, along with mono/msbuild#21 .

Also, question: Should Microsoft.DiaSymReader.Native.{amd64,x86}.dll be included, for use on windows? AFAICS, it is used by Microsoft.CodeAnalysis.dll .

Copy link
Member

@marek-safar marek-safar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer not to copy Microsoft.DiaSymReader.Native.{amd64,x86}.dll

$(ROSLYN_CSC_DIR)/System.Xml.XmlDocument.dll \
$(ROSLYN_CSC_DIR)/VBCSCompiler.exe \
$(ROSLYN_CSC_DIR)/VBCSCompiler.exe.config \
$(ROSLYN_CSC_DIR)/csi.exe \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does msbuild need this one?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The VBCSCompiler is the shared compiler server. It isn't used yet though. And csi is REPL and the tasks assembly has a task for this, so including it.

$(ROSLYN_CSC_DIR)/Microsoft.CodeAnalysis.dll \
$(ROSLYN_CSC_DIR)/Microsoft.VisualBasic.Core.targets \
$(ROSLYN_CSC_DIR)/Microsoft.Win32.Primitives.dll \
$(ROSLYN_CSC_DIR)/System.AppContext.dll \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should not copy the facades/nugets, they are not needed and even problematic (denied) in some cases

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, we shouldn't need anything in the list from Microsoft.Win32.Primitives.dll until System.Xml.XmlDocument.dll except for System.Collections.Immutable.dll and System.Reflection.Metadata.dll (which are not facades).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the facades removed from the Roslyn/ folder, I can’t run csi.exe because of missing System.ValueTuple and System.Runtime. If I local copy those from lib/mono/4.5, then it works.

Copy link
Member

@akoeplinger akoeplinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please also talk to @directhex whether this needs any Linux packaging changes :)

$(ROSLYN_CSC_DIR)/Microsoft.CodeAnalysis.dll \
$(ROSLYN_CSC_DIR)/Microsoft.VisualBasic.Core.targets \
$(ROSLYN_CSC_DIR)/Microsoft.Win32.Primitives.dll \
$(ROSLYN_CSC_DIR)/System.AppContext.dll \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, we shouldn't need anything in the list from Microsoft.Win32.Primitives.dll until System.Xml.XmlDocument.dll except for System.Collections.Immutable.dll and System.Reflection.Metadata.dll (which are not facades).

$(ROSLYN_CSC_DIR)/csi.rsp \
$(ROSLYN_CSC_DIR)/vbc.exe \
$(ROSLYN_CSC_DIR)/vbc.exe.config \
$(ROSLYN_CSC_DIR)/vbc.rsp
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this seems to be missing csc.exe? though I see this is the same in Mono 5.2 today so I assume we're using CscToolPath to point it to lib/mono/4.5? then we can get rid of vbc.exe too :)

@marek-safar btw do we bundle Roslyn VB compiler already?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know why vbc is needed here and we don't bundle it because it's not usable on Mono. IIRC we are missing VB infrastructure assemblies (or are mostly not working).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@akoeplinger Roslyn used to fallback to looking in the framework folder for csc.exe, but recently they changed this behavior, and don't fallback to any location. So, we are setting CscToolPath accordingly.
Changing csc.exe's path to this might break any scripts/programs depending on the existing location.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re:vbc, I tried to build a simple project and it emitted some errors, but it built fine with vbnc.exe . I'll remove vbc from the list.

@@ -3,7 +3,7 @@ include ../build/rules.make

ROSLYN_CSC_DIR = $(dir $(CSC_LOCATION))

ROSLYN_FILES = \
ROSLYN_FILES_FOR_MONO = \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why don't we just symlink to mono/lib folder?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean lib/mono/msbuild/15.0/bin/Roslyn -> lib/mono/4.5/ ? We could do that too. Though having an actual directory, let's us have more control over the specific Roslyn folder meant for msbuild - allowing us to add/remove files, if necessary (based on what upstream msbuild does!)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I meant lib/mono/msbuild/15.0/bin/Roslyn -> lib/mono/4.5/. You can symlink specific files only but I see the duplicated list more like complication than benefit

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The duplicated list is unfortunate but symlinking the whole directory to lib/mono/4.5 sounds a bit dangerous (who knows how that influences the assembly reference probing/resolving that msbuild does).

I'd lean on keeping the separate folder for now.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why? Most of the files are used from lib/mono/4.5 anyway, secondly the duplicated files are missing AOTed files making csc much slower than it has to be.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re: $(INSTALL_LIB) $(ROSLYN_FILES_FOR_MONO) $(TARGET_DIR)

This is existing bit that copies csc.exe and related files to lib/mono/4.5.

re: .. copy only real msbuild ..

Sounds good to me. The *Scripting* assemblies should be wherever csi.exe is, so I will install it to lib/mono/4.5 too.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, if we don't use csc.exe from this Roslyn folder in msbuild then we shouldn't need all the Microsoft.CodeAnalysis.*.dll files etc.

I thought VBCSCompiler.exe is the compiler server which we don't support yet? I guess we could not copy it as well.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To sum up, I think we only need Microsoft.Build.Tasks.CodeAnalysis.dll, Microsoft.CSharp.Core.targets and Microsoft.VisualBasic.Core.targets in msbuild.

We'd need csi.*, Microsoft.CodeAnalysis.CSharp.Scripting.dll and Microsoft.CodeAnalysis.Scripting.dll in lib/mono/4.5 to support C# interactive (which would probably be mine and @marek-safar's task).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, could you do csi bundling to mono (it should be quite simple + install new csi script)

About VBCSCompiler.exe, I'd prefer to bundle it already as we want to support it as soon as we have time to fix it and @radical said that some task depends on it already.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re:csi, Yeah, I'll install that to 4.5 and add the script.

I was about talking csi being surfaced as a msbuild task, but it looks like it isn't actually referenced in the targets files at all! So, it doesn't have a corresponding $(CsiToolPath), which means that we should have csi.exe available (symlinked) in the msbuild directory. And with that the *Scripting* assemblies will need to be linked too.

VBCSCompiler is used by the Csc task, which would expect it to be in the msbuild directory. So, I could install+symlink this.
Another thing to note here though - this isn't usable right now as Roslyn disables it's use (https://github.com/dotnet/roslyn/blob/master/src/Compilers/Shared/BuildServerConnection.cs#L68).

Copy link
Contributor

@directhex directhex left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This requires minimal changes on the packaging side.

.. 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.
@radical
Copy link
Member Author

radical commented Aug 8, 2017

I updated the patch based on the discussion. Does this look fine now?

@radical radical changed the title [DONT_MERGE_YET] Install Roslyn binaries, including msbuild tasks to msbuild/Roslyn Install Roslyn binaries, including msbuild tasks to msbuild/Roslyn Aug 11, 2017
@radical radical merged commit 43cec6c into mono:master Aug 11, 2017
@radical radical deleted the install-roslyn-bits branch August 11, 2017 21:53
baulig pushed a commit to baulig/mono that referenced this pull request Aug 15, 2017
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 mono#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 dotnet/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.
radical added a commit that referenced this pull request Aug 16, 2017
…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.

Cherry-picking 43cec6c
radical added a commit that referenced this pull request Aug 16, 2017
…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.

Cherry-picking 43cec6c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants