platform/upstream/dotnet/runtime.git
2 years agoFix the compilation error (#56889)
Kunal Pathak [Thu, 5 Aug 2021 11:20:17 +0000 (04:20 -0700)]
Fix the compilation error (#56889)

2 years ago[wasm][debugger] Ensure debugger is disabled (#56885)
Jérôme Laban [Thu, 5 Aug 2021 10:52:55 +0000 (06:52 -0400)]
[wasm][debugger] Ensure debugger is disabled (#56885)

2 years agoFix illumos build regressions (#55916)
Adeel Mujahid [Thu, 5 Aug 2021 09:09:59 +0000 (12:09 +0300)]
Fix illumos build regressions (#55916)

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
2 years agoReplace all remaining pkgprojs with NuGet Pack task (#56712)
Viktor Hofer [Thu, 5 Aug 2021 09:03:23 +0000 (11:03 +0200)]
Replace all remaining pkgprojs with NuGet Pack task (#56712)

* Runtime specific and doc file packaging fixes

* Replace all remaining pkgprojs with NuGet Pack task

* Avoid NuGet/Home/issues/10368

* Update PackageValidation package to latest

2 years agoFix lock during SslStream renegotiation request (#56470)
Jan Jahoda [Thu, 5 Aug 2021 08:53:58 +0000 (10:53 +0200)]
Fix lock during SslStream renegotiation request (#56470)

* Change lock and buffer test order

* revert _nestedAuth clearing

* Clear nested lock

* Remove ability to renegotiate again when fail

2 years agoMake typesystem tests anycpu (#56881)
David Wrighton [Thu, 5 Aug 2021 07:20:54 +0000 (00:20 -0700)]
Make typesystem tests anycpu (#56881)

- Allows running the -test switch with architectures other than the machine local architecture

Fixes #56734

2 years agoEnsure FileStream.Position is correct after a failed|cancelled WriteAsync attempt...
Adam Sitnik [Thu, 5 Aug 2021 05:56:29 +0000 (07:56 +0200)]
Ensure FileStream.Position is correct after a failed|cancelled WriteAsync attempt (#56716)

2 years agoRemove some Linq usages in ComponentModel.Annotations (#56753)
Eric Erhardt [Thu, 5 Aug 2021 03:40:07 +0000 (22:40 -0500)]
Remove some Linq usages in ComponentModel.Annotations (#56753)

* Remove some Linq usages in ComponentModel.Annotations

Contributes to #56631

* PR feedback

* fixup

2 years agoEnable WASM AOT microbenchmark run (#55353)
Alicia Li [Thu, 5 Aug 2021 03:00:15 +0000 (20:00 -0700)]
Enable WASM AOT microbenchmark run (#55353)

* bring up WASM AOT microbenchmarks run

* bring up WASM AOT microbenchmarks run

* adding diagnostice log for testing

* commend out some jobs while testing to save lab run resource

* commend out some jobs while testing to save lab run resource

* Add WASM AOT in not scheduled run

* Only run selected jobs

* add "ls -l" to print out permission before calling performance-setup.sh

* add "ls -l" to print out permission before calling performance-setup.sh

* Add "--buildTimeout 3600" to benchmarkdotnet to extend default timeout time. Adjust -aotcompilermode format to "--aotcompilermode=wasm".

* Add "--buildTimeout 3600" to benchmarkdotnet to extend default timeout time. Adjust -aotcompilermode format to "--aotcompilermode=wasm".

* Correct runtimeSrcDir value

* Correct --runtimeSrcDir location to $HELIX_CORRELATION_PAYLOAD

* Correct --runtimeSrcDir location to $HELIX_CORRELATION_PAYLOAD

* Remove not used parameters in WASM AOT mode and  add temperary diagnostic info

* Remove not used parameters in WASM AOT mode and  add temperary diagnostic info

* make \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm to be the root directory of runtime repo source

* Only copy runtime repo source directory to helix payload when it's wasm aot

* Add diagnosic log for testing only

* omite unneeded runtime repo file from helix payload

* omite unneeded runtime repo file from helix payload

* use rsync instead of cp exclusion command since cp doesn't work with sub directory as expected.

* Add temp diagnostic logging, should be removed before PR.

* remove artifacts/obj from helix payload

* remove artifacts/obj from helix payload

* copy back helix job for diagnosis and silent rsync

* For testing only, clone performance repor alicial/hikeMicro-benchmark private branch, which contains copying back helix job folder for diagnosis

* enable rsync verbose for diagnosis

* add --keepfiles for wasm intepreter as well for diagnosis

* Remove temporary diagnostic code

* recover all the jobs in the pipeline

* recover all the jobs in the pipeline

* copy wasm build drop to the location that aot build expects

* using private perf branch to enable binlog for benchmarkdotnet for diagnosis

* comment out none wasm runs temporarily for testing only

* comment out none wasm runs temporarily for testing only

* add "--keepfiles" to keep diagnostic files

* fixed $wasm_dotnet_path/artifacts/BrowserWasm/artifacts path

* instead of copy, move $wasm_dotnet_path/artifacts/BrowserWasm/artifacts/* to save space

* benchmarkdotnet using --cli \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm/dotnet.sh instead

* benchmarkdotnet using --cli \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm/dotnet.sh instead

* add executable permission

* Enable other non run to compare

* Enable other non run to compare

* remove "--cli \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm/dotnet.sh"

* fixes per CR

* copy EMSDK_PATH to expected location in helix payload

* install emsdk

* fix emsdk path

* minor fix

* removed more not used files to reduce helix payload size

* remove more jobs for testing purpose

* Fix the download path

* Add BenchmarkDotNet sources to the payload

* Fix __download__ path

* set BenchmarkDotNetSources to use benchmarkdotnet built from source

* use benchmarkdotnet private branch:alicial/tempwasmaot for BenchmarkDotNetSources

* use benchmarkdonet private branch with BenchmarkDotNetSources option

* Debug prints

* Clone B.NET to different location

Fix rsync exclusion
Add more debug prints

* Move B.NET back, clone upstream B.NET

To avoid:

    [INFO] ERROR(S):
    [INFO]   Option 'BenchmarkDotNetSources' is unknown.

* Use my branch for performance repo

* Revert "set BenchmarkDotNetSources to use benchmarkdotnet built from source"

This reverts commit bccfadde684922c0440d928224c8e7ec7c220fe9.

To avoid:

    [INFO] ERROR(S):
    [INFO]   Option 'BenchmarkDotNetSources' is unknown.

* Disable one more job I missed in merge

* Switch back to nuget packages for BenchmarkDotNet

* tempararily use pr-alicias-branch to test new fixes

* [mono] Fix invalid memory write

Fixes https://github.com/dotnet/runtime/issues/56526 and probably also
https://github.com/dotnet/runtime/issues/53546

Allocate enough memory when `SIZEOF_REGISTER == 4`, so that code like

    defs [ins->dreg + 1] = NULL;
    defs [ins->dreg + 2] = NULL;

doesn't write after allocated range.

* [mono] Fix an uninitialized memory access in the ABCREM pass.

Detected by valgrind.

* clean up PR

* add missing param

* fix perf.yml and make wasm interpreter to be consistent with wasm AOT

* comment out more job for fast testing

* remove extra job

* exclude copying __download__ dir instead of delete it.

* add parameters.codeGenType

* fix aot javascriptengine

* correct livelibrariesbuildconfig from release to Release

* install emsdk before copy $source_directory

* add back all the temporarily commented out jobs in perf.yml

* clean up work around code

* minor clean up

* remove performance submodule

* switch back to use performance repo main branch

* add --quiet to git clone

Co-authored-by: Radek Doulik <radekdoulik@gmail.com>
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
2 years ago[wasm] System.Data.Tests - add debug info, to help with the test failure (#56838)
Ankit Jain [Thu, 5 Aug 2021 00:52:42 +0000 (20:52 -0400)]
[wasm] System.Data.Tests - add debug info, to help with the test failure (#56838)

`System.Data.Tests.AppDomainsAndFormatInfo.Bug55978` fails sometimes for
wasm:

```
Assert.Equal() Failure
Expected: 2
Actual:   3

Stack trace
   at System.Data.Tests.AppDomainsAndFormatInfo.Bug55978()
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
```

To debug the issue, this dumps some state when the test fails.

Issue: https://github.com/dotnet/runtime/issues/47968

2 years agoupdate and enable ReadOutstanding_ReadAborted_Throws test (#56839)
Tomas Weinfurt [Thu, 5 Aug 2021 00:26:15 +0000 (17:26 -0700)]
update and enable ReadOutstanding_ReadAborted_Throws test (#56839)

2 years agoRemove unnecessary $(llvmParameter) from installer build job (#56858)
Elinor Fung [Thu, 5 Aug 2021 00:13:35 +0000 (17:13 -0700)]
Remove unnecessary $(llvmParameter) from installer build job (#56858)

2 years ago56014 xml writer.create perf regression (#56524)
Steve Molloy [Wed, 4 Aug 2021 23:43:38 +0000 (16:43 -0700)]
56014 xml writer.create perf regression (#56524)

* Use non-indented XmlWriter to avoid perf hit.
* Add test for issue #46974 which was also fixed by original PR that caused this regression.

2 years agoEnable JIT\SIMD\Vector3Interop_r (#56803)
Egor Chesakov [Wed, 4 Aug 2021 23:05:52 +0000 (16:05 -0700)]
Enable JIT\SIMD\Vector3Interop_r (#56803)

2 years agoDisable a failing test and enable a couple fixed tests (#55529)
Fan Yang [Wed, 4 Aug 2021 22:37:34 +0000 (18:37 -0400)]
Disable a failing test and enable a couple fixed tests (#55529)

* Disable a failing test and enabling a couple fixed tests

* Update issue number

* Fix rebase

2 years agoenable Alpn_H3_Success test (#56818)
Tomas Weinfurt [Wed, 4 Aug 2021 22:20:34 +0000 (15:20 -0700)]
enable Alpn_H3_Success test (#56818)

* enable Alpn_H3_Success test

* update

2 years agoreenable a disabled test (#56841)
Manish Godse [Wed, 4 Aug 2021 20:15:18 +0000 (13:15 -0700)]
reenable a disabled test (#56841)

Now that a few intermittent issues have been fixed enabling this again.

2 years agoFix size regression in DependencyInjection (#56843)
Eric Erhardt [Wed, 4 Aug 2021 20:06:41 +0000 (15:06 -0500)]
Fix size regression in DependencyInjection (#56843)

With the new 6.0 TFM, we are no longer checking IsDynamicCodeCompiled to fall back to Reflection on Blazor WASM. Thus we are now using IL Ref Emit on WASM.

The issue was the #ifs were no longer correct for the new TFM. I've made the #ifs consistent across DI and DI.Abstractions such that the #ifs are for old TFMs and any new TFM will use the #else block.

Fix #56779

2 years agoFix stack overflow reporting from native code (#56774)
Jan Vorlicek [Wed, 4 Aug 2021 20:00:04 +0000 (22:00 +0200)]
Fix stack overflow reporting from native code (#56774)

* Fix stack overflow reporting from native code

When stack overflow happens in native code, the stack walker is unable
to walk the stack and we end up reporting no call stack at all.

This change fixes it by first unwinding the exception context to the first
managed frame and then letting the stack walker to walk the frames.

* Revert behavior for the Windows x86 case

2 years agoSet the cmake policy for CMP0066 and CMP0067 (#56811)
Tanner Gooding [Wed, 4 Aug 2021 19:28:25 +0000 (12:28 -0700)]
Set the cmake policy for CMP0066 and CMP0067 (#56811)

2 years agoRemove old fwlink from Obsolete messages and make message improvements (#56690)
Jeff Handley [Wed, 4 Aug 2021 18:58:10 +0000 (14:58 -0400)]
Remove old fwlink from Obsolete messages and make message improvements (#56690)

* Remove old fwlink from Obsolete messages and make message improvements

* Thorough review and update of Obsolete messages

* Cleanup

* Make messages about unsupported APIs more consistent

* Update RequiresUnreferencedCodeAttribute messages to be consistent between ref and src

* Cleanup

* Cleanup

* Use 'not supported' instead of 'no longer supported'

* Omit unnecessary error:false from Obsolete attributes. Fix message typo.

* Remove old comment

* PR feedback

2 years agoFix explicit layout validator memory alloc problems (#56757)
David Wrighton [Wed, 4 Aug 2021 18:57:03 +0000 (11:57 -0700)]
Fix explicit layout validator memory alloc problems (#56757)

The ExplicitLayoutValidator currently used an array of bytes one to one with the size of the layout of the class. However, we have some test cases for outrageously large explicit layout structures and classes which cause this approach to OOM in crossgen2.

The fix is to move to a data structure defined in terms of intervals. This is probably a bit slower, but it requires vastly less memory for pathological situations.

Fixes #55164
Fixes #53559

2 years ago[mono] Log a warning instead of crashing when encountering function pointer types...
Zoltan Varga [Wed, 4 Aug 2021 18:48:02 +0000 (14:48 -0400)]
[mono] Log a warning instead of crashing when encountering function pointer types in the wasm pinvoke generator. (#56837)

2 years agoMinor runtime test cleanup (#56833)
imhameed [Wed, 4 Aug 2021 15:40:46 +0000 (11:40 -0400)]
Minor runtime test cleanup (#56833)

Removes stray debug logging and removes a redundant branch.

See https://github.com/dotnet/runtime/pull/43954#discussion_r682420803 and https://github.com/dotnet/runtime/pull/43954#discussion_r682420941.

2 years ago[wasm] Build Wasm.Build.Tests only on the WBT job, on CI (#56769)
Ankit Jain [Wed, 4 Aug 2021 15:30:55 +0000 (11:30 -0400)]
[wasm] Build Wasm.Build.Tests only on the WBT job, on CI (#56769)

* [wasm] Build Wasm.Build.Tests only on the WBT job, on CI

* Update eng/pipelines/runtime.yml

Co-authored-by: Larry Ewing <lewing@microsoft.com>
* Address review feedback

Co-authored-by: Larry Ewing <lewing@microsoft.com>
2 years ago[interp] Retain trace during exception checkpoint (#56825)
Vlad Brezae [Wed, 4 Aug 2021 15:29:22 +0000 (18:29 +0300)]
[interp] Retain trace during exception checkpoint (#56825)

When an exception needs to cross a native boundary, it can be caught by the runtime invoke wrapper and this exception will end up as a pending exception. With JIT, the initial managed to native wrapper will check for a pending exception and will use a CEE_MONO_RETHROW opcode in order to preserve the stacktrace. With the interp we do the exception checkpoint outside of the native wrapper, and we need to do it in rethrow fashion (without clearing the original trace).

2 years agoUpdate dependencies from https://github.com/mono/linker build 20210803.3 (#56832)
dotnet-maestro[bot] [Wed, 4 Aug 2021 15:23:51 +0000 (10:23 -0500)]
Update dependencies from https://github.com/mono/linker build 20210803.3 (#56832)

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21402.2 -> To Version 6.0.100-preview.6.21403.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoFix build with Xcode 13 / MacOSX12.0.sdk (#56829)
Alexander Köplinger [Wed, 4 Aug 2021 14:19:07 +0000 (16:19 +0200)]
Fix build with Xcode 13 / MacOSX12.0.sdk (#56829)

The macOS 12 SDK bundled in Xcode 13 seems to contain a subset of icu headers now which means we're finding utypes.h in `Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/usr/include/unicode` now.
When compiling System.Globalization.Native however we run into this error because ucurr.h isn't included in MacOSX12.0.sdk:

```
  In file included from /Users/alexander/dev/runtime/src/libraries/Native/Unix/System.Globalization.Native/pal_casing.c:9:
  /Users/alexander/dev/runtime/src/libraries/Native/Unix/System.Globalization.Native/pal_icushim_internal.h:22:10: fatal error: 'unicode/ucurr.h' file not found
  #include <unicode/ucurr.h>
           ^~~~~~~~~~~~~~~~~
  1 error generated.
```

To workaround this check for ucurr.h in CMakeLists.txt instead so we continue to find ICU headers from Homebrew.

2 years ago[hot_reload] Allow benign Param table updates (#56800)
Aleksey Kliger (λgeek) [Wed, 4 Aug 2021 13:15:26 +0000 (09:15 -0400)]
[hot_reload] Allow benign Param table updates (#56800)

* bump hotreload-utils to one that uses the WatchHotReloadService

   necessary for producing nice deltas for code with lambdas

* allow benign param updates

   as long as the param name and sequence number stays the same, the edit is allowed.

* [enc] Add test of changes to lambda and enclosing method

2 years agoOnly decommit parts of regions and the mark array when memory is low. (#56730)
Peter Sollich [Wed, 4 Aug 2021 12:47:03 +0000 (14:47 +0200)]
Only decommit parts of regions and the mark array when memory is low. (#56730)

We'll decommit completely free regions if they exceed the budget, but as we'll use the available memory in regions *not* on the free list preferentially, it seems smarter to decommit the tail ends of these regions only when memory is low.

In a simple GCPerfSim Scenario (-tc 10 -tagb 1000 -tlgb 1 on a 10-core box) this made about a 10% difference in run time, the time saved is mainly in the OS - VirtualFree, VirtualAlloc, and KiPageFault.

2 years agoAdd SslApplicationProtocol.Http3 (#56775)
Bar Arnon [Wed, 4 Aug 2021 12:32:58 +0000 (15:32 +0300)]
Add SslApplicationProtocol.Http3 (#56775)

* Add SslApplicationProtocol.Http3

Fix #1293

* Add XML doc

* Reuse in Http3Connection

* Reuse in tests

* HTTP/3 has no negotiation

* Use SslApplicationProtocol.Http3.ToString() in tests

* Ascending order in ref

2 years agoFix MetricsEventSource tests (#56654)
Noah Falk [Wed, 4 Aug 2021 11:12:44 +0000 (04:12 -0700)]
Fix MetricsEventSource tests (#56654)

Fixes #55313

The metrics test has to collect different events that
update counters in a specific interval of time. Previously
those intervals were 1 second long but ARM64 appears to
run slowly enough that some of the events didn't complete
until 2 seconds had passed.

I increased the intervals to 5 seconds each. We could go
longer to reduce the risk further, but I am trying not to
make the tests take overly long.

2 years agoEnable Http2.SocketSendQueueFull_RequestCanceled_ThrowsOperationCanceled (#56723)
Alexander Nikolaev [Wed, 4 Aug 2021 08:41:26 +0000 (10:41 +0200)]
Enable Http2.SocketSendQueueFull_RequestCanceled_ThrowsOperationCanceled (#56723)

The test should have been already fixed by #56552.

Fixes #44352

2 years ago[Mono]: Add a verbose jit done event into EventPipe MonoProfiler provider. (#56530)
Johan Lorensson [Wed, 4 Aug 2021 07:38:35 +0000 (09:38 +0200)]
[Mono]: Add a verbose jit done event into EventPipe MonoProfiler provider. (#56530)

* Add a verbose jit done event into EventPipe MonoProfiler provider.

In order to get full method info in nettrace it is sometimes needed to
include method load verbose info. This can be done using Microsoft-
Windows-DotNETRuntime provider, but when using that it will also setup
a lot of managed diagnostics classes highly affecting startup profiling.

MonoProfiler provider, Microsoft-DotNETRuntimeMonoProfiler already emits
all needed info for advanced low level diagnostics, but currently lacks
verbose method load data when emitting jit done event.

Commit also adds new versions to JitDone as well as ClassLoaded including
generic type info if available as well as dropping use of ClrInstanceId since
it is not used/needed for events that are new.

2 years agomake Quic AcceptStreamAsync concurrent safe (#56768)
Tomas Weinfurt [Wed, 4 Aug 2021 05:06:00 +0000 (22:06 -0700)]
make Quic AcceptStreamAsync concurrent safe (#56768)

* make AcceptStreamAsync concurrent safe

* feedback from review

2 years agoAdded tests for EnvironmentVariablesConfigurationProvider.ToString() (#56778)
David Fowler [Wed, 4 Aug 2021 04:57:33 +0000 (21:57 -0700)]
Added tests for EnvironmentVariablesConfigurationProvider.ToString() (#56778)

- Check the format in tests
- Updated the ref

2 years agodisable token info in traces. (#56780)
Manish Godse [Wed, 4 Aug 2021 02:01:45 +0000 (19:01 -0700)]
disable token info in traces. (#56780)

Though token+offset is useful for certain scenarios, they might not be usable for majority of scenarios. So disabling them by default.

2 years ago[debugger] Fix debugger.break behavior (#56788)
Thays Grazia [Wed, 4 Aug 2021 01:44:23 +0000 (22:44 -0300)]
[debugger] Fix debugger.break behavior (#56788)

* Fix debugger.break behavior.

* Fix line number of other tests that uses Debugger.Break.

2 years ago[mono][wasm] Allow setting env variables with '=' characters in the test runner....
Zoltan Varga [Wed, 4 Aug 2021 01:37:34 +0000 (21:37 -0400)]
[mono][wasm] Allow setting env variables with '=' characters in the test runner. (#56802)

2 years agoEcma edit for `conv.ovf.<to type>.un`. (#56450)
Sergey Andreenko [Wed, 4 Aug 2021 00:04:17 +0000 (17:04 -0700)]
Ecma edit for `conv.ovf.<to type>.un`. (#56450)

* Add a conv conformance test.

* Fix Ecma description.

* Fix the test.

* Update docs/design/specs/Ecma-335-Augments.md

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Disable VN optimizations on arm64 because of the bug.

* add a new chapter.

* fix space

* Fix format.

* exclude the test on mono

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
2 years agoMark HandleProcessCorruptedStateExceptionsAttribute as obsolete (#56664)
Jeff Handley [Tue, 3 Aug 2021 23:28:42 +0000 (19:28 -0400)]
Mark HandleProcessCorruptedStateExceptionsAttribute as obsolete (#56664)

2 years agoEnable SxS install of previews on Mac OS (#56797)
Nikola Milosavljevic [Tue, 3 Aug 2021 23:00:08 +0000 (16:00 -0700)]
Enable SxS install of previews on Mac OS (#56797)

2 years agoCoreCLR runtime tests + Mono on the x64 iOS simulator (#43954)
imhameed [Tue, 3 Aug 2021 22:49:26 +0000 (18:49 -0400)]
CoreCLR runtime tests + Mono on the x64 iOS simulator (#43954)

This creates another `runtime-staging` lane, named "Build iOSSimulator x64
Release AllSubsets_Mono_RuntimeTests", that will eventually run the runtime
test suite against Mono's non-LLVM JIT on the iOS simulator on amd64 hosts.
Failing tests are added to the exclusion lists in issues.targets.

The tests aren't set to run yet, because they currently take a very long time
to execute.

`AppleAppBuilder` no longer requires a `MainLibraryFileName`. If omitted, one
must be supplied when the app bundle is launched via an environment variable
named `MONO_APPLE_APP_ENTRY_POINT_LIB_NAME`. The generated apps also accept
another environment variable named `MONO_APPLE_APP_ASSEMBLY_LOAD_PREFIX`, which
is a hack used to allow assembly lookup to proceed in a nested app-relative
subdirectory before falling back to the root of the app bundle. This is
necessary because app bundles contain multiple individual test assemblies, and
these assemblies sometimes have dependencies with names that collide with the
dependencies of other test assemblies inside the bundle.

2 years ago[main] Update dependencies from mono/linker (#56593)
dotnet-maestro[bot] [Tue, 3 Aug 2021 22:31:28 +0000 (15:31 -0700)]
[main] Update dependencies from mono/linker (#56593)

* Update linker warning suppressions

https://github.com/mono/linker/pull/2145 warns when accessing members
annotated with DynamicallyAccessedMembers using reflection, and
https://github.com/mono/linker/pull/2162 updates the warning origin of
warnings for DynamicallyAccessedMembers on types.

This adds suppressions for the new warnings.

* Add windows-specific suppressions

* Update dependencies from https://github.com/mono/linker build 20210729.2

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21378.1 -> To Version 6.0.100-preview.6.21379.2

* Fix failures and address feedback

- Annotate mono's EnumBuilder and TypeBuilder
- Add (non-unique) readable short names to the warning codes

* Update dependencies from https://github.com/mono/linker build 20210730.2

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21378.1 -> To Version 6.0.100-preview.6.21380.2

* Suppress IL2111

* Update dependencies from https://github.com/mono/linker build 20210802.2

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21378.1 -> To Version 6.0.100-preview.6.21402.2

* Feedback

- Suppress IL2111 in trimming tests
- Remove unnecessary DynamicDependency
- Fix indentation

* Update readable warning names

Co-authored-by: Sven Boemer <sbomer@gmail.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoSTJ: Fix deserialization of UInt16 properties (#56793)
Jasper [Tue, 3 Aug 2021 22:16:26 +0000 (00:16 +0200)]
STJ: Fix deserialization of UInt16 properties (#56793)

Fix #56792

2 years agoadd RID for Debian 11 (#56789)
Tomas Weinfurt [Tue, 3 Aug 2021 21:28:29 +0000 (14:28 -0700)]
add RID for Debian 11 (#56789)

2 years ago[wasm] [debugger] Skip thread static field (#56749)
Thays Grazia [Tue, 3 Aug 2021 21:00:24 +0000 (18:00 -0300)]
[wasm] [debugger] Skip thread static field (#56749)

* Fix #56249

* Fix line test.

* Fix indentation.

* Addressing PR comments.

* Fix line number changed

2 years agoFix timeouts in coreroot_determinism test in GC stress mode (#56770)
Tomáš Rylek [Tue, 3 Aug 2021 20:13:25 +0000 (22:13 +0200)]
Fix timeouts in coreroot_determinism test in GC stress mode (#56770)

I have found two deficiencies in our CoreCLR test infrastructure
related to running Crossgen2 in GC stress mode; this change should
fix both:

1) In the Unix (bash) variant of Execute.Crossgen.targets we weren't
properly unsetting the GC stress-related COMPlus environment
variables.

2) In the particular case of the coreroot_determinism test this
needed fixing in r2rtest that is internally used by the test
implementation (on both Windows and Unix).

Thanks

Tomas

2 years agoUse File.OpenHandle in Socket.SendFile directly (#56777)
Huo Yaoyuan [Tue, 3 Aug 2021 20:00:20 +0000 (04:00 +0800)]
Use File.OpenHandle in Socket.SendFile directly (#56777)

* Directly open file handle in Windows.

* Directly open file handle on Unix.

* Dispose FileHandle.

* Update scope of using.

2 years agoaccept empty realm for digest auth (#56369) (#56455)
Camillo Toselli [Tue, 3 Aug 2021 19:47:34 +0000 (21:47 +0200)]
accept empty realm for digest auth (#56369) (#56455)

* accept empty realm for digest auth (#56369)

* accept empty realm for digest auth (#56369)

* accept empty realm for digest auth (#56369)

* accept empty realm for digest auth (#56369)

Co-authored-by: Luca Bompani <luca.bompani@unibo.it>
2 years ago[wasm][debugger] Create test Inherited Properties (#56754)
Thays Grazia [Tue, 3 Aug 2021 16:56:08 +0000 (13:56 -0300)]
[wasm][debugger] Create test Inherited Properties (#56754)

* Created test case do close 47658.

* Moving test to file that @radical suggested.

2 years agoMark new test as incompatible with GC Mark4781_1GcStressIncompatible (#56739)
Andy Ayers [Tue, 3 Aug 2021 16:30:43 +0000 (09:30 -0700)]
Mark new test as incompatible with GC Mark4781_1GcStressIncompatible (#56739)

This test relies on triggering GC at an exact point.

Closes #56704.

2 years agoEnsure MetadataEnumResult is sufficiently updated by MetaDataImport::Enum (#56756)
Andy Ayers [Tue, 3 Aug 2021 16:06:47 +0000 (09:06 -0700)]
Ensure MetadataEnumResult is sufficiently updated by MetaDataImport::Enum (#56756)

`MetadataEnumResult` has a fixed inline buffer for returning small results
and a pointer to allow it to return larger ones. The indexer for this
checks the pointer and if non-null assumes that's the current set of
values.

But if a `MetadataEnumResult` is re-used within a loop, values written to it
by `MetaDataImport::Enum` may bleed from one loop iteration to the next
if the iterations first get a large result and then a small one.

One case where this could happen was in libraries PGO tests, where PGO data
encouraged the jit to inline `MemberInfoCache<T>.PopulateProperties(Filter,...)`
into `MemberInfoCache<T>.PopulateProperties(Filter)`.

Note this also is a conseqeunce of skipping zero init locals; without that
the struct would have been zeroed each loop iteration.

Fixes #56655.

2 years ago[mono] Remove gdb xdebug and binary writer support, it hasn't worked in a while....
Zoltan Varga [Tue, 3 Aug 2021 15:24:52 +0000 (11:24 -0400)]
[mono] Remove gdb xdebug and binary writer support, it hasn't worked in a while. (#56759)

* [mono] Remove gdb xdebug support, it hasn't worked in a while.

* [mono] Remove binary writer code, it haven't been used or worked in a while.

* Remove MONO_DEBUG=gdb option.

2 years agoUpdate windows-requirements.md (#56476)
Chris Ross [Tue, 3 Aug 2021 14:48:59 +0000 (07:48 -0700)]
Update windows-requirements.md (#56476)

2 years agoUpdate doc and generic parameter name for JsonValue.GetValue (#56639)
Steve Harter [Tue, 3 Aug 2021 14:17:57 +0000 (09:17 -0500)]
Update doc and generic parameter name for JsonValue.GetValue (#56639)

2 years ago[wasm][debugger] Inspect static class (#56740)
Thays Grazia [Tue, 3 Aug 2021 13:58:00 +0000 (10:58 -0300)]
[wasm][debugger] Inspect static class (#56740)

* Trying to fix 45104

* Implementing getting property  and checking failures.

* Fix android compilation

2 years agoFix stack overflow handling issue in GC stress (#56733)
Jan Vorlicek [Tue, 3 Aug 2021 12:43:14 +0000 (14:43 +0200)]
Fix stack overflow handling issue in GC stress (#56733)

This change fixes a problem when in GC stress mode 3, GC started to run
on the thread that hit stack overflow due to the GCX_PREEMP in
DebuggerRCThread::DoFavor that is called from the
EEPolicy::HandleFatalStackOverflow. It was causing failures in the CI.
The issue is GC stress specific, the GCX_PREEMP would not start running
GC on the current thread in regular cases.

The fix is to inhibit GC stress in the HandleFatalStackOverflow.

2 years agoUse ReflectionOnly as serialization mode in case dynamic code runtime feature is...
Maxim Lipnin [Tue, 3 Aug 2021 09:27:15 +0000 (12:27 +0300)]
Use ReflectionOnly as serialization mode in case dynamic code runtime feature is not supported (#56604)

2 years agoMove Windows Compat pack to NuGet pack task (#56686)
Viktor Hofer [Tue, 3 Aug 2021 08:46:24 +0000 (10:46 +0200)]
Move Windows Compat pack to NuGet pack task (#56686)

* Move Windows Compat pack to NuGet pack task

This is a straight port from pkgproj to csproj and also enables building
the compat pack together with its dependencies.

As usual, if the compat pack alone should be built (i.e. for inner loop
tests), the `--no-dependencies` flag should be used,
i.e. `dotnet build --no-dependencies` or `dotnet pack --no-build`.

* Fix traversal builds and don't overbuild packages

* Update libraries-packages.proj

2 years agoFix build error when building some packages (#56767)
Santiago Fernandez Madero [Tue, 3 Aug 2021 06:33:41 +0000 (23:33 -0700)]
Fix build error when building some packages (#56767)

* Fix build error when building some packages

* Actually move declaration to Directory.Build.targets as they should be used in other scenarios

2 years agoSimplify JIT shutdown logic in crossgen2 (#56687)
Michal Strehovský [Tue, 3 Aug 2021 05:34:45 +0000 (14:34 +0900)]
Simplify JIT shutdown logic in crossgen2 (#56687)

There was unanswered comment about thread safety in https://github.com/dotnet/runtime/pull/56187/files#r675461236 so I just decided to fix it myself.

While on it, I simplified shutdown to use `AppDomain.ProcessExit`.

I'm not sure `AppDomain.UnhandledException` is needed but the original code had this in a `finally`.

The better fix would be to allow JIT to be initialized right before we start a compilation and shut down after, but that would require no process wide state in the JIT. As it stands now, JIT is once-per-process-global.

2 years agoFix race in crossdac publishing with PGO (#56762)
Juan Hoyos [Tue, 3 Aug 2021 05:25:32 +0000 (22:25 -0700)]
Fix race in crossdac publishing with PGO (#56762)

2 years agoAdd DictionaryKeyPolicy support for EnumConverter [#47765] (#54429)
Sychev Vadim [Tue, 3 Aug 2021 03:30:14 +0000 (06:30 +0300)]
Add DictionaryKeyPolicy support for EnumConverter [#47765] (#54429)

* Add DictionaryKeyPolicy support for EnumConverter [#47765]

* Moved DictionaryKeyPolicy parsing code to WriteWithQuotes [#47765]

* Refactored the bugfix in accordance to the comments (#47765)

* Made few minor corrections (#47765)

2 years agoUse ComWrappers in some Marshal unit-tests and update platform metadata (#56595)
Aaron Robinson [Tue, 3 Aug 2021 01:08:45 +0000 (18:08 -0700)]
Use ComWrappers in some Marshal unit-tests and update platform metadata  (#56595)

* Remove the SupportedOSPlatform attribute from the ComWrappers API.

* Test the Marshal.QueryInterface, Marshal.AddRef, and Marshal.Release
using ComWrappers.

2 years agoSet `DisableImplicitNamespaceImports_Dotnet=true` to workaround sdk issue (#56744)
Santiago Fernandez Madero [Tue, 3 Aug 2021 00:42:37 +0000 (17:42 -0700)]
Set `DisableImplicitNamespaceImports_Dotnet=true` to workaround sdk issue (#56744)

* Set `DisableImplicitNamespaceImports_Dotnet=true` to workaround sdk issue

* Disable just the imports declaration rather than the functionality

2 years agoMake sure ServerGCHeapDetails is up to date (#56056)
Andrew Au [Mon, 2 Aug 2021 23:39:24 +0000 (16:39 -0700)]
Make sure ServerGCHeapDetails is up to date (#56056)

2 years ago[libraries] Reenable System.Diagnostics.DiagnosticSorce.Switches.Tests on mobile...
Mitchell Hwang [Mon, 2 Aug 2021 21:28:50 +0000 (17:28 -0400)]
[libraries] Reenable System.Diagnostics.DiagnosticSorce.Switches.Tests on mobile (#56737)

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
2 years agoDisable failing arm64 win10 Graphics.FromHdc tests (#56732)
Mateo Torres-Ruiz [Mon, 2 Aug 2021 21:14:38 +0000 (14:14 -0700)]
Disable failing arm64 win10 Graphics.FromHdc tests  (#56732)

* Disable arm64-win10 tests preventing clean build

* Use ActiveIssue with conditional

2 years agoMatch xplat event source conditions (#56435)
Adeel Mujahid [Mon, 2 Aug 2021 20:06:47 +0000 (23:06 +0300)]
Match xplat event source conditions (#56435)

2 years agocounting the LOH pad objects in the free object space (#56665)
Maoni Stephens [Mon, 2 Aug 2021 18:58:09 +0000 (11:58 -0700)]
counting the LOH pad objects in the free object space (#56665)

2 years agoDump the environment variable prefix in ToString (#56685)
David Fowler [Mon, 2 Aug 2021 18:57:24 +0000 (11:57 -0700)]
Dump the environment variable prefix in ToString (#56685)

* Dump the environment variable prefix in ToString
- This allows tools that dump the providers (like GetDebugView) to see a little more data about the configured providers when debugging.

2 years agoConvert AspNetCore transport pkgproj to Pack task (#56674)
Viktor Hofer [Mon, 2 Aug 2021 18:53:45 +0000 (20:53 +0200)]
Convert AspNetCore transport pkgproj to Pack task (#56674)

* Convert AspNetCore transport pkgproj to Pack task

Converting the Microsoft.AspNetCore.Internal.Transport package to a proj
file which uses the NuGet Pack task.

Also moving some more packaging related targets into packaging.targets.

* Update Microsoft.AspNetCore.Internal.Transport.proj

2 years agoReact to Verify* task PackageTesting change (#56694)
Viktor Hofer [Mon, 2 Aug 2021 18:36:53 +0000 (20:36 +0200)]
React to Verify* task PackageTesting change (#56694)

* React to Verify* task PackageTesting change

Depends on https://github.com/dotnet/arcade/pull/7692

Removing the dependency on the Packaging assembly in favor of the
PackageTesting assembly which now contains the VerifyClosure and
VerifyTypes tasks that are required for package testing.

Also removing some obsolete properties and files.

2 years agoJIT: don't allow negative edge weights (#56651)
Andy Ayers [Mon, 2 Aug 2021 18:20:23 +0000 (11:20 -0700)]
JIT: don't allow negative edge weights (#56651)

Due to rounding errors or inconsistencies we may end up with unexpected
ratios of profile counts. Fix one place where that was leading to a negative
edge weight.

Fixes #56647.

2 years agoAdd new msbuild prop for wasm runtime config path (#56650)
Drew Scoggins [Mon, 2 Aug 2021 17:54:09 +0000 (10:54 -0700)]
Add new msbuild prop for wasm runtime config path (#56650)

2 years agoFixes 55107 (#56259)
Brian Sullivan [Mon, 2 Aug 2021 17:40:25 +0000 (10:40 -0700)]
Fixes 55107 (#56259)

* Fixes 55107
Add support for the very rare case of a constant byref to Compiler::optAssertionPropGlobal_RelOp
Added test case

* Changed casts as suggested by Jakob

2 years agosee if GetArrayDataReference_NullInput_ThrowsNullRef passes on tvOS now, fixes ...
Adam Sitnik [Mon, 2 Aug 2021 17:22:16 +0000 (19:22 +0200)]
see if GetArrayDataReference_NullInput_ThrowsNullRef  passes on tvOS now, fixes #36885 (#56724)

2 years agoremoving excludes since 47096 is fixed. (#56727)
Manish Godse [Mon, 2 Aug 2021 17:17:47 +0000 (10:17 -0700)]
removing excludes since 47096 is fixed. (#56727)

2 years agoFix indentation on Interop directory tree example (#56718)
iinuwa [Mon, 2 Aug 2021 17:17:23 +0000 (12:17 -0500)]
Fix indentation on Interop directory tree example (#56718)

2 years agoBuild C++/CLI tests as .NET Core C++/CLI (#56502)
Jeremy Koritzinsky [Mon, 2 Aug 2021 16:53:48 +0000 (09:53 -0700)]
Build C++/CLI tests as .NET Core C++/CLI (#56502)

* Build IJW assemblies against LKG SDK ref pack.

* Allow building against the live ref assemblies by passing `-cmakeargs -DCPP_CLI_LIVE_REF_ASSEMBLIES=1` to the test build script.

* Add test instructions

* Error handling

* Add support for the stdcall-mangled _CorDllMain entrypoint on x86 since MSVC uses it if it exists.

* Write out ref-pack path.

2 years agoMinor cleanups for System.Runtime.Numerics (#53984)
Huo Yaoyuan [Mon, 2 Aug 2021 16:36:11 +0000 (00:36 +0800)]
Minor cleanups for System.Runtime.Numerics (#53984)

* Replace union with BitConverter

* Replace CombineHash with HashCode

* Replace CbitHighZero with LeadingZeroCount

* Remove another LeadingZeros

* More cleanup in BigInteger

* Cleanup complex

* Apply suggestions from code review

Co-authored-by: Tanner Gooding <tagoo@outlook.com>
* Convert body-less for to while

* Use HashCode.AddBytes

Co-authored-by: Tanner Gooding <tagoo@outlook.com>
2 years agoAdd equality override for KeyValuePairComparer (#56634)
John Call [Mon, 2 Aug 2021 16:29:53 +0000 (09:29 -0700)]
Add equality override for KeyValuePairComparer (#56634)

2 years agoFix behavior of inlined NDirect methods with MulticoreJit (#55185)
Gleb Balykov [Mon, 2 Aug 2021 14:13:40 +0000 (17:13 +0300)]
Fix behavior of inlined NDirect methods with MulticoreJit (#55185)

* Disable loading of methods from r2r images in MulticoreJit thread, if they have NDirect methods inlined in them

NDirect methods can be inlined in other methods during aot compilation.
If such method is loaded in mcj thread, it results in NDirect method being loaded.
Additionally, there's no way to control inlining during aot from runtime side, because r2r ni.dll might already exist.
In order to fix this, runtime aborts loading if method has NDirect methods inlined in it and this all happens in mcj thread.

* Forbid inlining of pinvoke methods with SuppressGCTransitionAttribute in MulticoreJit thread

2 years ago[main] Update dependencies from dotnet/runtime dnceng/internal/dotnet-optimization...
dotnet-maestro[bot] [Mon, 2 Aug 2021 12:23:15 +0000 (14:23 +0200)]
[main] Update dependencies from dotnet/runtime dnceng/internal/dotnet-optimization dotnet/arcade dotnet/xharness dotnet/roslyn-analyzers dotnet/emsdk (#56211)

* Update dependencies from https://github.com/dotnet/xharness build 20210722.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21370.1 -> To Version 1.0.0-prerelease.21372.1

* Update dependencies from https://github.com/dotnet/arcade build 20210723.11

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
 From Version 6.0.0-beta.21370.12 -> To Version 6.0.0-beta.21373.11

* Update dependencies from https://github.com/dotnet/xharness build 20210723.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21370.1 -> To Version 1.0.0-prerelease.21373.1

* Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20210723.2

Microsoft.CodeAnalysis.NetAnalyzers
 From Version 6.0.0-rc1.21366.2 -> To Version 6.0.0-rc1.21373.2

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20210724.3

optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.21371.3 -> To Version 1.0.0-prerelease.21374.3

* Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20210725.2

Microsoft.CodeAnalysis.NetAnalyzers
 From Version 6.0.0-rc1.21366.2 -> To Version 6.0.0-rc1.21375.2

* Revert SDK bump

It will be done in https://github.com/dotnet/runtime/pull/56161

* Update dependencies from https://github.com/dotnet/runtime build 20210725.2

Microsoft.NETCore.DotNetHost , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , Microsoft.NET.Sdk.IL , System.Text.Json , System.Runtime.CompilerServices.Unsafe
 From Version 6.0.0-rc.1.21369.2 -> To Version 6.0.0-rc.1.21375.2

* Update dependencies from https://github.com/dotnet/arcade build 20210723.11

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
 From Version 6.0.0-beta.21370.12 -> To Version 6.0.0-beta.21373.11

* Revert SDK bump

* Update dependencies from https://github.com/dotnet/emsdk build 20210726.1

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100
 From Version 6.0.0-rc.1.21369.1 -> To Version 6.0.0-rc.1.21376.1

* Update dependencies from https://github.com/dotnet/emsdk build 20210726.4

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100
 From Version 6.0.0-rc.1.21369.1 -> To Version 6.0.0-rc.1.21376.4

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
2 years agoUse UnixFileStream's ReadAsync implementation on Windows as well (#56682)
Stephen Toub [Mon, 2 Aug 2021 09:03:53 +0000 (05:03 -0400)]
Use UnixFileStream's ReadAsync implementation on Windows as well (#56682)

UnixFileStream's ReadAsync implementation uses a reusable IValueTaskSource implementation to avoid allocating a new work item on every read.  We can push that implementation down to OSFileStreamStrategy, and then use it for the Windows implementation of ReadAsync as well when IsAsync==false, rather than delegating to the base Stream implementation.

This PR almost entirely just moves code around.  The only change to logic is in RandomAccess.Windows.cs, to only set an offset into the NativeOverlapped if the SafeFileHandle is seekable; otherwise, it fails when used with pipes.

2 years agoCorrected terminology in SequencePosition documentation (#56693)
Petr Onderka [Mon, 2 Aug 2021 08:40:30 +0000 (10:40 +0200)]
Corrected terminology in SequencePosition documentation (#56693)

2 years ago[wasm] Improve console.log in unit tests (#56616)
Pavel Savara [Mon, 2 Aug 2021 08:34:05 +0000 (10:34 +0200)]
[wasm] Improve console.log in unit tests (#56616)

2 years ago[8/21 Infra rollout] update sdk to preview6 (#56161)
Manish Godse [Mon, 2 Aug 2021 07:57:03 +0000 (00:57 -0700)]
[8/21 Infra rollout] update sdk to preview6 (#56161)

* update sdk to preview6

to check whether an arm64 bug is the root cause of NRE on macos.

* Remove invalid Castle.DynamicProxy.Internal.AbstractInvocation from ILLink descriptor files

The type is actually in the `Castle.DynamicProxy` namespace, not the `.Internal` one.
This causes an error with newer linker versions.

The whole `Castle.DynamicProxy` namespace is already preserved so we can remove the entry for AbstractInvocation.

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
2 years agoFix comment (#56709)
Jan Kotas [Mon, 2 Aug 2021 07:02:22 +0000 (09:02 +0200)]
Fix comment (#56709)

2 years agoInstrument MemTracker (#56648)
Noah Falk [Mon, 2 Aug 2021 06:47:20 +0000 (23:47 -0700)]
Instrument MemTracker (#56648)

We are seeing some likely memory corruption in
https://github.com/dotnet/runtime/issues/54469
and these changes hopefully will help better
diagnose it

2 years agoEnable ICU trimming for Invariant=true and PredefinedCulturesOnly unspecified (#56667)
Jan Kotas [Sun, 1 Aug 2021 19:18:49 +0000 (21:18 +0200)]
Enable ICU trimming for Invariant=true and PredefinedCulturesOnly unspecified (#56667)

* Enable ICU trimming for Invariant=true and PredefinedCulturesOnly unspecified

* Update comments

2 years ago[libraries][Android] Reenable System.Linq.Expression.Tests for Android (#56646)
Mitchell Hwang [Sun, 1 Aug 2021 08:53:22 +0000 (04:53 -0400)]
[libraries][Android] Reenable System.Linq.Expression.Tests for Android (#56646)

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
2 years ago[mono] Unconditionally enable NEON/AdvSimd for arm64 with LLVM (#56323)
imhameed [Sun, 1 Aug 2021 03:29:41 +0000 (20:29 -0700)]
[mono] Unconditionally enable NEON/AdvSimd for arm64 with LLVM (#56323)

* [mono] Unconditionally enable NEON/AdvSimd for arm64 with LLVM

* Remove `mattr=neon` from the Mono AOT command line arguments for LLVM AOT tests

This is now enabled by default when using LLVM.

2 years agoEnable #59244 on wasm (#56675)
Larry Ewing [Sun, 1 Aug 2021 03:17:37 +0000 (22:17 -0500)]
Enable #59244 on wasm (#56675)

2 years agoTry again to fix AsyncMethodsDropsStateMachineAndExecutionContextUponCompletion test
Stephen Toub [Sun, 1 Aug 2021 02:49:32 +0000 (22:49 -0400)]
Try again to fix AsyncMethodsDropsStateMachineAndExecutionContextUponCompletion test

2 years agoEnable tests marked with https://github.com/dotnet/runtime/issues/51911 (#56673)
Larry Ewing [Sun, 1 Aug 2021 01:39:22 +0000 (20:39 -0500)]
Enable tests marked with https://github.com/dotnet/runtime/issues/51911 (#56673)

2 years agoUpdate position before ReadAsync starts, but fix it after incomplete read (#56531)
Adam Sitnik [Sat, 31 Jul 2021 23:37:23 +0000 (01:37 +0200)]
Update position before ReadAsync starts, but fix it after incomplete read (#56531)

* move CanRead and CanWrite checks to FileStream

* don't check IsClosed twice_(FileHandle.CanSeek already contains a IsClosed check)

* add a failing test

* handle incomplete async reads

* don't try to cache file length when file is opened for writing, as updating file position before performing async write can lead to invalid cached length value

* maybe Win 7 & 8 fix

2 years agoEnable trimming TLS arrays in ArrayPool.Shared (#56316)
Stephen Toub [Sat, 31 Jul 2021 16:13:43 +0000 (12:13 -0400)]
Enable trimming TLS arrays in ArrayPool.Shared (#56316)

* Enable trimming TLS arrays in ArrayPool.Shared

Today arrays stored in `ArrayPool<T>.Shared`'s per-core buckets have trimming applied, but arrays stored in the per-thread buckets are only trimmed when there's high memory pressure.  This change enables all buffers to be trimmed (eventually).  Every time our gen2 callback runs, it ensures any non-timestamped buffers have a timestamp, and also ensures that any timestamped buffers are still timely... if any aren't, they're eligible for trimming.  The timestamp is reset for TLS arrays when they're stored, and for per-core buckets when they transition from empty to non-empty; the latter is just a tweak on the current behavior, which incurs the cost of Environment.TickCount upon that transition, whereas now we only pay it as part of the trimming pass.

* Address PR feedback

* Work around bad linker transform

2 years agoResolve MakeGenericType ILLink warning in DependencyInjection (#55102)
Eric Erhardt [Sat, 31 Jul 2021 14:46:27 +0000 (08:46 -0600)]
Resolve MakeGenericType ILLink warning in DependencyInjection (#55102)

* Resolve MakeGenericType ILLink warning in DependencyInjection

Resolve the ILLink warning in DependencyInjection by adding a runtime check that is behind a new AppContext switch 'Microsoft.Extensions.DependencyInjection.VerifyOpenGenericServiceTrimmability'. The runtime check ensures the trimming annotations on the open generic types are compatible between the service and implementation types. The check is enabled by default when PublishTrimmed=true.

* Make VerifyOpenGenericServiceTrimmability a full feature switch