-
-
Notifications
You must be signed in to change notification settings - Fork 16
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
Add basic Sendable correctness, update to SQLite 3.43.1 #51
Conversation
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.
We could use the NIO helpers to avoid having to make stuff @unchecked Sendable
but I'm not too fussed either way since this isn't as critical as Postgres/MySQL
} | ||
extension UnsafeTransfer: Equatable where Wrapped: Equatable {} | ||
extension UnsafeTransfer: Hashable where Wrapped: Hashable {} | ||
|
||
final class UnsafeMutableTransferBox<Wrapped>: @unchecked 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.
I think we could use NIOLoopBoundBox
in these instances but open to keeping what we have
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.
@gwynne either way Wrapped
should be Sendable
otherwise mutating it is even less safe. Since SQLLiteRow
is already Sendable
, you could just add the Sendable
constraint.
…piler warnings. Also satisfy ExistentialAny requirements.
…dd a missing `private` and a missing `final` in the same file.
c4a6a48
to
e263e27
Compare
…ames of the generated files to use the more consistent prefixing, and tweak the source patch to not need updating with every SQLite version.
e263e27
to
cc75a1a
Compare
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.
You're not going to like my comments 🤣
Some Sendable queries, might be null and void if we just use a custom executor for the next version anyway.
Love the plugin!
67e1fbd
to
822ca66
Compare
…s not valid even to compile on non-Apple platforms.
API breakage failure is spurious. Dependents check failure is fixed by vapor/sqlite-kit#105. |
Plugins/VendorSQLite/AsyncNotOmittingEmptySubsequencesLineSequence.swift
Outdated
Show resolved
Hide resolved
} | ||
extension UnsafeTransfer: Equatable where Wrapped: Equatable {} | ||
extension UnsafeTransfer: Hashable where Wrapped: Hashable {} | ||
|
||
final class UnsafeMutableTransferBox<Wrapped>: @unchecked 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.
@gwynne either way Wrapped
should be Sendable
otherwise mutating it is even less safe. Since SQLLiteRow
is already Sendable
, you could just add the Sendable
constraint.
…mselves Sendable, despite it being pointless.
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #51 +/- ##
=======================================
Coverage 66.36% 66.36%
=======================================
Files 8 8
Lines 669 669
=======================================
Hits 444 444
Misses 225 225
|
These changes are now available in 1.7.0 |
Changes in this release:
StrictConcurrency=complete
with no warnings in this package.ExistentialAny
.swift package --disable-sandbox vendor-sqlite
. Accepts--help
,--verbose
, and--force
options. (Users should not need to run this command.)SQLCustomFunction
feature's API documentation has been heavily improved.