Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NativeAOT-LLVM] Merge oct 01 #2750

Open
wants to merge 73 commits into
base: feature/NativeAOT-LLVM
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
c4b3d81
Target .NET 10 / net10.0 (#106599)
ViktorHofer Sep 25, 2024
3baa42e
More doc updates for source-of-truth assemblies (#107810)
gewarren Sep 25, 2024
845e9a3
[main] Update dependencies from dotnet/arcade (#108182)
dotnet-maestro[bot] Sep 25, 2024
cf165a7
Update sign-diagnostic-files.yml to skip dac sign in staging (#108209)
hoyosjs Sep 25, 2024
d6ac24c
Implement Enumerable.Reverse(TSource[]) (#107957)
333fred Sep 25, 2024
335b1a9
Update field references in property accessors (#108225)
cston Sep 25, 2024
a16e0d5
[main] Update dependencies from dotnet/cecil, dotnet/hotreload-utils,…
dotnet-maestro[bot] Sep 25, 2024
f2dfbf5
Update dependencies from https://github.com/dotnet/roslyn build 20240…
dotnet-maestro[bot] Sep 25, 2024
7c85cee
Add DefaultMemberAttribute to Test.CoreLib (#108236)
MichalStrehovsky Sep 25, 2024
79a71fc
Remove live System.Text.Json reference from HostModel (#108263)
ericstj Sep 26, 2024
19da949
Delete dead code (#108265)
jkotas Sep 26, 2024
d22c74d
ARM64: Fix lsra for AdvSimd_LoadAndInsertScalar (#107786)
a74nh Sep 26, 2024
dfc3310
Bring back Microsoft.BCL.Memory netstandard2.1 facade (#108245)
ericstj Sep 26, 2024
931ea60
Fix handling of appending keywords to boolean schemas. (#108246)
eiriktsarpalis Sep 26, 2024
735a031
Fixing SetSlice, Reshape, TryCopyTo. (#107852)
michaelgsharp Sep 26, 2024
e4282ff
[mini] Don't use Unwind Backtrace on android-amd64 (#107615)
lambdageek Sep 26, 2024
52a51e8
Add test coverage for DirectoryServices.TransformControls (#107201)
edwardneal Sep 26, 2024
c5ec080
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Sep 26, 2024
3bf0029
Update dependencies from https://github.com/dotnet/roslyn build 20240…
dotnet-maestro[bot] Sep 26, 2024
f8b6dc7
Update dependencies from https://github.com/dotnet/cecil build 202409…
dotnet-maestro[bot] Sep 26, 2024
c4ebd38
Update dependencies from https://github.com/dotnet/emsdk build 202409…
dotnet-maestro[bot] Sep 26, 2024
1990f08
[cdac][cdac-build-tool] Don't let msbuild rewrite the resource name (…
lambdageek Sep 26, 2024
9d9c64d
Disable System.Collections.Immutable tests on native AOT (#108275)
MichalStrehovsky Sep 26, 2024
fdc9e54
[cdac][tests] Make it easier to set up a unit test (#108288)
lambdageek Sep 26, 2024
9b56e73
[cdac-build-tool] don't embed resources (#108293)
lambdageek Sep 26, 2024
c20bdf6
Remove HelperMethodFrame from `Delegate` construction (#108217)
AaronRobinsonMSFT Sep 27, 2024
69de6dd
Root the System.Runtime EventSource (#108266)
noahfalk Sep 27, 2024
84b7c2f
Unblock System.Linq testing in nativeAOT outerloop (#108302)
MichalStrehovsky Sep 27, 2024
01aa3d9
[wasm] Change ICU `WasmBuildTests` to use `wasmconsole` and `wasmbrow…
ilonatommy Sep 27, 2024
c315bac
[iOS] Enable and disable tests for hybrid globalization on Apple (#10…
mkhamoyan Sep 27, 2024
8699505
Enable policheck and tsa (#108312)
agocke Sep 27, 2024
2fcc09b
Fix statics issue with barriers (#108311)
davidwrighton Sep 27, 2024
b3a113a
Fix build-runtime-tests-and-send-to-helix auth for internal PRs (#107…
hoyosjs Sep 27, 2024
a2291e9
fix guid version > 7 (#108314)
kasperk81 Sep 27, 2024
4a99ef1
JIT: refactor AddCodeDsc (#108095)
AndyAyersMS Sep 28, 2024
3fd7b0f
Convert `ReflectionInvocation.CanValueSpecialCast()` to managed (#108…
AaronRobinsonMSFT Sep 28, 2024
7c69e7d
Fix the QCall contract for GC suppression. (#108344)
AaronRobinsonMSFT Sep 28, 2024
ba9b3ba
Fix handling of IDynamicInterfaceCastable wrt CastCache (#108328)
MichalStrehovsky Sep 28, 2024
3d9334c
Fix AbandonedMutexException errors in System.Memory tests (#108369)
MihaZupan Sep 29, 2024
4c53afd
[main] Update dependencies from dotnet/xharness (#108184)
dotnet-maestro[bot] Sep 29, 2024
2917e51
NativeAOT Thread Name (#107943)
cshung Sep 29, 2024
98db53f
Fix IDynamicInterfaceCastable with shared generic code (#108235)
MichalStrehovsky Sep 30, 2024
c049b85
[wasm] Dispose Xunit ToolCommand (#108319)
ilonatommy Sep 30, 2024
96be510
[LoongArch64] Modify several atomic instructions in nativeaot. (#108377)
sunlijun-610 Sep 30, 2024
70e4eb9
JIT: use bbID for pred list ordering (#108357)
AndyAyersMS Sep 30, 2024
9399533
Move computation of DebuggerAssemblyControlFlags from DomainAssembly …
elinor-fung Sep 30, 2024
e720b9f
Add notifications for area-Interop-coreclr (#108378)
AaronRobinsonMSFT Sep 30, 2024
74b18d3
Remove duplicate code in DiagnosticsHandler (#108012)
stevejgordon Sep 30, 2024
13e55a4
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Sep 30, 2024
a7e5426
[cdac] break up cdacreader into 4 separate assemblies (#108156)
lambdageek Sep 30, 2024
eb78413
Pass ScenarioArgs for scenario projects (#108303)
caaavik-msft Sep 30, 2024
e690777
Enable IDynamicInterfaceCastable tests disabled on fixed bug (#108376)
MichalStrehovsky Sep 30, 2024
a0790e9
Updated tsaoptions.json to direct issues to runtime. (#108410)
artl93 Sep 30, 2024
7b1e788
JIT: remove some unnecessary DONT_REMOVE block flags (#108405)
AndyAyersMS Sep 30, 2024
e9fa899
Add comments to host error_codes.h (#107775)
elinor-fung Oct 1, 2024
4f66989
[mono] Set unwind table kind (#107462)
radekdoulik Oct 1, 2024
44c9d13
[wasm] Include browser targets if RID is not wasi-wasm (#108283)
maraf Oct 1, 2024
008ee9f
Disable `RunWithDifferentAppBundleLocations` failing with a timeout (…
ilonatommy Oct 1, 2024
d024a5b
[Swift interop] Add inline array struct lowering tests (#107859)
jkurdek Oct 1, 2024
e38e56a
Remove AppDomain from DebugInterface Load/UnloadClass (#107808)
elinor-fung Oct 1, 2024
fff9521
Bump `Playwright` on `WasmBuildTests` to 1.47.0 (#108441)
ilonatommy Oct 1, 2024
68d8478
[wasm] Dispose Xunit `ToolCommand` - follow up (#108387)
ilonatommy Oct 1, 2024
d726811
Fix partial compilation for CETCOMPAT mode (#108062)
EgorBo Oct 1, 2024
d95cbad
Fold some casts early in importer (#108356)
EgorBo Oct 1, 2024
2d2e703
remove dead code from BCL.cs (#108165)
kasperk81 Oct 1, 2024
82f8ac6
couple minor docs updates (#108407)
gewarren Oct 1, 2024
e6d9f74
Fix devirtualization across genericness in the hierarchy (#108442)
MichalStrehovsky Oct 1, 2024
3ca4ec8
Update System.Formats.Nrbf ref sources and restore package descriptio…
jeffhandley Oct 2, 2024
53c79b7
Merge commit '3ca4ec8011f153bb8aa7508ea323a9acfe6e8283' into merge-oc…
yowl Nov 5, 2024
33bf810
resolve conflict
yowl Nov 5, 2024
ae066a9
add AcdKeyDesignator parameter
yowl Nov 7, 2024
8f467d9
update from 9 to 10 in doc and Tested-by:
yowl Nov 8, 2024
d04a118
more doc change from 9 to 10
yowl Nov 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
]
},
"microsoft.dotnet.xharness.cli": {
"version": "10.0.0-prerelease.24467.4",
"version": "10.0.0-prerelease.24476.1",
"commands": [
"xharness"
]
Expand Down
7 changes: 4 additions & 3 deletions .config/tsaoptions.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@
"instanceUrl": "https://devdiv.visualstudio.com/",
"template": "TFSDEVDIV",
"projectName": "DEVDIV",
"areaPath": "DevDiv\\NET Libraries",
"areaPath": "DevDiv\\NET Runtime",
"iterationPath": "DevDiv",
"notificationAliases": [ "[email protected]" ],
"repositoryName": "Runtime",
"codebaseName": "Runtime"
}
"codebaseName": "Runtime",
"serviceTreeId": "1dc8dedc-8f5f-4b94-b182-ec3bdfb207b0"
}
14 changes: 14 additions & 0 deletions .github/policies/resourceManagement.yml
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,8 @@ configuration:
label: area-Infrastructure-libraries
- labelAdded:
label: area-Infrastructure-mono
- labelAdded:
label: area-Interop-coreclr
- labelAdded:
label: area-Meta
- labelAdded:
Expand Down Expand Up @@ -1409,6 +1411,18 @@ configuration:
See info in [area-owners.md](https://github.com/dotnet/runtime/blob/main/docs/area-owners.md) if you want to be subscribed.
assignMentionees: False
- if:
- hasLabel:
label: area-Interop-coreclr
then:
- mentionUsers:
mentionees:
- dotnet/interop-contrib
replyTemplate: >-
Tagging subscribers to this area: ${mentionees}

See info in [area-owners.md](https://github.com/dotnet/runtime/blob/main/docs/area-owners.md) if you want to be subscribed.
assignMentionees: False
- if:
- hasLabel:
label: area-System.Runtime.Intrinsics
then:
Expand Down
14 changes: 7 additions & 7 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<Project>

<PropertyGroup>
<!-- For non-SDK projects that import this file and then import Microsoft.Common.props,
tell Microsoft.Common.props not to import Directory.Build.props again. -->
Expand Down Expand Up @@ -92,18 +93,16 @@

<!-- The TFMs to build and test against. -->
<PropertyGroup>
<NetCoreAppCurrentVersion>9.0</NetCoreAppCurrentVersion>
<NetCoreAppCurrentVersion>10.0</NetCoreAppCurrentVersion>
<NetCoreAppCurrentIdentifier>.NETCoreApp</NetCoreAppCurrentIdentifier>
<NetCoreAppCurrentTargetFrameworkMoniker>$(NetCoreAppCurrentIdentifier),Version=v$(NetCoreAppCurrentVersion)</NetCoreAppCurrentTargetFrameworkMoniker>
<MicrosoftNetCoreAppFrameworkName>Microsoft.NETCore.App</MicrosoftNetCoreAppFrameworkName>
<NetCoreAppCurrentBrandName>.NET $(NetCoreAppCurrentVersion)</NetCoreAppCurrentBrandName>
<NetCoreAppCurrent>net$(NetCoreAppCurrentVersion)</NetCoreAppCurrent>

<!-- The previous supported .NET version. -->
<NetCoreAppPreviousVersion>8.0</NetCoreAppPreviousVersion>
<!-- For the .NET 9 release, set NetCoreAppPrevious to empty as NuGet has issues
with duplicate TFMs (when using both NetCoreAppPrevious and NetCoreAppMinimum). -->
<NetCoreAppPrevious />
<NetCoreAppPrevious>net9.0</NetCoreAppPrevious>
<NetCoreAppPrevious Condition="'$(DotNetBuildSourceOnly)' == 'true'">$(NetCoreAppCurrent)</NetCoreAppPrevious>

<!-- The minimum supported .NET version. -->
<NetCoreAppMinimum>net8.0</NetCoreAppMinimum>
Expand All @@ -128,8 +127,9 @@
<NetFrameworkCurrent Condition="'$(DotNetBuildSourceOnly)' == 'true'" />

<!-- Important: Set this to the GA version (or a close approximation) during servicing and adjust the TFM property below. -->
<ApiCompatNetCoreAppBaselineVersion>8.0.0</ApiCompatNetCoreAppBaselineVersion>
<ApiCompatNetCoreAppBaselineTFM>net8.0</ApiCompatNetCoreAppBaselineTFM>
<!-- TODO: Update to 9.0.0 when .NET 9 is generally available. https://github.com/dotnet/runtime/issues/106598 -->
<ApiCompatNetCoreAppBaselineVersion>9.0.0-preview.7.24405.7</ApiCompatNetCoreAppBaselineVersion>
<ApiCompatNetCoreAppBaselineTFM>net9.0</ApiCompatNetCoreAppBaselineTFM>
</PropertyGroup>

<PropertyGroup Label="CalculateConfiguration">
Expand Down
2 changes: 1 addition & 1 deletion Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
Define this here (not just in Versions.props) because the SDK resets it
unconditionally in Microsoft.NETCoreSdk.BundledVersions.props.
-->
<NETCoreAppMaximumVersion>$(MajorVersion).$(MinorVersion)</NETCoreAppMaximumVersion>
<NETCoreAppMaximumVersion>$(NetCoreAppCurrentVersion)</NETCoreAppMaximumVersion>
<!-- SDK sets product to assembly but we want it to be our product name -->
<Product>Microsoft%AE .NET</Product>
<!-- Use the .NET product branding version for informational version description -->
Expand Down
2 changes: 1 addition & 1 deletion NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
<add key="dotnet-libraries" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries/nuget/v3/index.json" />
<!-- Required for System.CommandLine SB intermediate -->
<add key="dotnet-libraries-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries-transport/nuget/v3/index.json" />
<!-- TODO: Remove dotnet9 feeds when all dependencies moved to the dotnet10 feeds. https://github.com/dotnet/runtime/issues/106593 -->
<add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
<add key="dotnet9-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9-transport/nuget/v3/index.json" />
<add key="dotnet10" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10/nuget/v3/index.json" />
Expand Down
4 changes: 2 additions & 2 deletions docs/coding-guidelines/adding-api-guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ the implementation without compat concerns in future releases.

### Determine target framework

`net9.0` is the target framework version currently under development and the new apis
should be added to `net9.0`. [More Information on TargetFrameworks](https://learn.microsoft.com/dotnet/standard/frameworks)
`net10.0` is the target framework version currently under development and the new apis
should be added to `net10.0`. [More Information on TargetFrameworks](https://learn.microsoft.com/dotnet/standard/frameworks)

## Making the changes in repo

Expand Down
6 changes: 3 additions & 3 deletions docs/coding-guidelines/libraries-packaging.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,13 +150,13 @@ In order to mitigate design-time/build-time performance issues with source gener
### NETStandard Compatibility Error infrastructure
For libraries that support .NETStandard, the _.NETStandard Compatibility packaging infrastructure_ makes sure that out-of-support target frameworks like _netcoreapp3.1_ or _net461_ are unsupported by the produced package. That enables library authors to support .NETStandard but explicitly not support unsupported .NETStandard compatible target frameworks.

The infrastructure generates a targets file that throws a user readable Error when msbuild invokes a project with an unsupported target framework. In addition to the targets file, placeholder files `_._` are placed into the minimum supported .NETStandard compatible target framework's package folder (as time of writing `net6.0` and `net462`), so that the generated targets files don't apply for that and any newer/compatible target framework. Example:
The infrastructure generates a targets file that throws a user readable Error when msbuild invokes a project with an unsupported target framework. In addition to the targets file, placeholder files `_._` are placed into the minimum supported .NETStandard compatible target framework's package folder (as time of writing `net8.0` and `net462`), so that the generated targets files don't apply for that and any newer/compatible target framework. Example:

```
buildTransitive\net461\Microsoft.Extensions.Configuration.UserSecrets.targets <- This file is generated and throws an Error
buildTransitive\net462\_._
buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.UserSecrets.targets <- This file is generated and throws an Error
buildTransitive\net6.0\_._
buildTransitive\net8.0\_._
```

Whenever a library wants to author their own set of props and targets files (i.e. for source generators) and the above mentioned infrastructure kicks in (because the library targets .NETStandard), such files **must be included not only for the .NETStandard target framework but also for the specific minimum supported target frameworks**. The _.NETStandard Compatibility packaging infrastructure_ then omits the otherwise necessary placeholder files. Example:
Expand All @@ -166,7 +166,7 @@ buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.ta
buildTransitive\net461\Microsoft.Extensions.Configuration.UserSecrets.targets <- This file is generated and throws an Error
buildTransitive\net462\Microsoft.Extensions.Configuration.UserSecrets.targets <- This file is hand authored and doesn't throw an error
buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.UserSecrets.targets <- This file is generated and throws an Error
buildTransitive\net6.0\Microsoft.Extensions.Configuration.UserSecrets.targets <- This file is hand authored and doesn't throw an error
buildTransitive\net8.0\Microsoft.Extensions.Configuration.UserSecrets.targets <- This file is hand authored and doesn't throw an error
```

The above layout is achieved via the following item declaration in the project file. In that case, the hand authored msbuild props and/or targets files are located in a buildTransitive folder in the project tree. Note that the trailing directory separators are required.
Expand Down
6 changes: 3 additions & 3 deletions docs/coding-guidelines/project-guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Below is a list of all the various options we pivot the project builds on:
## Individual build properties
The following are the properties associated with each build pivot

- `$(BuildTargetFramework) -> Any .NETCoreApp or .NETFramework TFM, e.g. net9.0`
- `$(BuildTargetFramework) -> Any .NETCoreApp or .NETFramework TFM, e.g. net10.0`
- `$(TargetOS) -> windows | linux | osx | freebsd | ... | [defaults to running OS when empty]`
- `$(Configuration) -> Debug | Release | [defaults to Debug when empty]`
- `$(TargetArchitecture) - x86 | x64 | arm | arm64 | [defaults to x64 when empty]`
Expand Down Expand Up @@ -59,7 +59,7 @@ A cross-targeting project which targets specific platform with `$(NetCoreAppCurr
A full or individual project build is centered around BuildTargetFramework, TargetOS, Configuration and TargetArchitecture.

1. `$(BuildTargetFramework), $(TargetOS), $(Configuration), $(TargetArchitecture)` can individually be passed in to change the default values.
2. If nothing is passed to the build then we will default value of these properties from the environment. Example: `net9.0-[TargetOS Running On]-Debug-x64`.
2. If nothing is passed to the build then we will default value of these properties from the environment. Example: `net10.0-[TargetOS Running On]-Debug-x64`.
3. When building an individual project (either from the CLI or an IDE), all target frameworks are built.

Any of the mentioned properties can be set via `/p:<Property>=<Value>` at the command line. When building using any of the wrapper scripts around it (i.e. build.cmd) a number of these properties have aliases which make them easier to pass (run build.cmd/sh -? for the aliases).
Expand Down Expand Up @@ -163,7 +163,7 @@ In the src directory for a library there should be only **one** `.csproj` file t

All libraries should use `<Reference Include="..." />` for all their references to libraries that compose the shared framework of the current .NETCoreApp. That will cause them to be resolved against the locally built targeting pack which is located at `artifacts\bin\microsoft.netcore.app.ref`. The only exception to that rule right now is for partial facades which directly reference System.Private.CoreLib and thus need to directly reference other partial facades to avoid type conflicts.

Other target frameworks than .NETCoreApp latest (i.e. `netstandard2.0`, `net462`, `net6.0`) should use ProjectReference items to reference dependencies.
Other target frameworks than .NETCoreApp latest (i.e. `netstandard2.0`, `net462`, `net8.0`) should use ProjectReference items to reference dependencies.

### src\ILLink
Contains the files used to direct the trimming tool. See [ILLink files](../workflow/trimming/ILLink-files.md).
Expand Down
6 changes: 6 additions & 0 deletions docs/design/features/globalization-hybrid-mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,12 @@ Affected public APIs:
- String.Compare,
- String.Equals.

Mapped to Apple Native API `compare:options:range:locale:`(https://developer.apple.com/documentation/foundation/nsstring/1414561-compare?language=objc)
This implementation uses normalization techniques such as `precomposedStringWithCanonicalMapping`,
which can result in behavior differences compared to other platforms.
Specifically, the use of precomposed strings and additional locale-based string folding can affect the results of comparisons.
Due to these differences, the exact result of string compariso on Apple platforms may differ.

The number of `CompareOptions` and `NSStringCompareOptions` combinations are limited. Originally supported combinations can be found [here for CompareOptions](https://learn.microsoft.com/dotnet/api/system.globalization.compareoptions) and [here for NSStringCompareOptions](https://developer.apple.com/documentation/foundation/nsstringcompareoptions).

- `IgnoreSymbols` is not supported because there is no equivalent in native api. Throws `PlatformNotSupportedException`.
Expand Down
Loading
Loading