Skip to content

Sync with upstream main branch #33

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

Closed
wants to merge 203 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
203 commits
Select commit Hold shift + click to select a range
b42188a
Update issue suppressions (#63248)
MichalStrehovsky Jan 1, 2022
e571c3b
[mono][wasm] Remove unused targets from wasm/Makefile. (#63263)
vargaz Jan 2, 2022
c8f3b36
Fix strings typo (#63269)
danmoseley Jan 3, 2022
699b0ae
Implement DiagnosticName in NativeAOT code (#63271)
MichalStrehovsky Jan 3, 2022
079245b
Use interpolated strings in place of `StringBuilder.AppendFormat` whe…
teo-tsirpanis Jan 3, 2022
fd33b9e
Fix nullability annotations on ProcessModule.FileName/ModuleName (#63…
stephentoub Jan 3, 2022
82fd67a
[main] Update dependencies from dotnet/linker (#63166)
dotnet-maestro[bot] Jan 3, 2022
c7ec82a
[mono][wasm] Allow methods with finally clauses to be AOTed. (#63065)
vargaz Jan 3, 2022
2a11aab
Move things from ILCompiler.TypeSystem to ILCompiler.Compiler (#63280)
MichalStrehovsky Jan 3, 2022
7574e03
[wasm][debugger] Add Browsable Attribute support. (#62045)
ilonatommy Jan 3, 2022
55fecfb
Fix issues in PAL (#62625)
kant2002 Jan 3, 2022
3cde4dc
Last ILCompiler.TypeSystem <-> ILCompiler.TypeSystem.ReadyToRun diff …
MichalStrehovsky Jan 3, 2022
327bb30
add missing PTEST docs (#62122)
saucecontrol Jan 3, 2022
6c50d9f
Mark Go override as SkipLocalsInit if possible (#63277)
stephentoub Jan 3, 2022
d34c0d6
[mono] Don't access MonoClassField:parent directly (#63081)
lambdageek Jan 3, 2022
2d52010
Use pattern matching to reduce some duplication (#63278)
stephentoub Jan 3, 2022
4e92eae
Fix user => use typo in comments (#63288)
stephentoub Jan 3, 2022
046cbf0
Unify threading between crossgen2 and ilc (#63282)
MichalStrehovsky Jan 3, 2022
9472bfe
Use SAL2 _In_, _Out_ to prevent conflicts (#63261)
NN--- Jan 3, 2022
0ef205d
Do not create non-null assertions from location nodes (#62743)
SingleAccretion Jan 3, 2022
a2b288d
transform sgen_get_descriptor to parallel safe version in job_major_m…
monojenkins Jan 3, 2022
f97546b
Fixed ILVerify incorrectly flagging valid default interface implement…
bbartels Jan 3, 2022
623c059
Update COM host to match RegAsm registration behavior (#63292)
AaronRobinsonMSFT Jan 3, 2022
1857c7b
Delete ILCompiler.TypeSystem.ReadyToRun project (#63313)
MichalStrehovsky Jan 4, 2022
a76387e
make sure OpenSSL is initialized before Tls13Supported code runs (#62…
wfurt Jan 4, 2022
f686f65
Robustify a name resolution test (#63259)
danmoseley Jan 4, 2022
3580ba7
Extend CPU capabilities detection for osx-arm64 (#62832) (#62958)
neon-sunset Jan 4, 2022
8359690
Extend case optimization in MatchCharacterClass to all chars that dif…
stephentoub Jan 4, 2022
80f6845
A few minor tweaks to Regex source generator rendering (#63276)
stephentoub Jan 4, 2022
e789b4e
Revert SafeBuffer change around pointer initialization (#63289)
stephentoub Jan 4, 2022
13305d0
Add some diagnostics for EFS tests (#63243)
danmoseley Jan 4, 2022
0e3888a
Fix missing space in literal
stephentoub Jan 4, 2022
56ffec2
Fix GetSpanDataFrom (#63306)
davidwrighton Jan 4, 2022
7172c68
Accelerate additional cross platform hardware intrinsics (#61649)
tannergooding Jan 4, 2022
312c66f
logging (#63326)
danmoseley Jan 4, 2022
ef357af
[DllImportGenerator] Update buffer size field for custom marshalling …
elinor-fung Jan 4, 2022
ae2e360
Divide properties into: public, private, protected. (#62627)
ilonatommy Jan 4, 2022
b2ab353
Fix Instrument.ts_tags to be static in .NET Framework build (#63343)
stephentoub Jan 4, 2022
932c822
Fix order of line number/position arguments to XsltException ctor (#6…
stephentoub Jan 4, 2022
33731fc
Disable console test for jitstressreg mode (#63349)
danmoseley Jan 4, 2022
eed3a62
Enable support for nint/nuint for Vector64/128/256<T> (#63329)
tannergooding Jan 4, 2022
4a1bcc3
Add comment about using source-generated p/invokes to interop guideli…
elinor-fung Jan 4, 2022
4514589
clean up header collection property implementations (#63308)
geoffkizer Jan 4, 2022
00952e1
Pass configuration as a parameter for local Apple mobile test runs (#…
steveisok Jan 4, 2022
8ce1c54
Update Codespaces instructions for latest (#63376)
eerhardt Jan 4, 2022
5b17bec
Fix LazyMemberInfo.Equals to return false for null (#63372)
stephentoub Jan 5, 2022
0524b58
Remove unnecessary field writes in MimePart.SetContent (#63368)
stephentoub Jan 5, 2022
5a9bd5c
Fix null ref for null Stream input in Icon.Save (#63369)
stephentoub Jan 5, 2022
b6695a1
Move HttpRequestStream.{Begin}Read argument logging to after validati…
stephentoub Jan 5, 2022
8b9e708
Implement IEquatable<T> on the runtime handle types. (#63358)
teo-tsirpanis Jan 5, 2022
586918a
Remove dependency of type system tests on ILCompiler.ReadyToRun (#63323)
MichalStrehovsky Jan 5, 2022
cab2fd8
Fix running WASM tests locally on Windows (#63334)
maraf Jan 5, 2022
3058fa4
Replace name with type and codepage in EncodingConversionOverflow exc…
marek-safar Jan 5, 2022
0f03554
[main] Update dependencies from 6 repositories (#63252)
dotnet-maestro[bot] Jan 5, 2022
bd245d6
[main] Update dependencies from dotnet/linker (#63336)
dotnet-maestro[bot] Jan 5, 2022
a8e6f69
Remove dead code in OdbcCommandBuilder.UnquoteIdentifier (#63363)
stephentoub Jan 5, 2022
ad5ccec
Simplify condition in System.Private.CoreLib.Shared.projitems (#63388)
jkotas Jan 5, 2022
60012a1
Remove some unnecessary duplicated checks (#63341)
stephentoub Jan 5, 2022
70065c1
Delete __SkipCrossgenFramework (#63390)
MichalStrehovsky Jan 5, 2022
bd6a64b
Fix MethodDesc::CbStackPop for string ctors on x86 (#63391)
janvorli Jan 5, 2022
311ecfe
Fix the MacOS remote unwinder for VS4Mac (#63378)
Jan 5, 2022
ec5471c
Handle race condition when HttpListener is stopped or closed (#63394)
kevingosse Jan 5, 2022
b28c38d
JIT: refactor fields of GenTreeCall (#63402)
AndyAyersMS Jan 5, 2022
4427c56
Arm64: Memory barrier improvements (#62895)
kunalspathak Jan 5, 2022
abb7df5
Convert SAL1 to SAL2 (#63333)
NN--- Jan 6, 2022
7fc4b6a
[wasm][debugger] GetProperties broken on chrome (#63403)
thaystg Jan 6, 2022
5a0f438
Include properties on records for (de)serialization in source-gen (#6…
layomia Jan 6, 2022
634dfa1
[wasm] Fix test filtering for debugger tests on windows (#63380)
radical Jan 6, 2022
44b9a6e
Make DllImportGenerator unit tests' compilations use live refs (#63410)
elinor-fung Jan 6, 2022
599ab0e
Fix time reporting for the merged tests (#63452)
trylek Jan 6, 2022
0b7bef0
Refactor DllImports in Microsoft.Extensions.Hosting.Systemd (#63421)
MattKotsenas Jan 6, 2022
392b35c
Ensure UserSecretsIdAttribute is added to assembly (#63415)
eerhardt Jan 6, 2022
d988a52
Fix stack overflow with X509Certificate FriendlyName
vcsjones Jan 6, 2022
0e800a6
[mono] Reorganize zlib dependency logic (#63365)
lambdageek Jan 6, 2022
90ec876
Convert JIT/Methodical/Array/range Pri0 tests and hook up mobile test…
jkoritzinsky Jan 6, 2022
98c5328
Fix bugs with generation for ctor param default values (#62798)
layomia Jan 6, 2022
b0685e1
[DllImportGenerator] Remove DLLIMPORTGENERATOR_ENABLED define (#63464)
elinor-fung Jan 6, 2022
01cc900
[mono] Make some icalls pass/return object references using ObjectHan…
vargaz Jan 6, 2022
5993a3a
[DRAFT][Perf][Mono] Enable llvm for arm perf runs (#63311)
Jan 6, 2022
a0220fd
JIT: save generics context for late devirtualization (#63420)
AndyAyersMS Jan 6, 2022
ef49cd0
[Revert] Reverted change to global build job (#63483)
Jan 7, 2022
afffdc6
Support for specifying max depth of generic cycle (#63435)
hez2010 Jan 7, 2022
b1edcf1
Use "read" to fetch misaligned 64bit values from bundle header (#63431)
VSadov Jan 7, 2022
a71f261
Bump Microsoft.CodeAnalysis.CSharp version to 4.0.1 (#63492)
stephentoub Jan 7, 2022
91843fb
Suppress warnings about [Obsolete] member usage in JSON src-gen'd cod…
layomia Jan 7, 2022
3eccec0
Sign ILVerification.dll (#63471)
jcouv Jan 7, 2022
c49c65d
[LoongArch64] Port libraries directory (#62888)
shushanhf Jan 7, 2022
e210a60
Fix Creating Cultures with Sort Names (#63386)
tarekgh Jan 7, 2022
e0287b7
Make delegates unsupported by JsonSerializer (#63495)
layomia Jan 7, 2022
568364a
Update coverlet to 3.1.0 and reportgenerator to 5.0.2 (#63491)
stephentoub Jan 7, 2022
83c9761
Clarify P/Invoke shims guidance for OOB assemblies (#63470)
MattKotsenas Jan 7, 2022
03c5dbc
Move init-vs-env in test build script down (#63433)
MichalStrehovsky Jan 7, 2022
b4dfd7d
HttpConnectionPool improvements (#62935)
geoffkizer Jan 7, 2022
0b91bea
Fix NETStandard library using JSON source gen (#63472)
ericstj Jan 7, 2022
251eba3
Show test names in merged wrapper execution log (#63511)
trylek Jan 7, 2022
897694f
Fix exception propagation over HW exception frame on macOS arm64 (#63…
janvorli Jan 8, 2022
73a34ce
Fix translation of Ping error codes (#63237)
deeprobin Jan 8, 2022
92f547a
Delay load winrt (#63196)
NN--- Jan 8, 2022
cc7cd63
[wasm][tests] Fix, and simplify sample building on CI (#63429)
radical Jan 8, 2022
bc7f6c2
Add Running on FreeBSD Instructions (#63417)
Thefrank Jan 8, 2022
9a09cee
Increase timeout on regex test (#63529)
danmoseley Jan 8, 2022
0e1d0e1
Fix debug-only tracing in PhysicalMemoryMonitor.SetLimit (#63342)
stephentoub Jan 8, 2022
bd9e038
Delete a dead null check in TransactionStateDelegatedBase.EnterState …
stephentoub Jan 8, 2022
76162ff
Delete dead null check in XmlQueryRuntime.DocOrderDistinct (#63371)
stephentoub Jan 8, 2022
ce2165d
Delete duplicated consts in XmlUTF8TextReader (#63367)
stephentoub Jan 8, 2022
3591add
[wasm] Webpack & NextJS & TypeScript samples (#63335)
pavelsavara Jan 9, 2022
a2af629
[metadata] Borrow bits from MonoClassField:parent for flags (#63302)
lambdageek Jan 9, 2022
cf5b231
Fix paramName in CryptoStream ArgumentExceptions (#63557)
vcsjones Jan 10, 2022
6c27588
disable lltng on FreeBSD as the package is no longer available (#63567)
wfurt Jan 10, 2022
c6ceca8
Fix some trimming/AOT warnings in crossgen2/ilc (#63569)
MichalStrehovsky Jan 10, 2022
c142613
Change XmlAttributeCache.WriteValue(string) to assert (#63364)
stephentoub Jan 10, 2022
5f80aca
Add AvxVnni support for NativeAOT (#63563)
MichalStrehovsky Jan 10, 2022
10d3114
Revert "Fix exception propagation over HW exception frame on macOS ar…
jkotas Jan 10, 2022
37d7535
Fix Fiji time zone time conversion (#63476)
tarekgh Jan 10, 2022
7242690
.NET number values such as positive and negative infinity cannot be w…
deeprobin Jan 10, 2022
9d5cfc5
Fix Regex if-then-else code generation (#63427)
stephentoub Jan 10, 2022
9529c35
Fixes Event Log Message Format on Unmanaged FailFast (#63517)
Silvenga Jan 10, 2022
c92c767
Add a few missing Stream overrides (#63579)
stephentoub Jan 10, 2022
f9a1c78
[wasm][debugger] Fix hang in ArrayTests (#63528)
radical Jan 10, 2022
32a24b8
Revert "Remove extra call to PropertyInfo.GetValue(object) (#60415)" …
ericstj Jan 10, 2022
1e0f045
add RID for Alpine 3.15 (#62938)
ayakael Jan 10, 2022
5fdc58d
improve TLS resume on server (#63030)
wfurt Jan 10, 2022
010b875
JIT: rework logic for when OSR imports method entry (#63406)
AndyAyersMS Jan 11, 2022
79c85b7
Set File Version Minor for System.Runtime.Experimental (#63599)
safern Jan 11, 2022
ce9deb2
Special-case ERROR_INVALID_PARAMETER in PosixSignalRegistration.Unreg…
stephentoub Jan 11, 2022
2a86305
[TODO-List-Cleanup] Refactor `fgDebugCheckFlags` (#62948)
SingleAccretion Jan 11, 2022
917d369
Fix non-portable arm64 build (#63121)
gbalykov Jan 11, 2022
9b29946
Fix ABI stress test coverage (#63409)
jakobbotsch Jan 11, 2022
1ba2734
Update CoreShim.cpp (#63600)
AaronRobinsonMSFT Jan 11, 2022
fe8422c
Remove leading and trailing white-spaces from section name (#63549)
mapogolions Jan 11, 2022
4646f13
Fix case where we fail to commit the start of a new region, but don't…
PeterSolMS Jan 11, 2022
61d5a4a
[wasm][debugger] Add getter properties unfolding in structures. (#63574)
ilonatommy Jan 11, 2022
8c47d32
[Android] Fix accessing network interfaces information (#62780)
simonrozsival Jan 11, 2022
1297ac8
Should read this byte only in earlier versions. (#63503)
thaystg Jan 11, 2022
59b55a2
[mono][debugger] Fix step on ios when using interpreter (#63515)
thaystg Jan 11, 2022
b389de5
Prevent potential out of bounds write on Android SslStream
simonrozsival Jan 11, 2022
cf91716
Enable GC regions by default (#59283)
mangod9 Jan 11, 2022
b8a8c7a
LoggingHttpMessageHandler should log unescaped URL in log message (#6…
antmeehan Jan 11, 2022
bd9f1c4
add capture group name in comment (#63255)
pedrobsaila Jan 11, 2022
64f4885
Added DrawRectangle overload accepting RectangleF (#62385)
medo64 Jan 11, 2022
ff74f55
[Group 4] Enable nullable annotations for `Microsoft.Extensions.Confi…
maxkoshevoi Jan 11, 2022
74dc242
HostBuilder.Build doc: mention lifetime (#63123)
yecril71pl Jan 11, 2022
032129c
Delete some null checks (#63024)
SingleAccretion Jan 11, 2022
4e22ade
Localized file check-in by OneLocBuild Task: Build definition ID 679:…
dotnet-bot Jan 11, 2022
81fcfb6
Delete `CEEInfo::IsCompilingForNGen` (#63613)
MichalStrehovsky Jan 12, 2022
4f89b79
Ensure the JIT view of InstructionSets is correct in the face of JitC…
tannergooding Jan 12, 2022
dadc7ce
Unify JIT/Methodical/eh/common and JIT/jit64/eh/common (#63597)
trylek Jan 12, 2022
8edc17d
Fix address mode for `IconHandle + Icon` (#63608)
MichalStrehovsky Jan 12, 2022
cfe08db
[Perf] Enable LLVM on perf runs (#63504)
Jan 12, 2022
cbfdf3f
Use open StrongNameKeyId for ILVerification.dll (#63583)
jkotas Jan 12, 2022
ad1b5b8
[mono] Convert RuntimeAssembly icalls to use QCallAssembly/ObjectHand…
vargaz Jan 12, 2022
ef7ff07
Capture and record output from tests from Console.Out into the test r…
jkoritzinsky Jan 12, 2022
4e2102b
Add dependency analysis documentation from CoreRT (#63665)
kant2002 Jan 12, 2022
b9d8d84
Make test System.Data.Tests.AppDomainsAndFormatInfo.Bug55978 more rob…
maraf Jan 12, 2022
c81ad33
Fix ArgIterator::GetArgLoc by-ref check for HFAs/HVAs (#63587)
jakobbotsch Jan 12, 2022
ecc20c5
[main] Update dependencies from 7 repositories (#63392)
dotnet-maestro[bot] Jan 12, 2022
74103c2
Fix index in XmlQueryRuntime.MatchesXmlType (#63366)
stephentoub Jan 12, 2022
d4f06a9
Reuse ARRAY_SIZE from minipal (#63661)
am11 Jan 12, 2022
e731cce
Fix a bug in the detection of Windows Nano from native test clients. …
AaronRobinsonMSFT Jan 12, 2022
170d581
Disable MemoryMappedFileTests failing on macOS/arm64 + coreclr due to…
MaximLipnin Jan 12, 2022
240c23a
#50880 remove exclusion line for collection tests (#63616)
mkhamoyan Jan 12, 2022
fdbd12d
JIT: Update bbFlags after replacing RET_EXPR (#63657)
EgorBo Jan 12, 2022
635cfb3
[main] Update dependencies from dotnet/xharness (#63680)
dotnet-maestro[bot] Jan 12, 2022
6de7147
Enable IDE0059 analyzer: Unnecessary assignment of a value (#63340)
marek-safar Jan 12, 2022
c8d3a06
Re-enable System.Net.Security UnitTests project on Android (#63669)
MaximLipnin Jan 12, 2022
b25b96e
[source-build][mono] Do not build Microsoft.NET.Runtime.MonoTargets.S…
uweigand Jan 12, 2022
8fef95b
fix LocalCertificateSelectionCallback on unix (#63200)
wfurt Jan 12, 2022
cfe5e98
Implement the last of the approved cross platform hardware intrinsics…
tannergooding Jan 13, 2022
dc67c70
Fix native frame unwind in syscall on arm64 for VS4Mac crash report. …
Jan 13, 2022
93c6134
Add ActivityContext.TryParse overload (#63692)
tarekgh Jan 13, 2022
d5c22b0
Remove constraints from Regex source generator partial class declarat…
stephentoub Jan 13, 2022
c763019
[wasm] Load assets earlier (#63623)
pavelsavara Jan 13, 2022
f580068
Fix JsonObject constuctor (#63150)
bogatykh Jan 13, 2022
46db4aa
Add NativeAOT libraries tests annotations (#63668)
MichalStrehovsky Jan 13, 2022
64c05a3
Reconfigure the field sequences for statics (#62632)
SingleAccretion Jan 13, 2022
a13ee96
[wasm][debugger] Fixing error after receiving loaded_files = null (#6…
thaystg Jan 13, 2022
01cdd1d
[wasm] Emscripten uses `require` even when targeting ES6. This deals …
pavelsavara Jan 13, 2022
77bdad5
Bump to macOS 10.14 minimum in libs and mono builds too (#63682)
akoeplinger Jan 13, 2022
048e1a3
[Android] Throw PNSE for unavailable network information (#63633)
simonrozsival Jan 13, 2022
c78d9fa
Disable System.Drawing.Common.Tests test suite on Windows+Mono (#63726)
MaximLipnin Jan 13, 2022
ec0c7f3
Add negative tests for by-ref in UnmanagedCallersOnly scenarios. (#63…
AaronRobinsonMSFT Jan 13, 2022
c912a15
Change non-breaking spaces (U00A0) to a plain space in code files (#6…
vcsjones Jan 13, 2022
79e40e3
Add public constants for HMAC and hash sizes
vcsjones Jan 13, 2022
2c28e63
Temporarily disable coredumps during library testing on macOS (#63742)
akoeplinger Jan 13, 2022
27fdc2d
Avoid deadlock with ConfigurationManager (#62209)
halter73 Jan 14, 2022
1ba80f6
Remove errors during first run of runpaltests.h (#62642)
kant2002 Jan 14, 2022
b7e0a85
[LoongArch64] add all the coreclr-build-config files (#62889)
shushanhf Jan 14, 2022
c96869a
Disable annoying warnings in the repro project (#63777)
MichalStrehovsky Jan 14, 2022
b184ee0
MemoryMappedFile: don't check for file existence if there is no need …
adamsitnik Jan 14, 2022
0b527a2
Fix a style issue. (#63776)
vargaz Jan 14, 2022
d568a3f
Introduce Activity.IsStopped Property (#63713)
tarekgh Jan 14, 2022
3956126
Fix typo in SRM package description (#63782)
MSDN-WhiteKnight Jan 14, 2022
33179fa
[Group 5] Enable nullable annotations for `Microsoft.Extensions.Confi…
maxkoshevoi Jan 14, 2022
a991e13
Make ObjectiveC tests in System.Runtime.InteropServices.Tests check e…
elinor-fung Jan 14, 2022
5626066
Enable superpmi-collect pipeline on macOS arm64 (#63691)
echesakov Jan 14, 2022
02e22b0
Remove string[] args from Main methods under JIT/Methodical (#63770)
trylek Jan 14, 2022
3a83c5c
Delete unused method (#63797)
jkotas Jan 14, 2022
e1c69cc
Move localloc/common library under JIT folder (#63510)
trylek Jan 14, 2022
2692407
Build all packages on source-build even when in servicing (#63755)
safern Jan 14, 2022
513fe28
More duplicate projects under JIT/Methodical/NaN to delete (#63771)
trylek Jan 14, 2022
40047f2
Improve Regex UpdateBumpalong optimization for non-atomic and lazy lo…
stephentoub Jan 15, 2022
9daaab1
serialize SendPacketsAsync tests (#63702)
antonfirsov Jan 15, 2022
709ea35
Merge with main from upstream
Jan 15, 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
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
"isRoot": true,
"tools": {
"coverlet.console": {
"version": "1.7.2",
"version": "3.1.0",
"commands": [
"coverlet"
]
},
"dotnet-reportgenerator-globaltool": {
"version": "4.5.8",
"version": "5.0.2",
"commands": [
"reportgenerator"
]
},
"microsoft.dotnet.xharness.cli": {
"version": "1.0.0-prerelease.21622.1",
"version": "1.0.0-prerelease.22062.1",
"commands": [
"xharness"
]
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ node_modules/
*.metaproj.tmp
bin.localpkg/
src/mono/wasm/runtime/dotnet.d.ts.sha256
src/mono/sample/wasm/browser-nextjs/public/

# RIA/Silverlight projects
Generated_Code/
Expand Down
28 changes: 15 additions & 13 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm'">arm</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armel'">armel</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm64'">arm64</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'loongarch64'">loongarch64</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 's390x'">s390x</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(TargetOS)' == 'Browser'">wasm</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(TargetsMobile)' == 'true'">x64</TargetArchitecture>
Expand Down Expand Up @@ -157,26 +158,27 @@
</PropertyGroup>

<PropertyGroup Label="CalculateRID">
<_toolRuntimeRID Condition="'$(CrossBuild)' == 'true'">$(_hostOS.ToLowerInvariant)-$(_hostArch)</_toolRuntimeRID>
<_toolRuntimeRID Condition="'$(BuildingInsideVisualStudio)' == 'true'">$(_runtimeOS)-x64</_toolRuntimeRID>
<_toolRuntimeRID Condition="'$(_toolRuntimeRID)' == ''">$(_runtimeOS)-$(_hostArch)</_toolRuntimeRID>
<_toolsRID Condition="'$(CrossBuild)' == 'true'">$(_hostOS.ToLowerInvariant)-$(_hostArch)</_toolsRID>
<_toolsRID Condition="'$(BuildingInsideVisualStudio)' == 'true'">$(_runtimeOS)-x64</_toolsRID>
<_toolsRID Condition="'$(_toolsRID)' == ''">$(_runtimeOS)-$(_hostArch)</_toolsRID>

<!-- There are no WebAssembly tools, so use the default ones -->
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'browser'">linux-x64</_toolRuntimeRID>
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'browser' and '$(HostOS)' == 'windows'">win-x64</_toolRuntimeRID>
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'browser' and '$(HostOS)' == 'osx'">osx-x64</_toolRuntimeRID>
<_toolsRID Condition="'$(_runtimeOS)' == 'browser'">linux-x64</_toolsRID>
<_toolsRID Condition="'$(_runtimeOS)' == 'browser' and '$(HostOS)' == 'windows'">win-x64</_toolsRID>
<_toolsRID Condition="'$(_runtimeOS)' == 'browser' and '$(HostOS)' == 'osx'">osx-x64</_toolsRID>

<!-- There are no Android tools, so use the default ones -->
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'android'">linux-x64</_toolRuntimeRID>
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'android' and '$(HostOS)' == 'windows'">win-x64</_toolRuntimeRID>
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'android' and '$(HostOS)' == 'osx'">osx-x64</_toolRuntimeRID>
<_toolsRID Condition="'$(_runtimeOS)' == 'android'">linux-x64</_toolsRID>
<_toolsRID Condition="'$(_runtimeOS)' == 'android' and '$(HostOS)' == 'windows'">win-x64</_toolsRID>
<_toolsRID Condition="'$(_runtimeOS)' == 'android' and '$(HostOS)' == 'osx'">osx-x64</_toolsRID>

<!-- There are no Mac Catalyst, iOS or tvOS tools and it can be built on OSX only, so use that -->
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'maccatalyst' or '$(_runtimeOS)' == 'ios' or '$(_runtimeOS)' == 'iOSSimulator' or '$(_runtimeOS)' == 'tvos' or '$(_runtimeOS)' == 'tvOSSimulator'">osx-x64</_toolRuntimeRID>
<_toolsRID Condition="'$(_runtimeOS)' == 'maccatalyst' or '$(_runtimeOS)' == 'ios' or '$(_runtimeOS)' == 'iOSSimulator' or '$(_runtimeOS)' == 'tvos' or '$(_runtimeOS)' == 'tvOSSimulator'">osx-x64</_toolsRID>

<!-- There are no non-portable builds for Ilasm/Ildasm -->
<MicrosoftNetCoreIlasmPackageRuntimeId Condition="'$(PortableBuild)' != 'true' and '$(_portableOS)' == 'linux'">linux-$(_hostArch)</MicrosoftNetCoreIlasmPackageRuntimeId>
<MicrosoftNetCoreIlasmPackageRuntimeId Condition="'$(MicrosoftNetCoreIlasmPackageRuntimeId)' == ''">$(_toolRuntimeRID)</MicrosoftNetCoreIlasmPackageRuntimeId>
<!-- There are no non-portable builds for Ilasm, Ildasm, ILC etc. -->
<ToolsRID Condition="'$(PortableBuild)' != 'true' and '$(_portableOS)' == 'linux'">linux-$(_hostArch)</ToolsRID>
<ToolsRID Condition="'$(ToolsRID)' == ''">$(_toolsRID)</ToolsRID>
<MicrosoftNetCoreIlasmPackageRuntimeId>$(ToolsRID)</MicrosoftNetCoreIlasmPackageRuntimeId>

<PackageRID>$(_packageOS)-$(TargetArchitecture)</PackageRID>

Expand Down
8 changes: 8 additions & 0 deletions docs/coding-guidelines/interop-guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,12 @@ Using enums instead of partial, static classes can lead to needing lots of casts

When defining the P/Invoke signatures and structs, we follow the guidelines in the [interop best practices documentation](https://docs.microsoft.com/en-us/dotnet/standard/native-interop/best-practices).

The runtime repo makes use of [source-generated p/invokes](../design/features/source-generator-pinvokes.md) whenever possible (see [the compatibility doc](../design/libraries/DllImportGenerator/Compatibility.md) for unsupported scenarios). Methods should be marked `GeneratedDllImport` and be `static` and `partial`.

If implicit framework references are disabled (as is the case for most libraries projects), explicit references to the below are required for marshalling arrays:
- `System.Memory`
- `System.Runtime.CompilerServices.Unsafe`

## UNIX shims

Often, various UNIX flavors offer the same API from the point-of-view of compatibility with C/C++ source code, but they do not have the same ABI. e.g. Fields can be laid out differently, constants can have different numeric values, exports can be named differently, etc. There are not only differences between operating systems (Mac OS X vs. Ubuntu vs. FreeBSD), but also differences related to the underlying processor architecture (x64 vs. x86 vs. ARM).
Expand All @@ -174,6 +180,8 @@ This leaves us with a situation where we can't write portable P/Invoke declarati

To address this, we're moving to a model where all UNIX interop from dotnet/runtime starts with a P/Invoke to a C++ lib written specifically for dotnet/runtime. These libs -- System.*.Native.so (aka "shims") -- are intended to be very thin layers over underlying platform libraries. Generally, they are not there to add any significant abstraction, but to create a stable ABI such that the same IL assembly can work across UNIX flavors.

The System.Native shims are a private implementation detail of the Microsoft.NETCore.App shared framework and are intended only for use by code inside of the shared framework. Calling into the shims from external to Microsoft.NETCore.App has similar risks to using private reflection, with no guarantees from version to version or even patch to patch of stable exports. Assemblies that ship outside of the shared framework (e.g. Microsoft.Extensions.*) must not directly access the shims.

Guidelines for shim C++ API:

- Keep them as "thin"/1:1 as possible.
Expand Down
9 changes: 8 additions & 1 deletion docs/design/mono/debugger.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,11 @@ Web Assembly Debugger supports usage of following attributes:
- Stepping In/Over: results in an additional stepping need to proceed to the next line.<br><br>
- __System.Diagnostics.DebuggerDisplay__
- __System.Diagnostics.DebuggerTypeProxy__
- ...
- __System.Diagnostics.DebuggerBrowsable__ ([doc](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.debuggerbrowsableattribute?view=net-6.0))
- Collapsed - displayed normally.
- RootHidden:
- Simple type - not displayed in the debugger window.
- Collection / Array - the values of a collection are displayed in a flat view, using the naming convention: *rootName[idx]*.

- Never - not displayed in the debugger window.

4 changes: 1 addition & 3 deletions docs/workflow/Codespaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@ Codespaces allows you to develop in a Docker container running in the cloud. You

dotnet/runtime runs a nightly GitHub Action to build the latest code in the repo. This allows you to immediately start developing and testing after creating a codespace without having to build the whole repo. When the machine is created, it will have built the repo using the code as of 6 AM UTC that morning.

**NOTE**: In order to use a prebuilt codespace, when you create your machine be sure to select an **`8 core`** machine.

1. From https://github.com/dotnet/runtime, drop-down the `Code` button and select the `Codespaces` tab.

![New codespace button](https://docs.github.com/assets/images/help/codespaces/new-codespace-button.png)

2. Select `8-core` for the Machine type. This will ensure you get a "pre built" image.
2. Select the Machine type. For dotnet/runtime, it is recommended to select at least a `4-core` machine. You can also verify that a "Prebuild" is ready.

![Codespace machine size](./codespace-machine-size.png)

Expand Down
Binary file modified docs/workflow/codespace-machine-size.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 5 additions & 1 deletion docs/workflow/debugging/coreclr/debugging-aot-compilers.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Built in debugging aids in the managed compilers
---------------------------------

- When debugging a multi-threaded component of the compiler and not investigating a multi-threading issue itself, it is generally advisable to disable the use of multiple threads.
To do this use the `--parallelism 1` switch (for crossgen2) or `--singlethreaded` (for ILC) to specify that the maximum parallelism of the process shall be 1.
To do this use the `--parallelism 1` switch to specify that the maximum parallelism of the process shall be 1.

- When debugging the behavior of compiling a single method, the compiler may be instructed to only compile a single method. This is done via the various --singlemethod options

Expand Down Expand Up @@ -172,3 +172,7 @@ devenv /debugexe C:\git2\runtime\.dotnet\dotnet.exe "c:\git2\runtime\artifacts\t
```

This will launch the Visual Studio debugger, with a solution setup for debugging the dotnet.exe process. By default this solution will debug the native code of the process only. To debug the managed components, edit the properties on the solution and set the `Debugger Type` to `Managed (.NET Core, .NET 5+)` or `Mixed (.NET Core, .NET 5+)`.

# Debugging compilation graph

The AOT compilation is driven by a dependency graph. If you need to troubleshoot the dependency graph (to figure out why something was or wasn't generated) you can follow [this guide](debuging-compiler-dependency-analysis.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
Debugging Compiler Dependency Analysis
============================

The general technique is to identify what node is missing from the graph or is erroneously present in the graph, and change the dependency analysis logic to adjust the graph. This document describes the various ways of debugging to identify what's happening.

Analysis techniques for the dependency graph.
1. Use the DependencyGraphViewer tool (if running on Windows). This tool is located in `src/coreclr/tools/aot/DependencyGraphViewer`
- This is the only convenient way to examine the graph while also simultaneously debugging the compiler.
- While this is currently Windows only due to use of WinForms, it would be fairly straightforward to make a command line based tool.
- Dependency graph does not support multiple simultaneous logging facilities, so make sure that you do not set IlcGenerateDgmlFile or invoke ILCompiler with the DGML generation turned on.
2. Pass command line switches to the compiler to generate a dependency graph dgml file. This will produce the same data as is viewable in the viewer tool, but in a textual xml format.
- Future efforts may make the xml file loadable by the viewer tool.
3. Instrument the compiler dependency analysis. (This may be necessary in cases where the viewer is unable to provide sufficient information about why the graph is structured as it is.)

DependencyGraphViewer
====================================

This application allows viewing the dependency graph produced by the AOT compilation.

Usage instructions:
1. Launch the process as an administrator
2. Run the compiler
- The compiler can be run to completion, or stopped.
3. Explore through the graph

# Graphs View #
- Choose one of the graphs that appears in the Dependency Graphs view to explore. As compilers execute, new graphs will automatically appear here.
- The set of graphs loaded into the process is limited by available memory space. To clear the used memory, close all windows of the application.

# Graph View #
- In the Dependency Graph view, enter a regular expression in the text box, and then press ""Filter"". This will display a list of the nodes in the graph which have names which match the regular expression.
- Commonly, if there is a object file symbol associated with the node it should be used as part of the regular expression. See the various implementations of GetName in the compiler for naming behavior.
- Additionally, the event source marking mode assigns an Id to each node, and that is found as the mark object on the node, so if a specific id is known, just type that in, and it will appear in the window. (This is for use when using this tool in parallel with debugging the compiler.

# Single Node Exploration #
Once the interesting node(s) have been identified in the dependency graph window, select one of them, and then press Explore.
- In the Node Explorer window, the Dependent nodes (the ones which dependend on the current node are the nodes displayed above, and the Dependee nodes (the nodes that this node depends on) are displayed below. Each node in the list is paired with a textual reason as to why that edge in the graph exists.
- Select a node to explore further and press the corresponding button to make it happen.

WhyDGML
=======
This tool can be used to visualize paths from a node of interest to the roots. To use it, pass command line option to the compiler to generate the DGML file (`--dgmllog name_of_output_file`) and then use this tool to find the path to the root. If you're looking at an optimized NativeAOT compilation, `--scandgmllog` might be preferable since it will have more details.
The input to the tool is the DGML file and name of a node of interest. The output is the list of reasons why that node was included.

This tool located in folder `src/coreclr/tools/aot/WhyDgml`

See https://github.com/dotnet/corert/pull/7962 for example of usage and output.
48 changes: 45 additions & 3 deletions docs/workflow/requirements/freebsd-requirements.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
Requirements to build dotnet/runtime on FreeBSD
Requirements to build and run dotnet/runtime on FreeBSD
=====================

This guide will walk you through the requirements needed to build dotnet/runtime on FreeBSD. We'll start by showing how to set up your environment from scratch.
This guide will walk you through the requirements needed to build and run dotnet/runtime on FreeBSD. We'll start by showing how to set up your environment from scratch.
Since there is no official build and FreeBSD package, native build on FreeBSD is not trivial. There are generally three options, sorted by ease of use:
- cross-compile on Linux using Docker
- cross-compile on Linux using Toolchain
- build on FreeBSD


Environment
===========

Expand Down Expand Up @@ -65,3 +64,46 @@ sudo pkg install --yes libunwind icu libinotify lttng-ust krb5 cmake openssl nin
Additionally, working dotnet cli with SDK is needed. On other platforms this would be downloaded automatically during build but it is not currently available for FreeBSD.
It needs to be built once on supported platform or obtained via community resources.

Running on FreeBSD
-------------------
Install the following packages:
- icu
- libunwind
- lttng-ust (optional, debug support)
- krb5
- openssl (optional, SSL support)
- libinotify
- terminfo-db (optional, terminal colors)

The lines to install all the packages above using package manager.

```sh
sudo pkg install --yes libunwind icu libinotify lttng-ust krb5 openssl terminfo-db
```

Extract the SDK:
The canonical location for the SDK is `/usr/share/dotnet`

"VERSION" is the SDK version being unpacked.

```sh
sudo mkdir /usr/share/dotnet
tar xf /tmp/dotnet-sdk-VERSION-freebsd-x64.tar.gz -C /usr/share/dotnet/
```

NuGet Packages:
The canonical location for the NuGet packages is `/var/cache/nuget`

"VERSION" is the same version as the SDK from above.

- Microsoft.NETCore.App.Host.freebsd-x64.VERSION.nupkg
- Microsoft.NETCore.App.Runtime.freebsd-x64.VERSION.nupkg
- Microsoft.AspNetCore.App.Runtime.freebsd-x64.VERSION.nupkg

Add the following line to any `NuGet.config` you are using under the `<packageSources>` section:

```xml
<add key="local" value="/var/cache/nuget" />
```

Finally, either add `/usr/share/dotnet` to your PATH or create a symbolic for `/usr/share/dotnet/dotnet`
2 changes: 1 addition & 1 deletion eng/CodeAnalysis.src.globalconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1444,7 +1444,7 @@ dotnet_diagnostic.IDE0057.severity = suggestion
dotnet_diagnostic.IDE0058.severity = silent

# IDE0059: Unnecessary assignment of a value
dotnet_diagnostic.IDE0059.severity = suggestion
dotnet_diagnostic.IDE0059.severity = warning

# IDE0060: Remove unused parameter
dotnet_diagnostic.IDE0060.severity = silent
Expand Down
2 changes: 1 addition & 1 deletion eng/Subsets.props
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@
<ProjectToBuild Include="$(CoreClrProjectRoot)nativeaot\BuildIntegration\BuildIntegration.proj" Category="clr" Condition="'$(NativeAotSupported)' == 'true'" />

<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"
<ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler.TypeSystem.Tests\ILCompiler.TypeSystem.Tests.csproj"
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'"/>
Expand Down
Loading