* Add .NET 10 P1 release note base files * add get started * add base binary file * revert links for build * fix links * update last link * Apply suggestions from code review Co-authored-by: Rich Lander <rlander@microsoft.com> * Fix linter errors * add languages * add ef core 10 documentation * add more efcore release notes * fix lint issue in ef docs * update efcore * Preview 1 F# release notes (#9737) * Initial F# entry with links-needs cleanup * Remove template comments from F# release notes * Apply suggestions from code review Thanks! All these changes are great. Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com> * a bit of consistency here to jump down layers * Fix typo in F# release notes --------- Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com> Co-authored-by: James Montemagno <james.montemagno@gmail.com> * Update release-notes/10.0/get-started.md Co-authored-by: Jon Galloway <jongalloway@gmail.com> * Update release-notes/10.0/preview/preview1/10.0.0-preview.1.md Co-authored-by: Jon Galloway <jongalloway@gmail.com> * update wpf * C# and VB release notes for Preview 1 (#9739) * First draft of C# and VB release notes * Apply suggestions from code review Co-authored-by: Martin Costello <martin@martincostello.com> * Update release-notes/10.0/preview/preview1/visualbasic.md Co-authored-by: Kathleen Dollard <kathleen.dollard@microsoft.com> * Add additional features My first draft had missed a few features. * Apply suggestions from code review Co-authored-by: Kathleen Dollard <kathleen.dollard@microsoft.com> * Update release-notes/10.0/preview/preview1/csharp.md --------- Co-authored-by: Martin Costello <martin@martincostello.com> Co-authored-by: James Montemagno <james.montemagno@gmail.com> Co-authored-by: Kathleen Dollard <kathleen.dollard@microsoft.com> * .NET 10 Preview 1 - WinForms Release Notes (#9722) * First draft First draft of release nites * Added AI message I did use AI to translate to markdown from docx formats. * Update release-notes/10.0/preview/preview1/winforms.md Co-authored-by: Loni Tra <lonitra@microsoft.com> * Applying feedback Applying the latest feedback and correcting a couple mistakes. * Applying final feedback Adding a few tweaks based on Tanya's feedback. * Best Practices * Final round of feedback * Update release-notes/10.0/preview/preview1/winforms.md * a bit of cleanup * Update winforms.md Duplicated text. * duplicated content --------- Co-authored-by: Loni Tra <lonitra@microsoft.com> Co-authored-by: Rich Lander <rich@lander.ca> Co-authored-by: Rich Lander <rlander@microsoft.com> Co-authored-by: Tanya Solyanik <tanyaso@microsoft.com> Co-authored-by: James Montemagno <james.montemagno@gmail.com> * small tweaks to ef preview 1 release notes * one more tiny tweak to ef core notes * release notes for PrunePackageReferences (#9744) * Fix markdown lint * Add containers release notes for .NET 10 Preview 1 (#9746) * Update containers section on main 10p1 readme * Add release notes for containers * Change Docker to container Co-authored-by: Matt Thalman <mthalman@microsoft.com> * Put Ubuntu announcement first * Apply suggestions from code review Co-authored-by: Rich Lander <rlander@microsoft.com> * Remove extra newlines * Update haedings and links --------- Co-authored-by: Matt Thalman <mthalman@microsoft.com> Co-authored-by: Rich Lander <rlander@microsoft.com> * .NET 10 P1 -- Runtime and Libraries changes (#9715) * Create runtime branch * Add cryptography notes * Fix typo * Add ISOWeek overloads for DateOnly type * ZipArchive * Remove duplicate ISOWeek method overloads section * Add String Normalization APIs for Span<char> * Fix formatting in String Normalization APIs section * Fix formatting for String Normalization APIs section * Fix formatting for String Normalization APIs section * Update String Normalization APIs section * Update String Normalization APIs section * Doc formatting fix * Adding TimeSpan note * Add JIT notes * Convert tabs to spaces * Better ZipArchive stats * Fix stack allocation description * Feedback Co-authored-by: Andy Ayers <andya@microsoft.com> * Add AVX10.2 experimental note, and feedback * "C-style" -> "typical" Co-authored-by: Rich Lander <rlander@microsoft.com> * Add stack allocation example * Numeric ordering, ordered dictionary, json options, matrix operations * Apply suggestions from code review * Update release-notes/10.0/preview/preview1/libraries.md Apply Rich's suggestion Co-authored-by: Rich Lander <rlander@microsoft.com> * Update release-notes/10.0/preview/preview1/libraries.md * Fix linter issues --------- Co-authored-by: Jeremy Barton <jbarton@microsoft.com> Co-authored-by: Tarek Mahmoud Sayed <10833894+tarekgh@users.noreply.github.com> Co-authored-by: carlossanlop <1175054+carlossanlop@users.noreply.github.com> Co-authored-by: Aman Khalid <amankhalid@microsoft.com> Co-authored-by: Andy Ayers <andya@microsoft.com> Co-authored-by: Pranav Senthilnathan <pranas@microsoft.com> * Add ASP.NET Core release notes for .NET 10 Preview 1 (#9740) * Remove extra line in release notes. * Add link to install packages on Chiseled images * Update C# 14 release notes * Remove extra newlines in release notes. * update md * .NET MAUI in .NET 10 Preview 1 (#9727) * [Draft] .NET MAUI in .NET 10 Preview 1 * Update release-notes/10.0/preview/preview1/dotnetmaui.md Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com> * Update release-notes/10.0/preview/preview1/dotnetmaui.md Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com> * Apply suggestions from code review Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com> * cleanup * add info about handlers * Update dotnetmaui.md added Android notes * Update dotnetmaui.md removed community contributions section since we don't have any yet. * cleanup * add ios information --------- Co-authored-by: James Montemagno <james.montemagno@gmail.com> Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com> * update md * trailing * Update wpf.md * Update release-notes/10.0/preview/preview1/10.0.0-preview.1.md Co-authored-by: Jon Galloway <jongalloway@gmail.com> * Update release-notes/10.0/preview/preview1/README.md Co-authored-by: Jon Galloway <jongalloway@gmail.com> * updates * Call out pruning warnings in P1 release notes (#9752) * Call out pruning warnings * Update release-notes/10.0/preview/preview1/sdk.md Co-authored-by: Martin Costello <martin@martincostello.com> * Update release-notes/10.0/preview/preview1/sdk.md --------- Co-authored-by: Martin Costello <martin@martincostello.com> * Update 10.0.0-preview.1.md * Add files via upload * Update releases-index.json * Add files via upload * Update release-notes/10.0/preview/preview1/10.0.0-preview.1.md Co-authored-by: Logan Bussell <loganbussell@microsoft.com> --------- Co-authored-by: Jon Galloway <jongalloway@gmail.com> Co-authored-by: Rich Lander <rlander@microsoft.com> Co-authored-by: Rich Lander <rich@lander.ca> Co-authored-by: maumar <maumar@microsoft.com> Co-authored-by: Kathleen Dollard <kdollard@microsoft.com> Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com> Co-authored-by: Bill Wagner <wiwagn@microsoft.com> Co-authored-by: Martin Costello <martin@martincostello.com> Co-authored-by: Kathleen Dollard <kathleen.dollard@microsoft.com> Co-authored-by: Merrie McGaw <mmcgaw@microsoft.com> Co-authored-by: Loni Tra <lonitra@microsoft.com> Co-authored-by: Tanya Solyanik <tanyaso@microsoft.com> Co-authored-by: Chet Husk <baronfel@users.noreply.github.com> Co-authored-by: Logan Bussell <loganbussell@microsoft.com> Co-authored-by: Matt Thalman <mthalman@microsoft.com> Co-authored-by: Jeremy Barton <jbarton@microsoft.com> Co-authored-by: Tarek Mahmoud Sayed <10833894+tarekgh@users.noreply.github.com> Co-authored-by: carlossanlop <1175054+carlossanlop@users.noreply.github.com> Co-authored-by: Aman Khalid <amankhalid@microsoft.com> Co-authored-by: Andy Ayers <andya@microsoft.com> Co-authored-by: Pranav Senthilnathan <pranas@microsoft.com> Co-authored-by: Daniel Roth <daroth@microsoft.com> Co-authored-by: David Ortinau <david.ortinau@microsoft.com> Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com> Co-authored-by: Nikolche Kolev <nikolev@microsoft.com> Co-authored-by: Rahul Bhandari <rbhanda@microsoft.com>
4.4 KiB
.NET Runtime in .NET 10 Preview 1 - Release Notes
.NET 10 Preview 1 includes new .NET Runtime features & enhancements:
.NET Runtime updates in .NET 10:
- What's new in .NET 10 documentation
Array Interface Method Devirtualization
Reducing the abstraction overhead of popular language features is one of the code generation team's focus areas for .NET 10. In pursuit of this goal, we have expanded the JIT's ability to devirtualize method calls to cover array interface methods.
Consider the typical approach of looping over an array:
static int Sum(int[] array)
{
int sum = 0;
for (int i = 0; i < array.Length; i++)
{
sum += array[i];
}
return sum;
}
This code shape is easy for the JIT to optimize, mainly because there aren't any virtual calls to reason about. Instead, the JIT can focus on removing bounds checks on the array access, and applying the loop optimizations we added in .NET 9. Let's tweak the above example to add some virtual calls:
static int Sum(int[] array)
{
int sum = 0;
IEnumerable<int> temp = array;
foreach (var num in temp)
{
sum += num;
}
return sum;
}
The type of the underlying collection is clear, and the JIT should be able to transform this snippet into the first one. However, array interfaces are implemented differently from "normal" interfaces, such that the JIT does not know how to devirtualize them. This means the enumerator calls in the for-each loop remain virtual, blocking multiple optimizations: inlining, stack allocation, and others.
The JIT can now devirtualize and inline array interface methods, thanks to work in dotnet/runtime #108153 and dotnet/runtime #109209. This is the first of many steps we will be taking to achieve performance parity between the above implementations, as detailed in our de-abstraction plans for .NET 10.
Stack Allocation of Arrays of Value Types
In .NET 9, the JIT gained the ability to allocate objects on the stack, when the object is guaranteed to not outlive its parent method. Not only does stack allocation reduce the number of objects the GC has to track, but it also unlocks other optimizations: For example, after an object has been stack-allocated, the JIT can consider replacing it entirely with its scalar values. Because of this, stack allocation is key to reducing the abstraction penalty of reference types.
Thanks to dotnet/runtime #104906 (credit: @hez2010), the JIT will now stack-allocate small, fixed-sized arrays of value types that don't contain GC pointers when it can make the same lifetime guarantees described above. Consider the following example:
static void Sum()
{
int[] numbers = {1, 2, 3};
int sum = 0;
for (int i = 0; i < numbers.Length; i++)
{
sum += numbers[i];
}
Console.WriteLine(sum);
}
Because the JIT knows numbers is an array of only three integers at compile-time, and it does not outlive a call to Sum, it will now allocate it on the stack.
Among other stack allocation enhancements, we plan to expand this ability to arrays of reference types in the coming previews.
AVX10.2 Support
dotnet/runtime #111209 (credit: @khushal1996) enables support for the Advanced Vector Extensions (AVX) 10.2 for x64-based processors. The new intrinsics available in the System.Runtime.Intrinsics.X86.Avx10v2 class can be tested once capable hardware is available. In the next several previews, we plan to further incorporate AVX10.2 support into the JIT's emitter to take full advantage of the instruction set's features.
Because AVX10.2-enabled hardware is not yet available, the JIT's support for AVX10.2 is disabled by default for now. We plan to enable it once we have thoroughly tested it.