-
Notifications
You must be signed in to change notification settings - Fork 117
Upgrade SWBUtil to Swift 6 #750
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
Upgrade SWBUtil to Swift 6 #750
Conversation
@swift-ci test |
5e86832
to
54edb9b
Compare
This also required a bit of a rethink of the plugin manager now that actor isolation checking is enabled for types defined in SWBUtil. We introduce a new plugin manager type and cover protocol representing an immutable view of the plugin loading state. This is constructed from the mutable plugin manager just prior to core initialization, ensuring Core and everything underneath it have a completely immutable view of the plugin loading state, without having to worry about async/actors, making all of the extension points accessible from synchronous nonisolated code.
54edb9b
to
e80c447
Compare
@swift-ci test |
Heads-up, this broke our CI:
I believe Swift CI will soon break too on this build: https://ci-external.swift.org/job/swift-main-windows-toolchain/1554/ |
extern FILE * const swb_stdout(); | ||
extern FILE * const swb_stderr(); | ||
|
||
FILE * const swb_stdout() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe this and swb_stderr()
below need to be marked with __declspec(dllexport)
on Windows.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#751 might fix it, I'll run it on our CI to test.
This also required a bit of a rethink of the plugin manager now that actor isolation checking is enabled for types defined in SWBUtil. We introduce a new plugin manager type and cover protocol representing an immutable view of the plugin loading state. This is constructed from the mutable plugin manager just prior to core initialization, ensuring Core and everything underneath it have a completely immutable view of the plugin loading state, without having to worry about async/actors, making all of the extension points accessible from synchronous nonisolated code.