Skip to content

Add separate step for marking public surface of libraries#793

Closed
sbomer wants to merge 1 commit intodotnet:masterfrom
sbomer:rootInterfaceImplsSeparateStep
Closed

Add separate step for marking public surface of libraries#793
sbomer wants to merge 1 commit intodotnet:masterfrom
sbomer:rootInterfaceImplsSeparateStep

Conversation

@sbomer
Copy link
Copy Markdown
Member

@sbomer sbomer commented Oct 18, 2019

@marek-safar I'm investigating the approach we discussed of creating a new step to replace ResolveFromAssemblyStep and MarkStep, and wanted to share what it looks like so far.

  • ResolveFromAssemblyStep no longer deals with visibility
  • '-r' instead uses MarkPublicFromAssemblyStep
  • '-r' assemblies are tracked as public in the LinkContext, and they
    aren't optimized in MarkStep.
  • Currently if the same assembly is passed via '-r' and '-a', it will
    still be considered a public assembly by MarkStep and not
    optimized. This probably shouldn't be a valid combination of
    parameters in the first place.
  • MarkPublicFromAssemblyStep does a combination of what
    ResolveFromAssemblyStep and MarkStep used to do. It was created by
    copying over sources from those two steps, and unifying some of the
    overlapping logic (for example the Initialize* logic from MarkStep
    and the Mark* logic from ResolveFromAssemblyStep). It hasn't yet
    been pruned, so still has unnecessary optimizations from MarkStep.

- ResolveFromAssemblyStep no longer deals with visibility
- '-r' instead uses MarkPublicFromAssemblyStep
- '-r' assemblies are tracked as public in the LinkContext, and they
  aren't optimized in MarkStep.
- Currently if the same assembly is passed via '-r' and '-a', it will
  still be considered a public assembly by MarkStep and not
  optimized. This probably shouldn't be a valid combination of
  parameters in the first place.
- MarkPublicFromAssemblyStep does a combination of what
  ResolveFromAssemblyStep and MarkStep used to do. It was created by
  copying over sources from those two steps, and unifying some of the
  overlapping logic (for example the Initialize* logic from MarkStep
  and the Mark* logic from ResolveFromAssemblyStep). It hasn't yet
  been pruned, so still has unnecessary optimizations from MarkStep.
@sbomer sbomer mentioned this pull request Oct 18, 2019
@sbomer sbomer closed this Nov 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant