Skip to content

Prepare for Native AOT#246

Merged
vcsjones merged 13 commits intomainfrom
native-aot
May 6, 2024
Merged

Prepare for Native AOT#246
vcsjones merged 13 commits intomainfrom
native-aot

Conversation

@vcsjones
Copy link
Owner

@vcsjones vcsjones commented May 6, 2024

One of the goals (see #202) that I missed for the AST 5.0 release is that it was not publishable as a Native AOT application.

I ran in to a number of problems while investigating this that this PR intends to solve.

  1. At the time of the investigation, parts of the Azure SDK were not trimming compatible. This has since been resolved.
  2. At the time of the investigation, the command line parsing library that was used is not Native AOT friendly. This library is also in maintenance mode, so it was time to replace it. This PR replaces the command line parsing with a new parser with a specific design goal of being AOT / trimming compatible.

The new parser is not a drop in replacement. I made an effort to make sure the command line people are already using should remain valid, so it shouldn't break anyone. That said, the differences are big enough that there is likely a scenario or input that I have not tested. When we get closer to a v6.0 release, I intend to publish pre-release builds so that hopefully the community can test the new command line parser for compatibility breaks.

That said, after these changes, AzureSignTool can be built with zero trimming warnings or suppressions. The final AzureSignTool binary is 12.5 MB. I might be able to whittle it down a bit more, but considering that this has a whole bunch of the Azure SDK in it, I think it's a reasonable starting point and isn't big beyond usefulness.

@vcsjones vcsjones marked this pull request as draft May 6, 2024 00:59
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