Stephen Toub [Tue, 7 Feb 2023 01:28:31 +0000 (20:28 -0500)]
Avoid using `file` in generated regexes pre-C# 11 (#81726)
Katelyn Gadd [Tue, 7 Feb 2023 01:09:47 +0000 (17:09 -0800)]
[wasm] Migrate jiterpreter hit counting to C (#81729)
* Move jiterpreter trace hit counting to C for better performance
Aaron Robinson [Tue, 7 Feb 2023 00:22:33 +0000 (16:22 -0800)]
Fix contract violations. (#81727)
Removes GC_TRIGGERS contract for functions that
do not trigger a GC. The removed contract definition
appears to be out of date.
Fallout from #81571
Michal Strehovský [Tue, 7 Feb 2023 00:03:30 +0000 (09:03 +0900)]
Match ILScanner with CorInfoImpl (#81683)
ILScanner and the JitInterface have to be in sync wrt exceptions throw or there are problems. Fixes one of the Pri0 tests.
Andy Ayers [Tue, 7 Feb 2023 00:00:07 +0000 (16:00 -0800)]
JIT: rename flowList to FlowEdge and encapsulate all fields (#81621)
Restructure this type in anticipation of modifying how it represents data.
Rename some of the fields (and now related accessor methods) because subsequent
changes may do things like add the target block or successor edge links.
Also, remove some stray references to fgComputePreds
Michal Strehovský [Mon, 6 Feb 2023 23:54:55 +0000 (08:54 +0900)]
Adjust workaround for event source resource stripping (#81528)
The used approach only worked in debug builds. `InlineableStringResource` is not one of the nodes that survives from scanning phase to compilation phase. Make the compiler think `GetResourceString` was reflected on instead.
Sven Boemer [Mon, 6 Feb 2023 22:49:12 +0000 (14:49 -0800)]
Run nativeaot tests in helix (#81439)
This changes the existing NativeAot smoke test runs to run in
helix. The multi-module test run (only supported on windows)
now runs only in the checked configuration, to avoid
having to add a separate windows build script invocation inside
one of the yaml templates.
Eirik Tsarpalis [Mon, 6 Feb 2023 22:25:44 +0000 (22:25 +0000)]
Fix order of parameters in exception message formatter. (#81718)
Meri Khamoyan [Mon, 6 Feb 2023 21:02:07 +0000 (01:02 +0400)]
Update icu version and uncomment wasi icu libc (#81694)
Fix #81560
Thays Grazia [Mon, 6 Feb 2023 20:52:52 +0000 (17:52 -0300)]
[wasm][debugger]Adding stack info to the exception details when evaluating expressions (#81440)
* Adding stack info to the exception details when evaluating expressions.
* passing only one parameter.
* Fixing CI.
* Fixing format.
* Added a new test: Evaluate on a callframe different of the first and check if the callstack is correct.
And fix it.
* Addressing @radical comments.
* addressing @radical comments.
Youssef Victor [Mon, 6 Feb 2023 20:23:54 +0000 (22:23 +0200)]
Simplify language version check in Regex generator (#81678)
* Simplify language version check in Regex generator
* Fix build
Katelyn Gadd [Mon, 6 Feb 2023 20:18:35 +0000 (12:18 -0800)]
[wasm] jiterpreter cleanup and performance improvements (#81707)
* Improves the jiterpreter's code gen performance slightly by removing some redundant work from the compilation hot path and moving it to one-time initialization instead.
* Split the jiterpreter trace generation code into its own file
* Stop using opname.startsWith in trace generation
* Minor logging cleanup
* Remove dead code
Eric Erhardt [Mon, 6 Feb 2023 19:43:45 +0000 (13:43 -0600)]
EnableAotAnalyzer by default for src libraries (#81608)
* EnableAotAnalyzer by default for src libraries
This flips the default of EnableAotAnalyzer to true so all new libraries are analyzed by default. It also allows us to easily see which libraries haven't been annotated yet.
I also fixed the warnings in 2 libraries that were really quick: System.Memory.Data and System.ComponentModel.TypeConverter.
Contributes to #75480
Tomas Weinfurt [Mon, 6 Feb 2023 19:32:59 +0000 (11:32 -0800)]
prevent use of null when processing alpn list (#81629)
Jo Shields [Mon, 6 Feb 2023 19:26:55 +0000 (14:26 -0500)]
Split Mono manifest creation into a separate subset (#81598)
* Split manifest building from mono-packages.proj into a standalone subset, in order to fix up #80920 so building manifests works when the runtime is CoreCLR (as is typically the case on source-build)
Allan Targino [Mon, 6 Feb 2023 18:50:50 +0000 (15:50 -0300)]
LSG: removing unnecessary null forgiven operators and refactor other minor nullability issues (#81662)
Fan Yang [Mon, 6 Feb 2023 18:38:07 +0000 (13:38 -0500)]
[Mono] Enable AOT to print out the list of compiled methods (#81567)
* Initial setup
* Exclude generics and update variable names
* Review feedbacks and error handling
Jakob Botsch Nielsen [Mon, 6 Feb 2023 18:37:53 +0000 (19:37 +0100)]
SPMI: Display TP diffs as a range in the header (#81661)
The current approach of averaging all collections does not make sense.
Kevin Jones [Mon, 6 Feb 2023 18:07:54 +0000 (13:07 -0500)]
Use initialCapacity in ASN.1 templates for default int/bool
Ankit Jain [Mon, 6 Feb 2023 18:04:51 +0000 (13:04 -0500)]
[wasi] Support builds with no relinking (#81648)
* [wasi] support builds with no relinking
* wasi: update main() to work for no relinking
* wasi: fix command line for tests
* Bring back the workaround for xharness, as the fix hasn't been merged in runtime yet
* [wasi] Ignore test failures for runtime, and runtime-extra-platforms pipelineso
.. as the wasi library tests are unstable right now, and would block
mainline work.
- But when run as part of a wasm specific pipeline like `runtime-wasm`,
then don't ignore the test failures
Michal Strehovský [Mon, 6 Feb 2023 17:22:27 +0000 (02:22 +0900)]
Delete leftover reflection eventsource handling (#81686)
This is annotated in the CoreLib now.
Stephen Toub [Mon, 6 Feb 2023 16:57:06 +0000 (11:57 -0500)]
Fix handling of postponed messages in TargetCore (#81011)
The TargetCore type represents the bulk of the logic used in dataflow blocks for receiving messages pushed to it. If a block is bounded and the block reaches its bound, subsequent pushes to the block may be postponed, and then when room is available, that TargetCore implementation needs to try to consume messages it previously postponed. That's handled by the TryConsumePostponedMessage method.
Inside this method, it pops an element from its postponed messages queue. The first time it does so, it does two or three things, depending on the reason the method is being called. It optimistically increments the bounding count, meaning the number of items it claims to hold, under the assumption it's going to successfully consume a previously postponed message and thus have one more message to count against the established bound. It also optimistically assigns the next available message ID, again assuming it'll successfully consume one. And if the method is being called in order to transfer a postponed message into its input queue (as opposed to processing it immediately), it also tracks that a transfer is in process (in order to then prevent other incoming messages from concurrently going straight into the input messages and violating ordering).
Those optimistically changed values need to be undone if the assumption fails. If, for example, we fail to consume any message, we need to decrement the bounding count and note that a transfer is no longer in progress. We also need to burn the message ID that was assigned, in particular if there's a reordering buffer: that reordering buffer may have been waiting for that particular ID in order to release messages it's already stored with higher IDs, and it needs to be told that ID will never arrive.
We had two bugs here:
1. When we decremented the outstanding transfers counter, we were doing so without holding the appropriate lock. That could lead to, for example, losing one of the decrements and ending up in a situation where all future messages are forced to be postponed.
2. We were only correctly tracking transfers for the first postponed message we'd try to consume. If there were multiple, we'd end up tracking the first but then not tracking subsequent ones in that batch, leading to other messages arriving concurrently potentially ending up out of order.
3. When this method was being called not for postponement, we might end up not burning the message ID with the reordering buffer. That would result in the reordering buffer not releasing any more messages, and could do so without incurring any exceptions or other indication of data loss.
Michal Strehovský [Mon, 6 Feb 2023 16:55:51 +0000 (01:55 +0900)]
Wrap exceptions in reflection virtual method resolution (#81682)
* Wrap exceptions in reflection virtual method resolution
Fixes the reflection\DefaultInterfaceMethods\InvokeConsumer.cs test that expects EntryPointNotFound to be wrapped.
* Update VirtualMethodInvoker.cs
dotnet bot [Mon, 6 Feb 2023 14:51:54 +0000 (06:51 -0800)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2105677 (#81359)
Vlad Brezae [Mon, 6 Feb 2023 14:23:37 +0000 (16:23 +0200)]
[mono][interp] Align simd types to 16 bytes by default (#81219)
* [mono][interp] Remove unused method
* [mono][interp] Optimize code just in case
* [mono][interp] Align simd types to 16 bytes by default
All interp vars (args, il locals and other allocated vars) are now aligned to 16 byte offsets.
* [mono][interp] Add svar arg to MINT_NEWOBJ_SLOW_UNOPT
Assumption that return offset is identical to location of param offset for this opcode is no longer true. Set the param_offset explicitly, separate from the return, similar to #81017
* [mono][interp] Disable assertion on hot path
* [mono][interp] Remove some duplicate code
Vitek Karas [Mon, 6 Feb 2023 12:35:23 +0000 (04:35 -0800)]
NativeAOT Fully implements warning suppressions logic (#81266)
Ports the warning suppression logic from linker. The only unsupported feature is reading the suppressions from attribute XML. This also doesn't port the "redundant suppression detection" logic from linker.
Other changes:
* Extracts some helpers for attribute handling into CustomAttributeExtensions (mostly around properties and events)
* Implements equality and hashcode on property and event descriptors - so that they can be used as keys in a dictionary
* Implements passing along the "--singlewarn" command line option in the test infra.
Also ports over all of the warning suppression tests from linker:
* Modified all of the "redundant suppressions" tests to be "trimmer-only" as that feature is only implemented there.
* Removed the "suppressions from XML" tests
Per discussion with @MichalStrehovsky I will rename `PropertyPseudoDesc` and `EventPseudoDesc` to `EcmaProperty` and `EcmaEvent`. But I'll do that in a separate PR as it would add a lot of noise to this one.
Egor Bogatov [Mon, 6 Feb 2023 11:23:26 +0000 (12:23 +0100)]
Optimize IND<SIMD>(RVA) (#81651)
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Tanner Gooding [Mon, 6 Feb 2023 04:11:28 +0000 (20:11 -0800)]
Adjust impNormStructVal to not wrap in GT_OBJ (#81636)
* Adjust impNormStructVal to not wrap in GT_OBJ
* Ensure UpdateEarlyRefCount handles CALL(LCL_VAR)
Andy Ayers [Mon, 6 Feb 2023 02:52:08 +0000 (18:52 -0800)]
JIT: fix issue with partial comp pred list maintenance (#81605)
We may have degenerate flow out of a partial compilation block, so make
sure to fully remove the block from all successor pred lists.
Fixes issue seen in #80635.
Austin Wise [Mon, 6 Feb 2023 02:51:48 +0000 (18:51 -0800)]
[NativeAOT] correctly initalize CONTEXT before failing fast (#81010)
* [NativeAOT] correctly initalize CONTEXT before failing fast
* Switch from using GetThreadContext to RtlCaptureContext.
* Add a better explination of why the function is unimplmented on Unix.
* Update src/coreclr/nativeaot/Runtime/PalRedhawk.h
Co-authored-by: Vladimir Sadov <vsadov@microsoft.com>
* Respond to feedback: unconditionally set CONTEXT_CONTROL
* Respond to feedback: consolidate setting of ContextFlags.
* On second thought, don't add a second layer of ifdef nesting.
---------
Co-authored-by: Vladimir Sadov <vsadov@microsoft.com>
Andy Ayers [Mon, 6 Feb 2023 02:51:12 +0000 (18:51 -0800)]
Fix spmi jit flag dumper for new flag (#81667)
Also remove SIMD flag (didn't cause build breaks because it was specified
by value, not name).
Ankit Jain [Mon, 6 Feb 2023 02:31:22 +0000 (21:31 -0500)]
[wasm] CI: add wasi jobs to runtime-wasm (#81647)
- And run all the library tests with wasi, on optional pipeline
Szczepan Ćwikliński [Mon, 6 Feb 2023 02:18:55 +0000 (03:18 +0100)]
Set UseLLVMLinker=true when targeting FreeBSD by default (#81642)
Stephen Toub [Sun, 5 Feb 2023 23:24:06 +0000 (18:24 -0500)]
Suppress unobserved task exceptions for channel Completion tasks (#81652)
Allan Targino [Sun, 5 Feb 2023 19:19:43 +0000 (16:19 -0300)]
diagnostic to detect malformed format strings in lsg template message (#81503)
fix https://github.com/dotnet/runtime/issues/52226
Egor Bogatov [Sun, 5 Feb 2023 18:55:37 +0000 (19:55 +0100)]
Vectorize Guid.ToString (#81650)
Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Jakob Botsch Nielsen [Sun, 5 Feb 2023 16:54:05 +0000 (17:54 +0100)]
SPMI: Fix SpmiRecordsHelper::RestoreCORINFO_RUNTIME_LOOKUP (#81657)
Fix #81637
Ankit Jain [Sat, 4 Feb 2023 22:21:07 +0000 (17:21 -0500)]
[wasm] wasi: Enable library tests on CI (#81052)
Stephen Toub [Sat, 4 Feb 2023 22:12:39 +0000 (17:12 -0500)]
Use MemoryExtensions.Count in a few places (#81325)
* Use MemoryExtensions.Count in a few places
* Update src/libraries/System.Text.Json/src/System/Text/Json/Reader/JsonReaderHelper.cs
SingleAccretion [Sat, 4 Feb 2023 20:14:26 +0000 (23:14 +0300)]
Upstream a few changes from the NativeAOT-LLVM branch (#81616)
* Use pointer type for generic context
...in the shadow method signature for the special unboxing thunks.
The shadow method acts as an alias to the instance method
it represents and so must have the exact same signature.
* Support direct pointers in VSD cells
* Add INTERFACE_DISPATCH_CACHE_HAS_CELL_BACKPOINTER
Adeel Mujahid [Sat, 4 Feb 2023 20:08:12 +0000 (22:08 +0200)]
Suppress clang-16 warnings (#81573)
* Suppress clang-16 warnings
* Remove a strange (one-of-a-kind) workaround
* Add thunk for PAL_{Unr,R}egisterModule
Katelyn Gadd [Sat, 4 Feb 2023 11:37:33 +0000 (03:37 -0800)]
[wasm] Jiterpreter field op refactorings; fixes #81558 (#81620)
* Refactor jiterpreter field op implementation into separate static and nonstatic field implementations
* Add more diagnostic infrastructure
* fixes issue #81558 (dictionary.findvalue bug)
Egor Bogatov [Sat, 4 Feb 2023 08:57:42 +0000 (09:57 +0100)]
Promote Tier0 methods with loops to InstrumentedTier0 (#81051)
Aaron Robinson [Sat, 4 Feb 2023 06:42:31 +0000 (22:42 -0800)]
Prep for new diagnostic work and tests (#81571)
* Fix asserts fired during diag testing
* EnC flag is now applied to MethodDesc instead of
Instantiated MethodDesc.
* Renamed ambiguous method and updated some logging.
Adeel Mujahid [Sat, 4 Feb 2023 06:09:39 +0000 (08:09 +0200)]
Fix -Wformat violations (#81618)
Juan Hoyos [Sat, 4 Feb 2023 04:58:40 +0000 (20:58 -0800)]
Generate StandardOptimizationData uncompressed (#81623)
Stephen Toub [Sat, 4 Feb 2023 03:18:53 +0000 (22:18 -0500)]
Make FrozenHashTable non-generic (#81603)
With some tweaks to how it's defined, we can avoid making it generic at all, which helps to reduce native aot compilation size when ToFrozenDictionary/Set is used with multiple generic instantiations.
Geert van Horrik [Fri, 3 Feb 2023 23:23:05 +0000 (00:23 +0100)]
System.DirectoryServices.Protocols.LdapConnection has wrong argument check (#78459) (#80636)
* #78459 System.DirectoryServices.Protocols.LdapConnection has wrong argument check for anonymous authentication
* Add unit tests for ldap-anonymous-auth-fix
Eric Erhardt [Fri, 3 Feb 2023 22:29:12 +0000 (16:29 -0600)]
Respect HostApplicationBuilderSettings.Args when DisableDefaults=true (#81568)
If the Args was specified, always add it to the Configuration.
Fix #81445
Kunal Pathak [Fri, 3 Feb 2023 19:50:38 +0000 (11:50 -0800)]
Update the assert to correctly check if a tree with value has non-zero destination registers (#81412)
* Fix the assert
* add test cases
* Remove the unused node
* Revert "Remove the unused node"
This reverts commit
32a8c9c598925133592cb2093cda95c989cc278b.
* fix the test case
* fix the arm64 and arm cases too
Jan Vorlicek [Fri, 3 Feb 2023 19:20:55 +0000 (20:20 +0100)]
Fix OOM edge case in interleaved LoaderHeap (#81602)
When the `CommitPages` in `GetMoreCommittedPages` fails, which can
happen due to OOM, the `m_pPtrToEndOfCommittedRegion` was already
updated from the end of the code page to the end of the data page.
So if another allocation request comes to the heap, we think there is
one extra page of space left and end up allocating region that crosses
the code / data page boundary. And later we crash when initializing
precodes that were allocated by this request.
This issue was discovered by a Roslyn CI test that loaded assemblies
into non-collectible AssemblyLoadContext instances and ended up jitting
so many methods that the maximum number of mappings on Linux (65535 by
default) got exceeded and mmap failed.
This change fixes it by moving the `m_pPtrToEndOfCommittedRegion` only
in the success case.
Tom Deseyn [Fri, 3 Feb 2023 19:11:22 +0000 (20:11 +0100)]
pal_ssl: include missing code for non-portable OpenSSL 3.0 build. (#81596)
Andy Ayers [Fri, 3 Feb 2023 16:47:55 +0000 (08:47 -0800)]
JIT: revise checking for computed preds (#81582)
Since pred lists now exist pervasively, change most methods that had
conditional pred list updates to assert preds exist and always update.
To make sure I got all uses, I renamed `fgComputePredsDone` to
`fgPredsComputed`.
Remove the ability to drop EH, as it doesn't update pred lists properly
and so has been broken for quite a while now.
Remove some of the logic for fixing up finally targets, since we now
always have pred lists around and so don't need the blanket invaliation.
Closes #80193.
Egor Bogatov [Fri, 3 Feb 2023 16:02:34 +0000 (17:02 +0100)]
Remove AggressiveInlining from XxHash3 and XxHash128 HashLength0To16 (#81565)
Eirik Tsarpalis [Fri, 3 Feb 2023 15:45:30 +0000 (15:45 +0000)]
Use eager evaluation when configuring the JsonTypeInfo type graph. (#81576)
* Use eager evaluation when configuring the JsonTypeInfo type graph.
* Use enums to model JsonTypeInfo configuration state.
Eirik Tsarpalis [Fri, 3 Feb 2023 15:42:32 +0000 (15:42 +0000)]
Remove JsonMetadataServices dependency from DeserializeAsyncEnumerable (#81579)
dotnet-maestro[bot] [Fri, 3 Feb 2023 15:35:07 +0000 (16:35 +0100)]
Update dependencies from https://github.com/dotnet/arcade build
20230202.4 (#81591)
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Ivan Povazan [Fri, 3 Feb 2023 08:13:11 +0000 (09:13 +0100)]
Support targeting iOS platforms with ILCompiler (#81476)
Fixes https://github.com/dotnet/runtime/issues/80908
Kunal Pathak [Fri, 3 Feb 2023 05:30:07 +0000 (21:30 -0800)]
Do not print stack trace if error reading crashReportJsonFile (#81467)
Michal Strehovský [Fri, 3 Feb 2023 04:23:17 +0000 (13:23 +0900)]
Do not expect quic to work on single file deployments (#81581)
This new test is breaking runtime-extra-platforms CI legs.
Katelyn Gadd [Fri, 3 Feb 2023 02:46:32 +0000 (18:46 -0800)]
[wasm] Implement more opcodes in the jiterpreter (#81575)
* Implement the new add_mul_imm interpreter opcodes
* Implement MINT_LDFTN and MINT_INTRINS_ENUM_HASFLAG
* Implement MINT_ARRAY_RANK
Andy Ayers [Fri, 3 Feb 2023 02:28:20 +0000 (18:28 -0800)]
JIT: remove cheap preds (#81562)
We no longer need cheap preds. We always have full preds available.
Also, remove the ability to drop and recompute full preds, as we now compute
full preds incrementally while building the flow graph, and never drop or need
to rebuild them.
Contributes to #80193.
Ankit Jain [Fri, 3 Feb 2023 01:33:16 +0000 (20:33 -0500)]
CI: Update darc dependency to track emsdk manifest name change (#81556)
Egor Bogatov [Thu, 2 Feb 2023 22:11:15 +0000 (23:11 +0100)]
Allow inlining for ldsfld + value-type (#78736)
Andy Ayers [Thu, 2 Feb 2023 20:11:01 +0000 (12:11 -0800)]
JIT: build pred lists when we first build the flow graph (#81524)
This is the last in a (long) series. We now build the pred lists at the same
time we are initially connecting up the flow graph. Pred lists are now always
valid and need to be maintained by all phases.
There are some changes needed in EH normalization, and one special case we
need to handle in debug codegen where we create the scratch BB very early on.
This was the last client for the cheap pred lists.
Note some of the pred list info can't be added right away, in particular
the "return" edges from finallies do not appear until we've made it through
the importer.
I have deferred cleaning up dead code; will do it in follow-up changes.
Contributes to #80193.
Marek Fišera [Thu, 2 Feb 2023 19:55:31 +0000 (20:55 +0100)]
[wasm] Allow users to control behavior of undefined symbols (#80495)
Milos Kotlar [Thu, 2 Feb 2023 19:03:17 +0000 (20:03 +0100)]
[mono][ios] Introduce non-global symbol stripping in MonoAOTCompiler msbuild task (#81361)
* Add non-global symbol stripping in AppleAppBuilder task.
* Strip symbols when measuring SOD via build-appbundle make target
Jakob Botsch Nielsen [Thu, 2 Feb 2023 18:31:46 +0000 (19:31 +0100)]
Delete JIT disasm output in test wrappers before running FileCheck (#81538)
JitStdOutFile has append behavior, so if you rerun the scripts you would
get multiple repeated sets of jitdisasm. This would give FileCheck a
much range of disassembly to match that was much wider than expected.
Tom Deseyn [Thu, 2 Feb 2023 18:10:56 +0000 (19:10 +0100)]
Update some CertificateRequest tests to behave correctly on systems lacking SHA-1
Ankit Jain [Thu, 2 Feb 2023 18:08:36 +0000 (13:08 -0500)]
Install workload manifests in sdk band version derived from the (#81461)
.. installer version.
- This is only for running Wasm.Build.Tests
Two new properties are added:
- `SdkBandVersionForWorkload_ComputedFromInstaller`: this is based on the
version derived from `dotnet --version`. `8.0.0-alpha.1.1234.1` becomes
`8.0.0-alpha.1`, and is used as the path where the manifests get installed for testing:
`sdk-manifests/$(SdkBandVersionForWorkload_ComputedFromInstaller)`
- `SdkBandVersionForWorkload_FromRuntimeVersions`: this is the version
band used for the packages generated. And simply rename of the earlier
`$(SdkBandVersionForWorkload)`.
dotnet-maestro[bot] [Thu, 2 Feb 2023 17:54:13 +0000 (11:54 -0600)]
Update dependencies from https://github.com/dotnet/arcade build
20230201.1 (#81535)
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.23080.3 -> To Version 8.0.0-beta.23101.1
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Ankit Jain [Thu, 2 Feb 2023 16:59:18 +0000 (11:59 -0500)]
[wasm] CI: fix the new runtime-wasm-dbgtests pipeline (#81513)
* [wasm] CI: fix the new runtime-wasm-dbgtests pipeline
* update README
* fix
* runtime-wasm-dbgtests: disable automatic run for PRs also
Adeel Mujahid [Thu, 2 Feb 2023 16:02:34 +0000 (18:02 +0200)]
Pass -pie and -no-pie to the linker (#81533)
* Pass -pie and -no-pie to the linker
When `PositionIndependentExecutable` is `false`, we need to pass
`-no-pie` to the linker. Otherwise, we need to pass `-pie` to the
linker with `-Wl` because we are not compiling the code at this stage
(only linking the objects).
* Add -pie for non-pie .o (in CentOS 7)
Szczepan Ćwikliński [Thu, 2 Feb 2023 15:58:22 +0000 (16:58 +0100)]
Fix build for FreeBSD arm64 w/NativeAOT (#81510)
Andy Ayers [Thu, 2 Feb 2023 15:46:50 +0000 (07:46 -0800)]
JIT: change profile slop assert to a jitdump note (#81377)
Stop asserting if we see unusually large discrepancies in the outgoing profile
flow from a block. Instead just make a note in the jit dump.
Fixes #77450.
Eirik Tsarpalis [Thu, 2 Feb 2023 14:14:14 +0000 (14:14 +0000)]
Remove types deriving from JsonTypeInfo<T> and mark as sealed. (#81306)
* Remove types deriving from JsonTypeInfo<T> and mark as sealed.
* Rename the metadata resolution files.
* Address feedback
* Only sort properties if necessary.
Mitchell Hwang [Thu, 2 Feb 2023 08:18:56 +0000 (03:18 -0500)]
[mono] Introduce designated direct pinvokes to mono aot compiler (#79721)
Introduce designated direct pinvokes to mono aot compiler.
Pavel Savara [Thu, 2 Feb 2023 08:11:03 +0000 (09:11 +0100)]
[browser] javascript build cleanup (#81212)
* type definitions
* linked files
* fix fetch imports
Tanner Gooding [Thu, 2 Feb 2023 06:21:11 +0000 (22:21 -0800)]
Improve the codegen of the vector accelerated `System.Numerics.*` types (#81335)
* Allow Quaternion and Plane to be imported as TYP_SIMD16
* Add some minimal intrinsification of Quaternion and Plane
* Ensure Vector indexers are marked readonly
* Ensure the vector constant properties are intrinsic
* Ensure that the vector GetElement and WithElement APIs are intrinsic
* Ensure vector division by scalar is intrinsic
* Minor cleanup to vector files
* Ensure vector arithmetic functions are consistently intrinsic
* Ensure creating a plane from a vector4 is intrinsic
* Ensure accessing the Normal field of a Plane is efficient
* Ensure Quaternion and Plane return the correct SimdAsHWIntrinsicClassId
* Specially optimize Create(Dot(..., ...)) and Create(Sqrt(Dot(..., ...)))
* Ensure vector clamp is intrinsic
* Ensure vector lerp is intrinsic
* Ensure vector length is intrinsic
* Ensure vector normalize is intrinsic
* Ensure vector distance is intrinsic
* Optimize the vector transform by matrix methods
* Ensure quaternion conjugate and inverse are intrinsic
* Fixing assert, formatting, and build failure
* Ensure Quaternion.Inverse uses LengthSquared not Length
* Ensure Create APIs are correctly imported as intrinsic
* Ensure we don't assert for AltJit
* Ensure lowering DotProd doesn't break CSE for scalar vs vector results
* Minimally fixup Mono for the new intrinsics
* Ensure SN_GetElement doesn't raise an assert
* Ensure get_UnitW is ordered correctly for Mono
* Try to fix SN_GetElement
* Fix SN_WithElement for Mono
* Resolving mono formatting feedback
Tanner Gooding [Thu, 2 Feb 2023 05:46:53 +0000 (21:46 -0800)]
Ensure that we don't try to constant fold BSF(0) or BSR(0) (#81516)
* Ensure that we don't try to constant fold BSF(0) or BSR(0)
* Ensure the test returns 100 and has correct usings
* Apply formatting patch
Michal Strehovský [Thu, 2 Feb 2023 05:27:41 +0000 (14:27 +0900)]
Consider method accessibility in interface resolution (#81409)
Fixes dotnet/corert#1986 (yep, all the way to CoreRT repo).
We finally found an instance where this matters - in MAUI. Non-public methods never implement an interface by name+sig combo. We got the `ProtectedDerived` case in the newly added test wrong.
SingleAccretion [Thu, 2 Feb 2023 03:41:15 +0000 (06:41 +0300)]
Delete !CODEGEN_CPP ifdefs from NAOT smoke tests (#81474)
dotnet-maestro[bot] [Thu, 2 Feb 2023 02:17:49 +0000 (18:17 -0800)]
[main] Update dependencies from 8 repositories (#81354)
* Update dependencies from https://github.com/dotnet/runtime build
20230129.4
Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Text.Json
From Version 8.0.0-alpha.1.23072.5 -> To Version 8.0.0-alpha.1.23079.4
* Update dependencies from https://github.com/dotnet/llvm-project build
20230130.1
runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx.11.0-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.osx.11.0-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter
From Version 1.0.0-alpha.1.23073.1 -> To Version 1.0.0-alpha.1.23080.1
* Update dependencies from https://github.com/dotnet/llvm-project build
20230130.3
runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools
From Version 14.0.0-alpha.1.23074.1 -> To Version 14.0.0-alpha.1.23080.3
* Update dependencies from https://github.com/dotnet/icu build
20230130.3
Microsoft.NETCore.Runtime.ICU.Transport
From Version 8.0.0-alpha.1.23077.1 -> To Version 8.0.0-preview.2.23080.3
* Update dependencies from https://github.com/dotnet/xharness build
20230130.1
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.23073.2 -> To Version 1.0.0-prerelease.23080.1
* Update dependencies from https://github.com/dotnet/runtime-assets build
20230130.1
Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData
From Version 8.0.0-beta.23073.1 -> To Version 8.0.0-beta.23080.1
* Update dependencies from https://github.com/dotnet/roslyn-analyzers build
20230131.1
Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
From Version 3.3.5-beta1.23076.2 -> To Version 3.3.5-beta1.23081.1
* Update dependencies from https://github.com/dotnet/hotreload-utils build
20230130.1
Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
From Version 1.1.0-alpha.0.23073.1 -> To Version 1.1.0-alpha.0.23080.1
* Update dependencies from https://github.com/dotnet/cecil build
20230130.1
Microsoft.DotNet.Cecil , Microsoft.DotNet.Cecil.Pdb
From Version 0.11.4-alpha.23073.1 -> To Version 0.11.4-alpha.23080.1
* Update dependencies from https://github.com/dotnet/roslyn-analyzers build
20230131.3
Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
From Version 3.3.5-beta1.23076.2 -> To Version 3.3.5-beta1.23081.3
* Dont warn for CA1860 inside illink
* Update rootfs
---------
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Tlakollo <tlcejava@microsoft.com>
Co-authored-by: Sven Boemer <sbomer@gmail.com>
Andy Ayers [Thu, 2 Feb 2023 00:33:29 +0000 (16:33 -0800)]
JIT: build pred lists first (#81448)
Move pred list building before importation. It now runs as the first phase in
the phase list.
* Split up some unions in block.h as some things can't share storage anymore
(may revisit this later).
* Modify importer not to rely on cheap preds. Most of the work here is in
`impImportLeave`.
* Adjust OSR protection strategy for the method entry. In particular, watch
for the degenerate case where the OSR entry is the method entry.
* Ensure we don't double-decrement some ref counts when blocks with degenerate
or folded flow are re-imported.
* Update spill clique discovery to use the actual pred lists.
* Add new method `impFixPredLists` for the importer to use at the end of
importation. This adds pred list entries finally returns, which can't be
done until all `BBJ_LEAVE` blocks are processed.
* trigger badcode inside `fgComputePreds`
* fix issue with `STRESS_CATCH_ARG`
Contributes to #80193.
Thays Grazia [Wed, 1 Feb 2023 23:20:33 +0000 (20:20 -0300)]
[wasm] [debugger] First version of multithreaded debugging (#74820)
* First version of multithreaded debugging.
* Revert package-lock.json
* New line at package-lock.json
* Fix not used variable.
* Fix debugger on firefox.
* Rewrite code to avoid duplicated code.
* Fix where mono_init_debugger_agent_common is called.
* Remove whitespace.
* Update src/mono/wasm/debugger/BrowserDebugProxy/MonoSDBHelper.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/mono/wasm/debugger/BrowserDebugProxy/DevToolsHelper.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/mono/wasm/debugger/BrowserDebugProxy/DevToolsHelper.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
* [wasm] Debugger tests: support running with multithreaded runtime
* Add runtime-wasm-dbgtests pipeline with debugger tests running on a multi-threaded runtime
* Add multi-threaded debugger tests to runtime-wasm
* fix yml
* Always run the new tests when the pipeline is invoked manually
* Pass through extra build args for wasm debugger tests
* Addressing @radical comments.
* Apply suggestions from code review
Co-authored-by: Ankit Jain <radical@gmail.com>
* addressing radical comments
* Fixing tests failures and adding a schema to run a test that will only run in a multithreaded environment.
* Adding support for run debugger-tests in a multithreaded runtime.
* Fix running debugger tests for multithreaded runtime, passing sessionId where it's necessary.
* Fix CI.
* Addressing @radical comments
Adding a test case.
* Update src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestBase.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/mono/wasm/debugger/DebuggerTestSuite/MiscTests.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/mono/wasm/debugger/DebuggerTestSuite/InspectorClient.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
* Dictionary with the scriptId also uses sessionId.
* Addressing @radical review.
* Apply suggestions from code review
Co-authored-by: Ankit Jain <radical@gmail.com>
* Avoiding getting this error: Cannot transition thread 0x2a15360 from STATE_BLOCKING with DO_BLOCKING.
In the transport_send we don't save the thread context, we save it before the send function.
* Addressing @radical comments.
* Using more threads in unit test.
* Apply suggestions from code review
Co-authored-by: Ankit Jain <radical@gmail.com>
* Addressing @radical comments, and trying to fix ci.
* Removing unnecessary changes.
* Export function used on mini-wasm-debugger.
* Fixing line number.
* Fix run tests on release.
* fix compilation for multithread runtime
* trying to fix multithread debugger tests on ci
* trying to fix debugger tests on ci
* disabling tests on multithreaded runtime
* Update eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml
Co-authored-by: Ankit Jain <radical@gmail.com>
* Throwing an exception if the "what" is not the one that is being get from the nextNotificationQueue.
---------
Co-authored-by: Ankit Jain <radical@gmail.com>
Thays Grazia [Wed, 1 Feb 2023 23:07:54 +0000 (20:07 -0300)]
[wasm][debugger] Enabling firefox debugger tests on CI rolling builds (#81511)
Michal Strehovský [Wed, 1 Feb 2023 22:54:52 +0000 (07:54 +0900)]
WarningsAsErrors -> TreatWarningsAsErrors (#81508)
Stephen Toub [Wed, 1 Feb 2023 22:54:07 +0000 (17:54 -0500)]
Use IndexOfAnyValues in MailBnfHelper (#81486)
Carlos Sanchez [Wed, 1 Feb 2023 22:29:00 +0000 (14:29 -0800)]
Copy local intellisense xmls for assemblies with source of truth. (#79134)
* Copy local intellisense xmls for assemblies with source of truth.
* use UseIntellisenseDocumentationFile instead
* Create intellisense.targets, which contains the Target that defines the set of files to copy, and the Target that copies each of those files into the artifacts/bin/docs folder.
The paths of the files to copy are dynamically defined depending if the assembly IsPackable property is set or not, and if the UseIntellisenseDocumentationFile boolean is set or not.
* Set UseIntellisenseDocumentationFile to true for the 3 assemblies that already have their source of truth in triple slash.
* Delete docs.targets, move package download to Build.proj
* Consume $(XmlDocDir) in Microsoft.NetCore.App.Ref.sfxproj
* Change condition to import intellisense.targets: Use $(IsSourceProject) == true
* Move XmlDocFileRoot to intellisense.targets, address suggestions for collecting xml file.
* Expand condition of CopyDocumentationFileToXmlDocDir to also check if IsNetCoreAppSrc == true.
* Change AfterTargets of CopyDocumentationFileToXmlDocDir from CoreCompile to CopyFilesToOutputDirectory
* Move PackageDownload to intellisense.targets
* Remove Choose+When. Readjust properties for Private.Intellisense files/folders. Fix conditions for doc file swap.
* Rename csproj property to something more clear.
* Default csproj property to true.
* Missed adding the "not previously set" condition for UseIntellisensePackageDocXmlFile in intellisense.targets.
* Remove incorrect condition in CopyDocumentationFileToXmlDocDir.
* Missed property reuse in Condition in sfxproj
* Only evaluate second IntellisensePackageXmlFile if the first one did not acquire any value.
* Move intellisense.targets import from root to libraries, right after the IsNetCoreAppSrc property is declared so we can use it.
* Enable CS1591, skip arcade warning
* Move SkipArcadeNoWarnCS1591 to src/libraries/Directory.Build.props to avoid coreclr failures
* Remove unnecessary slashes in sfxproj
* Move SkipArcadeNoWarn up to the top of src/libraries/Directory.Build.props to ensure it gets loaded before importing arcade.
* Revert Brotli and Vectors csproj changes. Those assemblies are either a partial facade or use PNSE.
* Add target to intellisense.targets that runs as InitialTarget of the current project, and throws errors if the UseIntellisensePackageDocXmlFile is set to false and the assembly is either a partial facade or uses PNSE.
* Improve error message: Mention the problematic property and the offending assembly.
* Added extra condition to verification target to only run when UseIntellisense... is not set to true.
Also moved the initial definition to its own solitary property group right before the verification target runs.
Rename the properties that acquire the value of a file path to "FilePath" instead of just "File", for clarity.
---------
Co-authored-by: smasher164 <akhilindurti@microsoft.com>
Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
Jakob Botsch Nielsen [Wed, 1 Feb 2023 21:34:28 +0000 (22:34 +0100)]
JIT: Update GTF_GLOB_REF after last-use copy omission (#81430)
Morph is responsible for marking accesses of address-exposed locals with
GTF_GLOB_REF, however the last-use copy elision can newly address expose
a preexisting local. This means previous uses that morph already saw
have not had GTF_GLOB_REF added. This updates the JIT to at least add
GTF_GLOB_REF on locals within the same statement as the call. This is
not a complete fix as nothing prevents downstream phases from reordering
the call with uses from earlier statements, but this at least fixes the
one issue we know of right now (which is itself stress-only).
A more complete fix will likely entail moving the identifying of
last-use candidates earlier and address exposing them at that point.
However, that first requires ABI determination to be moved earlier, so
this depends on #76926, which I expect to get to within the near future.
Fix #81049
Michal Strehovský [Wed, 1 Feb 2023 21:28:43 +0000 (06:28 +0900)]
Do not strip resource messages if EventSource would use it (#81466)
Works around #81459.
Michal Strehovský [Wed, 1 Feb 2023 21:28:09 +0000 (06:28 +0900)]
Do not remove resource messages in Xml tests (#81463)
Addresses first bullet of #81455.
Addresses 211 test failures to the tune of:
```
[FAIL] System.Xml.XmlSchemaValidatorApiTests.TCValidateWhitespace_String.WhitespaceInsideElement
System.Xml.Tests.VerifyException : GetManifestResourceStream() failed
at System.Xml.Tests.ExceptionVerifier..ctor(String assemblyName, ExceptionVerificationFlags flags, ITestOutputHelper output) + 0x4c9
at System.Xml.XmlSchemaValidatorApiTests.TCValidateWhitespace_String..ctor(ITestOutputHelper output) + 0x48
```
Michal Strehovský [Wed, 1 Feb 2023 21:27:18 +0000 (06:27 +0900)]
Make newly introduced Immutable tests work with AOT. (#81464)
Adds xunit garbage to fix 144 test failures that look like this:
```
[FAIL] System.Collections.Frozen.Tests.FrozenDictionary_Generic_Tests_SimpleStruct_int.LookupItems_AllItemsFoundAsExpected(size: 1024, comparer: NonDefaultEqualityComparer`1 { }, specifySameComparer: True, optimizeForReading: True)
System.NotSupportedException : 'Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.HashSet`1[System.Collections.Generic.KeyValuePair`2[System.Collections.Frozen.Tests.SimpleStruct, System.Int32]]].CompareTypedSets[System.Collections.Generic.KeyValuePair`2[System.Collections.Frozen.Tests.SimpleStruct, System.Int32]](System.Collections.IEnumerable,System.Collections.IEnumerable)' is missing native code. MethodInfo.MakeGenericMethod() is not compatible with AOT compilation. Inspect and fix AOT related warnings that were generated when the app was published. For more information see https://aka.ms/nativeaot-compatibility
at System.Reflection.Runtime.MethodInfos.RuntimeNamedMethodInfo`1.GetUncachedMethodInvoker(RuntimeTypeInfo[], MemberInfo) + 0x2a
at System.Reflection.Runtime.MethodInfos.RuntimeNamedMethodInfo`1.MakeGenericMethod(Type[]) + 0x1c0
at System.Collections.Frozen.Tests.FrozenDictionary_Generic_Tests`2.LookupItems_AllItemsFoundAsExpected(Int32 size, IEqualityComparer`1 comparer, Boolean specifySameComparer, Boolean optimizeForReading) + 0x46d
```
Matt Mitchell [Wed, 1 Feb 2023 20:34:30 +0000 (12:34 -0800)]
Change Source link version number refs to new properties (#81190)
Marie Píchová [Wed, 1 Feb 2023 20:21:00 +0000 (21:21 +0100)]
Fix conditions to bin place msquic.dll for Windows builds. (#81490)
Matt Mitchell [Wed, 1 Feb 2023 20:18:26 +0000 (12:18 -0800)]
Enable in-build signing based on branch (#81496)
Brian Bohe [Wed, 1 Feb 2023 18:25:50 +0000 (15:25 -0300)]
Test merging IL_Conformance (#80597)
* Running ILTransform -n
A few ilproj were moved when deduplicating ilproj names but none of
those include refernces to il files using proj filename (as with
MSBuildProjectName).
* Running ILTransform -ilfile on JIT\IL_Conformance
Some il filenames were renamed to match their respective ilproj and
those ilproj file content were updated to use MSBuildProject
reference as il filenames.
* Running ILTransform -a on JIT/IL_Conformance
Update some assembly names to match il filenames.
* Running ILTransform -prociso on JIT/IL_Conformance
Isolate conv_ovf_i8_i.ilproj.
* Running ILTransform -public
* Running ILTransform -d
* Running ILTransform -ilfact
* Adding JIT/IL_Conformance merge tests wrapper
Eduardo Velarde [Wed, 1 Feb 2023 18:03:25 +0000 (10:03 -0800)]
Fix ReaderWriterLock when using it in recursive scenarios and multiple instances on the same thread (#81257)
---------
Co-authored-by: Eduardo Manuel Velarde Polar <evelardepola@microsoft.com>
Parker Bibus [Wed, 1 Feb 2023 17:48:39 +0000 (09:48 -0800)]
[PERF] Remove Android Maui Scenarios from Runtime Repo (#81453)
Remove references to Maui Android testing as the testing for it has moved to the performance repo.
Pavel Savara [Wed, 1 Feb 2023 17:31:24 +0000 (18:31 +0100)]
[browser] benchmark - generated JSON serializer (#81475)
* generated JSON serializer
* With that we can trim again
* fix console bench
Co-authored-by: Radek Doulik <radek.doulik@gmail.com>