Gabor Horvath
402ad33463
[StrictMemorySafety] Check the safety of return types of calls
...
Previously, we skipped checking the return type of a function for safety
as we expected to warn at the use of the returned value:
let x = returnsUnsafe()
usesUnsafe(x) // warn here
Unfortunately, this resulted in missing some unsafe constructs that can
introduce memory safety issues when the use of the return value had a
different shape resulting in false negatives for cases like:
return returnsUnsafe()
or
usesUnsafe(returnsUnsafe())
This PR changes the analysis to always take return types of function
calls into account.
rdar://157237301
2025-08-05 12:16:44 +01:00
Doug Gregor
050a514588
[Strict memory safety] Update standard library for unsafe treated as a call effect
2025-04-25 21:54:23 -07:00
Doug Gregor
d9b5a4621f
Enable strict memory safety in the Distributed module
2025-02-26 14:28:26 -08:00
Konrad `ktoso` Malawski
d41c9c2e8b
[Distributed] improve control flow of result buffer init detection
2024-10-07 23:26:47 +09:00
Konrad `ktoso` Malawski
e8c25a456d
[Distributed] fix deinitialization of result buffer
2024-10-05 14:40:11 +09:00
Konrad `ktoso` Malawski
41d8962783
Revert "Revert "Revert "[Distributed] remote calls over-retain returned values"""
2024-10-04 06:53:43 +09:00
Konrad `ktoso` Malawski
62b04be2fa
Revert "Revert "[Distributed] remote calls over-retain returned values""
2024-09-21 14:50:35 +09:00
Konrad `ktoso` Malawski
9779137dc9
Revert "[Distributed] remote calls over-retain returned values"
2024-09-21 13:58:43 +09:00
Konrad `ktoso` Malawski
a12420a739
[Distributed] Must deinitialize return value of remoteCall
...
resolves rdar://136338200
resolves rdar://136313477
2024-09-20 14:33:46 +09:00
Konrad `ktoso` Malawski
8a88569c6b
[Distributed] remoteCallVoid is a new requirement in Swift 6.0
...
And it is handled compatibly because all existing implementations must
have already implemented it before -- it was an ad-hoc requirement
before Swift 6.0, and now it has become a real requirement - the same as
all the other ad-hoc requirements relying on the Serialization
Requirement
2024-06-12 16:32:30 +09:00
Konrad `ktoso` Malawski
3b95855a28
[Distributed] Reword docs since we no longer have ad-hoc requirements
2024-06-12 16:32:30 +09:00
Holly Borla
5d9ad87a82
[Concurrency] Task executors are available in Swift 6.0.
2024-03-13 09:56:24 -07:00
Ben Barham
1d2ef3a003
[stdlib] Move the remaining 5.11 availability to 6.0
...
Presumably this was a mid-air collision between two PRs. Just update the
remaining references.
2024-02-22 19:51:27 -08:00
Pavel Yaskevich
f9ec3b1d7e
Merge pull request #71796 from xedin/make-dist-new-requirements-conditionally-available
...
[Distributed] Make new protocol requirements conditionally available
2024-02-22 15:18:52 -08:00
Konrad `ktoso` Malawski
1d44e2e8e0
[Distributed] Undo new record and mangling scheme for dist.p.witnesses ( #71801 )
2024-02-22 23:02:29 +09:00
Pavel Yaskevich
2bd1825a1f
[stdlib] Distributed: Mark all new protocol requirements as available starting from stdlib 5.11
2024-02-21 13:29:47 -08:00
Pavel Yaskevich
f5ed53d918
Revert "[stdlib] Distributed: Remove invokeOnReturn requirement and its synthesis"
...
This reverts commit 961aa30d46 .
2024-02-20 20:33:02 -08:00
Konrad `ktoso` Malawski
551b07ba80
[Distributed] Fix _executeDistributedTarget ABI ( #71725 )
2024-02-19 21:23:11 -08:00
Konrad `ktoso` Malawski
e9c7f3c382
[Distributed] Target identifiers for protocol calls ( #70928 )
2024-02-16 07:19:20 -08:00
Konrad `ktoso` Malawski
827e6a5708
[Distributed] Add DistributedProtocol macro ( #71090 )
2024-02-16 07:27:34 +09:00
Pavel Yaskevich
a2caaa3d03
[Distributed] Promote SerializationRequirement as a primary associated type for encoder/decoder/result
2024-02-12 14:26:30 -08:00
Pavel Yaskevich
961aa30d46
[stdlib] Distributed: Remove invokeOnReturn requirement and its synthesis
...
This is no longer necessary because `onReturn` is a protocol
requirement now.
2024-02-12 14:26:30 -08:00
Pavel Yaskevich
6c7000ae0b
[Sema/IRGen] Extend ad-hoc requirement handling to DistributedTargetInvocationResultHandler.onReturn
2024-02-12 14:26:30 -08:00
Pavel Yaskevich
4d45701046
[Sema/IRGen] Extend ad-hoc requirement handling to DistributedTargetInvocationDecoder.decodeNextArgument
2024-02-12 14:26:30 -08:00
Pavel Yaskevich
4f32111bf8
[Sema/IRGen] Extend ad-hoc requirement handling to DistributedTargetInvocationEncoder.record{Argument, ReturnType}
2024-02-12 14:26:30 -08:00
Pavel Yaskevich
e59727aa3d
[stdlib] Distributed: Promote remoteCall{Void} into protocol requirements
2024-02-12 13:30:59 -08:00
Konrad `ktoso` Malawski
dfdbe457bf
[Distributed] Support complex generic distributed actors in thunk gen ( #70842 )
2024-01-28 01:26:52 -08:00
Konrad `ktoso` Malawski
1d150c811c
[Distributed] Fix effectiveLabel implemementation to expected semantics
2023-10-11 00:19:34 +09:00
Konrad `ktoso` Malawski
e1527ff9b6
Update stdlib/public/Distributed/DistributedActorSystem.swift
...
Co-authored-by: Kavon Farvardin <kfarvardin@apple.com >
2022-10-13 06:14:32 +09:00
Konrad `ktoso` Malawski
20e1834627
[Distributed] More docs on the InvocationDecoder itself
2022-10-11 23:00:24 +09:00
Konrad `ktoso` Malawski
7d214054b6
[Distributed] More docs for ad-hoc requirements ( #60916 )
2022-09-16 09:38:29 +09:00
swift-ci
a851866920
Merge pull request #60296 from apple/wip-distributed-docs
...
[Distributed] More API documentation
2022-08-18 04:29:48 -07:00
Konrad `ktoso` Malawski
49ae51c37c
small cleanups
2022-08-18 18:07:28 +09:00
Konrad `ktoso` Malawski
968a64eb8b
Apply suggestions from code review
...
Co-authored-by: Yim Lee <yim_lee@apple.com >
2022-08-18 17:04:11 +09:00
Konrad `ktoso` Malawski
1f840d75cc
actor system docs
2022-08-17 22:07:41 +09:00
Konrad `ktoso` Malawski
25e17930cc
[Distributed] more specific errorCodes for dist failures; hide the make error func
2022-08-10 10:39:12 +09:00
Konrad `ktoso` Malawski
2418aeb375
[Distributed] documentation
2022-07-29 12:32:49 +09:00
Konrad `ktoso` Malawski
96462980fe
improve error reporting
2022-07-29 10:44:38 +09:00
Konrad `ktoso` Malawski
febfef97d4
[Distributed] Skeleton implementation of distributed computed properties
2022-06-29 14:49:04 -07:00
Konrad `ktoso` Malawski
6a2778645f
Revert "Merge pull request #59481 from xedin/distributed-computed-properties"
...
This reverts commit 8125a85a8f , reversing
changes made to 728971c5b7 .
2022-06-25 08:49:00 +09:00
Konrad `ktoso` Malawski
5a5b7c007c
towards distributed getters
2022-06-17 12:12:16 -07:00
Max Desiatov
1ef2eeffa4
Fix typo in DistributedActorSystem.swift doc comment
...
`an distributed actor` -> `a distributed actor`
2022-05-29 19:21:43 +01:00
Konrad `ktoso` Malawski
bcd0f64e91
[Distributed] workaround for LocalTestingDAS crashes;
...
This happens to work, but is not a real fix; we are not handling well
types declared in a library evolution enabled library, which this DAS
is. Without this, at runtime, we crash in LocalTestingDAS using actor
initializers
2022-05-07 07:28:55 +09:00
Josh Soref
7a57e7ce99
Spelling stdlib/public/concurrency ( #42443 )
...
* spelling: already
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: appropriate
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: asynchronous
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: cancel
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: divisible
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: execution
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initialized
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: normally
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: preprocessed
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: priority
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: some
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: success
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: suspending
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: the
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: throws
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com >
2022-04-21 11:12:57 -07:00
Josh Soref
644c18ca9b
Spelling stdlib ( #42444 )
...
* spelling: against
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: algorithmic
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: alignment
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: anything
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: architectural
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: architecture
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: are
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: artificial
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: aside
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: available
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: being
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: bidirectional
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: characters
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: circular
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: compatibility
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: compiled
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: correctly
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: covers
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: declaration
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dependencies
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: descriptor
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dictionaries
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dynamic
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: greater
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: hierarchy
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: immortal
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initialize
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initializes
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: iterable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: message
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: minimum
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: multiple
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: originally
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: simplified
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: sophisticated
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: trivia
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: wasn't
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com >
2022-04-19 14:02:43 -07:00
Konrad `ktoso` Malawski
79ad9278b2
[Distributed] Retain adhoc decodeNextArgument in distributed thunk
2022-04-18 16:53:10 -07:00
Konrad `ktoso` Malawski
8d3e7d91c0
[Distributed] ResultHandler.onReturn must be ad-hoc because SerializationRequirement ( #41916 )
...
* [Distributed] Invoke handler.onReturn ad hoc via ast synthesized func
* reformat and cleanup
* remove unused var
2022-03-24 21:44:37 +09:00
Konrad `ktoso` Malawski
5a5d1ba2e6
[Distributed] Implement RemoteCallArgument
2022-03-17 22:55:09 +09:00
Konrad `ktoso` Malawski
20f28f8c3c
[Distributed] make RemoteCallTarget Hashable, add availability
2022-03-17 20:05:31 +09:00
Konrad `ktoso` Malawski
ea29723466
[Distributed] Add name parameter to recordArgument for better interop
2022-03-17 20:05:31 +09:00