Gregg Miskelly [Wed, 4 Jan 2023 18:03:01 +0000 (10:03 -0800)]
Add Visual Studio debugging note to libraries README (#80185)
This adds another section to docs/workflow/building/libraries/README.md to reference how to disable sign verification in Visual Studio.
Kevin Jones [Wed, 4 Jan 2023 17:52:19 +0000 (12:52 -0500)]
Fix CngKey.KeySize for keys in the Platform Crypto Provider
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Zoltan Varga [Wed, 4 Jan 2023 15:10:51 +0000 (10:10 -0500)]
[wasm] AOT BCL tests using -O1 to avoid OOM errors on CI. (#80103)
Also enable WasmNativeStrip.
Jan Vorlicek [Wed, 4 Jan 2023 13:36:05 +0000 (14:36 +0100)]
Enable CoreCLR init failure logging in single exe host (#80104)
* Enable CoreCLR init failure logging in single exe host
When adding the CoreCLR initialization failure logging recently, I have
missed the fact that there are two versions of the coreclr_resolver.cpp.
One for standalone host that I have added support for, but also for linking
into single exe.
This change adds the missing support to the single exe host.
* Remove unnecessary typedef
Stephen Toub [Wed, 4 Jan 2023 12:57:57 +0000 (07:57 -0500)]
Delete erroneous simplifer annotation for regex fixer (#80126)
* Delete erroneous simplifer annotation for regex fixer
* Fix a few test failures due to lack of simplification
Radek Doulik [Wed, 4 Jan 2023 09:39:29 +0000 (10:39 +0100)]
[wasm] Add ConditionalSelect SIMD intrinsics (#80145)
It uses existing `OP_BSL`, which does And, Not, And and Or operations.
llvm emits it as `v128.bitselect` for us. So I think we don't need
to use the `llvm.wasm.bitselect.*` intrinsics.
This should help in few areas, SpanHelper.ReplaceValueType and
IndexOfAnyAsciiSearcher.IndexOfAnyLookup'1.
It improves the Json deserialization a bit:
| measurement | before | after |
|-:|-:|-:|
| Json, non-ASCII text deserialize | 0.4343ms | 0.4275ms |
| Json, small deserialize | 0.0517ms | 0.0497ms |
| Json, large deserialize | 14.3995ms | 13.8217ms |
Example of emitted code:
> wa-info -d -f SpanHelper.*ReplaceValueType src\mono\sample\wasm\browser-bench\bin\Release\AppBundle\dotnet.wasm
(func corlib_System_SpanHelpers_ReplaceValueType_uint16_uint16__uint16__uint16_uint16_uintptr(param $0 i32, $1 i32, $2 i32, $3 i32, $4 i32, $5 i32))
...
i16x8.eq [SIMD]
v128.bitselect [SIMD]
v128.store [SIMD]
...
Kevin Jones [Wed, 4 Jan 2023 07:18:24 +0000 (02:18 -0500)]
Use platform runtime check for ProtectedData (#80158)
* Use platform runtime check for ProtectedData
* Remove duplicate TargetFramework
Viktor Hofer [Wed, 4 Jan 2023 07:08:10 +0000 (08:08 +0100)]
Clean-up ILLink targets and avoid binplacing (#80102)
Clean-up illink.targets file, remove outdated logic that doesn't work
and isn't used anymore. Avoid binplacing and instead use the P2P
protocol to communicate a projects illink settings. Such information is
then available in consuming projects like sfx.proj and oob.proj and
avoids IO operations (binplacing).
dotnet-maestro[bot] [Wed, 4 Jan 2023 02:39:28 +0000 (21:39 -0500)]
Update dependencies from https://github.com/dotnet/cecil build
20230102.1 (#80114)
Microsoft.DotNet.Cecil , Microsoft.DotNet.Cecil.Pdb
From Version 0.11.4-alpha.22627.1 -> To Version 0.11.4-alpha.23052.1
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Bruce Forstall [Wed, 4 Jan 2023 01:41:03 +0000 (17:41 -0800)]
Improve emitter output for IG creation/saving and other improvements (#80151)
1. When outputting IG information, be explicit if the IG is being created
or saved. Previously, it was harder to understand in a JitDump when an
"IGxx" line showed up, and was somewhat confusing when one showed up
after a new label BB started being generated that was actually saving the
previous, pre-BB code.
2. Use the standard `emitDispIG()` function to display an IG, in more places.
3. Move the `Mapped BBxx to IGyy` output to a more appropriate location (when
code from that BB has actually been generated into that IG -- which can happen
for multiple BBs).
4. Fix `refCntWtd2str()` to work better for non-aligned cases. This function
tries to generate a string like "8" with 3 trailing spaces so it will line up
with the "1" in "1.50" in aligned output (instead of generating something like
"8.00" which is more cluttered). But that's annoying when using the function for
non-aligned cases.
5. Fixed a wrongly attributed memory allocation, for `igBlocks`
Katelyn Gadd [Wed, 4 Jan 2023 01:28:21 +0000 (17:28 -0800)]
[wasm] enable JITs for interp->aot and aot->interp transitions (#78493)
See #76477 for information.
Aaron Robinson [Tue, 3 Jan 2023 23:24:32 +0000 (15:24 -0800)]
Remove some instances of `%S` and `%ls` (#78894)
* Remove unused NativeImagePerfMap
* Allocate enough for UTF8 conversion
* Missed VariantAsString API.
Change local `sFlags` to generic `szTempBuf`
* Remove all "entry point" logging for metadata APIs.
Jan Vorlicek [Tue, 3 Jan 2023 23:06:56 +0000 (00:06 +0100)]
Remove page map from PAL virtual memory allocator (#80105)
Ankit Jain [Tue, 3 Jan 2023 22:58:31 +0000 (17:58 -0500)]
[wasm] Revert back to using latest stable versions of chrome for testing (#80135)
* [wasm] Revert back to using latest stable versions of chrome for testing
* [wasm] widen the search area for chrome snapshots. They seem to be less frequent for windows builds.
Aaron Robinson [Tue, 3 Jan 2023 22:15:30 +0000 (14:15 -0800)]
Disable inlining for helper method (#80124)
dotnet-maestro[bot] [Tue, 3 Jan 2023 21:50:39 +0000 (22:50 +0100)]
[main] Update dependencies from dotnet/arcade (#79953)
* Update dependencies from https://github.com/dotnet/arcade build
20221223.1
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
From Version 8.0.0-beta.22621.1 -> To Version 8.0.0-beta.22623.1
* Update dependencies from https://github.com/dotnet/arcade build
20221226.1
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
From Version 8.0.0-beta.22621.1 -> To Version 8.0.0-beta.22626.1
* Update dependencies from https://github.com/dotnet/arcade build
20221228.1
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
From Version 8.0.0-beta.22621.1 -> To Version 8.0.0-beta.22628.1
* Update dependencies from https://github.com/dotnet/arcade build
20221230.1
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
From Version 8.0.0-beta.22621.1 -> To Version 8.0.0-beta.22630.1
* Update dependencies from https://github.com/dotnet/arcade build
20230102.2
Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
From Version 8.0.0-beta.22621.1 -> To Version 8.0.0-beta.23052.2
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
Austin Wise [Tue, 3 Jan 2023 21:20:55 +0000 (13:20 -0800)]
Generate CodeView debug information for .asm files (#77084)
Radek Doulik [Tue, 3 Jan 2023 20:54:52 +0000 (21:54 +0100)]
[wasm] Add WidenUpper and WidenLower SIMD intrins (#80117)
* [wasm] Add WidenUpper and WidenLower SIMD intrins
This improves performance in string related areas. Example code:
> wa-info -d -f Ascii.*WidenFourAsciiBytesToUtf16AndWriteToBuffer dotnet.wasm
(func corlib_System_Text_Ascii_WidenFourAsciiBytesToUtf16AndWriteToBuffer_char__uint(param $0 i32, $1 i32, $2 i32))
local.get $0
i32.eqz
if
call mini_llvmonly_throw_nullref_exception
unreachable
local.get $0
local.get $1
i32x4.splat [SIMD]
i16x8.extend.low.i8x16.u [SIMD]
v128.store64.lane 0 [SIMD]
It is also visible in the bench sample Json task, where it improves
serialization times:
| measurement | before | after |
|-:|-:|-:|
| Json, non-ASCII text serialize | 0.2939ms | 0.2174ms |
| Json, small serialize | 0.0274ms | 0.0262ms |
| Json, large serialize | 7.5466ms | 7.0948ms |
It would be enough to do zero/sign extensions instead of zero shifts, I
left the shifts in place though as I am not sure whether there is
a reason for that on arm64.
* Fix build
Jackson Schuster [Tue, 3 Jan 2023 19:35:27 +0000 (13:35 -0600)]
Avoid caching compilation data and use value equality for SyntaxNodes (#79051)
Fixes https://github.com/dotnet/runtime/issues/78242
Creates separate types for InteropAttributeData: one that holds compilation data (InteropAttributeCompilationData), and one that holds only the data necessary for the model to create the generated code (InteropAttributeModelData).
This uncovered some issues with record equality in records that use SyntaxNode. For those, we need to override Equals or wrap the SyntaxNode in a type that overrides Equals to use IsEquivalentTo on the SyntaxNode.
There are probably more places where we use SyntaxNode that aren't caught in the current tests.
To make sure every record has the right equality, I wasn't sure if it would be better to override Equals for each of the records, or create a wrapper record struct for each SyntaxNode that implements the equality we want (and implicit casts to and from the SyntaxNode). Then we wouldn't have to explicitly override the equality in each record that has a SyntaxNode. I also overrode both Equals and GetHashCode, but I'm not confident in my GetHashCode implementation. It could also be done with IEquatable.Equals without needing GetHashCode, but that would require implementing the TypeSyntax equality for every type that inherits from ManagedTypeInfo.
Eric Erhardt [Tue, 3 Jan 2023 19:20:19 +0000 (13:20 -0600)]
Fix failing Hosting tests (#79455)
Ensure the temp directory used is always empty, so it doesn't pick up appsettings.json files randomly.
Fix #79453
Bruce Forstall [Tue, 3 Jan 2023 18:38:34 +0000 (10:38 -0800)]
Be more flexible in finding libcoredistools (#80054)
Bruce Forstall [Tue, 3 Jan 2023 18:37:55 +0000 (10:37 -0800)]
Include zero-sized diffs in the set of textual diffs generated (#79917)
Diffs with zero size are important to examine because they most
likely indicate GC info changes.
Lachlan Ennis [Tue, 3 Jan 2023 17:57:54 +0000 (03:57 +1000)]
Add nullability to `CreateInstance` in `TypeDescriptor`/`TypeDescriptionProvider` to match `Activator.CreateInstance` (#79776)
madelson [Tue, 3 Jan 2023 17:32:42 +0000 (12:32 -0500)]
Fix thread-safety issues with enumerating ResourceManager. (#75054)
* Fix thread-safety issues with enumerating ResourceManager.
Concurrently enumerating a ResourceManager while also calling GetString()
and similar methods was prone to both transient errors and deadlock.
The transient errors were caused by RuntimeResourceSet calling internal
methods on ResourceReader that did not properly lock. Now, all exposed
methods on the Reader are thread-safe.
The deadlock was called by inconsistent lock ordering between
ResourceReader.ResourceEnumerator and RuntimeResourceSet which both lock
on the RuntimeResourceSet's cache and on the ResourceReader itself. Now,
the enumerator does not need to take both locks at the same time.
Fix #74052
Fix #74868
* Remove trailing whitespace
* Address feedback from https://github.com/dotnet/runtime/pull/75054
* Add comment in response to https://github.com/dotnet/runtime/pull/75054#issuecomment-
1317470280
* Implement feedback from https://github.com/dotnet/runtime/pull/75054
Jan Kotas [Tue, 3 Jan 2023 17:26:32 +0000 (09:26 -0800)]
Ignore SendMessageTimeout failures on Windows Nano Server (#80099)
* Ignore SendMessageTimeout failures on Windows Nano Server
* Fix tests
Fixes #30566
Shreyas Jejurkar [Tue, 3 Jan 2023 16:40:16 +0000 (22:10 +0530)]
fix (doc) : Specify where `*.dgml` files are generated (#80115)
Let's be clear with the path where the given file is getting generated.
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Milos Kotlar [Tue, 3 Jan 2023 15:01:43 +0000 (16:01 +0100)]
[mono][interp] Expand compare + brfalse/brtrue with single conditional branch opcode (#80046)
* Add integer opcodes
* Add floating-point opcodes
* Check if local_ref_count is 1
Miha Zupan [Tue, 3 Jan 2023 09:28:36 +0000 (10:28 +0100)]
Double IndexOf throughput for chars (#78861)
* Add PackedIndexOf for chars
* Add Contains and IndexOfValue(3 chars)
* Stop using PackedIndexOf on ARM
* Improve code comment
Michal Strehovský [Tue, 3 Jan 2023 06:29:42 +0000 (15:29 +0900)]
Generate fewer `ExactMethodInstantiationsHashtable` entries (#80090)
This hashtable contains information about unshared generic methods. We really only need it for generic virtual methods. There was some code in the reflection stack that was reading it to support stack traces and `Delegate.GetMethodInfo` but:
1. For stack traces, we have this information in the stack trace metadata table.
2. For `Delegate.GetMethodInfo` we have a rule that all targets of delegates should become reflectable in the compiler. We should have all this data in the reflection invoke table that we also parse for this purpose.
Andrii Kurdiumov [Tue, 3 Jan 2023 00:19:11 +0000 (06:19 +0600)]
Ignore uninstantiated generic method (#80096)
Fixes #78955
Viktor Hofer [Mon, 2 Jan 2023 20:42:52 +0000 (21:42 +0100)]
Use shipping runtime.json for RID targeting (#80074)
* Use shipping runtime.json for RID targeting
- Use the shipping runtime.json file to target RIDs when building
instead of the custom OSGroups.json which only contained a subset of
the available rids.
- To facilitate that, lower-case the existing platforms in the target
frameworks strings which is the expected format anyway by the SDK and
msbuild. This will eventually make it possible to bring some of the
custom build infrastructure back into the SDK.
- Remove a few outdated code pieces and update docs.
Miha Zupan [Mon, 2 Jan 2023 15:34:22 +0000 (16:34 +0100)]
Use ArrayBuffer for write buffer management in HttpConnection (#79525)
Poppyto [Mon, 2 Jan 2023 14:49:36 +0000 (15:49 +0100)]
* Registry.GetSubKeyNames : Remove List copy to Array (#79345)
* * Replace List by string[] to avoid List.ToArray() copy (it must handle rare cases where there are more or less elements during the loop).
* // Shrink array to fit found items, if necessary
dotnet-maestro[bot] [Mon, 2 Jan 2023 14:16:42 +0000 (15:16 +0100)]
[main] Update dependencies from dotnet/cecil (#79993)
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Miha Zupan [Mon, 2 Jan 2023 13:49:33 +0000 (14:49 +0100)]
Use IndexOfAnyValues in MultipartContent (#79788)
Miha Zupan [Mon, 2 Jan 2023 11:09:46 +0000 (12:09 +0100)]
Use IndexOfAnyValues in WebSocketValidate (#79974)
Michal Strehovský [Mon, 2 Jan 2023 07:48:46 +0000 (16:48 +0900)]
Resolve generic virtual methods in managed type system (#80035)
Generic virtual method resolution currently happens on top of `RuntimeTypeHandle`s (i.e. the runtime type system). This works as long as we only need to do generic virtual method resolution on top of types that exist in the runtime.
In order to lay foundation for fixing #77070, we need to be able to resolve not just with types that have a type handle, but also for types that we're in the process of building (e.g. due to MakeGeneric, or due to another generic virtual method dispatch).
This pull request rewrites generic virtual method dispatch to happen on top of the managed type system, instead of the runtime type system. It's a bit more than just a mechanical replacement because the existing algorithm was set up in a confusing way, with `ref` parameters that were changing what we were resolving and an odd `slotChanged` logic that I don't fully understand. I replaced the `slotChanged` with the straightforward thing (if we resolve interface method to a virtual method on a type, find the implementation of the virtual method on the current type). Tests seem to be passing. Also instead of a bunch of `ref` parameters we now just pass a `MethodDesc`.
This also includes a compiler change, because in order for the managed type system's casting logic to work, we need to be able to find out the variance of parameters on generic definitions. The compiler change is about generating this info.
Michal Strehovský [Mon, 2 Jan 2023 05:13:32 +0000 (14:13 +0900)]
Add NativeAOT checked leg (#79847)
This is the same as the release leg, but checked runtime and on fewer queues (only Win x64 and Linux arm64).
Miha Zupan [Sun, 1 Jan 2023 04:21:04 +0000 (05:21 +0100)]
Use ArrayBuffer for read buffer management in HttpConnection (#79524)
* Use ArrayBuffer for read buffer management in HttpConnection
* Update outdated comment
bjornen77 [Sun, 1 Jan 2023 03:57:25 +0000 (04:57 +0100)]
Fix XML documentation (#80085)
Miha Zupan [Sun, 1 Jan 2023 01:57:28 +0000 (02:57 +0100)]
Use ArrayBuffer for read buffer management in HttpConnection (#79524)
* Use ArrayBuffer for read buffer management in HttpConnection
* Update outdated comment
Vladimir Sadov [Fri, 30 Dec 2022 23:24:32 +0000 (15:24 -0800)]
[NativeAOT] Cleanup and rationalizing process/thread termination scenario (#80063)
* remove m_pTEB
* set g_threadPerformingShutdown in DllMain
* more thread detach cleanup
* rationalizing DetachCurrentThread
* OnProcessExit
* Remove g_SuspendEELock
* fixes
* comment tweak
* fix assert (thread could be detached before ending up performing shutdown)
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* remove unused RtuDllMain
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Thays Grazia [Fri, 30 Dec 2022 18:18:01 +0000 (15:18 -0300)]
[wasm][debugger] Adding support to receive evaluationOptions from dap. (#71464)
* Adding support to receive evaluationOptions from dap.
* Update src/mono/wasm/debugger/BrowserDebugProxy/MemberObjectsExplorer.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
* Adding tests.
* Fix merge
* fix tests.
Co-authored-by: Ankit Jain <radical@gmail.com>
Miha Zupan [Fri, 30 Dec 2022 06:15:13 +0000 (07:15 +0100)]
Use IndexOfAnyValues in CompareInfo.Icu (#79787)
Miha Zupan [Fri, 30 Dec 2022 06:10:47 +0000 (07:10 +0100)]
Re-enable UploadValues_Success test (#80034)
Miha Zupan [Fri, 30 Dec 2022 06:06:02 +0000 (07:06 +0100)]
Add a test for IndexOfAnyValues.GetValues (#80038)
* Add a test for IndexOfAnyValues.GetValues
* Add test case for IndexOfEmptyValues
Michal Strehovský [Thu, 29 Dec 2022 15:42:58 +0000 (00:42 +0900)]
Fix stringification of types in managed type system (#80036)
This part was deleted too enthusiastically. We still need it. I don't know what I was thinking.
Pavel Savara [Thu, 29 Dec 2022 14:14:39 +0000 (15:14 +0100)]
[wasm] Asserts for externaly configured assets, more pendingDownload (#79886)
* asserts for assets
* allow to pass .wasm as pendingDownload
Zoltan Varga [Wed, 28 Dec 2022 18:20:56 +0000 (13:20 -0500)]
[mono] Reuse handles inside a loop in reflection_create_dynamic_method (). (#79716)
This fixes the 'reflection_create_dynamic_method USED x handles' warnings.
Tanner Gooding [Wed, 28 Dec 2022 17:44:52 +0000 (09:44 -0800)]
Move remaining HIR SIMDIntrinsics to SimdAsHWIntrinsic (#79720)
* Updating SimdAsHWIntrinsic to handle the InitN methods
* Remove SIMDIntrinsicInitN as it is dead
* Remove SIMDIntrinsicShiftLeftInternal and SIMDIntrinsicShiftRightInternal as they are dead
* Remove some other dead functions from the legacy SIMD support
* Improve the codegen for float Sse41.Insert when zero is involved
* Preserve the handling around InitN for Vector2/3/4 and operands that are contiguous in memory
* Extend the contiguous argument handling to Vector64/128/256
* Fixing how `this` is spilled for the SimdAsHWIntrinsic constructors
* Remove SIMDIntrinsicInitArray* and SIMDIntrinsicCopyToArray*, they are handled in managed code exclusively
* Move SIMDIntrinsicInitFixed to be implemented via SimdAsHWIntrinsic and remove impSIMDIntrinsic
* Apply formatting patch
* Ensure the Unsafe.Add occurs in the right position
* Ensure the Vector<T> APIs that take Span<byte> and ROSpan<byte> use sizeof(Vector<T>)
* Ensure the Vector<T> APIs that take Span<byte>/ROSpan<byte> check for unsupported types
* Wokaround an aliasing bug in GetArrayDataReference
* Ensure the right size/type is used for Vector###_Create contiguous args handling
* Ensure that jitdiff --diff --pmi doesn't assert
* Applying formatting patch
* Ensure we don't return nullptr for a lowered node
* Ensure TYP_SIMD8 bitcast is handled in VN
Thays Grazia [Wed, 28 Dec 2022 17:19:47 +0000 (14:19 -0300)]
[wasm][debugger] Trying to fix firefox flaky tests on CI. (#75090)
* Trying to fix firefox tests flaky tests on CI.
* Fix tab taking a long time to open.
* Trying to fix CI.
* Trying to debug on CI.
* Debugging CI.
* Debug on CI.
* debug on ci
* Fix merge
* Test with timeout * 2.
* Debug on CI.
* Removing messages and increasing timeout.
* Undoing the changes on CI
* Removing unrelated changes
* Remove unrelated change
* Applied review changes.
* Trying to fix new tests.
* Update firefox.
Co-authored-by: Ilona Tomkowicz <32700855+ilonatommy@users.noreply.github.com>
iinuwa [Wed, 28 Dec 2022 17:13:50 +0000 (11:13 -0600)]
Fix/multi server ldap binding linux (#79657)
* Fix LDAP configuration typo
* Allow LDAP binding to multiple servers on Linux
Bruce Forstall [Wed, 28 Dec 2022 17:10:09 +0000 (09:10 -0800)]
Add missing JitDump for LowerStoreLocCommon (#80008)
Michal Strehovský [Wed, 28 Dec 2022 07:19:51 +0000 (16:19 +0900)]
Fix generic dataflow for generic virtual methods (#80009)
Generic virtual method analysis happens on top of canonical forms, so we would miss the fact that `IFoo.SomeMethod<SomeType>` was called and only see `IFoo.SomeMethod<__Canon>`.
Robin Sue [Wed, 28 Dec 2022 07:18:39 +0000 (08:18 +0100)]
Delete ProcessXmlBase (#79980)
Kunal Pathak [Wed, 28 Dec 2022 05:18:18 +0000 (21:18 -0800)]
Fix the ARM's `double` register name displayed in JitDisasm/JitDump (#79949)
* Fix the double register name displayed
* Replace itoa with hand-coded
Jan Kotas [Tue, 27 Dec 2022 20:25:45 +0000 (12:25 -0800)]
Merge pull request #79918 from tlakollo/SyncILLinkAllHistory
Sync ILLink to latest dotnet/linker commits
SingleAccretion [Tue, 27 Dec 2022 19:21:39 +0000 (22:21 +0300)]
Handle LCL_FLD_ADDR in TreeLifeUpdater (#79913)
Gleb Balykov [Tue, 27 Dec 2022 18:23:10 +0000 (21:23 +0300)]
Add executable bit to tizen sh files (#79998)
Ilona Tomkowicz [Tue, 27 Dec 2022 15:23:58 +0000 (16:23 +0100)]
Modified regexes uses for group-match. (#79988)
Miha Zupan [Tue, 27 Dec 2022 14:12:33 +0000 (15:12 +0100)]
Respect SETTINGS_MAX_HEADER_LIST_SIZE on HTTP/2 and HTTP/3 (#79281)
Miha Zupan [Tue, 27 Dec 2022 13:08:06 +0000 (14:08 +0100)]
Fix WebClient url encoding casing (#79975)
Pavel Savara [Mon, 26 Dec 2022 20:24:36 +0000 (21:24 +0100)]
[wasm] Convert exception messages to resource (#79754)
* convert exception strings to resource
* feedback
* feedback
Tomas Weinfurt [Mon, 26 Dec 2022 18:27:34 +0000 (10:27 -0800)]
enable SslStream_AllowRenegotiation_False_Throws again (#79914)
Padraig Myers [Mon, 26 Dec 2022 13:39:54 +0000 (13:39 +0000)]
Remove null annotation from *HeaderValue.Parse methods (#79950)
* Remove null anotation from *HeaderValue.Parse methods
All Parse(string) methods in *HeaderValue.cs classes
(e.g. ProductHeaderValue) have the input parameter annotated
as nullable, however null values cause an exception.
Therefore removing the nullable annotation.
Fix #77160
* updating ref file
Co-authored-by: Padraig Myers <Padraig.Myers@viagogo.com>
Alexander Köplinger [Mon, 26 Dec 2022 12:15:55 +0000 (13:15 +0100)]
Fix condition in backport.yml to also trigger on schedule (#79951)
Andrii Kurdiumov [Sun, 25 Dec 2022 23:45:49 +0000 (05:45 +0600)]
Fix type name parsing in NativeAOT (#79963)
Simplified type name parsing was breaking if full name or assembly name has underscode ('_') in it. That breaks referencing `SQLitePCL.Batteries_V2, SQLitePCLRaw.batteries_v2` type inside `Microsoft.Data.Sqlite`
Fixes https://github.com/dotnet/efcore/issues/29725
Jan Kotas [Sun, 25 Dec 2022 19:48:20 +0000 (11:48 -0800)]
Delete token scanning from JIT/EE interface (#79964)
Token scanning was left-over from appdomains. It is not needed and it has subtle bugs that libraries tests started hitting recently.
Fixes #79439
hangy [Fri, 23 Dec 2022 21:40:21 +0000 (22:40 +0100)]
Extend ProcessStartInfo to allow setting LOGON_NETCREDENTIALS_ONLY (#77637)
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
Vladimir Sadov [Fri, 23 Dec 2022 21:31:48 +0000 (13:31 -0800)]
Fixing compressed singlefile scenario on osx-arm64 (#79894)
* force 6.0 instead of 3.0 on osx-arm64
* disable legacy test on osx-arm64
* fix osx-arm64 case
* undo unnecessary change
* use MEM_RESERVE_EXECUTABLE on HOST_UNIX
Badre BSAILA [Fri, 23 Dec 2022 20:17:48 +0000 (21:17 +0100)]
Unify FileStreamStrategy seeking (#78984)
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
Jan Kotas [Fri, 23 Dec 2022 17:45:27 +0000 (09:45 -0800)]
Fix condition for selecting build pools for official builds (#79779)
This change makes the condition that select Windows vs. Linux build machine identical between official and public builds.
Michal Strehovský [Fri, 23 Dec 2022 17:23:38 +0000 (02:23 +0900)]
Move all of generic virtual method resolution to the type loader (#79925)
* Move all of generic virtual method resolution to the type loader
For whatever reason, the logic that walks the inheritance hierarchy and deals with the differences between interface GVM and class GVM calls was in CoreLib.
Move it to the type loader because we'll need it for #77070.
* Oh the conversion to EEType was important
dotnet-maestro[bot] [Fri, 23 Dec 2022 14:26:05 +0000 (15:26 +0100)]
[main] Update dependencies from dotnet/arcade (#79448)
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
Alexander Köplinger [Fri, 23 Dec 2022 13:30:06 +0000 (14:30 +0100)]
Dispose underlying stream in TarReader.DisposeAsync() as well (#79920)
* Dispose underlying stream in TarReader.DisposeAsync() as well
Same as https://github.com/dotnet/runtime/pull/79899
* Consolidate duplicated WrappedStream test helpers to Common sources
* Dispose stream passed to WrappedStream
David Cantú [Fri, 23 Dec 2022 12:49:42 +0000 (06:49 -0600)]
Add readmes for @dotnet/area-system-io (#78935)
* Add readmes for @dotnet/area-system-io
* Fix trailing whitespace
* Fix contrib bar for Pipes.AccesControl and UnmanagedMemoryStream
* Remove "We encourage you to add new tests in..." line
* Apply suggestions from code review
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
David Cantú [Fri, 23 Dec 2022 12:18:04 +0000 (06:18 -0600)]
Add readmes for @dotnet/area-extensions-filesystem (#78954)
* Add readmes for @dotnet/area-extensions-filesystem
* Apply suggestions from code review
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
Tom Deseyn [Fri, 23 Dec 2022 12:04:19 +0000 (13:04 +0100)]
Process.Unix: while reaping all processes, handle encountering direct children. (#79817)
The process that runs as pid 1 is responsible for reaping orphaned processes.
Since .NET 7, .NET applications running as pid 1 assume this responsibility.
The code meant for reaping orphaned processes didn't account for encountering
direct children. These child processes get reaped without updating
the internal state. When the code later tries to reap such a child process
it causes a FailFast because the process is missing.
Michal Strehovský [Fri, 23 Dec 2022 05:35:38 +0000 (14:35 +0900)]
Fix size regression from enum sorting (#79845)
Use a specialized comparer instead of `Comparer<T>.Default` that brings the implementation of `IComparable.ComparerTo` on everything. Also get rid of the generic virtual method call.
Saves 0.9% on Hello World.
Michal Strehovský [Fri, 23 Dec 2022 04:14:08 +0000 (13:14 +0900)]
Allow preinitializing types with canonical forms (#79384)
* Allow preinitializing types with a canonical form
* Allow preinitializing generics with TypeLoaderAwarePreinitializationPolicy
We blanket disable canonical form preinitialization to keep things working by the policy instead.
* Fix Linq test
Tlakaelel Axayakatl Ceja [Fri, 23 Dec 2022 00:01:52 +0000 (00:01 +0000)]
Fix conflict between changes made both in dotnet/runtime and dotnet/linker
Michal Strehovský [Thu, 22 Dec 2022 23:26:05 +0000 (08:26 +0900)]
Avoid delegate allocation in generic cycle detector (#79842)
Removes 1,000,000 (one million) allocations while compiling a hello world. We were allocating a delegate and a closure each time we saw a reference from something generic to something generic.
This replaces the delegate with a manual closure allocated on the stack. The number of stack allocated entries was chosen arbitrarily. The highest recursion we see in CoreLib is for 3 elements, so 4 includes a bit of a buffer.
Maybe it's a tiny bit less readable, but not that much.
Buyaa Namnan [Thu, 22 Dec 2022 23:20:02 +0000 (15:20 -0800)]
Fix diagnostics found with new analyzer - CA1853 (#79896)
* Update src/libraries/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/DebugDirectory/DebugDirectoryBuilder.cs
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Tlakaelel Axayakatl Ceja [Thu, 22 Dec 2022 22:15:07 +0000 (22:15 +0000)]
Merge branch 'SyncLinkerLinux' of ../linker into main
Marek Safar [Thu, 22 Dec 2022 18:29:09 +0000 (19:29 +0100)]
Update WasmBase::IsSupported not to use backing field (#79884)
Alexander Köplinger [Thu, 22 Dec 2022 12:57:51 +0000 (13:57 +0100)]
Disable failing outerloop tests with ActiveIssue (#79908)
See https://github.com/dotnet/runtime/issues/79731 and https://github.com/dotnet/runtime/issues/79749 and https://github.com/dotnet/runtime/issues/79820
Mark Plesko [Thu, 22 Dec 2022 12:38:24 +0000 (04:38 -0800)]
More preparation for JIT\Regression test merging (#79697)
This is another collection of changes that can be merged independently of actual test merging. Automated changes were done with the ILTransform tool (started by @trylek, my version at https://github.com/markples/utils/tree/for-PR-dotnet-runtime-79697, commit
6324a32f).
- Remove test JIT/Regression/VS-ia64-JIT/V1.2-Beta1/b102887 (identical to JIT/Regression/VS-ia64-JIT/V1.2-M02/b28077)
- Dedup class names in GitHub_23199
- JIT/Regression/JitBlue/GitHub_23199 used #ifdefs to create 32 and 64 bit versions of the test
- Both versions can run on any host
- Duplicate the test with different names and no ifdefs
- Run both versions on all hosts
- Merge b399444 into one test that handles both cases
- JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b399444 used #ifdefs to create two tests
- Combine both into one test that checks both without #ifdefs
- Delete unused .xml files
- Add RequiresProcessIsolation
- Automated via `ILTransform -prociso`
- Add `<RequiresProcessIsolation>true</RequiresProcessIsolation>` for any test with CLRTestTargetUnsupported, GCStressIncompatible, UnloadabilityIncompatible, JitOptimizationSensitive, TieringTestIncompatible, HeapVerifyIncompatible, IlasmRoundTripIncompatible, SynthesizedPgoIncompatible, or CrossGenTest properties.
- Add `<RequiresProcessIsolation>true</RequiresProcessIsolation>` for any test with CLRTestBashEnvironmentVariable, CLRTestBatchEnvironmentVariable, CLRTestEnvironmentVariable, Content, CMakeProjectReference (not sure about the last two, but they only impact 3 tests and can be examined later)
- Add `<RequiresProcessIsolation>true</RequiresProcessIsolation>` for any test that calls Environment.Exit
- Add comment explaining why RequiresProcessIsolation is set to help with removing them later
- Make entry points public
- Automated via `ILTransform -public`
- Update entry point method (`Main` for C#, whatever is marked `.entrypoint` for IL) to be public
- Update entry point's enclosing type to be public if it exists
- Wrap IL entry points in a new class if one doesn't exist (e.g., CLR-x86-JIT/V1-M09.5-PDC/b10940/b10940a.il)
- Manual fixes for public changes
- These were all C# cases where Main was previously in a non-public type with other public methods that contained non-public types
- Fix in all cases is to just make the other method not public
David Cantú [Thu, 22 Dec 2022 09:36:43 +0000 (03:36 -0600)]
FileSystemWatcher: recreate file/directory before removing it again (#79901)
David Cantú [Thu, 22 Dec 2022 09:27:40 +0000 (03:27 -0600)]
TarReader should dispose underlying stream if leaveOpen is false (#79899)
Nash Barden [Thu, 22 Dec 2022 08:37:19 +0000 (19:37 +1100)]
Int32: Fixed double space in comments for Parse (#79897)
Co-authored-by: Nash Barden <nash.barden@tribetech.com.au>
Eugene Zhirov [Thu, 22 Dec 2022 01:40:38 +0000 (02:40 +0100)]
createdump: only dump committed memory (#79853)
Dumping memory regions as they are listed in /proc/pid/maps
results in increase of RAM usage of the target application
on some Linux kernels.
This change uses /proc/pid/pagemap to check if the page is committed
before adding it to the regions list. As the file is not available on
kernels 4.0 and 4.1 without elevated permissions there's a fallback to
previous behavior.
Tlakaelel Axayakatl Ceja [Thu, 22 Dec 2022 01:24:07 +0000 (17:24 -0800)]
Remaining feedback from ILLink merge (#79677)
* Remaining feedback from ILLink merge
Move ILLink MSBuild dependencies into Versions.props MSBuild section, and use a consistent MSBuild version
Update the readme from linker to state is a project and not a repository
Uses a live build of ilasm instead of relying on prebuilt bits from Microsoft.NET.Sdk.IL
Remove a unnecesary DefineConstant that is imported via SDK
Avoid having hardcoded package versions
Removes the illink PATENTS.txt, runtime's PATENTS.txt already takes into account Mono given that it has a mono partition
Michal Strehovský [Wed, 21 Dec 2022 21:59:33 +0000 (06:59 +0900)]
Switch to the new ARM64 Helix queues (#77764)
michel-codekapitein [Wed, 21 Dec 2022 18:00:23 +0000 (19:00 +0100)]
Fix deviating XMLDoc for HostingEnvExtensions (#79708)
XMLDoc was still pointing to the obsolete EnvironmentName instead of Environments.
Co-authored-by: Michel Trouwborst <michel@jump.nl>
Tanner Gooding [Wed, 21 Dec 2022 17:49:57 +0000 (09:49 -0800)]
Avoid a race condition in restoring the GenerateHWIntrinsicTests_* projects (#79861)
Viktor Hofer [Wed, 21 Dec 2022 16:32:37 +0000 (17:32 +0100)]
Update packaging.targets (#79881)
Miha Zupan [Wed, 21 Dec 2022 16:16:52 +0000 (17:16 +0100)]
Remove Mono SpanHelpers workaround (#79821)
Brian Surowiec [Wed, 21 Dec 2022 13:04:44 +0000 (08:04 -0500)]
Fix class summary (#79872)
Adam Sitnik [Wed, 21 Dec 2022 11:29:15 +0000 (12:29 +0100)]
New ASCII APIs (#75012)
Co-authored-by: Levi Broderick <levib@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Adeel Mujahid [Wed, 21 Dec 2022 10:31:08 +0000 (12:31 +0200)]
Remove bash dependency from init-compiler.sh (#77304)