Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
562 commits
Select commit Hold shift + click to select a range
4b7bcc6
Fix the trimming.sln after the recent rename of a test project (#91730)
vitek-karas Sep 8, 2023
23e81d9
[wasm] Add missing file in blazor-frame (#91778)
radekdoulik Sep 8, 2023
840e8fa
[mono][jit] Don't truncate the high bits when ldelema index is nint (…
BrzVlad Sep 8, 2023
a974719
[mono][jit] Enable all X86Base intrinsics (#91393)
jandupej Sep 8, 2023
f3c7893
ARM64: Use stlur for volatile stores (#91553)
EgorBo Sep 8, 2023
5a6d5ef
Added missing *Async overrides to TlsStream (#91750)
ManickaP Sep 8, 2023
7d399f6
Enable analyzer analyzers (#91733)
stephentoub Sep 8, 2023
cbbcedb
Add Microsoft.Extensions.Hosting.Abstractions
steveharter Sep 8, 2023
4cecddb
Update PACKAGE.md
steveharter Sep 8, 2023
e987cd0
Update PACKAGE.md
steveharter Sep 8, 2023
1c9f82b
Update Hosting
steveharter Sep 8, 2023
881a662
Update Hosting
steveharter Sep 8, 2023
ce6c4d1
[mono][ios] Disable exceptions unhandled runtime test on apple mobile…
kotlarmilos Sep 8, 2023
f61caf4
[mono][ios] Call mono_gc_init_finalizer_thread to allow gc thread cre…
kotlarmilos Sep 8, 2023
5bbb977
Remove unnecessary brackets
buyaa-n Sep 8, 2023
c3688fe
[mono][infra] Fix mono-aot-cross build for linux-arm64 using biarch i…
kotlarmilos Sep 8, 2023
2444a7f
add oledb and odbc
danmoseley Sep 8, 2023
342df48
tweak
danmoseley Sep 8, 2023
ab5a75e
Separate running PAL tests out to their own jobs/steps. (#91643)
jkoritzinsky Sep 8, 2023
9ae1a7c
GC finalization cleanup (#91129)
markples Sep 8, 2023
f75057f
Remove unnecessary imports (#91701)
sbomer Sep 8, 2023
7f06d1c
[iOS] Fix trimming warnings in HttpClientHandler.AnyMobile (#91520)
simonrozsival Sep 8, 2023
2157e37
Revert "[c11] define mono atomics in terms of standard atomics (#9148…
lewing Sep 8, 2023
b7515e9
Update src/libraries/System.Speech/src/PACKAGE.md
danmoseley Sep 8, 2023
ea34d03
Update src/libraries/Microsoft.Extensions.Http/src/PACKAGE.md
danmoseley Sep 8, 2023
c88b6db
Update src/libraries/System.Speech/src/PACKAGE.md
danmoseley Sep 8, 2023
e0a8170
[mono][aot] Avoid compiling the same method multiple times during ded…
vargaz Sep 8, 2023
022599f
Apply suggestions from code review
danmoseley Sep 8, 2023
520236d
[RISC-V] ELT profiler: fix reconstruction of struct args passed parti…
tomeksowi Sep 8, 2023
9d62c3c
[LoongArch64-RISCV64] Refactor the profiler for LoongArch64 and also …
shushanhf Sep 8, 2023
14d14db
Make it possible to remove DotNetRuntimeDebugHeader (#91775)
MichalStrehovsky Sep 8, 2023
2087007
Clean the CI. (#91787)
ilonatommy Sep 9, 2023
64a3c31
[mono] Avoid an assert when calling X86Base.Pause in non-llvm mode. (…
vargaz Sep 9, 2023
e04c75e
[mono] Use g_malloc instead of malloc in giconv.c. (#91807)
vargaz Sep 9, 2023
9f138e0
[main] Update dependencies from dotnet/roslyn-analyzers (#91727)
dotnet-maestro[bot] Sep 9, 2023
671d42c
JIT: Fix invalid zero-init suppression for untracked variables (#91580)
jakobbotsch Sep 9, 2023
fe43240
ARM64: Enable jumptable to BT optimization (#91811)
EgorBo Sep 9, 2023
0bddda4
Fix fgDebugCheckFlags checks for FTN_ADDR (#91766)
EgorBo Sep 10, 2023
de0ab15
Automated bump of chrome version (#91849)
github-actions[bot] Sep 10, 2023
a603693
Don't log warnings for certain RemoveAttributeInstances (#91782)
MichalStrehovsky Sep 11, 2023
533da06
Remove uses of IlcTrimMetadata from the test tree (#91774)
MichalStrehovsky Sep 11, 2023
267e937
Do not set fetch depth on source-build (#90705)
github-actions[bot] Sep 11, 2023
6d5ea33
JIT: Fix invalid memory barrier removal optimization (#91827)
jakobbotsch Sep 11, 2023
da4e544
JIT: DNER multiregs with SIMD12s (#91674)
jakobbotsch Sep 11, 2023
4877cd3
Reduce work done by RuntimeHelpers.TryGetHashCode on Mono (#91516)
AustinWise Sep 11, 2023
f18d6b6
Cannot reproduce the failure. (#91786)
ilonatommy Sep 11, 2023
38445c3
[browser] [wasm] Remove manual ThrowIfCancellationRequested from Read…
campersau Sep 11, 2023
00937b2
Improve perf of ActivatorUtilities.CreateInstance() (#91290)
steveharter Sep 11, 2023
036c14e
[wasi] Work arounbd WASI's mmap implementation not returning aligned …
vargaz Sep 11, 2023
c84ccfa
JIT: ensure AVX512 ternary operands aren't used twice (#91851)
AndyAyersMS Sep 11, 2023
228cba0
Apply suggestions for System.Diagnostics.EventLog & PerformanceCounter
carlossanlop Sep 11, 2023
e21a975
NativeAOT runtime PAL cleanup (#91831)
jkotas Sep 11, 2023
9a68b7e
Improve binder gen binding logic (init, member binding, polymorphism)…
layomia Sep 11, 2023
9d08b24
Make BundlerConsistencyTests stop building/copying self-contained pro…
elinor-fung Sep 11, 2023
6504cdb
Enable rule CA1869 - Cache and reuse 'JsonSerializerOptions' (#90895)
jozkee Sep 11, 2023
54a25d6
JIT: Fix illegal operand swapping in VectorXYZ.AndNot transformation …
jakobbotsch Sep 11, 2023
d0dfe06
Fix ContainsCore issue where one value is a prefix of all the others …
MihaZupan Sep 11, 2023
8d2ada7
Cleanup defines for specialized handle types (#91847)
jkotas Sep 11, 2023
a6cf8d6
[CI][Android] Fix android tests exclusions (#91892)
mdh1418 Sep 11, 2023
02feed0
NativeAOT SuperPMI collections (#91037)
TIHan Sep 11, 2023
25b482e
[main] Update dependencies from dnceng/internal/dotnet-optimization (…
dotnet-maestro[bot] Sep 11, 2023
4a09c82
Remove Latin1CharSearchValues (#91884)
MihaZupan Sep 12, 2023
d67314e
Check if loop body occured before loopTop" (#91854)
kunalspathak Sep 12, 2023
9ddeeff
Don't generate Attribute comparison helpers when classlib doesn't hav…
MichalStrehovsky Sep 12, 2023
2b04d2a
Simplify AreSameType (#91921)
MichalStrehovsky Sep 12, 2023
1a1ce1f
Fix invalid PGO optimization path on Nuget cache containing spaces. (…
c272 Sep 12, 2023
7082819
[mono] Implement X86Base.Pause in JIT mode as well. (#91912)
vargaz Sep 12, 2023
8d4f8b8
SPMI: Handle "successful error cases" in near differ on arm64 (#91783)
jakobbotsch Sep 12, 2023
5594701
Mark `SString`'s single argument ctors as `explicit` (#91822)
AaronRobinsonMSFT Sep 12, 2023
3f30670
Remove ObjRefInitBlk test due to gc hole (#91906)
EgorBo Sep 12, 2023
f6c5929
Disable Http3 LargeSingleHeader_ThrowsException Test (#91930)
liveans Sep 12, 2023
7ed33d8
Make Options source gen support Validation attributes having construc…
tarekgh Sep 12, 2023
e3e9758
Limit special diagnostics size region to 4KiB. (#91865)
tmds Sep 12, 2023
2fe26a1
Fix trimming solution after a test project rename (#91931)
vitek-karas Sep 12, 2023
9ee3b6e
[main] Update dependencies from dotnet/installer (#91929)
dotnet-maestro[bot] Sep 12, 2023
b960f64
Add documentation about contributing to config binder generator (#91954)
layomia Sep 12, 2023
3aeefbd
Metrics Feature Switch (#91767)
tarekgh Sep 12, 2023
99aea76
invalid assert for segments (#91491)
Maoni0 Sep 13, 2023
b5db5b6
added Bcl.Numerics
michaelgsharp Sep 13, 2023
dee51d4
Remove CMake version checks (#91632)
jkoritzinsky Sep 13, 2023
ba10d55
Fix handling of variant casting in the managed type system (#91788)
MichalStrehovsky Sep 13, 2023
9c985a9
Fix typo in features.md (#91990)
sofiageo Sep 13, 2023
7eb6c0c
[browser][MT] enable all MT library tests on the runtime CI pipeline …
ilonatommy Sep 13, 2023
2984b87
[QUIC] `QuicStream` reading/writing work (#90253)
ManickaP Sep 13, 2023
9695621
Replace http.error.reason with OTel standard error.type (#91910)
antonfirsov Sep 13, 2023
35fc3c0
[mono] Optimize Vector128.Create if there are some zero elements (#91…
jandupej Sep 13, 2023
519d681
Fix typo in pr-guide.md (#91991)
sofiageo Sep 13, 2023
a11628c
Paired stores and loads are now used for vtypes in regs if possible o…
jandupej Sep 13, 2023
3eddabc
SPMI: Hacky workaround for coredistools unsupported instructions (#91…
jakobbotsch Sep 13, 2023
25cd650
Update dependencies from https://github.com/dotnet/roslyn-analyzers b…
dotnet-maestro[bot] Sep 13, 2023
6607727
Update dependencies from https://dev.azure.com/dnceng/internal/_git/d…
dotnet-maestro[bot] Sep 13, 2023
f159c2b
Add Performance Improvements in .NET 8 to deep-dive-posts.md (#92003)
stephentoub Sep 13, 2023
a60b66d
Update Marshal.QueryInterface() argument modifier (#91983)
AaronRobinsonMSFT Sep 13, 2023
7d15365
Rename Options Validator Source Generator (#91964)
tarekgh Sep 13, 2023
b22ab8e
Update dependencies from https://github.com/dotnet/installer build 20…
dotnet-maestro[bot] Sep 13, 2023
32d2bcd
Skip duplicate --info output if it is known SDK output (#91900)
elinor-fung Sep 13, 2023
ce0af21
Remove public provider from rundown session (#91383)
davmason Sep 13, 2023
1c93ad7
[RISC-V] Initial commit for libraries directory (#90203)
t-mustafin Sep 13, 2023
a4b8dc2
Change LoadDomainInfo to honor requested LDAP port (#89787)
JasonDebug Sep 13, 2023
35b6357
Revert "Emit less metadata for not-reflection-visible types (#91660)"…
MichalStrehovsky Sep 13, 2023
7f8da57
Setup internal feeds in internal builds (#90637)
hoyosjs Sep 13, 2023
d34ed28
Switch macOS to mmap thunks like iOS platforms (#91751)
filipnavara Sep 13, 2023
e54e7ac
Remove code that is only applicable to emitting mscorlib.dll for .NET…
jkoritzinsky Sep 14, 2023
44037e8
Delete FEATURE_TRACELOGGING (#91986)
jkotas Sep 14, 2023
88a6e08
enable AIA tests on Mariner (#90199)
wfurt Sep 14, 2023
10f0277
Arm64: Pass the small size accurately to emitIns_valid_imm_for_ldst_o…
kunalspathak Sep 14, 2023
871f1b6
Delete .NET Native left overs (#91960)
jkotas Sep 14, 2023
9101b85
Don't shut down event pipe in DLLs on Windows (#91715)
MichalStrehovsky Sep 14, 2023
385247e
Fix assert about maximum fragment split size (#92027)
BruceForstall Sep 14, 2023
abca871
Replace newline characters in NoWarn (#92010)
am11 Sep 14, 2023
9fdabb6
SPMI: Increase timeout for superpmi-asmdiffs-checked-release Helix wo…
jakobbotsch Sep 14, 2023
adb0250
Minimize net diff of binder-gen visibility/identifier-clash fix (#91974)
layomia Sep 14, 2023
62e50b6
Fix si.ibAllocated in FrozenObjectHeapManager (#92023)
EgorBo Sep 14, 2023
9aeed30
[mono][wasm] Only catch the exception thrown by mono_llvm_cpp_throw_e…
vargaz Sep 14, 2023
49a0633
Fix InPlaceRuntime layering issues (#91919)
MichalStrehovsky Sep 14, 2023
1bd6220
Switch `BundleExtractToSpecificPath` and `BundleAndRun` to using buil…
elinor-fung Sep 14, 2023
f7a7b2b
Update FixupPrecode and StubPrecode types for ARM (#92030)
tommcdon Sep 14, 2023
4b75f93
Implement Linq CountBy method for IEnumerable and IQueryable (#91507)
manandre Sep 14, 2023
1ff7fbb
[main] Update dependencies from dotnet/roslyn (#91625)
dotnet-maestro[bot] Sep 14, 2023
fa8db2d
Update dependencies from https://dev.azure.com/dnceng/internal/_git/d…
dotnet-maestro[bot] Sep 14, 2023
650eec9
Make src gen for property setters consistent with reflection (#91899)
steveharter Sep 14, 2023
088f162
[wasm] Fix performance-setup.sh to track change in BDN (#92067)
radical Sep 14, 2023
44b90e0
[main] Update dependencies from 10 repositories (#91498)
dotnet-maestro[bot] Sep 14, 2023
0bd3623
FIx riscv64 build break due to NDirectImportPrecode::Type conflict wi…
tommcdon Sep 14, 2023
bbd8d8a
Add SHUTDOWNGUARD to NonGcHeapProfiler::ObjectAllocated (#92096)
davmason Sep 15, 2023
a6c64c3
fix ReceiveFrom with dual mode socket (#92086)
wfurt Sep 15, 2023
d40f90c
Implement support for `InlineArray` in the trimmer (#92060)
vitek-karas Sep 15, 2023
a47b51b
Update dependencies from https://github.com/dotnet/installer build 20…
dotnet-maestro[bot] Sep 15, 2023
cfbd181
Update dependencies from https://dev.azure.com/dnceng/internal/_git/d…
dotnet-maestro[bot] Sep 15, 2023
f08cbb8
[wasi] Generate scripts to run with node. (#92099)
vargaz Sep 15, 2023
bbb6ae3
Remove unnecessary use of UseCompilerGeneratedDocXmlFile (#91935)
ViktorHofer Sep 15, 2023
06271c6
[wasm] Update installation process of nodejs 18.x to move away from t…
radical Sep 15, 2023
2aae788
Update dependencies from https://github.com/dotnet/sdk build 20230915…
dotnet-maestro[bot] Sep 15, 2023
2dbb2fb
Fix type parameter mapping logic in ILLink/ILCompiler (#92088)
sbomer Sep 15, 2023
048978a
Fix support of FromKeyedServicesAttribute in ActivatorUtilities.Creat…
benjaminpetit Sep 15, 2023
65216da
Avoid marking property/event attributes multiple times (#92094)
sbomer Sep 15, 2023
8eeebd8
Add missing STJ xml docs (#92138)
eiriktsarpalis Sep 15, 2023
a751151
Delete duplicate test (#91780)
MichalStrehovsky Sep 15, 2023
5ab45c7
Fix URL for syslib diagnostics (#92134)
ericstj Sep 15, 2023
7be3913
6 more naive methods for Tensor Primitives. (#92142)
michaelgsharp Sep 16, 2023
4116c0f
[workloads] Opt into using package groups (#92155)
steveisok Sep 16, 2023
9f4c5f7
Use runsettings.targets to generate runsettings for host tests in loc…
elinor-fung Sep 16, 2023
fd20f42
Check if bbNatLoopNum is not NOT_IN_LOOP (#92132)
kunalspathak Sep 16, 2023
fa1bf3c
[NativeAOT] Fix iOS library build by linking standard C++ library by …
ivanpovazan Sep 16, 2023
dc3d344
[browser] Add link to docs to interop error messages (#92125)
maraf Sep 16, 2023
545dca2
Fill template for Microsoft.Extensions.Configuration & Abstractions
ericstj Sep 16, 2023
f5cff04
Add remaining set of TensorPrimitives APIs for .NET 8 (#92154)
stephentoub Sep 16, 2023
c4d3e72
Add Microsoft.Extensions.Configuration.Binder readme.
ericstj Sep 16, 2023
ebe6f54
Fix register resolution handling of RefTypeUpperVectorRestore (#92171)
BruceForstall Sep 17, 2023
1972683
Add optimisation of incrementing SELECT at lowering on arm64. (#91262)
c272 Sep 17, 2023
51a694b
Optimize if range check to replace jumps to bit operation (#87656)
JulieLeeMSFT Sep 17, 2023
353d5ea
Update HttpClientJsonExtensions.Get.AsyncEnumerable.cs (#92180)
WeihanLi Sep 17, 2023
bc97b0a
Case: The method has not been jitted yet (#90821)
mikelle-rogers Sep 18, 2023
d054157
JIT: Extract all side effects of the index in optRemoveRangeCheck (#9…
jakobbotsch Sep 18, 2023
3046549
Remove undocumented P2 package readmes
ViktorHofer Sep 18, 2023
d6f6188
Update Feedback library name markdown style
ViktorHofer Sep 18, 2023
ea036c5
Remove en-US culture from links
ViktorHofer Sep 18, 2023
5b57763
Replace important markdown tag with bold
ViktorHofer Sep 18, 2023
513cf12
MathF PR feedback
ViktorHofer Sep 18, 2023
acad01b
Add System.Management packag readme
ViktorHofer Sep 18, 2023
921d8be
Fix trailing whitespace
ViktorHofer Sep 18, 2023
d1176ac
Add ServiceController package readme
ViktorHofer Sep 18, 2023
84ec7b4
Fix TensorPrimitives.CosineSimilarity to use vectorized implementatio…
stephentoub Sep 18, 2023
44f82cd
Fix typo in host-runtime-information.md (#92217)
stevejgordon Sep 18, 2023
52e5715
Clean-up
ViktorHofer Sep 18, 2023
aa53051
More clean-up
ViktorHofer Sep 18, 2023
e69c447
Add a few missing xml comments for APIs in threading and tasks (#92157)
kouvel Sep 18, 2023
c387565
ConfigurationManager clean-up
ViktorHofer Sep 18, 2023
ab8419a
Last clean-up
ViktorHofer Sep 18, 2023
2542302
Merge pull request #91210 from dotnet/InSourcePackageReadme
ViktorHofer Sep 18, 2023
61675a4
Implement Linq AggregateBy method for IEnumerable and IQueryable (#92…
manandre Sep 18, 2023
48a2b36
Fix wasi build. (#92216)
vargaz Sep 18, 2023
0ad4e69
Fix typo (#90903)
davidwengier Sep 18, 2023
e1ca02f
fixed problems with how sampling is done and how we suspend to change…
Maoni0 Sep 18, 2023
1f9764f
Use strategy in StrategyBasedComWrappers.ComputeVtables (#92085)
jkoritzinsky Sep 18, 2023
6d7cf0e
Fix: Config binder generator doesn't generate code when named argumen…
buyaa-n Sep 19, 2023
4d948a0
Optimize Random{NumberGenerator}.GetItems for power-of-two choices (#…
stephentoub Sep 19, 2023
19445f0
Address some `SString` const issues (#92156)
AaronRobinsonMSFT Sep 19, 2023
963954a
Update solution files (#92209)
ViktorHofer Sep 19, 2023
e4df432
Add xml comments to System.Net.Mime.MediaTypeNames members (#92220)
rzikm Sep 19, 2023
cc89f38
Move scalar loops into IndexOfAnyAsciiSearcher (#91937)
MihaZupan Sep 19, 2023
3583637
Update PACKAGE.md (#92225)
ViktorHofer Sep 19, 2023
58fb822
[wasi] Bump wasi sdk to 20. (#92243)
vargaz Sep 19, 2023
5ba46f0
JIT: Initialize jitstdout lazily (#92123)
jakobbotsch Sep 19, 2023
0eb038e
[main] Update dependencies from dotnet/roslyn (#92150)
dotnet-maestro[bot] Sep 19, 2023
d378b5d
Add attribute analysis for missing cases in ILLink analyzer (#92166)
sbomer Sep 19, 2023
c7586b9
Correct naming of MonoEnableLLVM flag in Mono doc (#92265)
matouskozak Sep 19, 2023
67dbbeb
JIT: add missing xarch RMW case (#92252)
AndyAyersMS Sep 19, 2023
17eff3b
JIT: generalize assert to handle SIMD64 (#92235)
AndyAyersMS Sep 19, 2023
9bd0e0d
Remove "Is supported on this TFM" logic from marshalling generators a…
jkoritzinsky Sep 19, 2023
094801e
[main] Update dependencies from dotnet/runtime dotnet/emsdk dotnet/ho…
dotnet-maestro[bot] Sep 19, 2023
a7cafec
[main] Bump Microsoft.Private.IntelliSense package version (#92255)
carlossanlop Sep 19, 2023
1185d19
Don't generate AddMask as it requires more explicit consideration of …
tannergooding Sep 19, 2023
3b9b4fd
Move portable RID graph into runtime and clean-up (#92211)
ViktorHofer Sep 19, 2023
41a8e39
Ensure VN handles both forms of the xarch shift instructions for SIMD…
tannergooding Sep 19, 2023
b049f42
Fix optSwitchConvert (#92249)
EgorBo Sep 19, 2023
fcf7b11
Prevent restoring illink for native-binplace.proj (#92289)
sbomer Sep 20, 2023
5883b72
Fix options Validation with objects have indexers (#92309)
tarekgh Sep 20, 2023
d411f50
Avoid unnecessary array allocation in JsonHelpers.Utf8GetString on ne…
stephentoub Sep 20, 2023
521e1e6
[QUIC] Throw ODE if connection/listener is disposed (#92215)
ManickaP Sep 20, 2023
0dc5903
Fix trimming of DebuggerDisplay with Name (#92191)
arturek Sep 20, 2023
b4912a7
[wasi] Fix llvm target triple. (#92256)
vargaz Sep 20, 2023
e8c3052
Update Newtonsoft.Json from 13.0.1 to 13.0.3 (#92298)
mthalman Sep 20, 2023
32c3355
Fix downlevel build break in TensorPrimitives (#92269)
stephentoub Sep 20, 2023
36ab905
Update dependencies from https://github.com/dotnet/installer build 20…
dotnet-maestro[bot] Sep 20, 2023
d6ff465
Add missing case for constrained gsharedvt call. (#92338)
lateralusX Sep 20, 2023
901f780
[wasm][debugger] Add tests for indexing by object schema (#92268)
ilonatommy Sep 20, 2023
e235aef
Set severity of rule CA1870 to warning (#92135)
MihaZupan Sep 20, 2023
b4be77b
Update the assert for BlendVariable (#92183)
kunalspathak Sep 20, 2023
c0b5150
Bring back CopyOutputSymbolsToPublishDirectory (#92315)
agocke Sep 20, 2023
614d864
Use Utf8JsonWriterCache in JsonNode.To{Json}String (#92358)
stephentoub Sep 20, 2023
a5b75b8
JIT: Fix invalid containment of vector broadcasts (#92333)
jakobbotsch Sep 20, 2023
9cbad65
Properly handle debugger-enumerating interior pointers and enregister…
leculver Sep 20, 2023
b667f25
Move Native AOT outerloop tests to their own pipeline (#91684)
agocke Sep 20, 2023
736dabe
Optimise long multiply + add/sub/neg on arm64. (#91886)
c272 Sep 20, 2023
b2417c3
JIT: Fixed incorrect reversed condition for GT (#92316)
TIHan Sep 21, 2023
493a702
Build the PGO build legs through the global build job template (#92296)
jkoritzinsky Sep 21, 2023
c853fc1
Change GetParametersNoCopy to GetParametersAsSpan and use it in a few…
stephentoub Sep 21, 2023
3551112
[wasm] [debugger] Evaluation of methods on enums (#92263)
ilonatommy Sep 21, 2023
09e796a
[mono] Basic SIMD support for System.Numerics.Vector2 on arm64 (#91659)
matouskozak Sep 21, 2023
aba7c43
Disable new tests failing on NativeAOT (#92388)
MichalStrehovsky Sep 21, 2023
9cdc0cd
Fix error message printed if there's a missing context for get runtim…
vitek-karas Sep 21, 2023
37c10f8
Fix some assert's errors for ARM64-LoongArch64-RISCV64. (#92319)
shushanhf Sep 21, 2023
84a8f67
[RISC-V] Atomics (#92102)
tomeksowi Sep 21, 2023
05730a3
[RISC-V] Set the HAVE_FUNCTIONAL_PTHREAD_ROBUST_MUTEXES_EXITCOD value…
JongHeonChoi Sep 21, 2023
9c8ff4c
Fixes for LLVM AOT on Windows from @lateralusX (#92356)
directhex Sep 21, 2023
85a68b0
Use FMA in TensorPrimitives (#92205)
stephentoub Sep 21, 2023
e985f78
[CI][Android] Build mono runtime for Android on PRs (#91809)
mdh1418 Sep 21, 2023
b62ef8f
Fix nativeaot-outerloop yaml (#92389)
agocke Sep 21, 2023
49930c1
[browser] Fix SIMD+EH check (#92348)
maraf Sep 21, 2023
5149896
Add missing System.Net.Http.Json comments (#92223)
MihaZupan Sep 21, 2023
3470c4c
Light up BitArray APIs with Vector512 code path (#91903)
khushal1996 Sep 21, 2023
4ad310d
[browser] [wasm] Refactor Request Streaming to use HttpContent.CopyTo…
campersau Sep 21, 2023
13a97c8
Make HostModel PEUtils always read/write little endian (#92392)
elinor-fung Sep 21, 2023
1ea868f
Ensure Bind can handle null from GetSection (#92384)
ericstj Sep 22, 2023
f671fde
Address feedback and fix some TensorPrimitives issues (#92395)
stephentoub Sep 22, 2023
cad827e
Don't produce a NuGet package for the PGO variant of the runtime pack…
jkoritzinsky Sep 22, 2023
f61d3c7
Store pinned static fields in the Pinned Object Heap. (#89895)
teo-tsirpanis Sep 22, 2023
e0a4bdd
Improve getExactClasses to support classes as base types (#92440)
MichalStrehovsky Sep 22, 2023
b842334
Provide ALC name in DispatchProxy for proxies in custom ALC (#92385)
pedrobsaila Sep 22, 2023
cdcda15
Ensure that embedded broadcast checks the base type of the parent nod…
tannergooding Sep 22, 2023
96f48b7
[RISC-V] Replace Riscv with RiscV (#92318)
JongHeonChoi Sep 22, 2023
136ac4e
[wasm] CI: trigger only wasm jobs when Webcil task has changes (#92426)
radical Sep 22, 2023
9ca60f5
Unify on one version of the ESRP tasks (#92451)
jkoritzinsky Sep 22, 2023
a54ccf3
[wasm] Fix chrome update script to use 'chromium dash', instead of 'o…
radical Sep 22, 2023
d563d0e
JIT: Make a quirk in block morphing more explicit (#92292)
jakobbotsch Sep 22, 2023
45fe624
Avoid string allocation and improve performance of `JsonProperty.Writ…
karakasa Sep 22, 2023
b6d0364
vixl: Bulk import of code
a74nh Sep 29, 2023
09a2cb2
vixl: Changes to build vixl
a74nh Sep 22, 2023
df6241b
vixl: Example uses of vixl as an assembler and disassembler
a74nh Oct 2, 2023
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": "8.0.0-prerelease.23407.2",
"version": "8.0.0-prerelease.23456.2",
"commands": [
"xharness"
]
Expand Down
File renamed without changes.
48 changes: 48 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
// For format details, see https://aka.ms/devcontainer.json.
{
"name": "Standard configuration",
"build": {
"dockerfile": "Dockerfile",
"args": {
// Update 'VARIANT' to pick a .NET Core version: 6.0, 7.0
"VARIANT": "6.0-jammy"
}
},
"hostRequirements": {
"cpus": 4,
"memory": "8gb"
},

"features": {
"ghcr.io/devcontainers/features/github-cli:1": {}
},

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-dotnettools.csharp"
],
"settings": {
// Loading projects on demand is better for larger codebases
"omnisharp.enableMsBuildLoadProjectsOnDemand": true,
"omnisharp.enableRoslynAnalyzers": true,
"omnisharp.enableEditorConfigSupport": true,
"omnisharp.enableAsyncCompletion": true,
"omnisharp.testRunSettings": "${containerWorkspaceFolder}/artifacts/obj/vscode/.runsettings"
}
}
},

// Add the locally installed dotnet to the path to ensure that it is activated
// This allows developers to just use 'dotnet build' on the command-line, and the local dotnet version will be used.
"remoteEnv": {
"PATH": "${containerWorkspaceFolder}/.dotnet:${containerEnv:PATH}",
"DOTNET_MULTILEVEL_LOOKUP": "0"
},

// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode"
}
4 changes: 2 additions & 2 deletions .devcontainer/libraries/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// For format details, see https://aka.ms/devcontainer.json.
{
"name": "C# (.NET)",
"name": "Libraries/Runtime development (prebuilt)",
"build": {
"dockerfile": "Dockerfile",
"dockerfile": "../Dockerfile",
"args": {
// Update 'VARIANT' to pick a .NET Core version: 6.0, 7.0
"VARIANT": "6.0-jammy"
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/scripts/onCreateCommand.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ case "$opt" in
./build.sh mono+libs -os browser -c Release

# install dotnet-serve for running wasm samples
./dotnet.sh tool install dotnet-serve --tool-path ./.dotnet-tools-global
./dotnet.sh tool install dotnet-serve --version 1.10.172 --tool-path ./.dotnet-tools-global
;;
esac

Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/wasm/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// For format details, see https://aka.ms/devcontainer.json.
{
"name": "C# (.NET)",
"name": "WASM development (prebuilt)",
"build": {
"dockerfile": "Dockerfile",
"args": {
Expand Down
3 changes: 2 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,15 @@
/src/mono/mono/mini @vargaz @lambdageek @SamMonoRT
/src/mono/mono/mini/*cfgdump* @vargaz
/src/mono/mono/mini/*exceptions* @vargaz @BrzVlad
/src/mono/mono/mini/*llvm* @vargaz
/src/mono/mono/mini/*llvm* @vargaz @fanyang-mono
/src/mono/mono/mini/*ppc* @vargaz
/src/mono/mono/mini/*profiler* @BrzVlad @lambdageek
/src/mono/mono/mini/*riscv* @vargaz @lambdageek
/src/mono/mono/mini/*type-check* @lambdageek
/src/mono/mono/mini/debugger-agent.c @vargaz @thaystg @lambdageek
/src/mono/mono/mini/interp/* @BrzVlad @vargaz @kotlarmilos
/src/mono/mono/mini/interp/*jiterp* @kg
/src/mono/mono/mini/*simd* @fanyang-mono

/src/mono/mono/profiler @BrzVlad @lambdageek
/src/mono/mono/sgen @BrzVlad @lambdageek @SamMonoRT
Expand Down
9 changes: 9 additions & 0 deletions .github/fabricbot.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,15 @@
"vargaz"
]
},
{
"labels": [
"area-Codegen-Intrinsics-mono"
],
"mentionees": [
"SamMonoRT",
"fanyang-mono"
]
},
{
"labels": [
"area-CodeGen-meta-Mono"
Expand Down
22 changes: 16 additions & 6 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -80,24 +80,25 @@

<!-- The TFMs to build and test against. -->
<PropertyGroup>
<NetCoreAppCurrentVersion>8.0</NetCoreAppCurrentVersion>
<NetCoreAppCurrentVersion>9.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>7.0</NetCoreAppPreviousVersion>
<NetCoreAppPreviousVersion>8.0</NetCoreAppPreviousVersion>
<NetCoreAppPrevious>net$(NetCoreAppPreviousVersion)</NetCoreAppPrevious>
<NetCoreAppPrevious Condition="'$(DotNetBuildFromSource)' == 'true'">$(NetCoreAppCurrent)</NetCoreAppPrevious>

<!-- The minimum supported .NET version. -->
<NetCoreAppMinimum>net6.0</NetCoreAppMinimum>
<NetCoreAppMinimum>net8.0</NetCoreAppMinimum>
<NetCoreAppMinimum Condition="'$(DotNetBuildFromSource)' == 'true'">$(NetCoreAppCurrent)</NetCoreAppMinimum>

<!-- when this is updated, make sure to keep $(_TargetFrameworkForNETCoreTasks)
in src/mono/wasm/build/WasmApp.LocalBuild.props in sync -->
in src/mono/wasm/build/WasmApp.LocalBuild.props
and in src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props in sync -->
<NetCoreAppToolCurrentVersion>8.0</NetCoreAppToolCurrentVersion>
<NetCoreAppToolCurrent>net$(NetCoreAppToolCurrentVersion)</NetCoreAppToolCurrent>
<NetCoreAppCurrentToolTargetFrameworkMoniker>$(NetCoreAppCurrentIdentifier),Version=v$(NetCoreAppToolCurrentVersion)</NetCoreAppCurrentToolTargetFrameworkMoniker>
Expand All @@ -114,8 +115,8 @@
<NetFrameworkCurrent Condition="'$(DotNetBuildFromSource)' == 'true'" />

<!-- Important: Set this to the GA version (or a close approximation) during servicing and adjust the TFM property below. -->
<ApiCompatNetCoreAppBaselineVersion>7.0.0</ApiCompatNetCoreAppBaselineVersion>
<ApiCompatNetCoreAppBaselineTFM>net7.0</ApiCompatNetCoreAppBaselineTFM>
<ApiCompatNetCoreAppBaselineVersion>8.0.0-rc.1.23415.6</ApiCompatNetCoreAppBaselineVersion>
<ApiCompatNetCoreAppBaselineTFM>net8.0</ApiCompatNetCoreAppBaselineTFM>

<TargetFrameworkForNETFrameworkTasks>$(NetFrameworkToolCurrent)</TargetFrameworkForNETFrameworkTasks>
<!-- Don't build for NETFramework during source-build. -->
Expand All @@ -136,6 +137,7 @@
<LibrariesConfiguration Condition="'$(LibrariesConfiguration)' == ''">$(Configuration)</LibrariesConfiguration>
<HostConfiguration Condition="'$(HostConfiguration)' == ''">$(Configuration)</HostConfiguration>
<TasksConfiguration Condition="'$(TasksConfiguration)' == ''">$(Configuration)</TasksConfiguration>
<ToolsConfiguration Condition="'$(ToolsConfiguration)' == ''">$(Configuration)</ToolsConfiguration>
</PropertyGroup>

<PropertyGroup>
Expand Down Expand Up @@ -429,6 +431,7 @@
<PublishWindowsPdb>false</PublishWindowsPdb>
</PropertyGroup>


<!-- All reference assemblies should have a ReferenceAssemblyAttribute and the 0x70 flag which prevents them from loading. -->
<ItemGroup Condition="'$(IsReferenceAssemblyProject)' == 'true'">
<AssemblyAttribute Include="System.Runtime.CompilerServices.ReferenceAssemblyAttribute" />
Expand Down Expand Up @@ -468,4 +471,11 @@
<CustomBeforeNoTargets>$(RepositoryEngineeringDir)NoTargetsSdk.BeforeTargets.targets</CustomBeforeNoTargets>
<CustomAfterTraversalTargets>$(RepositoryEngineeringDir)TraversalSdk.AfterTargets.targets</CustomAfterTraversalTargets>
</PropertyGroup>

<PropertyGroup>
<!-- Keep in sync with outputs defined in Microsoft.NETCore.Platforms.csproj. -->
<BundledRuntimeIdentifierGraphFile>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.NETCore.Platforms', 'runtime.json'))</BundledRuntimeIdentifierGraphFile>
<BundledRuntimeIdentifierGraphFile Condition="!Exists('$(BundledRuntimeIdentifierGraphFile)')">$([MSBuild]::NormalizePath('$(LibrariesProjectRoot)', 'Microsoft.NETCore.Platforms', 'src', 'runtime.json'))</BundledRuntimeIdentifierGraphFile>
</PropertyGroup>

</Project>
15 changes: 2 additions & 13 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<Import Project="$(RepositoryEngineeringDir)generatorProjects.targets" Condition="'$(IsGeneratorProject)' == 'true'" />
<Import Project="$(RepositoryEngineeringDir)resolveContract.targets" Condition="'$(IsSourceProject)' == 'true'" />
<Import Project="$(RepositoryEngineeringDir)packaging.targets" Condition="'$(IsPackable)' == 'true' and '$(MSBuildProjectExtension)' != '.pkgproj'" />
<Import Project="$(RepositoryEngineeringDir)slngen.targets" Condition="'$(IsSlnGen)' == 'true'" />

<!--
When .NET gets built from source, make the SDK aware there are bootstrap packages
Expand Down Expand Up @@ -214,19 +215,7 @@
<SharedFrameworkNugetVersion>$(ProductVersion)</SharedFrameworkNugetVersion>
<NuGetVersion>$(SharedFrameworkNugetVersion)</NuGetVersion>
<InstallersRelativePath>Runtime/$(SharedFrameworkNugetVersion)/</InstallersRelativePath>

<!--
By default, we are always building the nuget packages for HostPolicy, HostFXR and
Dotnet/AppHost. Thus, the properties (below) are always set to $(ProductVersion).
However, there are scenarios when only some of these components will change (e.g. during
servicing, we may only change HostPolicy but not HostFXR and Dotnet/AppHost). In such cases,
pass the appropriate version value(s) as argument to the build command in order to override;
e.g. 'build -p:HostPolicyVersion=x.y.z ...'
-->
<HostVersion Condition="'$(HostVersion)' == ''">$(ProductVersion)</HostVersion>
<AppHostVersion Condition="'$(AppHostVersion)' == ''">$(ProductVersion)</AppHostVersion>
<HostResolverVersion Condition="'$(HostResolverVersion)' == ''">$(ProductVersion)</HostResolverVersion>
<HostPolicyVersion Condition="'$(HostPolicyVersion)' == ''">$(ProductVersion)</HostPolicyVersion>
</PropertyGroup>
</Target>

</Project>
2 changes: 2 additions & 0 deletions NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
<add key="dotnet-libraries-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries-transport/nuget/v3/index.json" />
<add key="dotnet8" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json" />
<add key="dotnet8-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8-transport/nuget/v3/index.json" />
<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" />
</packageSources>
<disabledPackageSources>
<clear />
Expand Down
44 changes: 44 additions & 0 deletions docs/coding-guidelines/mono-code-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,49 @@ There are actually three boolean types to keep in mind:
* `MonoBoolean` used as an interop type with C# bool in internal calls
* `mono_bool` used by the public C API - generally new code shouldn't use it except when adding a new public API function.

## Newer features of C11 and later

Mono is currently (2023) written in C11.

### Static asserts

Use `static_assert` liberally. Include `<assert.h>`. If you cannot include `<assert.h>` (for
example because it introduces conflicting symbols or macros), use `g_static_assert`. Do not use
`_Static_assert` directly (see how `g_static_assert` is defined). Rationale: C23 deprecates
`_Static_assert`.

### Threads, locks, `call_once`

Due to mono's threading model and cooperative GC, using C threading and locking primitives directly
is not ok. Prefer `MonoCoopMutex`, `MonoCoopCond` that have GC-aware locking/waiting operations.
If you need them, use `mono_mutex_t`, `mono_cond_t`, etc for cases where GC transitions are
prohibitively costly and you can guarantee that the lock will never be taken by a GC initiator or by
a mix of threads in GC cooperative and GC preemptive mode.

Using standard C threads and `call_once` in native library PInvokes outside the runtime is okay.

Using standard C mutexes and condition variables in native library PInvokes outside the runtime is
okay if the locks are not shared with the runtime internals.

### Thread locals

FIXME: no guidance yet

### Atomics

The C standard atomics are not guaranteed to be lock-free. Use the mono `mono_atomic_` functions
(some of which may be implemented in terms of standard C atomics on some platforms). We do not in
general want locking because it would not be GC aware and may deadlock the cooperative GC.

Uses of `_Atomic` are a code smell in Mono.

Using standard C atomics in native library PInvokes outside the runtime is okay provided the atomics
aren't also accessed inside the runtime internals.

### Generic operations

FIXME: no guidance for `_Generic` yet.

## Utility and platform abstraction functions

Mono generally tries to fill in POSIX-like abstractions on platforms that lack them (for example, Windows).
Expand Down Expand Up @@ -251,3 +294,4 @@ calling Mono internals.

In general new code should not do this. When modifying existing code, mysterious WASM failures may
be attributed to symbol signature mismatches between WASM and the Mono runtime.

13 changes: 7 additions & 6 deletions docs/deep-dive-blog-posts.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
### Posts that take a high-level overview of releases

- [Corestart 2.0: What's new for performance in .NET Core 2.0](https://www.ageofascent.com/2017/11/05/perfromance-dotnet-core-2-corestart-conference/)
- [Performance improvements in .NET Core 2.0](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core/)
- [Performance improvements in .NET Core 2.1](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-2-1/)
- [Performance improvements in .NET Core 3.0](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/)
- [Performance improvements in .NET 5](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/)
- [Performance improvements in .NET 6](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/)
- [Performance improvements in .NET 7](https://devblogs.microsoft.com/dotnet/performance_improvements_in_net_7/)
- [Performance Improvements in .NET Core 2.0](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core/)
- [Performance Improvements in .NET Core 2.1](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-2-1/)
- [Performance Improvements in .NET Core 3.0](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/)
- [Performance Improvements in .NET 5](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/)
- [Performance Improvements in .NET 6](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/)
- [Performance Improvements in .NET 7](https://devblogs.microsoft.com/dotnet/performance_improvements_in_net_7/)
- [Performance Improvements in .NET 8](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8/)

### Posts that take a high-level look at the entire source:

Expand Down
4 changes: 2 additions & 2 deletions docs/design/features/host-runtime-information.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Relying on key-value strings as part of initialization of the runtime comes with
- Each property comes with non-trivial overhead. As the properties flow through the hosting layer, runtime, and libraries, multiple copies are made of each name and value.
- Properties are pre-computed and set at startup. Every application, regardless of whether or not it requires a specific property, must pay the cost of all properties.

To allow a more flexible and less costly way to pass information between the host and runtime, in .NET 8+, the host passes a contract to the runtime as a property. This contract servers as a mechanism for runtime to query for information from the host and for the host to provide structured information to the runtime.
To allow a more flexible and less costly way to pass information between the host and runtime, in .NET 8+, the host passes a contract to the runtime as a property. This contract serves as a mechanism for runtime to query for information from the host and for the host to provide structured information to the runtime.

`HOST_RUNTIME_CONTRACT`

Expand Down Expand Up @@ -90,4 +90,4 @@ Indicates whether or not [`hostpolicy`](./host-components.md#host-policy) is emb

`PINVOKE_OVERRIDE`

Hex string representation of a function pointer. It is set when running a self-contained single-file application. The function is called by the runtime to check for redirected p/invokes. The expected signature is defined as `PInvokeOverrideFn` in [`coreclrhost.h`](/src/coreclr/hosts/inc/coreclrhost.h) and [`mono-private-unstable-types.h`](/src/native/public/mono/metadata/details/mono-private-unstable-types.h).
Hex string representation of a function pointer. It is set when running a self-contained single-file application. The function is called by the runtime to check for redirected p/invokes. The expected signature is defined as `PInvokeOverrideFn` in [`coreclrhost.h`](/src/coreclr/hosts/inc/coreclrhost.h) and [`mono-private-unstable-types.h`](/src/native/public/mono/metadata/details/mono-private-unstable-types.h).
1 change: 1 addition & 0 deletions docs/design/features/native-hosting.md
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,7 @@ int hostfxr_get_runtime_delegate(const hostfxr_handle host_context_handle, hostf
```
Starts the runtime and returns a function pointer to specified functionality of the runtime.
* `host_context_handle` - handle to the initialized host context.
* **[.NET 8 and above]** If set to `NULL` the function will operate on the active host context in the process.
* `type` - the type of runtime functionality requested
* `hdt_load_assembly_and_get_function_pointer` - entry point which loads an assembly (with dependencies) and returns function pointer for a specified static method. See below for details (Loading and calling managed components)
* `hdt_com_activation`, `hdt_com_register`, `hdt_com_unregister` - COM activation entry-points - see [COM activation](https://github.com/dotnet/runtime/tree/main/docs/design/features/COM-activation.md) for more details.
Expand Down
Loading