-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
.NET 6.0 #2388
Conversation
Not much I can do about them ATM
At least runtime is no longer needed for our STD plugin, not sure about the dictionary
This reverts commit 11f603d.
AES decryption is broken almost entirely without SteamRE/SteamKit#1006 in place. It seems plausible to wait for .NET 6.0 and SK2 fix (or confirmation that it's no longer required) at this point. |
SK2 fixed the problem (hooray), so I can keep testing it on the side. |
# Conflicts: # .github/appveyor.yml # Directory.Build.props # Dockerfile # Dockerfile.Service
With .NET 6 Preview 7 |
Nice, will take into account after the merge. |
Several more improvement ideas:
For details see this blog post (pretty long - use your browsers search function) |
No, this breaks support for other languages than default Everything else seems rational. |
As .NET 6.0 implements C# 10 we will be able to use const interpolated strings. This would make strings like in internal const string ProjectURL = "https://github.com/" + GithubRepo; internal const string ProjectURL = $"https://github.com/{GithubRepo}"; |
Adding to the list:
|
Bump in the main repo afterwards, microsoft servers are unstable today and I don't want more failed CIs to retry. |
Preview PR for the brave
Blockers for now:
cc.sh
include-prerelease
Wishlist for later (in the main branch once we get it merged):
osx-arm64
variant Apple Silicon Support? #2408.PeriodicTimer
where we currently useTimer
chmod +x
due to ZipFile changesstatic readonly Random Random
fromCore/Utilities.cs
and replace its uses withSystem.Random.Shared
, which already provides a thread-safe singleton instance, enabling us to remove ourlock
statements completely.Core.OS
currently usesProcess.GetCurrentProcess().MainModule?.FileName
to get the processes file name and provide it to other parts of the assembly. Apart from the fact that theProcess
-instance is never being disposed, we will be able to replace all uses of ourstatic readonly string
withEnvironment.ProcessPath
.HttpHeaders.Add(...)
withHttpHeaders.TryAddWithoutValidation(...)
inWeb/WebBrowser
makes any sense.CollectionsMarshal.GetValueRefOrAddDefault(...)
in numerous places. This call can be used to shorten various statements likeclassIDsToGive[ourItem] = classIDsToGive.TryGetValue(ourItem, out uint ourGivenAmount) ? ourGivenAmount + 1 : 1;
toCollectionsMarshal.GetValueRefOrAddDefault(classIDsToGive, ourItem, out _)++;
, yielding a significant performance increase (52% of previous execution time for that line of code). This can be used in multiple places each inCore/Statistics
andSteam/Exchange/Trading
.IEnumerable.TryGetNonEnumeratedCount(...)
.HttpClient
.EnableCompressionInSingleFile=true
if possible, should help with OS-specific builds size.WebProxy
now supportssocks5://
, both on wiki and in release.DOTNET_TieredPGO=1
,DOTNET_TC_QuickJitForLoops=1
andDOTNET_ReadyToRun=0
in performance section.