Jan Kotas [Sat, 12 Dec 2020 01:22:23 +0000 (17:22 -0800)]
Delete non-supported handling of Windows-specific PDBs in ilasm (#45979)
I do not expect we will ever add the classic PDB support back in ilasm.
Fixes #45492
Dan Moseley [Sat, 12 Dec 2020 00:43:48 +0000 (16:43 -0800)]
Update issues-pr-management.md (#45693)
Change to present tense, as we're now merged.
Document workflow enabled in https://github.com/dotnet/runtime/issues/44775
Bruce Forstall [Fri, 11 Dec 2020 23:47:20 +0000 (15:47 -0800)]
Fix superpmi.py argument parsing (#45983)
1. Hoist out argument parsing/verification of target_os/target_arch/mch_arch
so they apply to more commands that require them, e.g., "list-collections".
2. Rename `-jit` argument to `-jit_name` to be more explicit, and differentiate
it from the pre-existing `-jit_path` argument.
3. Hoist verification of `-jit_ee_version` to reduce code duplication.
Fixes #45981
Sergey Andreenko [Fri, 11 Dec 2020 22:54:03 +0000 (14:54 -0800)]
Mark some pipelines as pr:none (#45973)
* Follow-up for #45931
* Add superpmi
Igor Velikorossov [Fri, 11 Dec 2020 21:48:09 +0000 (08:48 +1100)]
FontConverter restore order of font properties (#45746)
.NET Framework implementation of `FontConverter` provided a different
order of font properties, that can be observed by inspecting an instance
of a font in a `PropertyGrid`.
Restore the original sort order.
The .NET Framework implementation has another sort argument "Weight",
which however doesn't appear to be a property of `Font` type.
It is possible this property has existed at some point, or the converter
may have been expected to work for instances of `IFontDisp` object.
Either way presence or absence of "Weight" doesn't appear to make any
difference, hence it has not been ported across.
Fixes #45631
Sergey Andreenko [Fri, 11 Dec 2020 21:27:09 +0000 (13:27 -0800)]
Improve PUTARG_STK generation for Arm/Arm64. (#45824)
* Improve PUTARG_STK generation.
Allow non pointer-size put args for structs.
It was an old CQ issue but now it is an Arm64 apple requirement.
* Update src/coreclr/jit/codegenarmarch.cpp
* Update src/coreclr/jit/codegenarmarch.cpp
Co-authored-by: Andy Ayers <andya@microsoft.com>
Co-authored-by: Andy Ayers <andya@microsoft.com>
Jan Kotas [Fri, 11 Dec 2020 21:07:43 +0000 (13:07 -0800)]
Fix reporting of negative ISA uses in crossgen2 (#45892)
Fixes #45852
Brian Sullivan [Fri, 11 Dec 2020 20:58:06 +0000 (12:58 -0800)]
Fix for Issue 44895 (#45284)
* Fix for Issue 44895
- Fix: Don't allow an unwrapped promoted field of TYP_REF to be returned when we are expecting a TYP_STRUCT
Backout change in gtGetStructHandleIfPresent for GT_RETURN as it isn't needed for this fix
Deoptimize all GT_RETURN's with mismatched types for promoted struct fields.
* Allow both GT_ADDR and GT_ASG as a parent node
* Add second test case Repro2_44895.cs
* Change assert about Incompatible types to be a noway_assert in gtNewTempAssign
* Only use the smaller repro case for Runtime_44895.cs
* Added noway_assert in release build for an assignment of a TYP_REF to a TYP_STRUCT
* rerun jit-format
dotnet-maestro[bot] [Fri, 11 Dec 2020 19:12:54 +0000 (19:12 +0000)]
[master] Update dependencies from dotnet/xharness dotnet/arcade (#45956)
[master] Update dependencies from dotnet/xharness dotnet/arcade
Maxim Lipnin [Fri, 11 Dec 2020 17:43:05 +0000 (20:43 +0300)]
Run Mono Android sample on Helix (#45109)
- Included the android sample project to the library test build.
- Added copying resulting HelloAndroid.apk to helix test directory from where it can be consumed by CI.
- Set up the return value (42) as an expected exit code for xharness.
- Xharness for android doesn't support running an application w/o test runner yet
Related issue: #43865
monojenkins [Fri, 11 Dec 2020 15:12:35 +0000 (10:12 -0500)]
[metadata] Generate type-3 GUIDs for interfaces. (#43677)
I'm opening this although it's still WIP, for discussion, as I'm not sure what else I should be adding. Tests probably, of course, but also I was wondering if it should be plugged to RuntimeType.GUID / Marshal.GenerateGuidForType. I'm not entirely sure if that's desired as I've seen clues in the reference source that the GUID generation has issues.
I've left class GUID generation aside, as it doesn't seem so useful for COM interop, and the algorithm uses some Assembly properties to seed the GUID, and retrieving that is currently beyond my understanding of the code.
Also I'm a bit lost regarding which RuntimeType.GUID it should be added to: there's at least two places that looked appropriate : in `mono/netcore/System.Private.CoreLib/src/RuntimeType.Mono.cs` and in `mono/mcs/class/corlib/ReferenceSources/RuntimeType.cs`.
Co-authored-by: rbernon <rbernon@users.noreply.github.com>
Fan Yang [Fri, 11 Dec 2020 14:58:51 +0000 (09:58 -0500)]
Add test leg to run runtime tests on Android devices (#44560)
* Add test leg to run runtime tests on Android devices
* Add a new variable to describe the host OS of test wrappers for runtime tests
* Set win-x64 runtime for Android arm64
* Add missing %
* Use TestWrapperTargetsWindows when checking script targeting platform
* Fix variable usage format on windows
* Fix file path for windows
* Make file path portable
* Add debug info
* Add debug info to output instead of testOutput
* Add more debug info
* Add debug info in batch file
* Turn on echo for batch script
* Add another missing % and some debug info
* Fix test running command
* Remove extra double quotes
* Turn on verbose mode for xharness command and fix msbuild special characters
* Choose batch or bash script based on var TestWrapperTargetsWindows, when building Android apps
* Clean up
* Enable all tests
* Disable tests belonging to big work items
* Disable more long running work items
* Disable more long running tests
* Disable more long running tests and shorten the timeout threshold
* Increase timeout threshold
* For debugging, print out logs when passing
* Disable more tests to avoid long running tests
* Add Android tests to staging pipeline and revert previous debugging hack
Koundinya Veluri [Fri, 11 Dec 2020 13:26:10 +0000 (05:26 -0800)]
Fix some PAL tests that compare sleep/wait times from one thread to sleep/wait times on another thread (#45948)
- This affects some tests where the main thread T0 creates another thread T1, T0 sleeps for some time while T1 waits, then after waking up T0 interrupts T1's wait with an APC, and measures the expected sleep duration with the other thread's wait duration before interrupt
- In the failures T0 is likely starting to sleep for the interrupt delay before T1 has recorded the pre-wait timestamp, so the interrupt occurs sooner than intended and the expectation later fails
- Fix T0 to wait for T1 to record the pre-wait timestamp before sleeping for the interrupt delay
Hopefully fixes https://github.com/dotnet/runtime/issues/42669
Steve MacLean [Fri, 11 Dec 2020 13:01:58 +0000 (08:01 -0500)]
Fixes for VS preview (#45902)
* Fixes for VS preview
Stop using c++latest and designated initializers for Windows crossdac
Disable warning about overriding /TP with /TC
Maxim Lipnin [Fri, 11 Dec 2020 12:00:05 +0000 (15:00 +0300)]
Run Mono iOS sample on Helix (#44462)
- Included the ios sample project to the library test build. The sample still can be build/run locally using make file.
- Added copying resulting HelloiOS.app to helix directory from where it can be consumed by CI.
- Changed the sample to return 42 when building for CI, which is used as an expected exit code for xharness.
- Xharness for iOS supports running an application on a simulator w/o test runner inside, the sample is run by this approach.
- Checked locally that xharness can run HelloiOS.app successfully.
Related issue: #43865
Jan Kotas [Fri, 11 Dec 2020 11:55:08 +0000 (03:55 -0800)]
Add botr doc on managed type system (#45891)
monojenkins [Fri, 11 Dec 2020 08:06:38 +0000 (03:06 -0500)]
Add support for global aggressive-linining optimization. (#45822)
Currently we do support aggressive inlining per method using attributes. This commit adds a new global mono optimization flag that does similar thing, but whiout the need to annotate methods. There is still one big difference and that is the effect of cost. The new global optimization does not override cost evaluation, so if a method is to expensive to inline with regards to inline limit, it won't be inlined. In order to get the full "forced" inlining. method attributes should still be used.
This new optimization is not default and needs to be enabled using:
--optimize=aggressive-inlining
Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
Bruce Forstall [Fri, 11 Dec 2020 07:43:55 +0000 (23:43 -0800)]
Fix GC hole with STOREIND of LCL_VAR_ADDR/LCL_FLD_ADDR (#45818)
* Fix GC hole with STOREIND of LCL_VAR_ADDR/LCL_FLD_ADDR
We were updating the GC liveness of the ADDR node, but
`genUpdateLife()` expects to get the parent node, so no
liveness was ever updated.
There were 4 SPMI GC info diffs in the libraries, all
related to uses of `System.Collections.Immutable.ImmutableArray`
where we struct promote fields who are themselves single-element
gc ref structs that are kept on the stack and not in registers.
In all cases, the liveness of the stack local was not reflected
in codegen's GC sets, but it was reflected in the emitter's GC
sets, so it was marked as a GC lifetime. However, that lifetime
would get cut short if we hit a call site before the last use,
as calls (sometimes) carry the full set of live variables across
the call. So, variables not in this set (including the
"accidental" emitter-created GC lifetimes here) would get killed,
leaving a hole between the intermediate call and actual stack
local last use.
Fixes #45557
* Add unit test
* Add comment to `emitInsLoadInd()`
Andy Ayers [Fri, 11 Dec 2020 06:57:18 +0000 (22:57 -0800)]
JIT: implement return merging stress mode (#45917)
Under stress, optionally limit methods to having just one return block,
to stress the logic involved in merging returns.
Bruce Forstall [Fri, 11 Dec 2020 06:51:37 +0000 (22:51 -0800)]
Fix JitDisasmWithGC without JitDump (#45938)
Bruce Forstall [Fri, 11 Dec 2020 06:51:21 +0000 (22:51 -0800)]
Change GC stack slot negative hex offsets to show as negative (#45940)
In the GC output, instead of:
```
Stack slot id for offset -104 (0xffffff98) (frame) = 5.
```
display:
```
Stack slot id for offset -104 (-0x68) (frame) = 5.
```
This makes it easier to search for or visually match the
`-0x68` against asm like:
```
mov gword ptr [rbp-68H], rax
```
Kenneth Pouncey [Fri, 11 Dec 2020 04:37:16 +0000 (05:37 +0100)]
[browser][tests][outerloop] Standup OuterLoop WebSocket tests (#45470)
* [browser][tests][outerloop] Standup OuterLoop tests
* Reference issue not PR
* Add active issue for CloseDescription failing tests
* Add active issue for failures for invalid close codes failing tests
* Add active issue for failures when specifying subprotocol by URI Query
* Add active issue for Uncaught RuntimeError: memory access out of bounds
* Remove ActiveIssue and initialize with specific platform detection code
- Removes the necessity of setting up a new test.
- May want to go back to ActiveIssue for tracking purposes.
* Add ActiveIssue for CloseOutputAsync
* Add ActiveIssue for AbortTests
* Remove ActiveIssue and initialize with specific platform detection code
- Removes the necessity of setting up a new test.
- May want to go back to ActiveIssue for tracking purposes.
* Remove Active issue as it was fixed.
* Add ActiveIssue for CancelTests that is part of the Abort tests changes
* Update src/libraries/System.Net.WebSockets.Client/tests/ClientWebSocketOptionsTests.cs
Point to WebProxy support issue
Co-authored-by: Larry Ewing <lewing@microsoft.com>
Eric Erhardt [Fri, 11 Dec 2020 04:01:59 +0000 (22:01 -0600)]
Fix a few spelling mistakes (#45930)
paramterless => parameterless
Polymorhic => Polymorphic
Sergey Andreenko [Fri, 11 Dec 2020 03:07:49 +0000 (19:07 -0800)]
Make all pipelines triggerable via '/azp run name'. (#45931)
Brian Sullivan [Fri, 11 Dec 2020 02:37:54 +0000 (18:37 -0800)]
Fix for Issue 44762 (#45134)
* Fix for Issue 44762
Treat both SIMD and HWIntrinsic Memory Loads as Byref Exposed Loads that depend upon the global byref memory state.
In liveness added byref use for SIMD Memory Loads
Corrected the comment for GenTreeHWIntrinsic::OperIsMemoryLoadOrStore()
Added test case Runtime_44762.cs
* Moved the check for HWINTRINSIC node that have more than two args and/or use GT_LIST
Eric Erhardt [Fri, 11 Dec 2020 02:02:34 +0000 (20:02 -0600)]
P/Invoke function returning SafeSocketHandle throws MissingMethodException (#45911)
* P/Invoke function returning SafeSocketHandle throws MissingMethodException
The ILLinker is trimming the private default constructors of SafeHandle classes if they are not used by the library. Adding an XML descriptor file to preserve the private constructors of these SafeHandles so they can be used in P/Invokes in external code.
Fix #45633
Suppress P/Invoke test on Browser
Santiago Fernandez Madero [Fri, 11 Dec 2020 02:01:16 +0000 (18:01 -0800)]
Add workaround to remove runtime pack from download to use local runtime pack (#45922)
* Add workaround to remove runtime pack from download to use local runtime pack
* PR Feedback
* Add support for full msbuild
Eric Erhardt [Fri, 11 Dec 2020 01:59:30 +0000 (19:59 -0600)]
Remove ILLink warnings from empty console app (#45808)
* Remove ILLink warnings from empty console app
Also clean up some previously addressed warnings in the suppressions xml file.
Contributes to #45623
* Add trimming test for inherited attributes.
Santiago Fernandez Madero [Fri, 11 Dec 2020 01:05:16 +0000 (17:05 -0800)]
Update ServiceModel version on compat pack (#45904)
Koundinya Veluri [Fri, 11 Dec 2020 00:57:19 +0000 (16:57 -0800)]
Do YieldProcessor normalization in preemptive GC mode (#45913)
- The YieldProcessor normalization takes ~10 ms. In the finalizer thread start function, `Thread::HasStarted()` puts the thread into cooperative GC mode. Switch to preemptive GC mode for the normalization.
Fixes https://github.com/dotnet/runtime/issues/42515
Juan Hoyos [Fri, 11 Dec 2020 00:11:17 +0000 (16:11 -0800)]
Fix debugger attach+read on Linux 32 bit (#45506)
The debug PAL was undefining of macros that cause 32 bit POSIX syscalls to use 64 bit offsets. The offsets are defined in a signed manner, which means that any address over the 2GB range that we use will result in an incoherent call to pread and similar APIs. This has been the case for years, but it only affected ARMv7 systems as they are currently our only Unix 32 bit target. Customers started reporting being unable to attach to their processes using the debugger. The bug became a blocker as we changed the debugger startup path to use symbol exports in CoreCLR for our single file story, meaning that the DAC no longer used a compile time header but an export. That read resulted in an access on the >2GB virtual memory region when run in a device with enough memory available with a signed address.
Santiago Fernandez Madero [Thu, 10 Dec 2020 23:51:21 +0000 (15:51 -0800)]
Move iOS tests to staging pipeline (#45903)
Larry Ewing [Thu, 10 Dec 2020 22:31:19 +0000 (16:31 -0600)]
Rename file (#45923)
Steve Pfister [Thu, 10 Dec 2020 21:38:36 +0000 (16:38 -0500)]
Use FORCE_AOT define in the MonoAOTCompiler Task (#45898)
Fixes mono_aot_register_module not being found when AOT'ing.
monojenkins [Thu, 10 Dec 2020 21:06:15 +0000 (16:06 -0500)]
[reflection] Don't get parameter default values for wrapper methods (#45018)
The lookup assumes that the method came from metadata, which is not the case
for wrappers.
Fixes mono/mono#20600
Co-authored-by: lambdageek <lambdageek@users.noreply.github.com>
Viktor Hofer [Thu, 10 Dec 2020 20:05:34 +0000 (21:05 +0100)]
Use ridless PNSE configurations where applicable (#44230)
For projects that require platform support we should use a rid-less
configuration, i.e. $(NetCoreAppCurrent). That guarantees that PNSE
assemblies are available for new configurations that aren't represented
in the defined project's TargetFrameworks. This is especially important
for inbox assemblies.
I left the following assemblies as is as they are partial PNSEs:
- System.Security.Cryptography.Algorithms
- System.Net.NameResolution
System.Net.Requests and System.Net.WebClient are IL only but
intentionally marked as throwing on Browser.
Andrius [Thu, 10 Dec 2020 17:57:19 +0000 (19:57 +0200)]
Simplified MailAddressDisplayNameTest (#39625) (#39929)
* Simplified MailAddressDisplayNameTest (#39625)
* Address PR feedback
* Refactored tests
Co-authored-by: Andrius Lukočius <andrius.lukocius@gmail.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Marie Píchová <mapichov@microsoft.com>
Steve MacLean [Thu, 10 Dec 2020 16:10:10 +0000 (11:10 -0500)]
Fix macos-arm64 corrupted adhoc signature (#45860)
XCode linker adhoc signs binaries. Stripping the symbols
corrupts the signature. Replace the adhoc signature
after stripping the symbols.
Viktor Hofer [Thu, 10 Dec 2020 15:54:41 +0000 (16:54 +0100)]
Add Known* items to the local targeting pack resolution (#45874)
* Add Known* items to the local targeting pack resolution
Add the required Known* items so that the ProcessFrameworkReferences
logic in the SDK knows about these and is able to create Resolved* items
that we later update to point to our local packs.
This is required when building with an SDK that doesn't support the
project's TargetFramework yet.
Steve MacLean [Thu, 10 Dec 2020 15:54:28 +0000 (10:54 -0500)]
Fix SOS clrstack w^x issues on osx-arm64 (#45849)
* Fix clrstack w^x issues on osx-arm64
Viktor Hofer [Thu, 10 Dec 2020 15:08:39 +0000 (16:08 +0100)]
Create README.md for src/tasks (#45754)
Mitchell Hwang [Thu, 10 Dec 2020 14:45:05 +0000 (09:45 -0500)]
[wasm] Use dotnet-serve in Wasm Browser Sample (#45128)
* [wasm] Use dotnet serve in wasm browser sample
* [wasm] Remove wasm browser python server
* Check for global dotnet-serve
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Adeel Mujahid [Thu, 10 Dec 2020 13:52:12 +0000 (15:52 +0200)]
Aggregate adjacent memory sizes regardless of r+x (#45401)
* Aggregate adjacent memory sizes regardless of r+x
When adjacent memory ranges of same module differ by permission, the
line should not be skipped due to the lack of readability/executability
flags.
* Account for rows preceding the first one with r+w
* Account for last line
* Update src/libraries/Common/src/Interop/Linux/procfs/Interop.ProcFsStat.ParseMapModules.cs
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
* Update src/libraries/Common/src/Interop/Linux/procfs/Interop.ProcFsStat.ParseMapModules.cs
* Move module flag assignment after the final commit
* Improve readibility of moduleHasReadAndExecFlags
* Update src/libraries/Common/src/Interop/Linux/procfs/Interop.ProcFsStat.ParseMapModules.cs
* Update src/libraries/Common/src/Interop/Linux/procfs/Interop.ProcFsStat.ParseMapModules.cs
* Decouple line parsing from ProcessModule parsing
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
monojenkins [Thu, 10 Dec 2020 12:24:19 +0000 (07:24 -0500)]
Fix debugger late attach, suspend=n. (#45834)
Runtime workaround fix for incorrect VM resume when suspend policy none is in use. Real fix is in debugger-libs, mono/debugger-libs#264 but until that lands in VS installer (and tooling has been upgraded to VS2019) this workaround will prevent the error to be propagated back to client and VM will make sure the correct suspend state is maintained.
Fix also makes sure logging done within debugger engine/agent is not directly send to stdout/stderr on platforms where there is no console (or alternative console).
This is done to prevent scenarios where stdout/stderr has been redirected to for example the debug client, but logging into the same streams as part of debugger agent implementation will trigger new messages to redirect, flooding the message queue and suspending/resuming the VM for each message. This PR makes sure it is possible to get all logging done in debugger agent/engine (not just debug logging) into an alternative log implementation on platforms needing it.
Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
Ankit Jain [Thu, 10 Dec 2020 11:47:43 +0000 (06:47 -0500)]
[wasm] Add $(MSBUILD_ARGS) to more build targets (#45865)
This can be used to pass additional msbuild arguments when building, or running wasm make targets.
For example: `make -C src/mono/wasm run-tests-System.Collections.Concurrent MSBUILD_ARGS="/p:foo=bar /fl /flp:v=diag"`
Ankit Jain [Thu, 10 Dec 2020 10:56:05 +0000 (05:56 -0500)]
[wasm] Add a README.md (#45863)
* [wasm] Add a README.md
* add MSBUILD_ARGS to readme
* [wasm] README.md - add info about some env vars used
* README.md: add a gotcha about EMSDK_PATH
Sung Yoon Whang [Thu, 10 Dec 2020 05:55:10 +0000 (21:55 -0800)]
Disable diagnosticport test until further investigation (#45878)
* Disable diagnosticport test
* typo
* whitespace'
Egor Chesakov [Thu, 10 Dec 2020 04:40:28 +0000 (20:40 -0800)]
Fix regression with tail.callvirt transformation to helper call (#45527)
* Add regression test for https://github.com/dotnet/runtime/issues/45250
* Add VirtCallThisHasSideEffects to more_tailcalls.cs and update more_tailcalls.il
* Spill "this" if needed to avoid evaluating it twice when "this" is used to compute the target function pointer in morph.cpp
Mac Clayton [Thu, 10 Dec 2020 04:35:58 +0000 (22:35 -0600)]
Fix vswhere path to work with spaces by surrounding it with quotes (#44913)
Some local .nuget paths may contain spaces (ex. C:\Users\First
Last\.nuget). Surrounding it with quotes allows the command path to have
spaces
Kenneth Pouncey [Thu, 10 Dec 2020 04:24:51 +0000 (05:24 +0100)]
[browser][test] Add make target to run the outerloop tests on browser (#45465)
- Makes it easier to run these tests
- make target `run-browser-outerloop-tests-%:`
Mitchell Hwang [Thu, 10 Dec 2020 04:00:18 +0000 (23:00 -0500)]
[wasm] Remove System.Reflection.MetadataLoadContext from WasmAppBuilder (#44751)
Separates the assembly and reference assembly loading process from the WasmAppBuilder into a separate task in WasmLoadAssembliesAndReferences.cs
Refactors that loading process to take in assemblies, search paths, and the option to skip missing referenced assemblies, thereby reducing the original complexity with respect to MainAssembly, ExtraAssemblies and having at least one of Assemblies or AssemblySearchPaths
Applies the updated WasmAppBuilder and WasmLoadAssembliesAndReferences tasks to the library tests (tests.mobile.targets), browser sample (WasmSample.csproj), debugger-tests (debugger-tests.csproj), and the runtime tests (WasmTestRunner.proj)
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
Sergey Andreenko [Thu, 10 Dec 2020 03:06:27 +0000 (19:06 -0800)]
Delete an old outdated test. (#45866)
Kunal Pathak [Thu, 10 Dec 2020 03:02:19 +0000 (19:02 -0800)]
Move test to right folder (#45848)
Bruce Forstall [Thu, 10 Dec 2020 02:28:37 +0000 (18:28 -0800)]
Add switches for more general altjit and cross-target commands (#45605)
Add `-mch_arch` to specify which architecture to use when downloading
MCH files from Azure Storage. The idea is that you can specify to
download, say, arm64 MCH files and then run them on x64 by also
specifying an arm64 cross-targeting JIT. Defaults to `-target_arch`
(which itself defaults to the host architecture).
Add `-jit` to allow specifying the JIT name to use. Do this instead of
`-altjit`.
Change `-altjit` to `--altjit`. It no longer takes a JIT name; use `-jit`
instead for that purpose. Now, `--altjit` just sets the altjit
variables.
Add `-target_arch` and `-target_os` to specify the cross-target of the JIT.
The `-target_arch`, in particular, is used to pass the `-target` argument
to SuperPMI, which it needs to know which disassembler to use.
So, for example, to run SuperPMI asm diffs with a Windows arm64 cross-JIT
on Windows x64, you might use:
```
py superpmi.py asmdiffs -jit clrjit_win_arm64_x64.dll -target_arch arm64
```
Unfortunately, these cross-JIT scenarios have other problems right now,
but this scripting is a start.
Santiago Fernandez Madero [Thu, 10 Dec 2020 02:21:29 +0000 (18:21 -0800)]
Add logging to open ssl uninstall (#45855)
* Add logging to open ssl uninstall
* Fix syntax
Simon Nattress [Thu, 10 Dec 2020 00:34:05 +0000 (16:34 -0800)]
Remove unused CORINFO_CALLINFO_ATYPICAL_CALLSITE flag (#45859)
`CORINFO_CALLINFO_ATYPICAL_CALLSITE` was added a few years ago to support code generators that don't emit calls via `call [rel32]` form. It is now unused (LLILC was the only consumer) so we can remove it.
Bruce Forstall [Thu, 10 Dec 2020 00:17:40 +0000 (16:17 -0800)]
Fix dump of GC vars at call sites (#45815)
GC vars are handled specially at call sites. In particular,
kills happen at the call site address, meaning before the
call. They JIT dump was displaying the kill after the call,
which is confusing, and different from all the other cases
of displaying GC refs. Fix this so the kills are properly
displayed before the call site.
Example diff:
```
call System.Collections.Immutable.ImmutableArray:ToImmutableArray(System.Collections.Generic.IEnumerable`1[__Canon]):System.Collections.Immutable.ImmutableArray`1[__Canon]
; gcrRegs -[rdx r14]
; GC ptr vars -{V21}
; gcr arg pop 0
=>
; GC ptr vars -{V21}
call System.Collections.Immutable.ImmutableArray:ToImmutableArray(System.Collections.Generic.IEnumerable`1[__Canon]):System.Collections.Immutable.ImmutableArray`1[__Canon]
; gcrRegs -[rdx r14]
; gcr arg pop 0
```
Bruce Forstall [Thu, 10 Dec 2020 00:15:47 +0000 (16:15 -0800)]
Don't batch the SuperPMI collection job (#45861)
The SuperPMI collection job gets triggered whenever the JIT-EE GUID changes.
We need a collection every time that happens. If, in the unlikely circumstance,
two GUID changes happen in quick succession, we don't want to skip
one due to batching, as that would leave us a window where there are
no collections corresponding to a range of commits.
Viktor Hofer [Wed, 9 Dec 2020 23:54:05 +0000 (00:54 +0100)]
Fix MicrosoftNetCoreAppRefPackRefDir calculation (#45864)
MicrosoftNetCoreAppRefPackRefDir was redefined on NetCoreAppCurrent and relied on the ResolvedFrameworkReference item which isn't available when an SDK is used that doesn't support the current TFM yet. Redefining MicrosoftNetCoreAppRefPackRefDir on NetCoreAppCurrent isn't necessary and will stop the wrong calculation of the property.
Aaron Robinson [Wed, 9 Dec 2020 23:17:18 +0000 (15:17 -0800)]
Fix ComWrappers interaction with the IReferenceTracker interface (#45624)
* Fix ComWrappers' leak in aggregation scenario
Convert Managed Object Wrapper (MOW) GC Handle from HNDTYPE_STRONG
to HNDTYPE_REFCOUNTED.
Add new CreateObjectFlags value to indicate aggregation during
CreateObject scenario. This isn't reflected in the managed
.NET 5 API surface area.
In the ReferenceTracker scenario the ref count may never reach 0 so
the MOW destructor needs to handle that case. The previous expectation
for a null in the destructor was based on the STRONG handle logic.
During aggregation scenarios involving ReferenceTracker, ownership
of the inner is now the responsibility of the runtime.
* ComWrappers tests
Matt Galbraith [Wed, 9 Dec 2020 22:30:44 +0000 (14:30 -0800)]
Upgrade pip before installing azure-storage-blob (#45869)
A breaking change in PEP517 for installing the dependencies of azure-storage-blob means older PIPs cannot install this. It's good hygiene (and quick) to always update PIP
monojenkins [Wed, 9 Dec 2020 22:23:24 +0000 (17:23 -0500)]
Use explicit arithmetic checks in the amd64 watchOS simulator. (#45769)
Fixes https://github.com/mono/mono/issues/20632.
Co-authored-by: imhameed <imhameed@users.noreply.github.com>
Viktor Hofer [Wed, 9 Dec 2020 21:49:58 +0000 (22:49 +0100)]
Set GenerateErrorForMissingTargetingPacks to false (#45858)
Larry Ewing [Wed, 9 Dec 2020 21:48:09 +0000 (15:48 -0600)]
expand console arguments when writing them out (#44632)
* expand cosole arguments when writing them out
* Update src/mono/wasm/debugger/DebuggerTestSuite/Support.cs
* Update src/mono/wasm/debugger/DebuggerTestSuite/Support.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
Eric Erhardt [Wed, 9 Dec 2020 21:39:07 +0000 (15:39 -0600)]
Address ILLink warning in InteropServices.JavaScript (#45727)
* Address ILLink warning in InteropServices.JavaScript
In order to make the code trimming-compatible, a slight behavior change was made. The SetupJSContinuation method will only get the Result of Task<TResult> objects. If an object derives from the base Task class, and defines its own Result property, SetupJSContinuation will no longer respect that property.
This was done so the behavior remains consistent between trimmed and untrimmed applications.
Contributes to #45623
dotnet-maestro[bot] [Wed, 9 Dec 2020 20:53:35 +0000 (20:53 +0000)]
[master] Update dependencies from dotnet/arcade (#45836)
[master] Update dependencies from dotnet/arcade
Zoltan Varga [Wed, 9 Dec 2020 20:21:33 +0000 (15:21 -0500)]
Build wasm with some extra flags so c++ EH works. Remove obsolete wasm options. (#45817)
Kunal Pathak [Wed, 9 Dec 2020 18:30:46 +0000 (10:30 -0800)]
Use Windows.10.Amd64.X86 to run superpmi (#45732)
* Use dedicated queue Windows.10.Amd64.CoreAppCompat.Pr to run superpmi job
* Use correct queue name
Patrick Kranz [Wed, 9 Dec 2020 18:30:23 +0000 (19:30 +0100)]
Added Nullable Anotation to XmlResolver Property of XmlDocument (#45767)
* Added Nullable Anotation to XmlResolver Property of XmlDocument
* Add nullable anotation on ref assembly
Co-authored-by: Patrick Kranz <p.kranz@seeburger.de>
Alexander Köplinger [Wed, 9 Dec 2020 17:40:50 +0000 (18:40 +0100)]
Remove hardcoded paths to *AppBuilder task dlls (#45838)
Now that the msbuild properties for the paths to these dlls are in the root Directory.Build.props we can remove the hardcoded paths.
Alexander Köplinger [Wed, 9 Dec 2020 17:09:36 +0000 (18:09 +0100)]
Update buildtriage.md with a few fixed and new rotation assignments (#45845)
Alexander Köplinger [Wed, 9 Dec 2020 16:34:50 +0000 (17:34 +0100)]
Allow building iOS device builds without codesigning (#45837)
This will be required for building on CI and can be enabled by passing `-` to the DevTeamProvisioning msbuild property.
Eric StJohn [Wed, 9 Dec 2020 16:27:38 +0000 (08:27 -0800)]
Fix emitted IgnoreAccessChecksToAttribute.AssemblyName property (#45029)
Previously this would emit an empty property.
```
.property instance string AssemblyName()
{
}
```
Now it correctly emits a property with getter.
```
.property instance string AssemblyName()
{
.get instance string System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute::get_AssemblyName()
}
```
dotnet-maestro[bot] [Wed, 9 Dec 2020 13:20:52 +0000 (14:20 +0100)]
[master] Update dependencies from mono/linker (#45734)
* Update dependencies from https://github.com/mono/linker build
20201207.3
Microsoft.NET.ILLink.Tasks
From Version 6.0.0-alpha.1.20607.2 -> To Version 6.0.0-alpha.1.20607.3
* Update dependencies from https://github.com/mono/linker build
20201208.1
Microsoft.NET.ILLink.Tasks
From Version 6.0.0-alpha.1.20607.2 -> To Version 6.0.0-alpha.1.20608.1
* Update dependencies from https://github.com/mono/linker build
20201208.2
Microsoft.NET.ILLink.Tasks
From Version 6.0.0-alpha.1.20607.2 -> To Version 6.0.0-alpha.1.20608.2
* Update dependencies from https://github.com/mono/linker build
20201208.3
Microsoft.NET.ILLink.Tasks
From Version 6.0.0-alpha.1.20607.2 -> To Version 6.0.0-alpha.1.20608.3
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
dotnet-maestro[bot] [Wed, 9 Dec 2020 13:20:38 +0000 (13:20 +0000)]
[master] Update dependencies from dotnet/icu dotnet/arcade dotnet/runtime-assets dotnet/llvm-project (#45758)
[master] Update dependencies from dotnet/icu dotnet/arcade dotnet/runtime-assets dotnet/llvm-project
monojenkins [Wed, 9 Dec 2020 13:10:19 +0000 (08:10 -0500)]
Enable YMM context support on Windows. (#45829)
Controlled using MONO_HAVE_SIMD_REG_AVX define, disabled by default.
Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
monojenkins [Wed, 9 Dec 2020 13:06:50 +0000 (08:06 -0500)]
Add support for external icalls not using a wrapper. (#45766)
Add support to register an external icall getting minimal runtime overhead when called. An icall that can be used without a wrapper needs to follow specific rules in order to correctly collaborate with runtime. All functions are currently internal only and only accessible by runtime or embedders using static linking and fully acknowledge that this is not an optimization available as a public API.
Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
Alexander Köplinger [Wed, 9 Dec 2020 12:57:08 +0000 (13:57 +0100)]
Remove autotools dependencies from the build requirements (#45825)
Now that Mono has switched to CMake we no longer need the autoconf, automake and libtool build dependencies.
Adam Sitnik [Wed, 9 Dec 2020 12:39:25 +0000 (13:39 +0100)]
Remove some allocations related to storing CacheEntry scopes (#45563)
* CacheEntryStack._previous is never used so it can be removed
* remove CacheEntryStack and ScopeLease as it's enough to have just AsyncLocal<CacheEntry>
* the first Entry created has no previous entry, so the field is set to null
* Update src/libraries/Microsoft.Extensions.Caching.Memory/src/CacheEntryHelper.cs
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
FireCubeStudios [Wed, 9 Dec 2020 11:11:49 +0000 (12:11 +0100)]
Added Rebecca Purple (#42785)
* Added Rebecca Purple
Added Rebecca Purple color to System.Drawing.Color
Added RebeccaPurple (#663399) to KnownColorNames.cs, Color.cs, KnownColortable.cs and KnownColor.cs
#38244
* Added RebeccaPurple to UnitTest and Ref
Added RebeccaPurple color to the UnitTest and to the ref
Added RebeccaPurple a,r,g,b value to unittest in System.Drawing.Primitive. Also updated the ref.
#38244
* Added RebeccaPurple to the system.drawing.primitive ref
Added RebeccaPurple color to the System.Drawing.Primitive ref file.
"RebeccaPurple = 141" was added. I updated the other colors to their previous number by one.
#38244
* Reverted breaking changes in drawing.primitive ref
Reverted the breaking changes in system.drawing.primivite ref.
the numbers of colors were restored back and i removed rebeccapurple.
#38244
* Added RebeccaPurple to the ref
I added rebeccapurple to the ref file with value 175.
RebeccaPurple was added with value 175 to the bottom of the enum.
#38244
* Added rebeccapurple to bottom of Knowncolors.cs
I added rebeccapurple to theend of the file
RebeccaPurple was added to the bottom of the enum.
#38244
* Added Rebecca Purple
Added Rebecca Purple color to System.Drawing.Color
Added RebeccaPurple (#663399) to KnownColorNames.cs, Color.cs, KnownColortable.cs and KnownColor.cs
#38244
* Added RebeccaPurple to UnitTest and Ref
Added RebeccaPurple color to the UnitTest and to the ref
Added RebeccaPurple a,r,g,b value to unittest in System.Drawing.Primitive. Also updated the ref.
#38244
* Added RebeccaPurple to the system.drawing.primitive ref
Added RebeccaPurple color to the System.Drawing.Primitive ref file.
"RebeccaPurple = 141" was added. I updated the other colors to their previous number by one.
#38244
* Reverted breaking changes in drawing.primitive ref
Reverted the breaking changes in system.drawing.primivite ref.
the numbers of colors were restored back and i removed rebeccapurple.
#38244
* Added RebeccaPurple to the ref
I added rebeccapurple to the ref file with value 175.
RebeccaPurple was added with value 175 to the bottom of the enum.
#38244
* Added rebeccapurple to bottom of Knowncolors.cs
I added rebeccapurple to theend of the file
RebeccaPurple was added to the bottom of the enum.
#38244
* Fixed some of the requested changes with ordering of Enum
Removed a comment in "knowncolor.cs" and moved rebeccapurple to match enum order.
moved rebeccapurple in knowncolortable.cs, color.cs, and knowncolornames.cs
#38244
* Removed duplicates and added a comment
Added a comment in KnownColorNames.cs stating that the array follows order of knowncolor enum. Also removed duplicate rebeccapurple entries
#38244
* Fixing up the handling of RebeccaPurple
* Added a comment to explain changes
Added a comment in KnownColortable.cs stating that the code accounts for the system colors and new rebeccapurple color
#38244
Co-authored-by: Tanner Gooding <tagoo@outlook.com>
Sung Yoon Whang [Wed, 9 Dec 2020 08:09:35 +0000 (00:09 -0800)]
Fix EventPipeSession::WriteEventSuspend (#45672)
* wait for session write to finish in EventPipeBufferManager
* fix comment
* fix typo
* remove yieldwhile
Kenneth Pouncey [Wed, 9 Dec 2020 04:58:14 +0000 (05:58 +0100)]
[browser][websocket] Throw OperationCanceledException on connect (#44722)
* [browser][websocket] Throw OperationCanceledException on connect if cancel was requested before.
* try to handle cancellation in connect stage
* Add new test for inflight connect
- Add new supported property for skipping particular tests when Browser is detected and DOM is detected.
* first pass at throwing pnse when websocket is missing
* Address review comment
* Make the platform check explicit
* Revert CreateDefaultOptions change
* Address review comment
Co-authored-by: Larry Ewing <lewing@microsoft.com>
Santiago Fernandez Madero [Wed, 9 Dec 2020 04:46:44 +0000 (20:46 -0800)]
Disable long running Socket test on Mono (#45811)
Santiago Fernandez Madero [Wed, 9 Dec 2020 01:45:52 +0000 (17:45 -0800)]
Add workarounds for brew on old OSX images (#45802)
* Add workarounds for brew on old OSX images
* Don't remove openssl directories
Andy Ayers [Wed, 9 Dec 2020 01:11:46 +0000 (17:11 -0800)]
JIT: remove early prop's type propagation (#45655)
This doesn't do any actual propagation, so remove it and the associated
tracking flags.
Jeremy Koritzinsky [Wed, 9 Dec 2020 00:43:08 +0000 (16:43 -0800)]
Add a blurb on the x86 calling convention to clr-abi.md (#45807)
Co-authored-by: Sergey Andreenko <seandree@microsoft.com>
Dan Moseley [Tue, 8 Dec 2020 23:58:11 +0000 (15:58 -0800)]
Update using-dotnet-cli.md (#45717)
* Update using-dotnet-cli.md
* Update using-dotnet-cli.md
Change versions to 6.0
* Update using-dotnet-cli.md
* Update using-dotnet-cli.md
* Update using-dotnet-cli.md
* Update using-dotnet-cli.md
Vladimir Sadov [Tue, 8 Dec 2020 23:50:10 +0000 (15:50 -0800)]
renaming `clrcompression` --> `System.IO.Compression.Native` (#45713)
* renaming `clrcompression` --> `System.IO.Compression.Native`
* rename `clrcompression.def` file
* exclude `System.*.Native.dll` when creating managed shims
* static library should be `System.IO.Compression.Native.lib` on Windows. Same as Globalization - without `lib` prefix
* revert change to the resource string in tests
* move consts to src/Interop, remove `lib` prefix on Windows
* Delete what used to be System.IO.Compression.clrcompression package
* Preserve old PlatformManifestFileEntry for clrcompression.dll
* partially revert the src\Interop change
* Adjust projects for removal of `Interop\Interop.Libraries.cs`
revert 1
* Undo entire System.IO.Compression.csproj to get rid of an invisible edit.
Eric Erhardt [Tue, 8 Dec 2020 23:33:56 +0000 (17:33 -0600)]
Ensure XslCompiledTransform works with TrimMode=link (#45522)
Resolve ILLinker warnings in Xml.Xsl in order to make a basic Xslt scenario work.
Fix #45393
Eric Erhardt [Tue, 8 Dec 2020 23:32:02 +0000 (17:32 -0600)]
Address remaining Ref.Emit ILLink warnings in Mono. (#45723)
* Address remaining Ref.Emit ILLink warnings in Mono.
Contributes to #45623
* Remove mono suppressions file from illink-sharedframework.targets
monojenkins [Tue, 8 Dec 2020 22:03:02 +0000 (17:03 -0500)]
[aot] Don't force gsharedvt to be enabled in llvmonly+interp mode. (#45687)
Co-authored-by: vargaz <vargaz@users.noreply.github.com>
Jan Kotas [Tue, 8 Dec 2020 20:16:36 +0000 (12:16 -0800)]
Simplify devirtualization in crossgen2 (#45744)
Eric StJohn [Tue, 8 Dec 2020 19:23:00 +0000 (11:23 -0800)]
Update package baseline for 5.0.1 (#45775)
Zoltan Varga [Tue, 8 Dec 2020 19:14:56 +0000 (14:14 -0500)]
Add support for MONO_TYPE_FNPTR to aot. (#45616)
Fixes https://github.com/dotnet/runtime/issues/45548.
Jan Kotas [Tue, 8 Dec 2020 18:40:17 +0000 (10:40 -0800)]
Find&Replace coreclr/src -> coreclr (#45761)
Anton Firszov [Tue, 8 Dec 2020 18:09:03 +0000 (19:09 +0100)]
WinHttpHandler: apply [SupportedOSPlatform("windows10.0.19041")] on TcpKeepAlive properties (#45494)
WINHTTP_OPTION_TCP_KEEPALIVE is only available since the May 2020 Update, so it's reasonable to decorate the TcpKeepalive API with [SupportedOSPlatform]
monojenkins [Tue, 8 Dec 2020 17:48:04 +0000 (12:48 -0500)]
Fix LLVM link issues when compiling static library on Windows. (#45752)
Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
Viktor Hofer [Tue, 8 Dec 2020 15:24:24 +0000 (16:24 +0100)]
Add Microsoft StrongNameKey back to System.Composition* (#45756)
Viktor Hofer [Tue, 8 Dec 2020 12:31:52 +0000 (13:31 +0100)]
Move msbuild tasks into src folder and delete dead code (#45722)
* Move tools-local\tasks to src\tasks
* Delete dead task code
* nit installer.tasks.csproj changes
* Remove mobile.tasks intermediate folder
dotnet-maestro[bot] [Tue, 8 Dec 2020 10:34:03 +0000 (10:34 +0000)]
Update dependencies from https://github.com/dotnet/xharness build
20201207.2 (#45726)
[master] Update dependencies from dotnet/xharness