github-actions[bot] [Wed, 16 Aug 2023 22:39:04 +0000 (15:39 -0700)]
Do not set fetch depth on source-build (#90704)
Co-authored-by: Matt Mitchell <mmitche@microsoft.com>
github-actions[bot] [Wed, 16 Aug 2023 20:22:34 +0000 (13:22 -0700)]
[mono] Add a --path command line argument as an alternative to MONO_PATH. (#90678)
Can be specified multiple times.
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Steve Pfister [Wed, 16 Aug 2023 20:20:51 +0000 (13:20 -0700)]
[release/8.0-rc1] Bump package version for net7 to 7.0.11 (#90651)
Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
github-actions[bot] [Wed, 16 Aug 2023 20:14:48 +0000 (13:14 -0700)]
[release/8.0-rc1] [mono] Fix InlineArray tests on android platforms (#90679)
* Enable inline array tests
* Run android jobs only
* Add verbose logging
* Revert runtime changes
* Remove android-arm64 job
* Rename common assembly and revert CI changes
* Rename assembly name
---------
Co-authored-by: Milos Kotlar <kotlarmilos@gmail.com>
github-actions[bot] [Wed, 16 Aug 2023 19:42:28 +0000 (21:42 +0200)]
[release/8.0-rc1] Add missing type forwards (#90673)
* Add missing type forwards
Fixes https://github.com/dotnet/runtime/issues/90578
IDispatchImplAttribute, IDispatchImplType and SetWin32ContextInIDispatchAttribute were removed with https://github.com/dotnet/runtime/commit/
9f1dd1aa499a882453b34d4e8810626423fbfed8 and https://github.com/dotnet/runtime/commit/
26a91ad6ac02393c6c7463500c030ec07803c5e6
Those dropped types weren't flagged because APICompat only validates reference assemblies. We have three implementation only shim assemblies: mscorlib, System and System.Data. I verified that no other type forwards were lost between .NET 7 and .NET 8.
* Update mscorlib.cs
---------
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
github-actions[bot] [Wed, 16 Aug 2023 18:44:08 +0000 (12:44 -0600)]
Fix NullableAttribute illink test failures (#90680)
When we started building with preview 7 in
5549f72da3b3cea9e74bb81cfbb0f2d27731fc42, NullableAttribute in
these testcases started to use the attribute definition from the
framework, instead of generating it into the code. This broke the
`--used-attrs-only` optimization because `skip` assemblies (the
default for the framework in these testcases) are treated as if
all types in them are kept, for the purposes of the
`--used-attrs-only` optimization. (The optimization removes
attribute instances unless the attribute type is preserved for
some other reason).
It's not clear what the intended behavior of `--used-attrs-only`
is for `skip` assemblies, and the discussion in
https://github.com/dotnet/linker/issues/952 indicates that it's
considered experimental, so this fixes the failures by using the
`link` action. This represents a more realistic scenario since
`skip` is mainly used in testing to avoid linking the framework
in every testcase.
Co-authored-by: Sven Boemer <sbomer@gmail.com>
github-actions[bot] [Wed, 16 Aug 2023 18:27:32 +0000 (12:27 -0600)]
Fix problems with `Assembler::ReflectionNotation()` (#90655)
Do more parameter validation, correct buffer size calculations
for security-enhanced CRT functions, and avoid memcpy
buffer overrun of locale.
Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
Alhad Deshpande [Wed, 16 Aug 2023 18:26:28 +0000 (23:56 +0530)]
[ppc64le] performance improvements while branching (#90656)
github-actions[bot] [Wed, 16 Aug 2023 17:58:54 +0000 (11:58 -0600)]
[release/8.0-rc1] Unify with logging category matching (#90642)
* Unify with logging category matching
* -1 => 0
* Weird overlapping match
---------
Co-authored-by: Chris R <Tratcher@outlook.com>
github-actions[bot] [Wed, 16 Aug 2023 15:32:09 +0000 (08:32 -0700)]
[release/8.0-rc1] Annotate System.Linq.Expressions with RequiresDynamicCode (#90616)
* Annotate System.Linq.Expressions with RequiresDynamicCode
All this ended up with an RUC on Expression.Compile due to new arrays.
I could potentially silence this warning with a feature flag, but it is a
real risk, and one that users could maybe work around if alterted to the problem.
* Remove suppression that's no longer needed
* Fix tests for new feature switch behavior
* Update src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/Expression.cs
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
* Typo in Throws call
* Fix assert for net framework
* Respond to PR comments
* Add suppression
* Typo
* Update src/libraries/System.Linq.Expressions/src/Resources/Strings.resx
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* PR feedback
---------
Co-authored-by: Andy Gocke <andy@commentout.net>
Co-authored-by: Andy Gocke <angocke@microsoft.com>
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
github-actions[bot] [Wed, 16 Aug 2023 14:38:41 +0000 (07:38 -0700)]
[release/8.0-rc1] Fix support for non-public default constructors using JsonIncludeAttribute (#90615)
* Fix support for non-public constructors using JsonIncludeAttribute
* Address feedback.
---------
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
dotnet-maestro[bot] [Wed, 16 Aug 2023 14:17:22 +0000 (07:17 -0700)]
Update dependencies from https://github.com/dotnet/emsdk build
20230815.5 (#90649)
Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport
From Version 8.0.0-rc.1.23411.2 -> To Version 8.0.0-rc.1.23415.5
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
github-actions[bot] [Wed, 16 Aug 2023 04:50:33 +0000 (21:50 -0700)]
[release/8.0-rc1] [workloads] Put quotes around GetFileName call when collecting telemetry (#90606)
* [workloads] Put quotes around GetFileName call when collecting telemetry
There are cases where `%(ReferencePath)` is empty, so prevent exceptions by quoting the value.
Fixes https://github.com/dotnet/runtime/issues/90584
* Feedback
---------
Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
Co-authored-by: Steve Pfister <steveisok@users.noreply.github.com>
github-actions[bot] [Wed, 16 Aug 2023 01:24:12 +0000 (18:24 -0700)]
[release/8.0-rc1] [mono][ios] Revert LLVM mode for apple mobile tests (#90624)
* Revert LLVM mode for apple mobile tests
* Add comment
---------
Co-authored-by: Milos Kotlar <kotlarmilos@gmail.com>
github-actions[bot] [Wed, 16 Aug 2023 01:19:21 +0000 (18:19 -0700)]
[wasm] Pin chrome version for testing to 115.0.579.x (#90644)
Hybrid globalization tests are breaking with 116.0.5845.0
Co-authored-by: Ankit Jain <radical@gmail.com>
github-actions[bot] [Tue, 15 Aug 2023 23:21:30 +0000 (16:21 -0700)]
Fix condition on mono-wasm workloads (#90646)
Co-authored-by: Juan Sebastian Hoyos Ayala <juan.hoyos@microsoft.com>
github-actions[bot] [Tue, 15 Aug 2023 21:45:34 +0000 (14:45 -0700)]
[release/8.0-rc1] Setup internal feeds in internal builds (#90638)
Co-authored-by: Juan Sebastian Hoyos Ayala <juan.hoyos@microsoft.com>
github-actions[bot] [Tue, 15 Aug 2023 18:16:33 +0000 (11:16 -0700)]
[release/8.0-rc1] Fix ToFrozenDictionary(selectors) on empty sources (#90599)
* Fix ToFrozenDictionary(selectors) on empty sources
As part of optimizing construction, the empty check when using ToFrozenDictionary taking selector delegates was skipped, leading to later failures when an empty source is used.
* Address PR feedback
---------
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Vladimir Sadov [Mon, 14 Aug 2023 23:49:46 +0000 (16:49 -0700)]
[NativeAOT] Natvis visualization for threadstatic variables. (#90473)
* Slow path
* keep an index node for every type
* encode the offset
* Support inline storage in natvis
* store typeManager in TLS root
* test for module
* root param
* tweak comments.
* make junk MOV`s unreachable dead code
* Keep index nodes for inlined threadstatics unconditionally, remove "deadcode MOV" hack
* Update src/coreclr/nativeaot/Runtime/thread.h
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Tomáš Rylek [Mon, 14 Aug 2023 23:44:28 +0000 (01:44 +0200)]
Fix VersionWithType Crossgen2 check for parameterized types (#90501)
As Egor Bogatov discovered in
https://github.com/dotnet/runtime/pull/90441
Crossgen2 is unable to compile a method taking RuntimeTypeMethod[]
parameter because Crossgen2 decides that the array doesn't version
with the module being compiled (System.Private.CoreLib in this
case). This change modifies the relevant logic so that, for
parameterized types, we decide on versioning based on the
parameter type.
Thanks
Tomas
Tomas Weinfurt [Mon, 14 Aug 2023 23:13:17 +0000 (16:13 -0700)]
support SslStream SSLKEYLOGFILE in debug builds (#90429)
* support SslStream SSLKEYLOGFILE in debug builds
* compat
* feedback
Natalia Kondratyeva [Mon, 14 Aug 2023 22:44:26 +0000 (23:44 +0100)]
HttpClientFactory Prevent throwing if ILogger couldn't be created (#90503)
* HttpClientFactory stop cleanup timer on dispose
* Remove finalizer
* Tweak ThrowIfDisposed
* Revert some changes
* Fix
Drew Scoggins [Mon, 14 Aug 2023 22:43:44 +0000 (15:43 -0700)]
Release setup (#90529)
* Remove schedule to move us back to rolling
* Add rc1 explict branch name
* Comment out section
Tomas Weinfurt [Mon, 14 Aug 2023 22:35:35 +0000 (15:35 -0700)]
improve handling of LLA in Quic (#90455)
* QUIC LLA
* update
* linux
* line
* update
* Update src/libraries/Common/src/System/Net/IPEndPointExtensions.cs
Co-authored-by: Marie Píchová <11718369+ManickaP@users.noreply.github.com>
---------
Co-authored-by: Marie Píchová <11718369+ManickaP@users.noreply.github.com>
Jackson Schuster [Mon, 14 Aug 2023 22:24:44 +0000 (15:24 -0700)]
Rename GeneratedClearManagedSource to correct name (#90537)
Steve Molloy [Mon, 14 Aug 2023 22:18:46 +0000 (15:18 -0700)]
DCS work nicely with collectible AssemblyLoadContext (#90437)
* Add tests to check for ALC goodness with DCS.
* Add context-aware collections for caching/indexing DataContracts.
* Refine the context-aware collection types.
* Use lock to prevent running expensive delegate more than once.
* Use double-check pattern to prevent 'create' delegate from running multiple times.
* Upon further review, GetValue/GetOrAdd already do this check before running the 'create' delegate. Docs suggest this is intentional and will remain the case.
Ivan Povazan [Mon, 14 Aug 2023 22:02:42 +0000 (00:02 +0200)]
[libs][mono] Prevent static constructor from referencing `Internal.Runtime.Augments.DynamicDelegateAugments` in build scenarios without linking (#90519)
Fixes https://github.com/dotnet/runtime/issues/90494
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Kevin Jones [Mon, 14 Aug 2023 22:00:32 +0000 (18:00 -0400)]
Do not OCSP staple invalid OCSP responses
Ilona Tomkowicz [Mon, 14 Aug 2023 21:42:07 +0000 (23:42 +0200)]
[Blazor] Custom ICU loading from runtime path (#90236)
* Loading a user-created custom file from absolute path.
* Issue 2 solved: files from runtime pack work when abs path is used.
* Cover not found file scenario.
* Appied @maraf's suggestion.
Co-authored-by: Ankit Jain <radical@gmail.com>
Vladimir Sadov [Mon, 14 Aug 2023 20:53:43 +0000 (13:53 -0700)]
Removed redist entries from PlatformManifestFileEntry (#90542)
mikelle-rogers [Mon, 14 Aug 2023 20:37:22 +0000 (13:37 -0700)]
Put HasNativeCodeReJITAware into GetFunctionAddress (#90049)
* Remove calls to GetFunctionAddress with Null address and clarify method names
Thays Grazia [Mon, 14 Aug 2023 19:54:01 +0000 (16:54 -0300)]
[mono][debugger]Adding more information about the array type (#89304)
* Adding more information about the array type.
* Adding more changes
* Update src/mono/mono/component/debugger-agent.c
* Only add this info for icordbg.
---------
Co-authored-by: Larry Ewing <lewing@microsoft.com>
Tarek Mahmoud Sayed [Mon, 14 Aug 2023 19:53:17 +0000 (12:53 -0700)]
Make TimeProvider Delay Continuations Synchronously (#90489)
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Benjamin Petit [Mon, 14 Aug 2023 19:47:41 +0000 (21:47 +0200)]
Use '==' instead of 'Equals()' to test type equality in ServiceIdentifier (#90334)
Jackson Schuster [Mon, 14 Aug 2023 19:42:24 +0000 (12:42 -0700)]
Update DNNE version (#90524)
* Update Versions.props
Milos Kotlar [Mon, 14 Aug 2023 19:36:13 +0000 (21:36 +0200)]
Revert "Fix perf jobs param (#90215)" (#90535)
This reverts commit
df5f3e6ea27bcab2c52fadf71e2961de15b9d17c.
Thays Grazia [Mon, 14 Aug 2023 19:20:08 +0000 (16:20 -0300)]
[wasm][debugger] Support calling `get_Item` passing decimal, float or double as parameter. (#90260)
* Support calling get_Item using decimal, float and double as parameter.
* Update src/mono/wasm/debugger/BrowserDebugProxy/SignatureTypeProvider.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
* Addressing some comments.
* fix compilation
* Fix wrong cast.
---------
Co-authored-by: Ankit Jain <radical@gmail.com>
Thays Grazia [Mon, 14 Aug 2023 19:19:48 +0000 (16:19 -0300)]
[wasm][debugger] Do not run the test with justMyCode enabled in debug mode. (#90532)
* Do not run the test with justMyCode enabled in debug mode.
* Update src/mono/wasm/debugger/DebuggerTestSuite/SteppingTests.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
---------
Co-authored-by: Ankit Jain <radical@gmail.com>
Ankit Jain [Mon, 14 Aug 2023 18:24:18 +0000 (14:24 -0400)]
[wasm] Respect `AppendRuntimeIdentifierToOutputPath`, and `UseArtifactsOutput` (#90365)
* [wasm] Remove all instances of `ConditionalTheory IsUsingWorkloads`
.. because we run tests in two modes:
1. with workloads - all the tests *without* `no-workload` category are
run (thus the default)
2. no workloads - all the tests *with* `no-workload` category are run
(thus need explicitly attributes)
* Allow custom bin framework dirs for asserting bundles
* [wasm] Respect `AppendRuntimeIdentifierToOutputPath`, and
.. `UseArtifactsOutput`.
Fixes https://github.com/dotnet/runtime/issues/89744 .
David Mason [Mon, 14 Aug 2023 18:19:13 +0000 (11:19 -0700)]
Fix deadlock in EventPipeEventDispatcher (#90053)
Milos Kotlar [Mon, 14 Aug 2023 17:55:08 +0000 (19:55 +0200)]
[mono] Enable callconv and classloader runtime tests (#90421)
* Enable callconv and classloader runtime tests
* Don't remove merged tests for apple mobile platforms
Jakob Botsch Nielsen [Mon, 14 Aug 2023 17:20:11 +0000 (19:20 +0200)]
JIT: Unspill normalize-on-load variables using exact small type (#90318)
The existing logic would sometimes unspill using the type of the local
that is being unspilled. This type is often wider than the exact small
type in the LclVarDsc, since NOL locals are normally expanded as
CAST(<small type>, LCL_VAR<int>).
This causes problems since morph will in some cases avoid inserting
normalization for NOL locals when it has a subrange assertion available.
This optimization relies on the backend always ensuring that the local
will be normalized as part of unspilling and args homing.
Size-wise regressions are expected on xarch since the encoding of the
normalizing load is larger. However, as we have seen before, using wide
loads can cause significant store-forwarding stalls which can have large
negative impact on performance, so overall there is an expected perf
benefit of using the small loads (in addition to the correctness fix).
Fix #90219
Bruce Forstall [Mon, 14 Aug 2023 17:08:56 +0000 (10:08 -0700)]
Fix ilasm casting (#90450)
* Fix 64-bit cast
* Fix a few more cases of casting `strlen`
Fix output to use `%zd` for size_t values.
mikelle-rogers [Mon, 14 Aug 2023 16:34:15 +0000 (09:34 -0700)]
Implement Edit and Continue on Linux and MacOS (#90349)
* Add EnC support for Linux and Mac
---------
Co-authored-by: Jakob Botsch Nielsen <jakob.botsch.nielsen@gmail.com>
Co-authored-by: Jan Vorlicek <janvorli@microsoft.com>
Co-authored-by: Tom McDonald <tommcdon@hotmail.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Filip Navara [Mon, 14 Aug 2023 16:08:55 +0000 (18:08 +0200)]
[NativeAOT] Use TCP transport for EventPipe on mobile platforms (#90315)
* [NativeAOT] Use TCP transport for EventPipe on mobile platforms
* Update src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt
---------
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Ankit Jain [Mon, 14 Aug 2023 15:50:26 +0000 (11:50 -0400)]
[wasm] Cache the output of `mono-aot-cross --print-icall-table` (#90476)
Currently, this is invoked to get the runtime icall table for native builds, even if it is not needed by ManagedtoNativeGenerator (for example when outputs are up-to-date). This will change only with the cross compiler, so it can be cached.
Suggested by @vargaz .
Fixes https://github.com/dotnet/runtime/issues/90366 .
Ankit Jain [Mon, 14 Aug 2023 15:48:54 +0000 (11:48 -0400)]
[wasm] Incremental build improvements (#90194)
- [wasm] Sanity check emcc versions only when using a custom EMSDK_PATH
- [wasm] Emit a message about compiling native assets only when actually doing so
- [wasm] ConvertDllsToWebcil: avoid doing unncessary conversion, and other work
- [wasm] ManagedToNativeGenerator: add support for incremental runs (time goes from 1.6s to <900ms)
This improves build times ~30% for no-op rebuilds.
*With* native reference | Old | New | Difference | %
-- | -- | -- | -- | --
First build | 8.01s | 8.13s | +0.12s |
4th rebuild | 1.91s | 1.35s | -0.56s | 29%
rebuild with only cs change | 2.90s | 2.48s | -0.42s | 14%
*Without* native reference | Old | New | Difference | %
-- | -- | -- | -- | --
First build | 5.34s | 5.29 | -0.05s |
4th rebuild | 1.78s | 1.20s | -0.58s | 32%
rebuild with only cs change | 1.96s | 1.45s | -0.51s | 26%
- These were run for blazor projects
- These were clean builds, with no `dotnet` process running
- And nuget cache cleared of `*webassembly.pack` which is the relevant package here.
- The native reference was a simple `factorial.c` from https://github.com/dotnet/runtime/issues/60245
Fixes https://github.com/dotnet/runtime/issues/60245 .
With feedback from @kg .
Thays Grazia [Mon, 14 Aug 2023 15:45:09 +0000 (12:45 -0300)]
[wasm][debugger]Evaluate a sum between an object and a string (#90175)
* Support sum an object and a string
* Update src/mono/wasm/debugger/BrowserDebugProxy/EvaluateExpression.cs
Co-authored-by: Ankit Jain <radical@gmail.com>
* Apply suggestions from code review
Co-authored-by: Ankit Jain <radical@gmail.com>
* Addressing @radical comments
* Adding more tests as suggested by @radical.
---------
Co-authored-by: Ankit Jain <radical@gmail.com>
Steve Harter [Mon, 14 Aug 2023 15:24:31 +0000 (10:24 -0500)]
Support invoke of function pointer type arg (#90270)
Maksim Golev [Mon, 14 Aug 2023 15:21:24 +0000 (19:21 +0400)]
Switch DateTimeKind from Unspecified to Local (#90149)
Co-authored-by: Maksim Golev <mgolev@htc-cs.ru>
Tanner Gooding [Mon, 14 Aug 2023 15:17:56 +0000 (08:17 -0700)]
Ensure that constant folding for long->float is handled correctly (#90325)
* Ensure that constant folding for long->float is handled correctly
* Adding a regression test ensuring long->float conversions are correctly handled
* Print failure info for test
* Ensure we continue doing the incorrect 2-step conversion for 32-bit, to match codegen
* Fix build failure
* Ensure test project uses process isolation
Ivan Povazan [Mon, 14 Aug 2023 15:10:08 +0000 (17:10 +0200)]
[mono] Fix Vector<T>.IsSupported intrinsic (#90023)
Fixes https://github.com/dotnet/runtime/issues/88983
---------
Co-authored-by: Larry Ewing <lewing@microsoft.com>
Egor Bogatov [Mon, 14 Aug 2023 14:50:56 +0000 (16:50 +0200)]
Handle side-effects in impBoxPatternMatch (#90496)
Matous Kozak [Mon, 14 Aug 2023 14:03:56 +0000 (16:03 +0200)]
Disable InlineArrayValid/Invalid tests on Android (#90414)
Milos Kotlar [Mon, 14 Aug 2023 13:56:44 +0000 (15:56 +0200)]
[mono] Resolve failing tests on apple mobile platforms (#90515)
* Don't run arm64 jobs
* Disable failing jobs
* Fix failing calendar test
Filip Navara [Mon, 14 Aug 2023 13:51:37 +0000 (15:51 +0200)]
Change how toggle refs are reported in gcdump (#90467)
Eirik Tsarpalis [Mon, 14 Aug 2023 13:22:38 +0000 (16:22 +0300)]
Improve error message in the new `JsonNode.GetElementIndex()` and `GetPropertyName()` methods. (#90486)
Thays Grazia [Mon, 14 Aug 2023 12:31:28 +0000 (09:31 -0300)]
[mono][debugger] Do not use `select(2)` on debugger-agent (#90293)
* Do not use select on debugger-agent
* use pool on APPLE os
Thays Grazia [Mon, 14 Aug 2023 12:29:19 +0000 (09:29 -0300)]
[wasm][debugger] Symbolicate function names on debug callstack (#90348)
* Symbolicate function names on debug callstack
* Addressing @radical suggestion
* Addressing @radical suggestions.
* cleanup
---------
Co-authored-by: Ankit Jain <radical@gmail.com>
dotnet-maestro[bot] [Mon, 14 Aug 2023 10:08:47 +0000 (06:08 -0400)]
Update dependencies from https://github.com/dotnet/roslyn-analyzers build
20230812.1 (#90484)
Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
From Version 3.11.0-beta1.23407.1 -> To Version 3.11.0-beta1.23412.1
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Benjamin Petit [Mon, 14 Aug 2023 09:42:18 +0000 (11:42 +0200)]
[DependencyInjection] Avoid useless reflection call in ActivatorUtilities (#90378)
Egor Bogatov [Mon, 14 Aug 2023 08:01:24 +0000 (10:01 +0200)]
Add NonGC documentation (#90206)
Marie Píchová [Mon, 14 Aug 2023 07:19:10 +0000 (09:19 +0200)]
[QUIC] Merge 7.0 fix (#90228)
* Merge pull request #90173 from vseanreesermsft/internal-merge-7.0-2023-08-08-1042
Merging internal commits for release/7.0
* Consume MsQuic release package on Win
---------
Co-authored-by: Carlos Sánchez López <1175054+carlossanlop@users.noreply.github.com>
Co-authored-by: Natalia Kondratyeva <knatalia@microsoft.com>
Zoltan Varga [Mon, 14 Aug 2023 05:13:21 +0000 (00:13 -0500)]
[mono][arm64] Fixed passing/receiving hfa structures with fixed buffers. (#90502)
Fixes https://github.com/dotnet/runtime/issues/90423.
Eric Erhardt [Sun, 13 Aug 2023 21:01:25 +0000 (15:01 -0600)]
Enable nullable on Hosting.Systemd (#90495)
- Passing null into the hosting lifetimes' loggerFactory parameters would result in a NRE
Contributes to #90400
Manodasan Wignarajah [Sun, 13 Aug 2023 20:18:10 +0000 (13:18 -0700)]
Fixing COM Aggregation and XAML reference tracking on .NET AOT (#90283)
* Add initial changes for COM Aggregation and XAML reference tracking in AOT
* Fix dependency list to avoid allocations
* Fix issues with finalizer races and issues with allocating memory during GC
* Add COM weak reference support
* PR feedback on separating reference tracker object fields.
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
Tarek Mahmoud Sayed [Sun, 13 Aug 2023 16:41:52 +0000 (09:41 -0700)]
Fix TimeProvider Test (#90448)
Alexander Köplinger [Sun, 13 Aug 2023 12:27:44 +0000 (14:27 +0200)]
Disable OneLocBuild in runtime-official.yml (#90480)
It is blocking the official build: https://github.com/dotnet/runtime/issues/90466
dotnet bot [Sun, 13 Aug 2023 11:49:47 +0000 (04:49 -0700)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2241323 (#89414)
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2228738
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2229389
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2230534
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2231640
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2233112
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2234217
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2235989
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2236160
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2236693
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2238073
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2240179
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2241002
* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID
2241178
---------
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Sven Boemer [Sun, 13 Aug 2023 02:50:54 +0000 (19:50 -0700)]
Run trimming tests for global.json changes (#90451)
Ankit Jain [Sun, 13 Aug 2023 02:50:19 +0000 (22:50 -0400)]
[wasm] Add more blazor tests for InvariantGlobalization (#90440)
* [wasm] build-packages make target - build all the required packages for wbt
* WBT: Add more tests for blazor+InvariantGlobalization
* Fix test
Ankit Jain [Sun, 13 Aug 2023 02:49:47 +0000 (22:49 -0400)]
[wasm] Suggest installing the workload when publishing a blazor project (#90471)
Thays Grazia [Sat, 12 Aug 2023 23:28:52 +0000 (20:28 -0300)]
[wasm][debugger] Disable some tests on Firefox (#90347)
* Do not run this test on Firefox
* Disable other test
Ankit Jain [Sat, 12 Aug 2023 23:25:58 +0000 (19:25 -0400)]
[wasm] Don't build samples in parallel on CI (#90470)
Prompted by failures described in https://github.com/dotnet/dnceng/issues/450
Filip Navara [Sat, 12 Aug 2023 18:54:12 +0000 (20:54 +0200)]
[NativeAOT] Do not use private APIs on iOS/macOS (#90430)
* Use custom implementation of _dyld_find_unwind_sections on Apple
platforms since it's a private API and it blocks uploads to TestFlight,
iOS App Store, and Mac App Store.
* Link against local ICU libraries on iOS-like platforms
* Update src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets
* Add comment
* Update src/coreclr/nativeaot/Runtime/unix/UnwindHelpers.cpp
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Elinor Fung [Sat, 12 Aug 2023 17:51:21 +0000 (10:51 -0700)]
Fix condition for setting if symbol is a file in native AOT publish targets (#90438)
Павел Харьков [Sat, 12 Aug 2023 15:58:33 +0000 (18:58 +0300)]
runtime: fix variable null check (#89920)
Fixed error when _hashtableContentsToEnumerate is null.
It appears always when using 'Length' property when variable is null.
Also reduced nesting.
dotnet-maestro[bot] [Sat, 12 Aug 2023 14:39:49 +0000 (16:39 +0200)]
[main] Update dependencies from dotnet/arcade dotnet/emsdk (#90461)
* Update dependencies from https://github.com/dotnet/arcade build
20230811.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.23409.5 -> To Version 8.0.0-beta.23411.1
* Update dependencies from https://github.com/dotnet/emsdk build
20230811.2
Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport
From Version 8.0.0-rc.1.23411.1 -> To Version 8.0.0-rc.1.23411.2
Dependency coherency updates
runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter,runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter,runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter,runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter,runtime.osx-arm64.Microsoft.NETCore.Runtime.ObjWriter,runtime.osx-x64.Microsoft.NETCore.Runtime.ObjWriter,runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.osx-arm64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.osx-x64.Microsoft.NETCore.Runtime.JIT.Tools,runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools,runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-musl-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.linux-musl-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk,runtime.linux-musl-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,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
From Version 16.0.5-alpha.1.23401.4 -> To Version 16.0.5-alpha.1.23408.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport
---------
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Steve Pfister [Sat, 12 Aug 2023 13:20:54 +0000 (06:20 -0700)]
[workloads] Remove experimental off of librarybuilder workload (#90410)
Jakob Botsch Nielsen [Sat, 12 Aug 2023 12:12:53 +0000 (14:12 +0200)]
JIT: Prevent generic context runaway during inlining of polymorphic recursive methods (#90306)
The inliner heuristics do not take into account that inlining methods
causes type/method loading of the generic context. After #88749 this can
quickly cause significant resources to be consumed as part of inlining
when polymorphic recursion is involved (the blow-up can be exponential,
as we see in the failing test under jitstress).
This PR adds another safe-guard to the recursive inlining check in terms
of a complexity limit on the generic context of the inline candidate.
Fix #90144
Stephen Toub [Sat, 12 Aug 2023 03:41:47 +0000 (23:41 -0400)]
Remove all use of <Nullable>annotations</Nullable> (#90401)
* Remove all use of <Nullable>annotations</Nullable>
We've inadvertently shipped multiple libraries with incorrect nullable reference type annotations because:
a) Their ref assemblies aren't actually being shipped, and/or
b) Their src projects using `<Nullable>annotations</Nullable>`
`<Nullable>annotations</Nullable>` means "I'm nullable annotated but don't validate them", which means consumers of these libraries see annotations that we haven't thoughtfully added or reviewed.
This removes all use of it and gets us back to a place where we're only shipping nullable annotations for libraries where we've done the work to ensure they're correct. We can subsequently finish annotating these stragglers.
* Don't disable LibraryImportGenerator when nullable is disabled
* Add #nullable enable to LibraryImportAttribute file for polyfill scenarios.
* Disable LibraryImportGenerator on ILCompiler.TypeSystem.Tests assemblies.
Convert a DllImport in HostWriter that now gets the polyfill experience.
---------
Co-authored-by: Eric StJohn <ericstj@microsoft.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Eric StJohn [Sat, 12 Aug 2023 03:25:37 +0000 (20:25 -0700)]
Add DiagnosticDescriptorHelper to set HelpURI for generator / analyzer diagnostics (#90353)
* Add DiagnosticDescriptorHelper
Create a helper method that formats and sets the helpLink for
DiagnosticDescriptors
* Add HelpLinkUris to ILLink
* Handle different DiagnosticCategories
Steve Pfister [Sat, 12 Aug 2023 01:49:21 +0000 (18:49 -0700)]
[workloads] Add telemetry for mobile and wasm workloads (#90208)
This change adds CLI telemetry for common mobile and wasm scenarios.
Total app size is another element we plan on tracking and that will be added in a follow up.
Fixes https://github.com/dotnet/runtime/issues/88844
Jackson Schuster [Sat, 12 Aug 2023 01:17:11 +0000 (18:17 -0700)]
Update Versions.props (#90425)
Jackson Schuster [Fri, 11 Aug 2023 23:54:43 +0000 (16:54 -0700)]
Prefix type names with global and use static TypeSyntax and NameSyntax instead of Parse(Type)Name (#90339)
* Prefix type names with global and use static TypeSyntax and NameSyntax instead of Parse(Type)Name
Tarek Mahmoud Sayed [Fri, 11 Aug 2023 23:29:23 +0000 (16:29 -0700)]
Support Exposing new Metric properties using EventSource (#90417)
Ankit Jain [Fri, 11 Aug 2023 23:06:31 +0000 (19:06 -0400)]
[wasm] Fix builds for blazor app + InvariantGlobalization=true (#90432)
The following commit caused workload to be required for a blazor app
when `InvariantGlobalization==true`, but this is not required.
```
commit
26ae09784c16dfa6707cd73eca2aeb00a28741d0
Author: Ankit Jain <radical@gmail.com>
Date: Thu Aug 10 23:39:10 2023 -0400
[wasm] Fix up conditions to trigger relink, and require `wasm-tools` workload (#89754)
```
And this broke some sdk tests.
jthorborg [Fri, 11 Aug 2023 21:50:26 +0000 (23:50 +0200)]
Allow reference types for pinned GC.AllocateArray() (#89293)
* Relaxing constraints of System.GC.AllocateArray<T>.
It's now possible to allocate pinned and default-initialized arrays that contain references.
Fix #48703
* Adding coverage of GC.AllocateArray with ref types.
Added a test that pins a reference type array and resolves references to indices with pointer arithmetic, checking that modifications are visible back in the original array.
Test #48703
* Mono/NativeAOT relaxing of System.GC.AllocateArray<T>.
* Relaxed GC.AllocateUninitializedArray for ref types as well.
This was done by deferring reference types to GC.AllocateArray to avoid potential memory issues with the GC + uninitialized memory. The API only promises to avoid initialization if possible, anyway.
Refactored tests to parametrically exercise these new relaxed constraints.
* Simplifiy conditionals in AllocateUninitializedArray.
Relying on internal implementation zeroing refs if necessary.
* Also simplify path for NativeOAT.
Mono already piggybacks on the AllocateArray path anyway.
* Simplify pinning paths.
All conditional paths in GC.Allocate*Array now handle pinning unconditionally out of the main branch.
* Don't use `var` if type name doesn't exist explicitly on right-hand side
* PR feedback for using terse method tables and JIT intrinsics for GC array allocation that should be slightly faster.
* Changed EmbeddedValueType and added comment.
After a longer discussion, settled on a slightly augmented suggestion that isn't as controversial as the prior one.
* Fixing signature for `RhAllocateNewArray` in NativeAOT to directly use a `MethodTable*`
* Adding explicit structlayout to silence warning for EmbeddedValueType in GCTests, and improved the comment.
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Koundinya Veluri [Fri, 11 Aug 2023 21:34:40 +0000 (14:34 -0700)]
Fix session-local named mutex compat issue (#90342)
- A previous change that was serviced back changed session-local named mutexes to be user-specific by restricting the permissions of the session directories and files under them, and adding the sticky bit to some directoires. A compat issue arose from that change, as the session directories have the session ID in their name and session IDs can be reused between different users. The current plan that we have discussed is to revert the change and service back the revert, which also restores the intended behavior, and offer user-specific mutexes as a new feature in a future .NET that would satisfy some user scenarios in a better way.
- This PR reverts the previous change (first commit) and restores one change from the previous change (second commit) to improve backward compatibility due to differences in permissions for session directories before and after the change
- Fixes https://github.com/dotnet/runtime/issues/80619
Poppyto [Fri, 11 Aug 2023 21:30:50 +0000 (23:30 +0200)]
Using stackalloc instead of new byte[x] on Streams (#88303)
* first XOR Linq implemetation
* replace classic allocation by stack allocation for ReadByte
* replace classic allocation by stack allocation for ReadByte & WriteByte
* replace classic allocation by stack allocation for ReadByte/CopyToAsync
* add missing ConfigureAwait(false) on ReadAsync
* replace classic allocation by stack allocation for ReadByte/WriteByte
* Revert "first XOR Linq implemetation"
This reverts commit
449fddec66b3311866dc1e57c07ad7127e8039ff.
* indent fix
* rollback stackalloc on async methods
* missing char
* fix ConfigureAwait
* rollback ReadByte optim (degrade perfs)
* variablename fix
* missing comment
* rollback Stream allocations
* missing arguments
* add Write(ReadOnlySpan<byte>) method
* better initialize Span
* add CRLF
* resolve comments
* simplification call method Write
* Update src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonEncodingStreamWrapper.cs
replace Span by ReadOnlySpan
Co-authored-by: Michał Petryka <35800402+MichalPetryka@users.noreply.github.com>
* remove trailing whitespace
* Update src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonEncodingStreamWrapper.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/JsonEncodingStreamWrapper.cs
Co-authored-by: Stephen Toub <stoub@microsoft.com>
---------
Co-authored-by: Michał Petryka <35800402+MichalPetryka@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Daniel Svensson [Fri, 11 Aug 2023 21:30:06 +0000 (23:30 +0200)]
Reduce contention for Datacontract Serialization (#73893)
* Use ConcurrentDictionary to avoid lock contention when serializing using DataContractSerializer
* Improve concurrency for GetId
* Prevent allocating multiple slots in s_dataContractCache for the same typeHandle
* Use RuntimeTypeHandle as key in dictionary
* add readonly
* Remove usage of lazy
* revert whitespace changes
* Use RuntimeTypeHandle.Value as key instead of RuntimeTypeHandle
* Apply same perf improvement to JDCS; Remove Int/TypeHandleRef silliness that we no longer need.
---------
Co-authored-by: Steve Molloy <smolloy@microsoft.com>
Eirik Tsarpalis [Fri, 11 Aug 2023 20:33:38 +0000 (23:33 +0300)]
Improve System.Text.Json configuration list debugging (#90411)
* Improve debugging for configuration lists.
* Add missing DebuggerBrowsable.Never annotations.
* Add DebuggerBrowsableState.Never to a few internal getters that may throw.
* Simplify JsonPropertyInfo DebuggerDisplay
* Ensure debugger display matches API name.
Alexander Köplinger [Fri, 11 Aug 2023 20:11:22 +0000 (22:11 +0200)]
Enable Automatic Reference Counting (ARC) for Objective-C code that needs it (#90379)
We noticed that ARC isn't enabled for System.Globalization.Native code but we aren't properly doing manual memory management by calling `release`.
Enable ARC for the System.Globalization.Native ObjC code so it is handled automatically by the compiler.
Disable it for System.Native code since that one is less complex and we can manually manage it.
We need to wrap all public entrypoints to the library in `@autoreleasepool` blocks so that the releasing of autoreleased objects occurs at the end of the block, rather than at some undetermined point in the future (and we don't even know if we have an autorelease pool in the thread).
Milos Kotlar [Fri, 11 Aug 2023 19:34:28 +0000 (21:34 +0200)]
[ios][tests] Run functional tests with Mono and Native AOT on Helix (#87773)
This PR adds support for Native AOT compilation on Helix. It improves test coverage for Mono and Native AOT by running functional tests on Helix. The proxy project is updated with Native AOT props and apple build targets are updated to support Native AOT compilation. Additionally, it simplifies the sample app by utilizing the shared Apple targets.
Ankit Jain [Fri, 11 Aug 2023 19:16:47 +0000 (15:16 -0400)]
Revert "Update perf run yaml with changes for crank on helix (#90368)" (#90424)
This reverts commit
bbe40f8cbffe47f685bc50d4cb1a6d4535c68a4d.
This caused perf pipeline runs to break. But https://github.com/dotnet/performance/pull/3251 from @caaavik-msft, along with this revert will fix the issue.
Issue: https://github.com/dotnet/runtime/issues/90420
Elinor Fung [Fri, 11 Aug 2023 19:03:05 +0000 (12:03 -0700)]
Use generated version files when printing/tracing host version info (#90273)
- Use `VER_PRODUCTVERSION_STR` / `sccsid` from generated `_version.(h|c)` for version and commit info (for tracing)
- Use `RuntimeProductVersion` for version from header generated by `GenerateRuntimeVersionFile`
- Remove `HOST_*_PKG_VER` defines and script arguments for passing that info around
Steve Molloy [Fri, 11 Aug 2023 18:55:17 +0000 (11:55 -0700)]
Don't fallback to PNSE, and give a more descriptive error message. (#88804)
* Don't fallback to PNSE, and give a more descriptive error message.
* CodeGeneratorConversionException is internal. Wrap it before re-throwing.
* Update src/libraries/System.Private.Xml/src/System/Xml/Serialization/Compilation.cs
Fixing comment about lack of compiler at runtime
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Update Compilation.cs
Remove conditional code that was not needed.
---------
Co-authored-by: Matt Connew <mconnew@users.noreply.github.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Pavel Savara [Fri, 11 Aug 2023 18:34:52 +0000 (20:34 +0200)]
[browser] Allow JS modules to be injected as pre-loaded assets (#90392)
Co-authored-by: Ilona Tomkowicz <32700855+ilonatommy@users.noreply.github.com>
Pavel Savara [Fri, 11 Aug 2023 18:33:46 +0000 (20:33 +0200)]
[browser] bind JS methods to minified WASM imports (#90145)
Jo Shields [Fri, 11 Aug 2023 18:21:10 +0000 (14:21 -0400)]
Disable LLVM AOT ARM64 lane (#90413)