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
Yim Lee
bb9014017a
Offer LocalTestingDistributedActorSystem
...
Add local-only actor system `LocalTestingDistributedActorSystem` to make code and tutorial development easier.
rdar://89580224
2022-03-15 12:34:28 -07:00
Konrad `ktoso` Malawski
6caeecdc58
fix locating constructor
2022-03-15 23:50:28 +09:00
Konrad `ktoso` Malawski
7718448636
[Distributed] Simplify repr of RemoteCallTarget
2022-03-15 18:03:13 +09:00
Konrad `ktoso` Malawski
4fa0855907
[Distributed] RemoteCallTarget now pretty prints and hides mangled names
2022-03-15 17:34:04 +09:00
Konrad `ktoso` Malawski
8925f9d8fb
[Distributed] recordErrorType is not ad-hoc requirement anymore
2022-03-15 17:13:42 +09:00
Konrad `ktoso` Malawski
6d502fc042
[Distributed] Implicit Codable conformance for Dist Actors
...
[Witness] implement dump() on witness
2022-03-11 18:07:14 +09:00
Konrad `ktoso` Malawski
5ab8e0834d
[Distributed] Reimplement distributed call thunks completely in AST ( #41616 )
...
* [Distributed] dist actor always has default executor (currently)
* [Distributed] extra test for missing makeEncoder
* [DistributedDecl] Add DistributedActorSystem to known SDK types
* [DistributedActor] ok progress on getting the system via witness
* [Distributed] allow hop-to `let any: any X` where X is DistActor
* [Distributed] AST: Add an accessor to determine whether type is distributed actor
- Classes have specialized method on their declarations
- Archetypes and existentials check their conformances for
presence of `DistributedActor` protocol.
* [Distributed] AST: Account for distributed members declared in class extensions
`getConcreteReplacementForProtocolActorSystemType` should use `getSelfClassDecl`
otherwise it wouldn't be able to find actor if the member is declared in an extension.
* [Distributed] fix ad-hoc requirement checks for 'mutating'
[PreChecker] LookupDC might be null, so account for that
* [Distributed] Completed AST synthesis for dist thunk
* [Distributed][ASTDumper] print pretty distributed in right color in AST dumps
* wip on making the local/remote calls
* using the _local to mark the localCall as known local
* [Distributed] fix passing Never when not throwing
* fix lifetime of mangled string
* [Distributed] Implement recordGenericSubstitution
* [Distributed] Dont add .
* [Distributed] dont emit thunk when func broken
* [Distributed] fix tests; cleanups
* [Distributed] cleanup, move is... funcs to DistributedDecl
* [Distributed] Remove SILGen for distributed thunks, it is in Sema now!
* [Distributed] no need to check stored props in protocols
* remote not used flag
* fix mangling test
* [Distributed] Synthesis: Don't re-use AST nodes for `decodeArgument` references
* [Distributed] Synthesis: Make sure that each thunk parameter has an internal name
* [Distributed/Synthesis] NFC: Add a comment regarding empty internal parameter names
* [Distributed] NFC: Adjust distributed thunk manglings in the accessor section test-cases
* cleanup
* [Distributed] NFC: Adjust distributed thunk manglings in the accessor thunk test-cases
* review follow ups
* xfail some linux tests for now so we can land the AST thunk
* Update distributed_actor_remote_functions.swift
Co-authored-by: Pavel Yaskevich <xedin@apache.org >
2022-03-10 23:58:23 +09:00
Konrad `ktoso` Malawski
94c0e522b0
Merge pull request #41415 from xedin/dist-generic-accessors
...
[Distributed] Remove class-bound restriction from target invocation decoder
2022-02-17 23:10:10 +09:00
Pavel Yaskevich
d95a31e15a
[Distributed] Drop class requirement from DistributedTargetInvocationDecoder
...
This allows us to avoid heap allocation and reference counting
when working with decoders. Also both (public and internal)
distributed target execution methods has been made generic over
a decoder type.
2022-02-16 11:11:39 -08:00
Konrad `ktoso` Malawski
b02f9c7a97
[Distributed] ad-hoc req for decodeNextArgument & onReturns
...
fixup
2022-02-16 08:18:30 +09:00
Konrad `ktoso` Malawski
0fec1b31da
[Distributed] Implement ad-hoc checks for
...
DistributedTargetInvocationEncoder
2022-02-11 19:26:18 +09:00
Konrad `ktoso` Malawski
bffd956033
[Distributed] improve ad-hoc requirement typechecking
2022-02-11 19:25:48 +09:00
Konrad `ktoso` Malawski
fc83047985
[Distributed] Update availability of distributed types to 5.7
2022-02-03 21:55:41 +09:00
Konrad `ktoso` Malawski
48db739db0
[Distributed] Record generic substitution types for invocation
2022-02-02 18:12:32 +09:00
Pavel Yaskevich
3a3f78b25b
[Distributed] Remove decodeNextArgument from protocol requirements
...
It's an ad-hoc requirement that has to be checked by the compiler,
since it requires knowledge about a concrete serialization requirement
type associated with a particular distributed actor system.
2022-01-30 19:08:16 -08:00
Pavel Yaskevich
d0fdf20552
[Distributed] Runtime: Switch to use argument decoder instead of heterogeneous buffer
2022-01-29 14:33:41 -08:00