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

Adopt strict concurrency in _NIOBase64 #2838

Merged
merged 5 commits into from
Aug 12, 2024

Conversation

Lukasa
Copy link
Contributor

@Lukasa Lukasa commented Aug 12, 2024

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

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
@Lukasa Lukasa added the semver/patch No public API change. label Aug 12, 2024
@@ -35,7 +35,7 @@ public enum Base64Error: Error {
}

@usableFromInline
internal struct Base64 {
internal enum Base64: Sendable {
Copy link
Member

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?

Copy link
Contributor Author

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.

Copy link
Contributor Author

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.

@Lukasa Lukasa force-pushed the cb-strict-concurrency-base64 branch from 8d5da1b to e46a477 Compare August 12, 2024 10:39
@Lukasa Lukasa merged commit 1f3dc9c into apple:main Aug 12, 2024
28 of 29 checks passed
@Lukasa Lukasa deleted the cb-strict-concurrency-base64 branch August 12, 2024 12:01
cgrindel-self-hosted-renovate bot referenced this pull request in cgrindel/rules_swift_package_manager Sep 10, 2024
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
[@&#8203;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
[@&#8203;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

- [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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

- [@&#8203;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)
- [@&#8203;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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
semver/patch No public API change.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants