// RUN: %empty-directory(%t.tmp) // mkdir %t.tmp/module-cache && mkdir %t.tmp/dummy.sdk // RUN: %api-digester -diagnose-sdk -module _Concurrency -o %t.tmp/changes.txt -module-cache-path %t.tmp/module-cache -sdk %t.tmp/dummy.sdk -abi -avoid-location // RUN: %clang -E -P -x c %S/stability-concurrency-abi.test -o - > %t.tmp/stability-concurrency-abi.swift.expected // RUN: %clang -E -P -x c %t.tmp/stability-concurrency-abi.swift.expected -o - | sed '/^\s*$/d' | sort > %t.tmp/stability-concurrency-abi.swift.expected.sorted // RUN: %clang -E -P -x c %t.tmp/changes.txt -o - | sed -E -e '/^\s*$/d' -e 's/ in _[0-9A-F]{32}/ in #UNSTABLE ID#/g' | sort > %t.tmp/changes.txt.tmp // RUN: diff -u %t.tmp/stability-concurrency-abi.swift.expected.sorted %t.tmp/changes.txt.tmp // *** DO NOT DISABLE OR XFAIL THIS TEST. *** (See comment below.) // Welcome, Build Wrangler! // // This file lists APIs that are unique to stdlib builds with assertions. // (It is combined with the stability-stdlib-abi-without-asserts.test file // to generate a full list of potentially breaking API changes. In most cases // you'll want to edit that file instead of this one.) // // A failure in this test indicates that there is a potential breaking change in // the Standard Library. If you observe a failure outside of a PR test, please // reach out to the Standard Library team directly to make sure this gets // resolved quickly! If your own PR fails in this test, you probably have an // ABI- or source-breaking change in your commits. Please go and fix it. // // Please DO NOT DISABLE THIS TEST. In addition to ignoring the current set of // ABI breaks, XFAILing this test also silences any future ABI breaks that may // land on this branch, which simply generates extra work for the next person // that picks up the mess. // // Instead of disabling this test, consider extending the list of expected // changes at the bottom. (You'll also need to do this if your own PR triggers // false positives, or if you have special permission to break things.) You can // find a diff of what needs to be added in the output of the failed test run. // The order of lines doesn't matter, and you can also include comments to refer // to any bugs you filed. // // Thank you for your help ensuring the stdlib remains compatible with its past! // -- Your friendly stdlib engineers // *** DO NOT DISABLE OR XFAIL THIS TEST. *** (See comment above.) // https://github.com/apple/swift/issues/55803 // We currently only have a baseline for Intel CPUs on macOS. // REQUIRES: OS=macosx // REQUIRES: CPU=x86_64 || CPU=arm64 // NOTE: This test runs both on intel and arm, and so far no differences have been spotted, // so for better developer experience on apple silicon macs at desk we don't require a specific architecture. // If there were to be a case where it fails on one of the platforms, we'd have to potentially split out into an arm baseline file. // REQUIRES: concurrency // The digester can incorrectly register a generic signature change when // declarations are shuffled. rdar://problem/46618883 // UNSUPPORTED: swift_evolve // *** DO NOT DISABLE OR XFAIL THIS TEST. *** (See comment above.) Func MainActor.run(resultType:body:) has generic signature change from to Func MainActor.run(resultType:body:) has mangled name changing from 'static Swift.MainActor.run(resultType: A.Type, body: @Swift.MainActor @Sendable () throws -> A) async throws -> A' to 'static Swift.MainActor.run(resultType: A.Type, body: @Swift.MainActor @Sendable () throws -> A) async throws -> A' Func _asyncLet_get(_:_:) has mangled name changing from '_Concurrency._asyncLet_get(Builtin.RawPointer, Builtin.RawPointer) async -> Builtin.RawPointer' to '_Concurrency._asyncLet_get(Builtin.RawPointer, Builtin.RawPointer) async -> ()' Func _asyncLet_get(_:_:) has return type change from Builtin.RawPointer to () Func _asyncLet_get_throwing(_:_:) has mangled name changing from '_Concurrency._asyncLet_get_throwing(Builtin.RawPointer, Builtin.RawPointer) async throws -> Builtin.RawPointer' to '_Concurrency._asyncLet_get_throwing(Builtin.RawPointer, Builtin.RawPointer) async throws -> ()' Func _asyncLet_get_throwing(_:_:) has return type change from Builtin.RawPointer to () Protocol Actor has added inherited protocol AnyActor Protocol Actor has generic signature change from to Struct CheckedContinuation has removed conformance to UnsafeSendable // SerialExecutor gained `enqueue(_: __owned Job)`, protocol requirements got default implementations Func SerialExecutor.enqueue(_:) has been added as a protocol requirement // We deprecated `enqueue(_: UnownedJob)` and annotate it as such for all platforms, // while adding a new overload that accepts `Job` with new availability. // The ABI checker seems to be confused by this case. // rdar://106833284 (ABI checker confused with overload getting deprecated) Func Executor.enqueue(_:) is a new API without @available attribute // This function correctly inherits its availability from the TaskLocal struct. Func TaskLocal.withValueImpl(_:operation:file:line:) is a new API without @available attribute // *** DO NOT DISABLE OR XFAIL THIS TEST. *** (See comment above.)