Commit Graph

353 Commits

Author SHA1 Message Date
Konrad `ktoso` Malawski
ee7b94104b Merge pull request #41783 from xedin/rdar-90129442
[Distributed] IRGen: Don't emit accessor for distributed thunk specia…
2022-03-11 21:46:12 +09:00
Konrad `ktoso` Malawski
fab04637f2 adjust test since other features were merged since 2022-03-11 18:44:11 +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
Pavel Yaskevich
b243d64c61 [Distributed] IRGen: Don't emit accessor for distributed thunk specializations
Only synthesized `async throws` version is directly accessible remotely.

Resolves: rdar://90129442
2022-03-11 01:02:37 -08:00
swift-ci
a024e8fc5f Merge pull request #41602 from ktoso/wip-better-error
[Distributed] better diagnostics for missing actor system typealias
2022-03-10 19:45:21 -08:00
Konrad `ktoso` Malawski
f2d60e16f2 [Distributed] add note explaining DefaultDistributedActorSystem 2022-03-11 11:09:57 +09:00
Kavon Farvardin
25370d2530 Merge pull request #41776 from ktoso/wip-disable-opt
[Distributed] Disable some tests on optimized builds until we fix
2022-03-10 18:06:45 -07:00
Konrad `ktoso` Malawski
58f0a1c5ca [Distributed] Disable some tests on optimized builds until we fix 2022-03-11 09:29:49 +09:00
Pavel Yaskevich
3b97bd5fb2 [Distributed] NFC: Allow 64-bit distributed test only on x86_64 and arm64 2022-03-10 16:08:42 -08: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
040a4a318c [Concurrency][Distributed] Move AnyActor to Concurrency module 2022-03-08 15:28:30 +09:00
Saleem Abdulrasool
6792291d0c Distributed: enable the last batch of tests on Windows
This enables the last of the Distributed tests on Windows.  The addition
of the local configuration is required to deal with the async function
pointer handling being different on Windows.
2022-03-05 20:42:01 -08:00
John McCall
aca744b211 Remove the Flags field from AsyncContext.
Generated code has never actually initialized this field, so we
might as well remove it.  Doing so mostly doesn't impact the ABI
since we don't store anything for arguments or results in the
context as part of the normal call sequence.  We do need to adjust
some of the hard-coded contexts, however, such as continuation
contexts and the statically-sized context for special runtime
async functions.
2022-02-25 16:57:49 -05:00
Andrew Trick
4eb7351f4d Disable MandatoryCopyPropagation.
Mandatory copy propagation was primarily a stop-gap until lexcial
lifetimes were implemented. It supposedly made variables lifetimes
more consistent between -O and -Onone builds. Now that lexical
lifetimes are enabled, it is no longer needed for that purpose (and
will never satisfactorily meet that goal anyway).

Mandatory copy propagation may be enabled again later as a -Onone "
optimization. But that requires a more careful audit of the effect on
debug information.

