-
Notifications
You must be signed in to change notification settings - Fork 653
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
Adopt strict concurrency in _NIOBase64 #2838
Conversation
Motivation: Another brick in the wall. Modifications: - Make Base64 an enum, not a struct, as it's a namespace. - Make Base64 Sendable, which it trivially is. Result: Another pass, another success
@@ -35,7 +35,7 @@ public enum Base64Error: Error { | |||
} | |||
|
|||
@usableFromInline | |||
internal struct Base64 { | |||
internal enum Base64: Sendable { |
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.
Do we need this to be Sendable
even if it is just a namespace?
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.
Yes. Because it's @usableFromInline
, -require-explicit-sendable
applies to it, and that flag does not notice that you can't actually form a value to it.
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.
More broadly, -require-explicit-sendable
forces our hand for everything. "Need" doesn't really come into it: we have to mark anything it wants us to mark.
8d5da1b
to
e46a477
Compare
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [apple/swift-nio](https://redirect.github.com/apple/swift-nio) | minor | `2.70.0` -> `2.72.0` | --- ### Release Notes <details> <summary>apple/swift-nio (apple/swift-nio)</summary> ### [`v2.72.0`](https://redirect.github.com/apple/swift-nio/releases/tag/2.72.0) [Compare Source](https://redirect.github.com/apple/swift-nio/compare/2.71.0...2.72.0) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### SemVer Minor - Add .compact format to ByteBuffer's hexdump method by [@​supersonicbyte](https://redirect.github.com/supersonicbyte) in [https://github.com/apple/swift-nio/pull/2856](https://redirect.github.com/apple/swift-nio/pull/2856) ##### SemVer Patch - Make `assumeIsolated` work with SerialExecutors that are backed by EventLoops by [@​fabianfett](https://redirect.github.com/fabianfett) in [https://github.com/apple/swift-nio/pull/2865](https://redirect.github.com/apple/swift-nio/pull/2865) #### New Contributors - [@​supersonicbyte](https://redirect.github.com/supersonicbyte) made their first contribution in [https://github.com/apple/swift-nio/pull/2856](https://redirect.github.com/apple/swift-nio/pull/2856) **Full Changelog**: apple/swift-nio@2.71.0...2.72.0 ### [`v2.71.0`](https://redirect.github.com/apple/swift-nio/releases/tag/2.71.0) [Compare Source](https://redirect.github.com/apple/swift-nio/compare/2.70.0...2.71.0) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### SemVer Minor - Adopt strict concurrency and Sendable in `NIOConcurrencyHelpers` by [@​Lukasa](https://redirect.github.com/Lukasa) in [https://github.com/apple/swift-nio/pull/2832](https://redirect.github.com/apple/swift-nio/pull/2832) - Adopt strict concurrency in `_NIODataStructures` by [@​Lukasa](https://redirect.github.com/Lukasa) in [https://github.com/apple/swift-nio/pull/2835](https://redirect.github.com/apple/swift-nio/pull/2835) - Provide documentation and context information for `NIOTooManyBytesError` by [@​cmcgee1024](https://redirect.github.com/cmcgee1024) in [https://github.com/apple/swift-nio/pull/2831](https://redirect.github.com/apple/swift-nio/pull/2831) ##### SemVer Patch - Adopt strict concurrency in `_NIOBase64` by [@​Lukasa](https://redirect.github.com/Lukasa) in [https://github.com/apple/swift-nio/pull/2838](https://redirect.github.com/apple/swift-nio/pull/2838) - Remove symlinks from resources by [@​Lukasa](https://redirect.github.com/Lukasa) in [https://github.com/apple/swift-nio/pull/2841](https://redirect.github.com/apple/swift-nio/pull/2841) - Fix global concurrency hook integration test by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [https://github.com/apple/swift-nio/pull/2857](https://redirect.github.com/apple/swift-nio/pull/2857) ##### Other Changes - Update wording from `ubuntu` to `Ubuntu` at README.md by [@​lamtrinhdev](https://redirect.github.com/lamtrinhdev) in [https://github.com/apple/swift-nio/pull/2830](https://redirect.github.com/apple/swift-nio/pull/2830) - Update the triggers for the Semantic Version label check by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [https://github.com/apple/swift-nio/pull/2833](https://redirect.github.com/apple/swift-nio/pull/2833) - Add `.editorconfig` file by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [https://github.com/apple/swift-nio/pull/2829](https://redirect.github.com/apple/swift-nio/pull/2829) - Fix test availability by [@​glbrntt](https://redirect.github.com/glbrntt) in [https://github.com/apple/swift-nio/pull/2836](https://redirect.github.com/apple/swift-nio/pull/2836) - Strict concurrency the early tests by [@​Lukasa](https://redirect.github.com/Lukasa) in [https://github.com/apple/swift-nio/pull/2840](https://redirect.github.com/apple/swift-nio/pull/2840) - Fix `NIOFileSystem` flaky tests by [@​gjcairo](https://redirect.github.com/gjcairo) in [https://github.com/apple/swift-nio/pull/2842](https://redirect.github.com/apple/swift-nio/pull/2842) - Improve `testTasksScheduledDuringShutdownAreAutomaticallyCancelled` by [@​glbrntt](https://redirect.github.com/glbrntt) in [https://github.com/apple/swift-nio/pull/2843](https://redirect.github.com/apple/swift-nio/pull/2843) - Align benchmark scaling and minimum samples by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [https://github.com/apple/swift-nio/pull/2839](https://redirect.github.com/apple/swift-nio/pull/2839) - Explain why `ThreadLocalVariable` isn't Sendable. by [@​Lukasa](https://redirect.github.com/Lukasa) in [https://github.com/apple/swift-nio/pull/2845](https://redirect.github.com/apple/swift-nio/pull/2845) - \[CI] Don't persist git credentials in CI by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [https://github.com/apple/swift-nio/pull/2847](https://redirect.github.com/apple/swift-nio/pull/2847) - \[CI] Mark the workspace as safe for the matrix job by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [https://github.com/apple/swift-nio/pull/2848](https://redirect.github.com/apple/swift-nio/pull/2848) - Pin DocC to below 1.4 by [@​Lukasa](https://redirect.github.com/Lukasa) in [https://github.com/apple/swift-nio/pull/2854](https://redirect.github.com/apple/swift-nio/pull/2854) - \[CI] Make container images configurable in soundness and matrix jobs … by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [https://github.com/apple/swift-nio/pull/2851](https://redirect.github.com/apple/swift-nio/pull/2851) - Update release.yml by [@​FranzBusch](https://redirect.github.com/FranzBusch) in [https://github.com/apple/swift-nio/pull/2850](https://redirect.github.com/apple/swift-nio/pull/2850) #### New Contributors - [@​lamtrinhdev](https://redirect.github.com/lamtrinhdev) made their first contribution in [https://github.com/apple/swift-nio/pull/2830](https://redirect.github.com/apple/swift-nio/pull/2830) - [@​cmcgee1024](https://redirect.github.com/cmcgee1024) made their first contribution in [https://github.com/apple/swift-nio/pull/2831](https://redirect.github.com/apple/swift-nio/pull/2831) **Full Changelog**: apple/swift-nio@2.70.0...2.71.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43Mi4wIiwidXBkYXRlZEluVmVyIjoiMzguNzIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: cgrindel-self-hosted-renovate[bot] <139595543+cgrindel-self-hosted-renovate[bot]@users.noreply.github.com>
Motivation:
Another brick in the wall.
Modifications:
Result:
Another pass, another success