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
Conversation
@marek-safar Also, question: Should |
0a12596
to
fc41c2a
Compare
There was a problem hiding this 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
mcs/packages/Makefile
Outdated
$(ROSLYN_CSC_DIR)/System.Xml.XmlDocument.dll \ | ||
$(ROSLYN_CSC_DIR)/VBCSCompiler.exe \ | ||
$(ROSLYN_CSC_DIR)/VBCSCompiler.exe.config \ | ||
$(ROSLYN_CSC_DIR)/csi.exe \ |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
mcs/packages/Makefile
Outdated
$(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 \ |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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.
There was a problem hiding this 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 :)
mcs/packages/Makefile
Outdated
$(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 \ |
There was a problem hiding this comment.
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).
mcs/packages/Makefile
Outdated
$(ROSLYN_CSC_DIR)/csi.rsp \ | ||
$(ROSLYN_CSC_DIR)/vbc.exe \ | ||
$(ROSLYN_CSC_DIR)/vbc.exe.config \ | ||
$(ROSLYN_CSC_DIR)/vbc.rsp |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 = \ |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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!)
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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).
fc41c2a
to
3d7b40d
Compare
There was a problem hiding this 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.
3d7b40d
to
666adba
Compare
I updated the patch based on the discussion. Does this look fine now? |
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.
…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
…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
.. directory, which is
$mono_prefix/lib/mono/msbuild/15.0/bin/Roslyn/
Mono installs
csc.exe
but the correspondingMicrosoft.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:
and that requires the *Scripting.dll assemblies.
Microsoft.DiaSymReader.Native.{amd64,x86}.dll
are dropped.