Kevin Jones [Thu, 19 May 2022 16:22:12 +0000 (12:22 -0400)]
Allocate less with X500DistinguishedName
This cleanup happens to break parsing strings like OID.STREET=something on macOS and Linux, which was not an intentional feature.
It's not expected that this functionality was ever utilized, and it doesn't work on Windows (or .NET Framework).
Adeel Mujahid [Thu, 19 May 2022 15:16:52 +0000 (18:16 +0300)]
Update libraries build instructions on Unix (#69553)
Delete platform specific ones which are no longer relavant to this
repository.
Jerry King [Thu, 19 May 2022 15:03:41 +0000 (11:03 -0400)]
Correct MSVC version in requirements documentation (#68078)
* Correct MSVC version in requirements documentation
* Fix version constraint
Elinor Fung [Thu, 19 May 2022 14:46:45 +0000 (07:46 -0700)]
Fix check in test for output on unhandled exception (#69528)
Jakob Botsch Nielsen [Thu, 19 May 2022 13:17:58 +0000 (15:17 +0200)]
Make superpmi.py collect easier to use (#69487)
* Add COMPlus_JitPath variable in debug/checked builds and use it from SuperPMI
* Do not change current dir for SPMI collections
Radek Zikmund [Thu, 19 May 2022 12:47:46 +0000 (14:47 +0200)]
Add AppContext data support for DefaultMaxConnectionsPerServer (#68952)
* Add AppContext data support for DefaultMaxConnectionsPerServer
* Move code to GlobalHttpSettings
* Rename the switch
* Fix build
* Fix build of System.Net.Http.WinHttpHandler
* Remove changes from WinHttpHandler
* Cleanup
* Merge new GlobalHttpSettings into SocketsHttpHandler inner class
* Code review feedback
Anton Lapounov [Thu, 19 May 2022 06:23:17 +0000 (23:23 -0700)]
Clean up code for CPU_Group_Info structs (#69533)
Tanner Gooding [Thu, 19 May 2022 04:41:17 +0000 (21:41 -0700)]
Adding Int128 and UInt128 with a base software implementation (#69204)
* Adding barebones Int128 and UInt128 structs
* Special case Int128 and UInt128 alignment on x64 Unix and Arm64
* Implementing Int128 and UInt128
* Adding tests for Int128 and UInt128
* Updating Int128/UInt128 to respect the System V ABI ordering
* Fixing an issue with UInt128->BigInteger setting the wrong sign
* Don't use Unsafe.As in the Int128/UInt128 hex parsing logic
* Adding Int128 P/Invoke tests and ensure R2R correctly sets the packing
* Fixing some issues with the Int128 interop test for non-Windows
* Ensure that floating-point conversions exist for Int128 and UInt128
* Fixing the casing of a couple fields
* Revert "Don't use Unsafe.As in the Int128/UInt128 hex parsing logic"
This reverts commit
09e8bfc52d5b1b7f7b341f318bf1046b19768dd3.
* Adjusting the Int128/UInt128 generic math tests to have consistent ordering
* Responding to PR feedback
* Ensure that pNativeLayoutInfo alignment is initialized for Int128/UInt128
* Don't use Unsafe.As in the Int128/UInt128 hex parsing logic
* Skip the Interop/PInvoke/Int128 tests on Mono
Kevin Jones [Thu, 19 May 2022 03:00:38 +0000 (23:00 -0400)]
Use span instead of array in PublicKey
Elinor Fung [Thu, 19 May 2022 02:02:11 +0000 (19:02 -0700)]
Run host tests with dotnet test and enable crash/hang dumps (#69340)
Jeff Handley [Thu, 19 May 2022 01:11:08 +0000 (18:11 -0700)]
Do not automatically mark Stephen Toub as the issue triager or PR champion (#69452)
Aleksey Kliger (λgeek) [Thu, 19 May 2022 00:27:44 +0000 (20:27 -0400)]
[wasm-ep] Minimal diagnostic tracing configuration and sample (#69158)
* Adds a `/p:WasmEnablePerfTracing=true` configuration.
In this configuration the runtime is built with threading (`MonoWasmThreads` property is true), but user C# code is not allowed to start threads and doesn't use the portable threadpool (`MonoWasmThreadsNoUser` property is also true).
The upshot is that EventPipe can start threads but user code is still single-threaded.
* Adds a `MONO.diagnostics` interface in JavaScript. There's a single method for now `createEventPipeSession` which creates a session that can save a trace to a file on the virtual file system. JS code (or a user in a dev console) needs to call `start()` and `stop()` on the session object to begin collecting samples. The data is saved temporarily to the Emscripten VFS and can be retrived into a JavaScript Blob (and from there downloaded to a file outside the browser).
* Adds a sample that runs an async task for five seconds and collects samples and then triggers a `click()` to download the trace file out of the browser.
* Adds a TS module to help with working with uint64_t values in the emscripten heap.
* Exposes empscripten Module.stackSave, stackRestore and stackAlloc operations to the runtime TS modules. Use for working with event pipe session ID outparam.
---
* add DISABLE_WASM_USER_THREADS mono cmake option
* Disable Thread.StartInternal icall if DISABLE_WASM_USER_THREADS
if threading is enabled for the runtime internally, but disabled for user code, throw PNSE
* add an eventpipe sample
* [wasm-ep] (browser-eventpipe sample) run loop for longer
* [samples/wasm-eventpipe] make an async task sample
change the sample to do some work asynchronously using setTimeout instead of blocking
* [wasm] Add MONO.diagnostics interface
Binds enable, start, disable methods defaulting to non-streaming FILE mode
* if wasm threads are disabled, but perftracing is enabled, don't log overlapped io events
* fix whitespace and nits
* don't need try/finally in the sample anymore
* more whitespace
* add start method to EventPipeSession interface
* don't run wasm-eventpipe sample on CI lanes without perftracing
* more whitespace
* fix eslint warnings, default rundown to true, allow callback for traceFilePath option
* add EventPipeSession.getTraceBlob
for retrieving the collected traces instead of exposing the emscripten VFS directly.
update the sample to use URL.createObjectURL (session.getTraceBlob()) to create the download link
* [browser-eventpipe sample] remove unnecessary ref assemblies
* use ep_char8_t for C decls of event pipe wasm exports
* Use stack allocation for temporaries
Expose the emscripten stack allocation API
* Use 32-bit EventPipe session ID on WASM
64 bit integers are awkward to work with in JavaScript.
The EventPipe session ID is derived from a pointer address, so even though it is nominally a 64-bit value, in practice the top bits are zero.
Use a 32-bit int to represent the session ID on the javascript side and convert to 64-bit in C when calling down to the EventPipe APIs
* Make the sample do more work in managed
give the sample profiler some non-empty samples to collect
* Move withStackAlloc to memory.ts
* simplify VFS .nettrace file naming
Just use consecutive integers to uniquify the session traces. Dont' need a fancy timestamp in the VFS (which would also not be unique if you create sessions below the timestamp resolution)
* Add overloads to memory.withStackAlloc to avoid creating closures
Pass additional arguments to the callback function
* sample: explain why there's a 10s pause
* move createEventPipeSession callback to a function
ensures the closure is created once
* Use a tuple type for withStackAlloc
* use unsigned 32-bit get/set in cuint64 get/set
* fix whitespace
Elinor Fung [Wed, 18 May 2022 23:27:38 +0000 (16:27 -0700)]
Use shared settings for enabling analyzers in LibraryImportGenerator (#69511)
John Salem [Wed, 18 May 2022 23:04:03 +0000 (16:04 -0700)]
Disable nativeruntimeeventsource test on unix arm and arm64 (#69510)
Andy Ayers [Wed, 18 May 2022 22:44:06 +0000 (15:44 -0700)]
JIT: Abandon loop search if we are about to walk off end of the bbNext chain (#69503)
In #69323 the 6.0.4 jit caused an AV because it walked off the end of the
bbNext chain during `optFindNaturalLoops`.
Analysis of a customer-provided dump showed that `MakeCompactAndFindExits`
might fail to find an expected loop block and so walk the entire bbNext chain
and then fall off the end. Details from the dump suggested that this happened
because a prior call to `MakeCompactAndFindExits` had moved most but not all of
a loop's blocks later in bbNext order, leaving that loop's bottom block earlier
in the bbNext chain then it's top. This ordering was unexpected.
I cannot repro this failure. The customer was using PGO and it's likely that
earlier PGO-driven block reordering contributed to this problem by interleaving
the blocks from two loops. We can recover the root method PGO schema from the
dump, but applying this is insufficient to cause the problem. This method does
quite a bit of inlining so it's likely that some inlinee PGO data must also be
a contributing factor.
At any rate, we can guard against this case easily enough, and simply abandon
recognition of any loop where we fail to find an expected loop block during
the bbNext chain walk.
SingleAccretion [Wed, 18 May 2022 20:40:46 +0000 (23:40 +0300)]
Expand the GC hole fix for explicitly initialized structs (#69501)
* Expand the fix for explicitly initialized structs
Liveness code already recognizes that it cannot delete certain local
stores with the implicit side effect of "explicit initialization".
However, it was only doing that for indirect "InitBlk" forms, while
the store can have more or less arbitrary shape (the only requirement
is that is must be "entire").
Fix this by not constraining the check to "InitBlk"s.
* Add a test
Kevin Jones [Wed, 18 May 2022 19:52:18 +0000 (15:52 -0400)]
Minor cleanup and reduce allocations in managed X.509 certificate PAL
Removes a few allocations, pre-sizes a list to the correct size, and remove redundant debugging code.
Radek Zikmund [Wed, 18 May 2022 16:15:20 +0000 (18:15 +0200)]
Fix data race on incoming MsQuicStream abort event (#69483)
* Fix data race on MsQuicStream abort
* fixup! Fix data race on MsQuicStream abort
Stephen Toub [Wed, 18 May 2022 15:04:39 +0000 (11:04 -0400)]
Add more char.Is* helpers for common ASCII sets (#69318)
* Add more char.Is helpers for common ASCII sets
* Fix hex tests
Ilona Tomkowicz [Wed, 18 May 2022 14:33:42 +0000 (16:33 +0200)]
Fixing problem for decimals. (#66979)
Miha Zupan [Wed, 18 May 2022 14:01:15 +0000 (16:01 +0200)]
Add current-outgoing-connect-attempts counter to Sockets (#66651)
* Add current-outgoing-connect-attempts counter to Sockets
* Use instance methods, add early exit to hot path
* Add comment about Accept/Connect check
* Fix race in test
Aleksey Kliger (λgeek) [Wed, 18 May 2022 12:43:46 +0000 (08:43 -0400)]
[wasm] Give is_nullish() a type guard type (#69473)
* [wasm] Give is_nullish() a type guard type
allow callers to refine the type of the argument to just `T` on the false
brach
```
let obj: number | null | undefined = ...
if (is_nullish (obj))
return;
// otherwise obj is known to TS to be 'number'.
```
Aleksey Kliger (λgeek) [Wed, 18 May 2022 12:42:58 +0000 (08:42 -0400)]
[monoapi] Add MONO_IMAGE_NOT_SUPPORTED to MonoImageOpenStatus (#69062)
* [monoapi] Add MONO_IMAGE_NOT_SUPPORTED to MonoImageOpenStatus
Use it as a return value for public API functions that pass `ref_only` set to `TRUE`. We don't support opening assemblies for reflection-only in .NET 6+
dotnet-maestro[bot] [Wed, 18 May 2022 12:24:33 +0000 (14:24 +0200)]
[main] Update dependencies from dotnet/arcade (#69126)
* Update dependencies from https://github.com/dotnet/arcade build
20220509.5
Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework , 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.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk
From Version 2.5.1-beta.22255.2 -> To Version 2.5.1-beta.22259.5
* Update dependencies from https://github.com/dotnet/arcade build
20220510.2
Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework , 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.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk
From Version 2.5.1-beta.22255.2 -> To Version 2.5.1-beta.22260.2
* Update dependencies from https://github.com/dotnet/arcade build
20220511.14
Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework , 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.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk
From Version 2.5.1-beta.22255.2 -> To Version 2.5.1-beta.22261.14
* Update dependencies from https://github.com/dotnet/arcade build
20220512.8
Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework , 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.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk
From Version 2.5.1-beta.22255.2 -> To Version 2.5.1-beta.22262.8
* Update dependencies from https://github.com/dotnet/arcade build
20220516.1
Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework , 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.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk
From Version 2.5.1-beta.22255.2 -> To Version 2.5.1-beta.22266.1
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Marek Safar <marek.safar@gmail.com>
Vitek Karas [Wed, 18 May 2022 11:07:16 +0000 (04:07 -0700)]
Do not print anything to stderr running SCD app without deps.json (#69314)
When we're running self-contained app the `hostfxr` tries to figure out the location of `hostpolicy.dll`. This is done also by looking into the `.deps.json` for the app (which should have a record for `hostpolicy.dll` in it). If the file is missing the code will move on and find the `hostpolicy.dll` in the app's folder, but it will also print out a message to stderr.
This means that running such app will actually work, but the host outputs a message to stderr - effectively "corrupting" the app's own output.
Note that this doesn't affects framework dependent apps without `.deps.json` since they look into the framework's `.deps.json` for `hostpolicy.dll`.
Jan Kotas [Wed, 18 May 2022 10:44:45 +0000 (03:44 -0700)]
Disable System.Reflection tests on NativeAOT (#69477)
Workarounds #69476
Stephen Toub [Wed, 18 May 2022 10:04:15 +0000 (06:04 -0400)]
Fix several regex loop issues (#69413)
* Fix several regex loop issues
1. Atomic greedy loop stack fixing. We were leaving some state on the backtracking stack after an atomic greedy loop successfully matched; if an earlier construct needed to pop something from the stack, it could end up getting state from that loop rather than its own.
2. Lazy loop backtracking pos. When a lazy loop backtracks to add an additional iteration, it needs to pick up where the previous iteration left off, but it wasn't properly storing/restoring the pos.
3. Improve RightToLeft (lookbehind) backreference matching. This wasn't broken, but it was unnecessarily complex and making the resulting code harder to debug through. This only affects the source generator, as RegexCompiler uses slightly different codegen due to also handling IgnoreCase.
4. Reuse loop logic for repeater atomic lazy loops. Atomic lazy loops end up being functionally identical to the equivalent greedy loop due to having the lazy upper bound lowered to the lazy lower bound. We can consolidate the implementations to avoid duplication.
5. .* Singeline loop in RightToLeft (lookbehind). Mainly to reduce the noise while investigating these issues, but it avoids an unnecessary loop.
* Address PR feedback
Will Smith [Wed, 18 May 2022 08:03:39 +0000 (01:03 -0700)]
ARM64 - Do not emit possible DIV_BY_ZERO/OVERFLOW exception blocks for non-zero/non-(negative one) constants (#68945)
* Do not emit possible DIV_BY_ZERO exception for non-zero constants
* Added overflow check
* Added second divzero check change
* Update morph.cpp
* Update morph.cpp
Elinor Fung [Wed, 18 May 2022 04:10:31 +0000 (21:10 -0700)]
Delete securitywrapper/securityutil (#69468)
Kevin Jones [Wed, 18 May 2022 03:05:40 +0000 (23:05 -0400)]
Spanify some Windows X.509 PAL and improve formatting
Kevin Jones [Wed, 18 May 2022 02:51:29 +0000 (22:51 -0400)]
Use Rfc3279DerSequence for signatures in ECDsaX509SignatureGenerator
William Godbe [Tue, 17 May 2022 22:44:56 +0000 (15:44 -0700)]
Add comment about PipeReader.ReadAtLeastAsync(0) (#69217)
* Add comment about PipeReader.ReadAtLeastAsync(0)
* Update PipeReader.cs
* Update PipeReader.cs
* Update PipeReader.cs
* Fixup
Maoni Stephens [Tue, 17 May 2022 22:27:01 +0000 (15:27 -0700)]
UOH alloc fix for hardlimit (#69345)
Kunal Pathak [Tue, 17 May 2022 22:20:31 +0000 (15:20 -0700)]
Arm64: Make unroll code for cpblk non-interruptible (#69202)
* make unroll code non-interruptible
* jit format
* Disable GC only in specific scenarios:
* add a comment
Eric Erhardt [Tue, 17 May 2022 22:01:04 +0000 (17:01 -0500)]
Reuse the throw away buffer in ZipHelper (#69439)
* Reuse the throw away buffer in ZipHelper
ZipHelper.AdvanceToPosition was allocating a new temporary buffer every time through the loop while reading from the stream. Changing the code to reuse the same buffer through the loop.
Meri Khamoyan [Tue, 17 May 2022 20:30:53 +0000 (00:30 +0400)]
#69424 disabled failing equals nan tests on tvos (#69429)
Disabling failing tests on tvos for issue #69424
Jan Vorlicek [Tue, 17 May 2022 20:22:14 +0000 (22:22 +0200)]
Fix executable memory reservation when range is not requested (#69430)
The VMToOSInterface::ReserveDoubleMappedMemory on Unix currently
doesn't use the range of memory reserved for executable purposes
in PAL in case there was no specific range of memory requested.
This is incorrect and it leads to steady state performance
degradation when W^X is enabled.
This change fixes it by using the PAL reserved memory even for
requests without specified range. This makes the steady state
performance the same both with and without W^X enabled.
This is very well visible on the Orchards and Fortunes benchmarks
performance where the regression was 17% resp 12% with W^X enabled.
Katelyn Gadd [Tue, 17 May 2022 20:05:05 +0000 (13:05 -0700)]
Wasm conditional audit + remove CompileFunction (#69283)
* Revise some if statements that implicitly treat the empty string as null
Add is_nullish utility function
Fix string decoder's handling of empty strings and query of string length
* Fix some uses of the logical or operator
* Remove unused CompileFunction interop API
Jan Kotas [Tue, 17 May 2022 19:21:16 +0000 (12:21 -0700)]
Wrap exceptions from array constructors in TargetInvocationException (#69440)
Fixes #69336
Zoltan Varga [Tue, 17 May 2022 18:42:16 +0000 (14:42 -0400)]
[mono] Fix a crash during stack trace construction if a this object is null. (#69292)
Fixes https://github.com/dotnet/runtime/issues/67354.
Adam Sitnik [Tue, 17 May 2022 18:27:52 +0000 (20:27 +0200)]
Reduce max shared memory object name length (#68541)
* reduce max shared memory object name to 30
* use the fallback to be 100% safe
Carlos Sanchez [Tue, 17 May 2022 17:37:21 +0000 (10:37 -0700)]
Revert "Address some System.Formats.Tar TODOs (infra and syscalls) (#69107)" (#69442)
This reverts commit
54083237da17f8ce04a98bf70ddd716d604ce628.
Ankit Jain [Tue, 17 May 2022 17:01:00 +0000 (13:01 -0400)]
[wasm][debugger] Extract the main run loop from DevToolsClient, and (#69219)
* [wasm][debugger] Extract the main run loop from DevToolsClient, and
.. DevToolsProxy into a separate class, which would allow having the
same features, and having only one place for the fixes.
* Fix harness tests
* fix merge error
Tom Deseyn [Tue, 17 May 2022 16:34:49 +0000 (18:34 +0200)]
Add clang 14 to known compiler versions. (#69249)
* Add clang 14 to known compiler versions.
* NativeExports: strip 'unknown compiler' and other stderr output when determining compiler path.
Theodore Tsirpanis [Tue, 17 May 2022 16:31:36 +0000 (19:31 +0300)]
Support ref fields in `System.Reflection.Metadata.Ecma335.BlobEncoder`. (#69378)
* Support ref fields in `System.Reflection.Metadata.Ecma335.BlobEncoder`.
Fixes #68309.
A test case was added.
Tomas Weinfurt [Tue, 17 May 2022 16:22:41 +0000 (09:22 -0700)]
remove duplicate Connect logic from TcpClient (#67951)
Lakshan Fernando [Tue, 17 May 2022 14:28:28 +0000 (07:28 -0700)]
Fix for GetMemberWithSameMetadataDefinitionAs (#69284)
* Test fix for GetMemberWithSameMetadataDefinitionAs
* get reflection tests clean
* add doc info to test a library in native aot
Marie Píchová [Tue, 17 May 2022 14:17:47 +0000 (16:17 +0200)]
Fixed work with QUIC_BUFFER (#69351)
Eric Erhardt [Tue, 17 May 2022 13:27:07 +0000 (08:27 -0500)]
Add some assertions to Stream.Read in System.Text.Encoding.CodePages (#69414)
* Add some assertions to Stream.Read in System.Text.Encoding.CodePages
BaseCodePageEncoding is relying on Stream.Read to read a full buffer of data in a single read. This is safe to assume because the only stream ever used is an UnmanagedMemoryStream, which will just copy the data to the buffer.
Adding some asserts to the code to make this assumption explicit.
CyrusNajmabadi [Tue, 17 May 2022 13:19:12 +0000 (06:19 -0700)]
Make json source generation cancellable (#69332)
* Make json generation cancellable
* Simplify
* no var
* Update src/libraries/System.Text.Json/gen/JsonSourceGenerator.Roslyn3.11.cs
* Update src/libraries/System.Text.Json/gen/JsonSourceGenerator.Roslyn3.11.cs
* Update src/libraries/System.Text.Json/gen/JsonSourceGenerator.Roslyn3.11.cs
Co-authored-by: Sam Harwell <sam@tunnelvisionlabs.com>
Co-authored-by: Sam Harwell <sam@tunnelvisionlabs.com>
Eric Erhardt [Tue, 17 May 2022 10:55:34 +0000 (05:55 -0500)]
Optimize ManifestResourceStream.Read(Span<byte>) (#69412)
ManifestResourceStream is derived from UnmanagedMemoryStream. UnmanagedMemoryStream optimizes Read(Span<byte>), but only if the instance is concretely an UnmanagedMemoryStream. This is to protect in case the derived Stream overriddes Read(byte[], int, int) prior to the Read(Span<byte>) overload being introduced.
Optimize ManifestResourceStream by overriding Read(Span<byte>) and call ReadCore, so the Stream.Read(Span<byte>) logic of using a pooled byte[] buffer isn't used.
Jakob Botsch Nielsen [Tue, 17 May 2022 10:19:18 +0000 (12:19 +0200)]
Allow the inliner to substitute for small arguments (#69068)
Since we no longer have contextual nodes to indicate small arguments,
this should be safe to do. For register arguments it does not matter and
for stack arguments it is handled in codegen (for macOS arm64).
Kunal Pathak [Tue, 17 May 2022 03:30:02 +0000 (20:30 -0700)]
Use intrinsic for genLog2() (#69333)
* Use intrinsic for genLog2()
* Use correct macro
* Fix non-msvc build
* fix 32-bit build
* just do for TARGET_64BIT
* Review comments
Carlos Sanchez [Tue, 17 May 2022 02:45:30 +0000 (19:45 -0700)]
Address some System.Formats.Tar TODOs (infra and syscalls) (#69107)
* Fix Design time build errors by removing src project as dependency of the test project.
* Add Browser to target platform identifiers. Ensure Browser can consume the Unix specific ArchivingUtils file too.
* Remove nullable enable from csproj since it's now default
* Use FileStream constructor with FileMode.CreateNew to detect and throw if destination file exists when creating archive.
* No error checking on syscalls that do not set errno.
* Add RDev field in FileStatus and retrieve it with stat/lstat so devmajor and devminor get their correct values.
* Simplify some File.Open calls with direct FileStream constructor calls. Simplify FileStreamOptions objects too.
* Implement and consume p/invokes to retrieve uname from uid and gname from gid.
* size_t variables should not be checked for negative values
* FileStream calls simplified to File.OpenRead
* Remove check for RDev > 0
* Use dictionary to preserve repeated unames and gnames mapped to uids and gids
* Missing documentation in pal_uid.h new PALEXPORT methods.
* Adjust syscalls to thread-safe ones. Start with stackalloc, then use loop.
* Make dicts readonly and non-nullable, use TryGetValue
* Reuse 'GetNameFromUid' from pal_networking.c, move to pal_uid.c, use similar logic for Gid method. Simplify Interop.Sys method.
* Remove unnecessary comment
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
* Put TargetFrameworks back in the first position of the PropertyGroup.
* Address eerhardt suggestions
* Update src/libraries/System.Formats.Tar/tests/TarWriter/TarWriter.WriteEntry.File.Tests.Unix.cs
* Clarify in pal_uid.h methods comments that new memory is returned
Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
Adeel Mujahid [Tue, 17 May 2022 01:43:57 +0000 (04:43 +0300)]
Delete ClrDirectoryEnumerator (#69400)
* Delete unused PAL functions
* Delete ClrDirectoryEnumerator
Aaron Robinson [Tue, 17 May 2022 01:38:26 +0000 (18:38 -0700)]
Add support for marshalling signed/unsigned boolean types. (#69402)
Kevin Jones [Tue, 17 May 2022 00:33:55 +0000 (20:33 -0400)]
Cleanup some X509 PAL allocations
Jan Kotas [Mon, 16 May 2022 23:57:47 +0000 (16:57 -0700)]
Add correct assembly context name to InvalidCastException message (#69346)
* Add correct assembly context name to InvalidCastException message
Fixes #69341
* Move GetNameForDiagnostics to assemblybinder.cpp/assemblybinder.h
Elinor Fung [Mon, 16 May 2022 23:23:34 +0000 (16:23 -0700)]
Fix LibraryImportGenerator.UnitTests.Compiles.ValidateSnippetsFallbackForwarder (#69398)
Mike McLaughlin [Mon, 16 May 2022 22:11:36 +0000 (15:11 -0700)]
Fix ASAN violation under Samsung's netcoredbg (#69339)
* Fix ASAN violation under Samsung's netcoredbg
Fixes issue https://github.com/dotnet/runtime/issues/62281
The wrong holder was being used in DacDbiInterfaceImpl::GetNativeVarData(); change to NewArrayHolder.
Added new/delete operators to Exception so when it is thrown from the DAC and caught/deleted in DBI, the
correct C++ allocator is used. When the DAC is called by DBI, g_pAllocator points to the DBI allocator.
* Code review feedback
Mike McLaughlin [Mon, 16 May 2022 22:10:16 +0000 (15:10 -0700)]
Workaround crash in Microsoft.DiaSymReader.Native (#68990)
* Workaround crash in Microsoft.DiaSymReader.Native
Issue: https://github.com/dotnet/runtime/issues/59077
The fix is to check if the module has a portable PDB in the debug directory
and use the well-tested managed portable PDB source/line number code.
Add support for in-memory embedded PDBs.
Radek Zikmund [Mon, 16 May 2022 20:58:57 +0000 (22:58 +0200)]
Move MsQuicStream._streamId into MsQuicStream.State (#69382)
* Move StreamId into State
* Code review feedback
Tomas Weinfurt [Mon, 16 May 2022 20:44:30 +0000 (13:44 -0700)]
remove internal socket exception from NameResolution (#69270)
Tomas Weinfurt [Mon, 16 May 2022 20:43:42 +0000 (13:43 -0700)]
avoid allocationg ApplicationProtocol in common case (#69098)
* avoid allocationg ApplicationProtocol in common case
* ReadOnlySpan
* feedback from review
Aaron Robinson [Mon, 16 May 2022 20:18:53 +0000 (13:18 -0700)]
Removal of IBC infrastructure (#68717)
* Removal of IBC infrastructure
* Crossgen2 - remove tuning flag.
mfkl [Mon, 16 May 2022 20:07:48 +0000 (03:07 +0700)]
Detect truncated GZip streams (#61768)
* System.IO.Compression tests: add StreamTruncation_IsDetected
* System.IO.Compression: detect and throw on truncated streams
* account for edge case
* account for edge case in async version
* rename nonZeroInput to nonEmptyInput
* remove else to improve codegen
* run StreamTruncation_IsDetected for all three types of compression streams
* fixup test build and run
* add stream corruption test
* review feedback - cosmetics
* make BrotliStream detect truncation
* make StreamCorruption_IsDetected run for gzip only
other types of stream can't detect corruption properly
* skip byte corruption which results in correct decompression
* code style
* add zlib corruption test, no skipping needed
* clarify why we skip bytes in gzip test
* add and use truncated error data message
Co-authored-by: Marcin Krystianc <marcin.krystianc@gmail.com>
Kevin Jones [Mon, 16 May 2022 18:32:29 +0000 (14:32 -0400)]
Remove CngKeyLite
The class is no longer used after consolidating cryptographic assemblies.
Ankit Jain [Mon, 16 May 2022 17:45:53 +0000 (13:45 -0400)]
[wasm] Fix debug proxy when used with blazor (#69342)
Due to recent debug proxy changes, when trying to debug a blazor app, it
fails with:
```
fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
An unhandled exception has occurred while executing the request.
System.InvalidOperationException: No output has been recevied from the application.
at Microsoft.AspNetCore.Builder.DebugProxyLauncher.LaunchAndGetUrl(IServiceProvider serviceProvider, String devToolsHost)
at Microsoft.AspNetCore.Builder.WebAssemblyNetDebugProxyAppBuilderExtensions.<>c.<<UseWebAssemblyDebugging>b__0_1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.InvokeCore(HttpContext context, PathString matchedPath, PathString remainingPath)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
```
This is because it's looking for specific lines in output. And also, it
fails if it gets an empty line.
This commits fixes the output to match what blazor expects. And
essentially, disables firefox debug proxy when the host is directly
used, which is only by blazor right now.
This will change in the future though, and blazor side can be patched to
work better.
Aaron Robinson [Mon, 16 May 2022 16:53:31 +0000 (09:53 -0700)]
Remove most usages of *wprintf* family of functions (#68237)
* Remove most usage of *wprintf* family of functions
* Revert updates to Windows only source
* Make constants for integer max string lengths
Filip Navara [Mon, 16 May 2022 16:51:41 +0000 (18:51 +0200)]
Update ActiveIIssue on NtlmSignatureTest (#69389)
Ilona Tomkowicz [Mon, 16 May 2022 15:53:54 +0000 (17:53 +0200)]
[wasm][debugger] Refactor: narrow down SdbHelper responsibility (#66821)
* Refactor.
* Applied @radical's suggestions about expression body.
* On refactor-createjobj-66068: Applied @radical's https://github.com/radical/runtime/commit/
69f5cea4dfe30f3dbd74333b1b23fd8feb665e18.
* Revert test fix and separate it to another PR.
* Reverted whitespaces.
* Overlooked whitespaces - undo.
* Made static what can be static.
* Removed whitespaces.
* Removed whitespaces.
* Blocked tests failing on Firefox.
Aaron Robinson [Mon, 16 May 2022 14:40:22 +0000 (07:40 -0700)]
Add `IntPtr` conversion APIs for some runtime handles (#69363)
* Add conversion APIs for runtime handles
Jakob Botsch Nielsen [Mon, 16 May 2022 14:36:35 +0000 (16:36 +0200)]
Only fold Type.op_Equality calls before morphing args (#69367)
Otherwise we may discard setup nodes.
Fix #68513
Omair Majid [Mon, 16 May 2022 12:27:40 +0000 (08:27 -0400)]
Fix KeepNativeSymbols to work on mono as well (#66594)
When packaging .NET on s390x through source-build, we want to keep debug
symbols enabled in the build. The package manager (debbuild, rpmbuild,
etc) generally strips the binaries to create distro-standard
-debug/-debuginfo packages. This was supported in coreclr via
--keepnativesymbols flag, but wasn't supported in mono (ie, s390x). Fix
that.
Badre BSAILA [Mon, 16 May 2022 12:11:53 +0000 (14:11 +0200)]
support only Ordinal comparison inside WildcardPathSegment (#69079)
Juan Hoyos [Mon, 16 May 2022 10:01:07 +0000 (03:01 -0700)]
Update signing of JS files (#69366)
Fixes part of #69317
Radek Zikmund [Mon, 16 May 2022 08:28:13 +0000 (10:28 +0200)]
Add OpenTelemetry with Geneva exporter to test server (#69304)
Jan Kotas [Sun, 15 May 2022 18:57:22 +0000 (11:57 -0700)]
Fix UTF8 string marshalling regression (#69360)
* Fix UTF8 string marshalling regression
We need to compensate for the differences in lifetime management patterns used by built-in marshalling system vs. the publicly explosed marshallers.
Fixes #69349
* Call Marshal.FreeCoTaskMem in the AOT compiler built-in marshalling
* Use Marshal.StringToCoTaskMemUni in Utf16StringMarshaller implementation
Jan Kotas [Sun, 15 May 2022 18:24:49 +0000 (11:24 -0700)]
Revert "Add IL Emit support for MethodInfo.Invoke() and friends" (#69373)
* Revert "Fix Assembly.GetCallingAssembly() (#69225)"
This reverts commit
8420dae8e84e03b7658a21f4b18831a8a2f0db79.
* Revert "Add IL Emit support for MethodInfo.Invoke() and friends (#67917)"
This reverts commit
5195418426468d13b042ae079c65aa05595295b4.
Bradley Grainger [Sun, 15 May 2022 15:27:46 +0000 (08:27 -0700)]
Fix typo in 'parameter'. (#69370)
SingleAccretion [Sun, 15 May 2022 09:56:58 +0000 (12:56 +0300)]
Implement constant-folding for `VNF_BitCast` (#68979)
A few small diffs in tests where we now form new constants
for "long/int <-> double/float>" reinterpretations.
Completes the support for "VNF_BitCast" and removes the SIMD
quirk from "VNForLoadStoreBitCast".
Stephen Toub [Sat, 14 May 2022 21:55:38 +0000 (17:55 -0400)]
Improve some use of Regex (#68961)
- Use IsMatch instead of Match(...).Success
- Use EnumerateMatches when Index/Length are needed but not captures
- Remove Regex that could just be IndexOf
Jan Kotas [Sat, 14 May 2022 20:55:12 +0000 (13:55 -0700)]
Fix buffer overrun in dbgutil (#69358)
Fixes #69353
Adeel Mujahid [Sat, 14 May 2022 20:07:13 +0000 (23:07 +0300)]
Delete a few unused definitions from coreclr pal (#69357)
SingleAccretion [Sat, 14 May 2022 19:15:13 +0000 (22:15 +0300)]
Delete incorrect asserts (#69354)
* Delete incorrect asserts
In an "OBJ(LCL_VAR_ADDR)" argument, the underlying local can be of any type/HFA-ness.
* Add tests
SingleAccretion [Sat, 14 May 2022 18:35:20 +0000 (21:35 +0300)]
Do not fold mismatched `OBJ(ADDR(LCL_VAR))` (#69271)
* Do not fold mismatched OBJ(ADDR(LCL_VAR))
The transforms in question could fold, e. g. "OBJ<8>(ADDR(LCL_VAR<16>))"
to just the "LCL_VAR", necessitating workarounds in block morphing that
had to rematerialize the block node to restore IR's validity.
It is better to simply not create questionable IR in the first place.
* Add a test
* Re-enable tests
* Fix regressions
By using layout compatibility in "gtNewStructVal" instead of handle equality.
This is safe to do because "gtNewStructVal" is only used in contexts of block
copies (as opposed to call arguments).
Zoltan Varga [Sat, 14 May 2022 16:08:59 +0000 (12:08 -0400)]
[mono][llvm] More LLVM 14.x changes. (#69239)
* Add a type to the 'sret' parameter attribute.
* Add helper functions for creating pointer types and pointer casts.
Viktor Hofer [Sat, 14 May 2022 07:50:35 +0000 (09:50 +0200)]
Avoid unnecessary or duplicate PackageReferences - 7.0 Preview4 SDK work (#69260)
* [WIP - Validation] Update the SDK to Preview4
* Avoid duplicate PackageReference
* Fix duplicated PackageReference
* Remove duplicate PackageRefs
* Update llvm-init.proj
* Update global.json
* Update xunit.props
dotnet bot [Sat, 14 May 2022 07:45:23 +0000 (00:45 -0700)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 1770798 (#69337)
Tanner Gooding [Sat, 14 May 2022 04:46:08 +0000 (21:46 -0700)]
Ensure non-numeric types don't implement the numeric only generic math interfaces (#69331)
Steve Pfister [Sat, 14 May 2022 04:12:09 +0000 (00:12 -0400)]
Add windows runtime packs as a workload (#68981)
At certain points in time internally, the sdk will rev its version and insert into VS. It's at this point the sdk version will be ahead of the runtime version as we have not published anything into nuget. In MAUI and WinUI scenarios, this creates a bit of a pickle as the sdk will try to download a new version of the windows runtime pack, but it will not be available.
To get around this limitation, we are introducing a workload that will be inserted into VS where you can optionally install Windows runtime packs.
Jan Kotas [Sat, 14 May 2022 02:55:25 +0000 (19:55 -0700)]
Use more specific types in Interop.WideCharToMultiByte signature (#69338)
Rolf Bjarne Kvinge [Sat, 14 May 2022 00:06:14 +0000 (02:06 +0200)]
[mono] Fix parsing the 'nunbox-arbitrary-trampolines' aot argument. (#69319)
Tanner Gooding [Fri, 13 May 2022 21:52:07 +0000 (14:52 -0700)]
Expose the RuntimeFeature.NumericIntPtr member for C# 11 (#69322)
Tomas Weinfurt [Fri, 13 May 2022 21:36:10 +0000 (14:36 -0700)]
enable NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds (#69264)
Ankit Jain [Fri, 13 May 2022 21:08:41 +0000 (17:08 -0400)]
Do not sign the .js files (#69317)
* Do not sign the .js files
We want to avoid the js files in wasm templates from getting the
signature block in user visible files.
Fixes https://github.com/dotnet/runtime/issues/69288 .
* Update eng/Signing.props
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Theodore Tsirpanis [Fri, 13 May 2022 20:28:02 +0000 (23:28 +0300)]
Use static abstract members on two occasions. (#69278)
Andrew Au [Fri, 13 May 2022 19:55:22 +0000 (12:55 -0700)]
Fix a typo (#69145)
Eirik Tsarpalis [Fri, 13 May 2022 17:31:28 +0000 (18:31 +0100)]
Add DateOnly and TimeOnly support to System.Text.Json (#69160)
* Add DateOnly and TimeOnly support to System.Text.Json
* Constrain DateOnly supported formats to calendar dates only.
* Update src/libraries/System.Text.Json/src/System/Text/Json/ThrowHelper.cs
Co-authored-by: Layomi Akinrinade <layomia@gmail.com>
* Replace NETx_OR_GREATER with NETCOREAPP
Co-authored-by: Layomi Akinrinade <layomia@gmail.com>
Jeremy Koritzinsky [Fri, 13 May 2022 16:45:01 +0000 (09:45 -0700)]
Fix handling of custom type marshaller pinning with a different type than the native type. (#69214)
Co-authored-by: Aaron Robinson <arobins@microsoft.com>