Skip to content

Conversation

@carlossanlop
Copy link
Contributor

Merge commit!

akoeplinger and others added 30 commits October 25, 2023 16:44
* Pin the SdkVersionForWorkloadTesting to 1.xx for now

* Work around illink 8.0.0 not being locally built for now

* Disable downlevel tests targetting unreleased versions
* [release/8.0] Stable branding for .NET 8 GA

* Handle an empty bandPreleaseVersion

* [release/8.0] Update dependencies from dotnet/emsdk (#93801)

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

Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport
 From Version 8.0.0-rtm.23511.3 -> To Version 8.0.0-rtm.23520.2

* switch to the stable version now

* Update dependencies

* Also fix the trigger

* pin the wbt sdk to avoid the latest analizer nonsense

* Use source generation for the serializer

* Try to make sourcebuild happy

* Try again to make sourcebuild happy

* Use reflection and suppress trim analysis instead

This reverts commit 768b65b.

* Fix reverting too much

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Larry Ewing <[email protected]>

* [release/8.0] Update APICompat settings under source build (#93865)

* Update APICompat settings under source build

* Update resolveContract.targets

---------

Co-authored-by: Viktor Hofer <[email protected]>

* Override InformationalVersion for NativeAOT corelib too

* [release/8.0] Improve performance of UnmanagedMemoryStream (#93812)

* Improve performance of UnmanagedMemoryStream

UnmanagedMemoryStream used Interlocked operations to update its state to prevent tearing of 64-bit values on 32-bit platforms. This pattern is expensive in general and it was found to be prohibitively expensive on recent hardware..

This change removes the expensive Interlocked operations and addresses
the tearing issues in alternative way:
- The _length field is converted to nuint that is guaranteed to be
  updated atomically.
- Writes to _length field are volatile to guaranteed the
  unininitialized memory cannot be read.
- The _position field remains long and it has a risk of tearing. It is
  not a problem since tearing of this field cannot lead to buffer
  overruns.

Fixes #93624

* Add comment

---------

Co-authored-by: Jan Kotas <[email protected]>

* Update dependencies from https://github.com/dotnet/emsdk build 20231023.2 (#93881)

Microsoft.SourceBuild.Intermediate.emsdk , Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100
 From Version 8.0.0-rtm.23520.2 -> To Version 8.0.0-rtm.23523.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* [release/8.0] Update dependencies from dnceng/internal/dotnet-optimization (#93827)

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

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23519.5 -> To Version 1.0.0-prerelease.23521.3

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

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23519.5 -> To Version 1.0.0-prerelease.23521.3

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* [release/8.0][wasm] Fix perf pipeline runs (#93888)

* Remove --experimental-wasm-eh argument from the wasm_args used for wasm performance runs. (#93357)

(cherry picked from commit a770017)

* performance-setup.sh: Use `release/8.0` as the default channel

* performance-setup.ps1: use release/8.0 as the default channel

* Fix passing wasmArgs for bdn

---------

Co-authored-by: Parker Bibus <[email protected]>

* [release/8.0] Honor JsonSerializerOptions.PropertyNameCaseInsensitive in property name conflict resolution. (#93935)

* Honor JsonSerializerOptions.PropertyNameCaseInsensitive in property name conflict resolution.

* Update src/libraries/System.Text.Json/tests/Common/PropertyNameTests.cs

Co-authored-by: Jeff Handley <[email protected]>

* Address feedback

---------

Co-authored-by: Eirik Tsarpalis <[email protected]>
Co-authored-by: Jeff Handley <[email protected]>

* [8.0] Update MsQuic (#93979)

* Try pinning the installer version to a 8.01xx sdk

* Target net8.0 in SatelliteAssemblyFromProjectRef

---------

Co-authored-by: Carlos Sánchez López <[email protected]>
Co-authored-by: Larry Ewing <[email protected]>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Viktor Hofer <[email protected]>
Co-authored-by: Alexander Köplinger <[email protected]>
Co-authored-by: Jan Kotas <[email protected]>
Co-authored-by: Ankit Jain <[email protected]>
Co-authored-by: Parker Bibus <[email protected]>
Co-authored-by: Eirik Tsarpalis <[email protected]>
Co-authored-by: Jeff Handley <[email protected]>
…0-staging

[manual] Merge branch 'release/8.0' => 'release/8.0-staging'
…es in options source gen (#94062)

Co-authored-by: Tarek Mahmoud Sayed <[email protected]>
…ild 20231023.2 (#93872)

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 8.0.0-alpha.0.23518.2 -> To Version 8.0.0-alpha.0.23523.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
….2 (#93873)

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 8.0.0-rtm.23511.1 -> To Version 8.0.0-rtm.23523.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
#94037)

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

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.11.0-beta1.23516.2 -> To Version 3.11.0-beta1.23525.2

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

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.11.0-beta1.23516.2 -> To Version 3.11.0-beta1.23525.2

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

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.11.0-beta1.23516.2 -> To Version 3.11.0-beta1.23525.2

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

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.11.0-beta1.23516.2 -> To Version 3.11.0-beta1.23525.2

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

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.11.0-beta1.23516.2 -> To Version 3.11.0-beta1.23525.2

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
… types. (#94267) (#94307)

* Use fully qualified names when referencing user types. (#94267)

* Use fully qualified names when referencing user types.

* Use ToUpperInvariant

* Address feedback

* Update Servicing version.
…rtual generic methods (#94469)

* [mono] [imt] Don't increment vt_slot for non-virtual generic methods

Interfaces can have static generic methods, for example.  They don't
have a vt_slot.

When building an IMT slot, we need to collect all the interface
methods that map to a particular IMT slot along with their
implementing vtable entries.  To do that, vt_slot starts at the
interface offset of a particular interface and keeps incrementing as
we iterate over the methods of the interface.  It is crtitical that
vt_slot is accurate - otherwise we may dispatch the interface call to
the wrong virtual method.

Fixes #93770

* [mono][imt] remove dead appdomain code

the extra_interfaces argument was used to implement additional
interfaces on cross-domain transparent proxy objects.

* [mono][imt] fixup ifdefed debug code

* Add test case

---------

Co-authored-by: Aleksey Kliger <[email protected]>
…#94309)

* Update dependencies from https://github.com/dotnet/hotreload-utils build 20231102.2

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 8.0.0-alpha.0.23523.2 -> To Version 8.0.0-alpha.0.23552.2

* Update dependencies from https://github.com/dotnet/hotreload-utils build 20231106.2

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 8.0.0-alpha.0.23523.2 -> To Version 8.0.0-alpha.0.23556.2

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…4070)

* Fix Decimal literal formatting in source generators

Both ConfigurationBinder and Json were not handling decimal values
correctly.  This shares and updates our workaround method for formatting
these.

* Address feedback

* Fix binding types with optional string parameters (#93563)

* Add a baseline test for constructor parameters

* Fix binding types with optional string parameters

Ensure the source generator emits the declaration with default value for
all cases when we emit the bind logic.

* Add a test case that uses a Primary Constructor with default values

* Split baseline data for added test.

* Fix .NETFramework test baseline

* Update baselines after global namespace change
# Conflicts:

* Update added baseline after global:: change

---------

Co-authored-by: Eric StJohn <[email protected]>
* Linux Kernel Regression Socket Test Failures Disable

* Fix formatting

* Delete spaces

* Format Connect.cs

* Revert "Format Connect.cs"

This reverts commit 6ee1383.

* Add spaces again
* Update dependencies from https://github.com/dotnet/emsdk build 20231030.2

Microsoft.SourceBuild.Intermediate.emsdk , Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100
 From Version 8.0.0-rtm.23523.2 -> To Version 8.0.0-rtm.23530.2

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

Microsoft.SourceBuild.Intermediate.emsdk , Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100
 From Version 8.0.0-rtm.23523.2 -> To Version 8.0.0-rtm.23558.2

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

Microsoft.SourceBuild.Intermediate.emsdk , Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100
 From Version 8.0.0-rtm.23523.2 -> To Version 8.0.1-rtm.23558.4

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

Microsoft.SourceBuild.Intermediate.emsdk , Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100
 From Version 8.0.0-rtm.23523.2 -> To Version 8.0.1-servicing.23559.1

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Carlos Sánchez López <[email protected]>
…ld 20231108.5 (#94568)

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.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.23421.1 -> To Version 8.0.0-beta.23558.5

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…ay], add XML docs (#94343)

* Remove [EditorBrowsable] from [InlineArray]

* Add XML comments

* Tweak XML docs following review comments

Co-authored-by: Stephen Toub <[email protected]>

---------

Co-authored-by: Sergio Pedri <[email protected]>
Co-authored-by: Stephen Toub <[email protected]>
* Update Alpine Arm32 image

* TO REVERT: test specifically linux_musl_arm platform

* Pin the image to previous tag

* Revert "TO REVERT: test specifically linux_musl_arm platform"

This reverts commit 63b8302.
…o_debug_lookup_source_location (#94612)

Backport of #94540 to release/8.0-staging

If a newly added method is in a stack trace, look it up in the EnC debug information, if available.

Related to #93860

* Add new crashing test

* [mono] catch the case of updated methods in mono_debug_lookup_source_location

Co-authored-by: Aleksey Kliger <[email protected]>
Co-authored-by: Thays Grazia <[email protected]>
…13.2 (#94677)

Microsoft.SourceBuild.Intermediate.emsdk , Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100
 From Version 8.0.1-servicing.23559.1 -> To Version 8.0.1-servicing.23563.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.23478.1 -> To Version 16.0.5-alpha.1.23558.12 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…ild 20231113.1 (#94669)

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 8.0.0-alpha.0.23556.2 -> To Version 8.0.0-alpha.0.23563.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…ence-packages build 20231106.3 (#94665)

Microsoft.SourceBuild.Intermediate.source-build-reference-packages
 From Version 8.0.0-alpha.1.23516.4 -> To Version 8.0.0-alpha.1.23556.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…alization (#93943)


Backport of #93875 to release/8.0-staging

* [mono] Fix deadlock in static constructor initialization

If two threads (A and B) need to call the static constructors for 3
classes X, Y, Z in this order:

Thread A: X, Z, Y
Thread B: Y, Z, X

where the cctor for X in thread A invokes the cctor for Z and for Y, and the
cctor for Y in thread B invokes the cctor for Z and X, then we can get
into a situation where A and B both start the cctors for X and Y (so
they will be in the type_initialization_hash for those two classes)
and then both will try to init Z.  In that case it could be that A
will be responsible for initializing Z and B will block.  Then A could
finish initializing Z but B may not have woken up yet (and so it will
be in blocked_thread_hash waiting for Z).  At that point A (who is at
this point already need to init Y) may think that it can wait for B to
finish initializing Y.  That is we get to
`mono_coop_cond_timedwait (&lock->cond, &lock->mutex, timeout_ms)`
with "lock" being the lock for `Y`.  But in fact thread B will not be
able to complete initializing Y because it will attempt to init X next
- but meanwhile we did not indicate that thread A is blocked.
As a result in thread A the timed wait will eventually timeout.  And
in this case we need to go back to the top and now correctly detect
that A is waiting for Y and B is waiting for X.  (At that point there
is a cctor deadlock and ECMA rules allow one of the threads to return
without calling the cctor)

The old code here used to do an infinite wait:
  while (!lock->done)
    mono_coop_cond_wait (&lock->cond, &lock->mutex)

This cannot succeed because "lock" (in thread A it's the lock for Y)
will not be signaled since B (who is supposed to init Y) will instead
block on the cctor for X.

Fixes #93778

* Add test case

* remove prototyping log messages

* disable mt test on wasm

* better issues.target exclusion

* code review feedback


Co-authored-by: Aleksey Kliger <[email protected]>
…DSA / RSA (#93996)

* Handle null signature destinations.

When RSA/ECDSA/DSA use a "null" span as a destination for a signature, a nullptr was handed to CNG. CNG would interpret this as asking for the signature length. It would set the output length and return success without actually computing the signature.

This changes the p/invokes to prevent null values for the signature destination.

* Fix DSA test on macOS to not generate a DSA key

---------

Co-authored-by: Kevin Jones <[email protected]>
eiriktsarpalis and others added 6 commits November 14, 2023 20:26
…ivity in FrozenCollections (#94667) (#94685)

* Add failing tests

* Fix incorrect case sensitivity in FrozenDictionary and FrozenSet for some cases

fixes #93974

* When hashing the entire string, case sensitivity of hash and equals should be the same

* Address code review comments

* Only ignore case insensitivity if entire string is ASCII non-letters

* Code review comments

* Undo some new lines

* Fixed tests - incorrect leftover from previous PR

Co-authored-by: Andrew J Said <[email protected]>
…CE (#94715)

* #ifdef out code that requires FEATURE_EVENT_TRACE

* remove assert

---------

Co-authored-by: yowl <[email protected]>
Since 8.0 is GA, we'll be able to calculate the net7 version based on PatchVersion
…d with specific conditions (#94718)

Fixed issue when DateTimeOffset.Now throws exception on Android with Arabic language & western hemisphere timezone

Backport of #94710

Co-authored-by: Taras Shevchuk <[email protected]>
@carlossanlop carlossanlop added Servicing-approved Approved for servicing release area-codeflow for labeling automated codeflow labels Nov 15, 2023
@carlossanlop carlossanlop added this to the 8.0.1 milestone Nov 15, 2023
@carlossanlop carlossanlop self-assigned this Nov 15, 2023
@ghost
Copy link

ghost commented Nov 15, 2023

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@carlossanlop carlossanlop merged commit 069bd68 into dotnet:release/8.0 Nov 16, 2023
@carlossanlop carlossanlop deleted the release/8.0-staging branch November 16, 2023 18:35
@github-actions github-actions bot locked and limited conversation to collaborators Dec 17, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-codeflow for labeling automated codeflow new-api-needs-documentation Servicing-approved Approved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.