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

IKVM.Tool.Exporter #125

Merged
merged 5 commits into from
Aug 20, 2022
Merged

IKVM.Tool.Exporter #125

merged 5 commits into from
Aug 20, 2022

Conversation

wasabii
Copy link
Contributor

@wasabii wasabii commented Aug 19, 2022

ikvmstub is going to be known as the 'Exporter". Because it's really modeled after tlbexp and tlbimp from the COM world. Exporting a .NET assembly to Java, etc.

Most of the logic is moved to IKVM.Tool.Exporter, and then consumed from ikvmstub for now. Introduced an abstract to allow running the exporter in a 'context', such as an AppDomain or AssemblyLoadContext, which will allow programmatic invocation without polluting Universe/JVM. This is non ideal, but is required because of how IKVM.Runtime is structured currently.

Replaced ikvmstub's command line parsing with a System.CommandLine implementation. This is just cleaner. Preserves the existing operation (single -'s), but also allows -- and space separation POSIX style. An Options/Tool split can be used to invoke the tool programmatically.

Introduced a way of invoking IkvmExporter using a context: either an AppDomain or an AssemblyLoadContext. Because of how IKVM.Runtime works, loading types, programatic invocation of the stub generator can sort of pollute the runtime. So, isolating it prevents that. Should make it possible to run as a task at a later point.
@wasabii wasabii merged commit c9eb71a into develop Aug 20, 2022
@asbjornu asbjornu mentioned this pull request Sep 2, 2022
@wasabii wasabii deleted the feature/ikvmexp branch September 19, 2022 19:48
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.

None yet

1 participant