For now, it should be disabled.
2022-02-18 17:29:04 -08:00
nate-chandler
0011b075fa Merge pull request #41387 from nate-chandler/lexical_lifetimes/destroy_hoisting/add
Hoist destroys of owned lexical values.
2022-02-17 11:36:50 -08: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
7c9ccb1346 [Distributed] NFC: Adjust test-cases for account for new decoder handling 2022-02-16 20:32:33 -08:00
Konrad `ktoso` Malawski
7c145cc55b Merge pull request #41179 from ktoso/wip-improved-adhoc-checks
[Distributed] improve ad-hoc requirement typechecking
2022-02-17 09:16:42 +09:00
Nate Chandler
62dc05fc51 [CopyPropagation] Hoist owned lexical destroys. 2022-02-16 10:31:24 -08:00
Konrad `ktoso` Malawski
1125241eaf [Distributed] harden test under stronger optimizations 2022-02-16 12:10:02 +09:00
Konrad `ktoso` Malawski
b02f9c7a97 [Distributed] ad-hoc req for decodeNextArgument & onReturns
fixup
2022-02-16 08:18:30 +09:00
Konrad `ktoso` Malawski
1caa0b1de0 [Distributed] Handle reqs on DistributedTargetInvocationEncoder 2022-02-14 22:08:16 +09:00
Konrad `ktoso` Malawski
005743c92c [Distributed] implement adhoc requirements properly for Encoder 2022-02-14 16:14:41 +09:00
Konrad `ktoso` Malawski
0fec1b31da [Distributed] Implement ad-hoc checks for
DistributedTargetInvocationEncoder
2022-02-11 19:26:18 +09:00
Konrad `ktoso` Malawski
c7e3af84e4 [Distributed] Handle composite types in SerializationRequirement 2022-02-11 19:26:18 +09:00
Konrad `ktoso` Malawski
12932c7b3c [Distributed] Introduce DistributedDecl.h for greater reuse 2022-02-11 19:25:57 +09:00
Konrad `ktoso` Malawski
bffd956033 [Distributed] improve ad-hoc requirement typechecking 2022-02-11 19:25:48 +09:00
Pavel Yaskevich
e6fad0eb1f [Distributed] NFC: Remove obsolete remoteCall test XFAILs on 32-bit WatchOS 2022-02-10 09:27:22 -08:00
Pavel Yaskevich
4e8f962d9f [Distributed] NFC: Remove OK: which used to be REQUIRES: in remoteCall tests 2022-02-09 16:06:21 -08:00
Pavel Yaskevich
ecf1c1ede1 [Distributed] Runtime: Add missing accessible function section registration on ELF
Resolves: rdar://87240034
2022-02-09 16:06:11 -08:00
Konrad `ktoso` Malawski
6cd1fb2555 [Distributed] Improve error messages on property isolation 2022-02-09 11:42:51 +09:00
Konrad `ktoso` Malawski
c57cb45eac [Distributed] Handle SerializationRequirement in dist get props
- reuse more code about getting the type and requirements
- handle protocols properly, including extensions with where clauses
- improve error messages
2022-02-08 23:08:59 +09:00
Konrad `ktoso` Malawski
d9b79ccdee [Distributed] remoteCall decoding without foundation 2022-02-08 23:06:33 +09:00
Konrad `ktoso` Malawski
42108f33e5 [Distributed] allow get only distributed computed properties 2022-02-08 23:06:29 +09:00
Pavel Yaskevich
ab25d4e62a [Distributed] IRGen: Fix loading of the witness tables
The witness table is an array of pointers - `void **`,
which means that the list of the witnesses has type of `void ***`.

Instead of using result of `emitAddressAtOffset` accessor
should set the correct type for the list, which is `void ***`
and emit bit a lot for each of the witness table slots.

Resolves: rdar://87568630
Resolves: rdar://88340451
2022-02-05 01:12:47 -08:00
Konrad `ktoso` Malawski
e94aff3ba7 Merge pull request #41182 from ktoso/wip-distributed-57
[Distributed] Update availability of distributed types to 5.7
2022-02-04 06:15:49 +09:00
swift-ci
51198e308d Merge pull request #41155 from ktoso/wip-fix-asan-dist 2022-02-03 12:22:57 -08: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
b19e073bc4 [Distributed] Unlock all tests rdar://88228867 2022-02-03 06:18:54 +09:00
Kavon Farvardin
94553fdec9 allow nonisolated + async + delegating actor inits. 2022-02-02 13:31:14 -07:00
Konrad `ktoso` Malawski
48db739db0 [Distributed] Record generic substitution types for invocation 2022-02-02 18:12:32 +09:00
Pavel Yaskevich
92e62a96ff [Distributed] NFC: Disable remoteCall test on arm64_32 WatchOS simulator
Resolves: rdar://88340451
2022-02-01 11:48:04 -08:00
Pavel Yaskevich
d5c9a4b5b3 [Distributed] NFC: Add SerializationRequirement conformance to decoder in tests 2022-01-31 00:37:59 -08:00
Pavel Yaskevich
82410c678c Merge pull request #41082 from xedin/dist-decode-in-accessor
[Distributed] Augment accessor to be able to decode arguments instead of accepting buffer
2022-01-29 19:15:28 -08:00
Pavel Yaskevich
c3cafcc1ab [Distributed] NFC: Split FakeInvocation into Encoder and Decoder and adjust tests 2022-01-29 14:33:41 -08:00
Pavel Yaskevich
6c4b9c8ee0 [Distributed] NFC: Adjust accessor IRGen test-cases to check for argument decoder instead of buffer 2022-01-29 14:33:41 -08:00
Pavel Yaskevich
aa44c1dbe1 [Distributed] IRGen: Emit an early return upon argument decoding failure 2022-01-29 14:33:41 -08:00
Pavel Yaskevich
d0fdf20552 [Distributed] Runtime: Switch to use argument decoder instead of heterogeneous buffer 2022-01-29 14:33:41 -08:00
Pavel Yaskevich
8bff147227 [Distributed] Remove extraneous DistributedTargetInvocationArgumentDecoder 2022-01-29 14:33:41 -08:00
Pavel Yaskevich
ebebcecd01 [Distributed] NFC: Disable remoteCall tests due to random failures 2022-01-29 14:07:57 -08:00