You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The rationale for this odd pattern of fragmented dead code was to diff for future updates to HashSet -- but the live copy of HashSet here has since changed so substantially that it can likely hardly be diffed at all.
As a matter of healthy cleanup, I suggest to delete all the dead code.
There have also been several improvements to HashSet since the copy was done, for perf reasons - either obvious ones or to produce better codegen. It would be nice to copy them (again, without bringing dead code) for some small perf wins. I expect this will be fairly easy to do by eyeballing them side by side.
The text was updated successfully, but these errors were encountered:
I have been attempting this. The CORE version was re-written in June of 2020. I think it might be best to take that version and refactor it with the changes from MSBUILD.
I wouldn't spend a lot of time on this: we don't have any indication that the current implementation is causing a bottleneck today, and changes are likely to be hard to review due to the overall complexity of the class.
We have a partial copy of HashSet as it existed in the .NET Framework circa 2008 or something, with the following comment:
msbuild/src/Build/Collections/RetrievableEntryHashSet/HashSet.cs
Lines 19 to 39 in 6a79376
The rationale for this odd pattern of fragmented dead code was to diff for future updates to HashSet -- but the live copy of HashSet here has since changed so substantially that it can likely hardly be diffed at all.
As a matter of healthy cleanup, I suggest to delete all the dead code.
There have also been several improvements to HashSet since the copy was done, for perf reasons - either obvious ones or to produce better codegen. It would be nice to copy them (again, without bringing dead code) for some small perf wins. I expect this will be fairly easy to do by eyeballing them side by side.
The text was updated successfully, but these errors were encountered: