Skip to content

Sync with upstream main branch #30

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

Merged
merged 71 commits into from
Jan 4, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
118349f
Handle RunClassConstructor with nonreflectable cctor (#62947)
MichalStrehovsky Dec 18, 2021
3b2a700
Allow building libs against NativeAOT CoreLib (#62945)
MichalStrehovsky Dec 18, 2021
2abbe5b
Suppress OSR for crossgen2 execution (#62968)
AndyAyersMS Dec 18, 2021
a73d44f
[wasm] Testing with NodeJs on CI (#62779)
pavelsavara Dec 18, 2021
3424923
Add 'w' and 's' bit to xarch instruction flags. (#61198)
anthonycanino Dec 18, 2021
7213976
Have NativeAOT test execution project include SDK (#62927)
MichalStrehovsky Dec 18, 2021
eca7c43
Remove small casts on the RHS of ASG(CLS_VAR) (#62693)
SingleAccretion Dec 19, 2021
a891aed
Implement isMoffset for emitOutputAM (#62896)
SingleAccretion Dec 19, 2021
cbebb29
Fix managed CoreCLR build on Android (#63002)
MichalStrehovsky Dec 20, 2021
834b278
[main] Update dependencies from dotnet/arcade (#62985)
dotnet-maestro[bot] Dec 20, 2021
358cdf9
Improve XML documentation (#62994)
bjornen77 Dec 20, 2021
8cdf339
[main] Update dependencies from dotnet/linker (#62771)
dotnet-maestro[bot] Dec 20, 2021
3251f00
WinHttp: always read HTTP/2 streams to the end (#62870)
antonfirsov Dec 20, 2021
8619a63
fix race condition in System.IO.Packaging (#63013)
themcoo Dec 20, 2021
89857ea
[main] Update dependencies from dotnet/runtime (#63010)
dotnet-maestro[bot] Dec 20, 2021
192db36
Fixed typo in remarks section of OnCompleted (#62982)
slask Dec 20, 2021
9ddd58a
Various WASM AOT changes (#62997)
vargaz Dec 20, 2021
13924ac
Fix HAVE_PTHREAD_CONDATTR_SETCLOCK detection on Android (#62978)
MichalStrehovsky Dec 21, 2021
72bee25
Update ObjWriter package (#63035)
MichalStrehovsky Dec 21, 2021
13f938f
More static in System.ComponentModel.TypeConverter (#63017)
marek-safar Dec 21, 2021
1c09d36
[wasm][debugger] Run getter using Runtime.GetProperties (#62857)
thaystg Dec 21, 2021
6a9bfee
Expose AppContext.SetData in ref assembly (#62996)
deeprobin Dec 21, 2021
64649da
[wasm] updated samples for ES6 and CJS (#62292)
pavelsavara Dec 21, 2021
9a50493
Handle parameterless ctors in structs in STJ's ReflectionEmitMemberAc…
EgorBo Dec 21, 2021
2939f4b
[main] Update dependencies from 5 repositories (#63043)
dotnet-maestro[bot] Dec 22, 2021
6f2fa80
[wasm] Tweak set timeout (#62898)
maraf Dec 22, 2021
61c69c5
[wasm] fix sample make files & RunScript bash lowercase problem (#63062)
pavelsavara Dec 22, 2021
b25fb5b
[main] Update dependencies from dotnet/arcade dotnet/xharness (#63069)
dotnet-maestro[bot] Dec 22, 2021
2a48729
[tests] Cleanup copy/pasted assembly update test projects (#62970)
lambdageek Dec 22, 2021
b816643
disable failing HTTP3 interop test (#63055)
geoffkizer Dec 22, 2021
6047b3c
Override same attributes found at class and property level in Applica…
buyaa-n Dec 22, 2021
c3dd830
Delete some dead code (#63087)
am11 Dec 23, 2021
07af5b3
Remove unnecessary assignment of a value to local variables in SPC (#…
marek-safar Dec 23, 2021
397ae49
[mono][interp] Remove null check during initblk/cpblk with size 0 (#6…
BrzVlad Dec 23, 2021
8f80eed
[main] Update dependencies from dotnet/linker (#63044)
dotnet-maestro[bot] Dec 23, 2021
d2ebffc
Reduce size of HttpHeaderValueCollection (#63057)
geoffkizer Dec 23, 2021
1d12267
Fix setting the configuration parameter in the apple test runner (#63…
MaximLipnin Dec 24, 2021
0b17270
Update the apple testing doc (#63119)
MaximLipnin Dec 24, 2021
84680bf
Use System.Runtime.InteropServices.EnableConsumingManagedCodeFromNati…
marek-safar Dec 25, 2021
71192ea
Delete unused libs.native shims (#63132)
am11 Dec 25, 2021
4c83c3b
Fix libs.tests subset build on tizen arm64 (#63128)
am11 Dec 25, 2021
a95cc4d
Parse compiler version in init-compiler.sh (#63126)
am11 Dec 26, 2021
1c92746
Delete NativeAOT-specific CoreLib string resources (#63129)
jkotas Dec 26, 2021
7ab969c
NativeAOT: Do not run Vector version of Hardware Intrinsics when AVX2…
kant2002 Dec 27, 2021
46f5b99
[mono] Fix a regression caused by 9ddd58a58d14a7bec5ed6eb777c6703c48a…
vargaz Dec 27, 2021
00c1692
Move System.Runtime.InteropServices.RuntimeInformation to CoreLib (#6…
jkotas Dec 27, 2021
10e0ae7
Fixup some formatting in shared code (#63156)
pranavkm Dec 27, 2021
d094a34
Improve auto-formatting of ref/System.Runtime (#63139)
jkotas Dec 28, 2021
bdc6ad7
Deduplicate JIT/Methodical/tailcall tests and make them mergeable (#6…
trylek Dec 28, 2021
acde546
Use SIMD operations in InitBlkUnroll/CopyBlkUnroll and increase unrol…
echesakov Dec 28, 2021
eff08ef
Use shared strings for Array:Copy exception messages (#63163)
marek-safar Dec 28, 2021
2058f01
Unify build mode for one previously missed form _opt_dbg / _opt_rel (…
trylek Dec 28, 2021
15e95fc
Remove unneeded ifdefs (#63160)
BruceForstall Dec 28, 2021
25c675f
Fix _il suffix for _d/_r-variant ilproj tests (#63178)
trylek Dec 29, 2021
e731299
[mono] Use Xcode path from xcode-select instead of hardcoding (#63076)
akoeplinger Dec 29, 2021
e4e4cb6
Cleanup in NativeAOT from x86 attempt (#63182)
kant2002 Dec 30, 2021
af9202a
Fix NativeAOT multifile test run (#63183)
MichalStrehovsky Dec 30, 2021
4b6c7ed
Allow using ILCompiler without an IlcPath (#63211)
MichalStrehovsky Dec 30, 2021
077b3c6
Define MCREGs for ARM64 macOS (#63209)
MichalStrehovsky Dec 30, 2021
56c4eec
Fix typos in comments (#63220)
mganss Dec 30, 2021
92c55cd
Fix regex test OOM (#63092)
danmoseley Dec 30, 2021
d0631be
Fix ILVerify.ILVerifyTypeSystemContext.VerifyModuleName throws NullRe…
masonwheeler Dec 30, 2021
5699043
Rename test suppressions (#63210)
MichalStrehovsky Dec 30, 2021
7cc57dd
Allow managed type system tests on Alpine (#63207)
MichalStrehovsky Dec 30, 2021
a8e198c
Add ILLink.Shared project to Native AOT (#63230)
tlakollo Dec 31, 2021
07ed923
Switch to objwriter from the dotnet/llvm-project repo (#63177)
MichalStrehovsky Dec 31, 2021
58663f7
Speed up crossgen2 by a couple percent (#63234)
MichalStrehovsky Dec 31, 2021
58495a3
avoid ArgumentOutOfRangeException while processing invalid or incompl…
wfurt Dec 31, 2021
a78ad5e
Bring over ILCompiler.Compiler unit tests (#63232)
MichalStrehovsky Dec 31, 2021
260a306
Improve SuperPMI error message for JIT asserts (#63229)
BruceForstall Dec 31, 2021
dd298bb
Merge with main from upstream
Jan 1, 2022
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": "1.0.0-prerelease.21613.2",
"version": "1.0.0-prerelease.21622.1",
"commands": [
"xharness"
]
Expand Down
1 change: 1 addition & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@
<CoreLibSharedDir>$([MSBuild]::NormalizeDirectory('$(LibrariesProjectRoot)', 'System.Private.CoreLib', 'src'))</CoreLibSharedDir>
<CoreLibProject Condition="'$(RuntimeFlavor)' == 'CoreCLR'">$([MSBuild]::NormalizePath('$(CoreClrProjectRoot)', 'System.Private.CoreLib', 'System.Private.CoreLib.csproj'))</CoreLibProject>
<CoreLibProject Condition="'$(RuntimeFlavor)' == 'Mono'">$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'System.Private.CoreLib', 'System.Private.CoreLib.csproj'))</CoreLibProject>
<CoreLibProject Condition="'$(UseNativeAotCoreLib)' == 'true'">$([MSBuild]::NormalizePath('$(CoreClrProjectRoot)', 'nativeaot', 'System.Private.CoreLib', 'src', 'System.Private.CoreLib.csproj'))</CoreLibProject>

<!-- this property is used by the SDK to pull in mono-based runtime packs -->
<UseMonoRuntime Condition="'$(UseMonoRuntime)' == '' and '$(RuntimeFlavor)' == 'Mono'">true</UseMonoRuntime>
Expand Down
2 changes: 0 additions & 2 deletions NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
<add key="dotnet6-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6-transport/nuget/v3/index.json" />
<!-- Used for the Rich Navigation indexing task -->
<add key="richnav" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-buildservices/nuget/v3/index.json" />
<!-- Used for NativeAOT ObjWriter. TODO: Delete once we publish the package from here. -->
<add key="dotnet-experimental" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-experimental/nuget/v3/index.json" />
</packageSources>
<disabledPackageSources>
<clear />
Expand Down
2 changes: 1 addition & 1 deletion docs/design/coreclr/botr/ilc-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ While the object file format is highly target specific, the compiler represents
On a high level, the role of the object writer is to go over all the marked `ObjectNode`s in the graph, retrieve their data, defined symbols, and relocations to other symbols, and store them in the object file.

NativeAOT compiler contains multiple object writers:
* Native object writer (`src/coreclr/tools/aot/ObjWriter`) based on LLVM that is capable of producing Windows PE, Linux ELF, and macOS Mach-O file formats
* Native object writer based on LLVM that is capable of producing Windows PE, Linux ELF, and macOS Mach-O file formats
* Native object writer based on LLVM for WebAssembly
* Ready to run object writer that generates mixed CIL/native executables in the ready to run format for CoreCLR

Expand Down
2 changes: 1 addition & 1 deletion docs/workflow/building/coreclr/nativeaot.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ The executable looks like a native executable, in the sense that it can be debug
- [NOT PORTED OVER YET] The build will place the toolchain packages at `artifacts\packages\[Debug|Release]\Shipping`. To publish your project using these packages:
- [NOT PORTED OVER YET] Add the package directory to your `nuget.config` file. For example, replace `dotnet-experimental` line in `samples\HelloWorld\nuget.config` with `<add key="local" value="C:\runtimelab\artifacts\packages\Debug\Shipping" />`
- [NOT PORTED OVER YET] Run `dotnet publish --packages pkg -r [win-x64|linux-x64|osx-64] -c [Debug|Release]` to publish your project. `--packages pkg` option restores the package into a local directory that is easy to cleanup once you are done. It avoids polluting the global nuget cache with your locally built dev package.
- *Optional*. The ObjWriter component of the AOT compiler is not built by default. If you're working on ObjWriter or bringing up a new platform that doesn't have ObjWriter packages yet, as additional pre-requiresites you need to run `build[.cmd|.sh] clr.objwriter` from the repo root before building the product.
- The component that writes out object files (objwriter.dll/libobjwriter.so/libobjwriter.dylib) is based on LLVM and doesn't build in the runtime repo. It gets published as a NuGet package out of the dotnet/llvm-project repo (branch objwriter/12.x). If you're working on ObjWriter or bringing up a new platform that doesn't have ObjWriter packages yet, as additional pre-requiresites you need to build objwriter out of that repo and replace the file in the output.

## Visual Studio Solutions

Expand Down
4 changes: 2 additions & 2 deletions docs/workflow/building/libraries/webassembly-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ Submit a PR request with the updated version, wait for all checks to pass and fo
{
"dockerfile": "src/ubuntu/18.04/webassembly/Dockerfile",
"simpleTags": [
"ubuntu-18.04-webassembly-20200529220811-6a6da63"
"ubuntu-18.04-webassembly-20210707133424-12f133e"
],
"digest": "sha256:1f2d920a70bd8d55bbb329e87c3bd732ef930d64ff288dab4af0aa700c25cfaf",
"osType": "Linux",
Expand All @@ -169,7 +169,7 @@ Copy the docker image tag and replace it in [platform-matrix.yml](https://github

```
container:
image: ubuntu-18.04-webassembly-20200409132031-f70ea41
image: ubuntu-18.04-webassembly-20210707133424-12f133e
registry: mcr
```

Expand Down
2 changes: 1 addition & 1 deletion docs/workflow/debugging/coreclr/debugging-aot-compilers.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ At the time of writing the current supported sets of valid arguments are:

- The ILC compiler typically compiles the whole program - it loosely corresponds to the composite mode of crossgen2. There is a multifile mode, where each managed assembly corresponds to a single object file, but this mode is not shipping.

- The object files generated by the ILC compiler are written out using an LLVM-based object writer (src\coreclr\tools\aot\ObjWriter). The object writer uses the LLVM assembler APIs (APIs meant to be used by tools that convert textual assembly into machine code) to emit object files in PE/ELF/Mach-O formats. Normally the object writer is not built as part of the repo, but gets downloaded through NuGet. If you need to debug the object writer, you can build it by specifying `clr.objwriter` subset to the root build script. It takes about 5 minutes to compile the object writer.
- The object files generated by the ILC compiler are written out using an LLVM-based object writer (consumed as a NuGet package built out of the dotnet/llvm-project repo, branch objwriter/12.x). The object writer uses the LLVM assembler APIs (APIs meant to be used by tools that convert textual assembly into machine code) to emit object files in PE/ELF/Mach-O formats.

Example of debugging a test application in Crossgen2
================================================
Expand Down
4 changes: 4 additions & 0 deletions docs/workflow/testing/libraries/testing-apple.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ For example:
```
./build.sh libs.tests -os iOS -arch x64 -test /p:DevTeamProvisioning=H1A2B3C4D5
```
Other possible options are:
- to sign with an adhoc key by setting `/p:DevTeamProvisioning=adhoc`
- to skip signing all together by setting `/p:DevTeamProvisioning=-` .

[AppleAppBuilder](https://github.com/dotnet/runtime/blob/main/src/tasks/AppleAppBuilder/AppleAppBuilder.cs) generates temp Xcode projects you can manually open and resolve provisioning issues there using native UI and deploy to your devices.

### Running individual test suites
Expand Down
2 changes: 2 additions & 0 deletions eng/ApiCompatExcludeAttributes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
T:System.CLSCompliantAttribute
T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute
T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute
T:System.Diagnostics.DebuggerGuidedStepThroughAttribute
T:System.Runtime.CompilerServices.EagerStaticClassConstructionAttribute
16 changes: 8 additions & 8 deletions eng/Subsets.props
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,12 @@
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == ''">$(PrimaryRuntimeFlavor)</RuntimeFlavor>
</PropertyGroup>

<!-- CLR NativeAot only builds in a subset of the matrix -->
<PropertyGroup>
<NativeAotSupported Condition="('$(TargetOS)' == 'windows' or '$(TargetOS)' == 'linux' or '$(TargetOS)' == 'OSX') and ('$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'arm64') and ('$(TargetOS)' != 'OSX' or '$(TargetArchitecture)' != 'arm64') and ('$(__DistroRid)' != 'linux-musl-arm64')">true</NativeAotSupported>
<!-- CLR NativeAot only builds in a subset of the matrix -->
<NativeAotSupported Condition="('$(TargetOS)' == 'windows' or '$(TargetOS)' == 'linux' or '$(TargetOS)' == 'OSX') and ('$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'arm64') and ('$(TargetOS)' != 'OSX' or '$(TargetArchitecture)' != 'arm64')">true</NativeAotSupported>

<!-- If we're building clr.nativeaotlibs and not building the CLR runtime, compile libraries against NativeAOT CoreLib -->
<UseNativeAotCoreLib Condition="$(_subset.Contains('+clr.nativeaotlibs+')) and !$(_subset.Contains('+clr+')) and !$(_subset.Contains('+clr.runtime+'))">true</UseNativeAotCoreLib>
</PropertyGroup>

<PropertyGroup>
Expand Down Expand Up @@ -104,7 +107,6 @@
<SubsetName Include="Clr.Runtime" Description="The CoreCLR .NET runtime." />
<SubsetName Include="Clr.Native" Description="All CoreCLR native non-test components, including the runtime, jits, and other native tools." />
<SubsetName Include="Clr.NativeAotLibs" Description="The CoreCLR native AOT CoreLib, runtime, and other low level class libraries." />
<SubsetName Include="Clr.ObjWriter" Description="Object writer for the CoreCLR Native AOT compiler." />
<SubsetName Include="Clr.PalTests" OnDemand="true" Description="The CoreCLR PAL tests." />
<SubsetName Include="Clr.PalTestList" OnDemand="true" Description="Generate the list of the CoreCLR PAL tests. When using the command line, use Clr.PalTests instead." />
<SubsetName Include="Clr.Hosts" Description="The CoreCLR corerun test host." />
Expand Down Expand Up @@ -242,7 +244,9 @@

<ProjectToBuild Condition="'$(TargetArchitecture)' != 'x64' and '$(BuildArchitecture)' == 'x64'" Include="$(CoreClrProjectRoot)tools\aot\crossgen2\crossgen2_crossarch.csproj" Category="clr" />
<ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler.TypeSystem.ReadyToRun.Tests\ILCompiler.TypeSystem.ReadyToRun.Tests.csproj"
Test="true" Category="clr" Condition="'$(__DistroRid)' != 'linux-musl-x64' and '$(DotNetBuildFromSource)' != 'true'"/>
Test="true" Category="clr" Condition="'$(DotNetBuildFromSource)' != 'true'"/>
<ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler.Compiler.Tests\ILCompiler.Compiler.Tests.csproj"
Test="true" Category="clr" Condition="'$(DotNetBuildFromSource)' != 'true' and '$(NativeAotSupported)' == 'true'"/>
</ItemGroup>

<ItemGroup Condition="$(_subset.Contains('+clr.nativecorelib+'))">
Expand All @@ -261,10 +265,6 @@
<ProjectToBuild Include="$(CoreClrProjectRoot)nativeaot\**\src\*.csproj" Category="clr" />
</ItemGroup>

<ItemGroup Condition="$(_subset.Contains('+clr.objwriter+'))">
<ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ObjWriter\objwriter.proj" Category="clr" />
</ItemGroup>

<!-- Mono sets -->
<ItemGroup Condition="$(_subset.Contains('+mono.llvm+')) or $(_subset.Contains('+mono.aotcross+')) or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'iOSSimulator' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'tvOSSimulator' or '$(TargetOS)' == 'MacCatalyst' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'Browser'">
<ProjectToBuild Include="$(MonoProjectRoot)llvm\llvm-init.proj" Category="mono" />
Expand Down
Loading