Skip to content
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

Remaining feedback from ILLink merge #79677

Merged
merged 3 commits into from
Dec 22, 2022
Merged

Conversation

tlakollo
Copy link
Contributor

Move ILLink MSBuild dependencies into Versions.props MSBuild section, and use a consistent MSBuild version
Update the readme from linker to state is a project and not a repository
Uses a live build of ilasm instead of relying on prebuilt bits from Microsoft.NET.Sdk.IL
Remove a unnecessary DefineConstant that is imported via SDK
Avoid having hardcoded package versions
Removes the illink PATENTS.txt, runtime's PATENTS.txt already takes into account Mono given that it has a mono partition

Move ILLink MSBuild dependencies into Versions.props MSBuild section, and use a consistent MSBuild version
Update the readme from linker to state is a project and not a repository
Uses a live build of ilasm instead of relying on prebuilt bits from Microsoft.NET.Sdk.IL
Remove a unnecesary DefineConstant that is imported via SDK
Avoid having hardcoded package versions
Removes the illink PATENTS.txt, runtime's PATENTS.txt already takes into account Mono given that it has a mono partition
@tlakollo tlakollo added the area-Tools-ILLink .NET linker development as well as trimming analyzers label Dec 14, 2022
@tlakollo tlakollo added this to the 8.0.0 milestone Dec 14, 2022
@tlakollo tlakollo self-assigned this Dec 14, 2022
@ghost
Copy link

ghost commented Dec 14, 2022

Tagging subscribers to this area: @agocke, @sbomer, @vitek-karas
See info in area-owners.md if you want to be subscribed.

Issue Details

Move ILLink MSBuild dependencies into Versions.props MSBuild section, and use a consistent MSBuild version
Update the readme from linker to state is a project and not a repository
Uses a live build of ilasm instead of relying on prebuilt bits from Microsoft.NET.Sdk.IL
Remove a unnecessary DefineConstant that is imported via SDK
Avoid having hardcoded package versions
Removes the illink PATENTS.txt, runtime's PATENTS.txt already takes into account Mono given that it has a mono partition

Author: tlakollo
Assignees: tlakollo
Labels:

area-Tools-ILLink

Milestone: 8.0.0

@@ -68,7 +68,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="System.Security.Permissions" Version="5.0.0" />
<PackageReference Include="System.Security.Permissions" Version="$(SystemSecurityPermissionsVersion)" />
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's unfortunate that we don't have a good way to establish a live dependency here without bringing in the entire libs build graph. You clearly stated that when building the linker, you want to avoid to build the "clr+libs" subsets which is why you chose to build against an LKG instead. But by using an LKG, we now bring in these OOB prebuilts that we can either add to dependency flow or just keep pinned to a static version.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we refactor these tests to be part of the libs test subset, or some test subset that does depend on both libs and linker?

Copy link
Member

@ViktorHofer ViktorHofer Dec 17, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, we can always sequence them very late or make them depend on the entire libs subset to be built but that's not what the linker team wants. They prefer the least number of pre-steps to build and test the linker, and depending on an LKG seems like the right compromise here.

Another thought, we could make sure that these tests depend on the NetCoreAppPrevious asset of these OOB libraries instead of NetCoreAppCurrent which would be achievable via a ProjectReference and a SetTargetFramework=$(NetCoreAppPrevious) metadata on it. Obviously, that would only work for projects that don't contribute to source build (i.e. tests).

Copy link
Member

@ViktorHofer ViktorHofer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM aside from the README.md feedback. Thanks a lot

@tlakollo tlakollo merged commit d356088 into dotnet:main Dec 22, 2022
@tlakollo tlakollo deleted the ILLinkFeedback2 branch December 22, 2022 01:24
@build-analysis build-analysis bot mentioned this pull request Dec 22, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Jan 21, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Tools-ILLink .NET linker development as well as trimming analyzers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants