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

Rewrite bootstrapper logic to avoid relying on AppDomain #1392

Merged
merged 14 commits into from
Jun 12, 2023

Conversation

glopesdev
Copy link
Member

@glopesdev glopesdev commented May 30, 2023

This PR rewrites several aspects of the bootstrapper executable to avoid depending on AppDomain. Instead, assembly metadata is inspected using MetadataLoadContext and isolated editor sessions are implemented using child processes spawned from the top-level executable.

This is expected to improve both the cross-platform experience of the current editor, and facilitate the transition to .NET 6 where support for multiple AppDomain instances has been removed entirely. Other benefits include proper cleanup of loaded native dependencies (process tear-down will unload both native and managed dependencies) and also resolution of specific issues with drivers crashing when spawned from child AppDomain (currently the workaround was to start these using the --no-boot flag which should no longer be necessary).

Fixes #1383

@glopesdev glopesdev added feature New planned feature fix Pull request that fixes an issue labels May 30, 2023
@glopesdev glopesdev added this to the 2.8 milestone May 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New planned feature fix Pull request that fixes an issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Consider rewriting bootstrapper process without using AppDomain
1 participant