mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
* [Distributed] Accessor must be available cross module in resilient mode This is an important fix for libraries using @Resolvable in resilient libraries. Without the fix we're missing an accessor and this will fail some remote calls which make use of remote calls on resolvable protocols. This would manifest as missing accessor error thrown by the executeDistributedTarget function. resolves rdar://148224780 * Disable test on windows since %env not supported * [Distributed] Dont emit TBD also for distributed thunks This resolves pedantic "all" TBD validation issues, i.e. we dont emit unexpected records anymore - we would before as we only checked for is_distributed but we also want to skip those for is_distributed_thunk resolves rdar://128284016
72 lines
3.3 KiB
Swift
72 lines
3.3 KiB
Swift
// REQUIRES: VENDOR=apple
|
|
// REQUIRES: concurrency
|
|
// REQUIRES: distributed
|
|
|
|
// RUN: %empty-directory(%t)
|
|
// RUN: split-file %s %t
|
|
|
|
// RUN: %target-swift-frontend %t/library.swift \
|
|
// RUN: -enable-library-evolution \
|
|
// RUN: -disable-availability-checking \
|
|
// RUN: -emit-ir -o %t/test.ll -emit-tbd \
|
|
// RUN: -validate-tbd-against-ir=all \
|
|
// RUN: -emit-tbd-path %t/library.tbd -I %t -tbd-install_name protocol
|
|
|
|
// RUN: %target-swift-frontend %t/library.swift \
|
|
// RUN: -enable-library-evolution \
|
|
// RUN: -disable-availability-checking \
|
|
// RUN: -emit-module \
|
|
// RUN: -package-name Package \
|
|
// RUN: -module-name Library \
|
|
// RUN: -emit-module-path %t/Library.swiftmodule \
|
|
// RUN: -validate-tbd-against-ir=all \
|
|
// RUN: -emit-module-interface-path %t/Library.swiftinterface
|
|
|
|
// RUN: %target-swift-frontend %t/actor.swift \
|
|
// RUN: -enable-library-evolution \
|
|
// RUN: -disable-availability-checking -emit-ir -o %t/test.ll -emit-tbd \
|
|
// RUN: -emit-tbd-path %t/actor.tbd -I %t -tbd-install_name actor
|
|
|
|
// RUN: %target-swift-frontend %t/actor.swift \
|
|
// RUN: -I %t \
|
|
// RUN: -disable-availability-checking \
|
|
// RUN: -emit-module \
|
|
// RUN: -package-name Package \
|
|
// RUN: -enable-library-evolution \
|
|
// RUN: -module-name Client \
|
|
// RUN: -emit-module-path %t/Client.swiftmodule \
|
|
// RUN: -validate-tbd-against-ir=all \
|
|
// RUN: -emit-module-interface-path %t/Client.swiftinterface
|
|
|
|
|
|
// RUN %llvm-nm -g %t/library.tbd | %FileCheck %s --dump-input=always
|
|
// RUN %llvm-nm -g %t/actor.tbd | %FileCheck %s --dump-input=always
|
|
|
|
//--- library.swift
|
|
import Distributed
|
|
|
|
// CHECK: @"$s4test1AC13_remote_helloyyYaKFTE" = hidden global %swift.async_func_pointer
|
|
// CHECK: @"$s4test1AC13_remote_helloyyYaKFTETu" = hidden global %swift.async_func_pointer
|
|
public protocol GreeterProtocol: DistributedActor where ActorSystem == LocalTestingDistributedActorSystem {
|
|
distributed func hello(name: String) -> String
|
|
}
|
|
|
|
//--- actor.swift
|
|
import Distributed
|
|
import Library
|
|
|
|
public distributed actor SomeDistributedActor: GreeterProtocol {
|
|
public distributed func hello(name: String) -> String {
|
|
"Hello, \(name)!"
|
|
}
|
|
}
|
|
|
|
// function:
|
|
// IR unmangledName = $s4test20SomeDistributedActorC5hello4nameS2S_tF
|
|
// function method descriptor
|
|
// IR unmangledName = $s4test20SomeDistributedActorC5hello4nameS2S_tFTq
|
|
// thunk, method reference
|
|
// IR unmangledName = $s4test20SomeDistributedActorC5hello4nameS2S_tFTE
|
|
// thunk, method reference + async function pointer
|
|
// IR unmangledName = $s4test20SomeDistributedActorC5hello4nameS2S_tFTETu
|