Build Information
Successful build of Narratore, reference 0.3.0 (18a9cb), with Swift 6.2 for macOS (SPM) on 22 Jun 2025 19:09:25 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/broomburgo/Narratore.git
Reference: 0.3.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/broomburgo/Narratore
* tag 0.3.0 -> FETCH_HEAD
HEAD is now at 18a9cb4 Strict concurrency checking + several improvements (#2)
Cloned https://github.com/broomburgo/Narratore.git
Revision (git rev-parse @):
18a9cb486e1b2e0d9a1239ba74736cdd588a2ac1
SUCCESS checkout https://github.com/broomburgo/Narratore.git at 0.3.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.2
Building package at path: $PWD
https://github.com/broomburgo/Narratore.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-1EA4D86E10B52AF.txt
[3/11] Compiling Narratore Runner.swift
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Runner.swift:157:27: warning: capture of non-sendable type 'Game.Generate.Type' in an isolated closure
155 |
156 | init() {
157 | randomRatio = { await Game.Generate.randomRatio() }
| `- warning: capture of non-sendable type 'Game.Generate.Type' in an isolated closure
158 | uniqueString = { await Game.Generate.uniqueString() }
159 | }
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Runner.swift:158:28: warning: capture of non-sendable type 'Game.Generate.Type' in an isolated closure
156 | init() {
157 | randomRatio = { await Game.Generate.randomRatio() }
158 | uniqueString = { await Game.Generate.uniqueString() }
| `- warning: capture of non-sendable type 'Game.Generate.Type' in an isolated closure
159 | }
160 | }
[4/11] Compiling Narratore Handler.swift
[5/11] Compiling Narratore DSL.swift
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/DSL.swift:17:30: warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
15 | anchor: anchor,
16 | getStep: .init {
17 | let messages = await getMessages($0)
| `- warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
18 |
19 | return .tell(tags: tags, getMessages: {
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/DSL.swift:41:50: warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
39 | _ update: @escaping Update<Scene.Game>
40 | ) -> SceneStep<Scene> {
41 | .init(anchor: anchor, getStep: .init { _ in .init(update: update) })
| `- warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/DSL.swift:53:9: warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
51 | anchor: anchor,
52 | getStep: .init {
53 | await .init(choice: .init(options: getOptions($0), tags: tags))
| `- warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
54 | }
55 | )
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/DSL.swift:69:10: warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
67 | anchor: anchor,
68 | getStep: .init { context in
69 | .init(textRequest: .init(
| `- warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
70 | message: getMessage(),
71 | validate: validate,
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/DSL.swift:72:22: warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
70 | message: getMessage(),
71 | validate: validate,
72 | getStep: { await ifValid(context, $0) },
| `- warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
73 | tags: tags
74 | ))
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/DSL.swift:86:10: warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
84 | anchor: nil,
85 | getStep: .init { _ in
86 | .init(
| `- warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
87 | jump: .init(
88 | narration: .init(
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/DSL.swift:102:50: warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
100 | /// Creates a step that will be skipped; useful to establish a simple anchor that will not make the player acknowledge a narration or make a choice.
101 | public static func skip(anchor: Scene.Anchor? = nil) -> SceneStep<Scene> {
102 | .init(anchor: anchor, getStep: .init { _ in .skip })
| `- warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
103 | }
104 |
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/DSL.swift:122:10: warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
120 | anchor: anchor,
121 | getStep: .init { _ in
122 | .tell(
| `- warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
123 | tags: tags,
124 | getMessages: { [.init(id: id, text: self)] },
[6/11] Compiling Narratore Story.swift
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Story.swift:68:29: warning: capture of non-sendable type 'Self.Game.Type' in an isolated closure
66 |
67 | guard helper.id == Self.id else {
68 | throw Failure<Game>.invalidSceneId(expected: Self.id, received: helper.id)
| `- warning: capture of non-sendable type 'Self.Game.Type' in an isolated closure
69 | }
70 |
[7/11] Compiling Narratore Setting.swift
[8/11] Compiling Narratore Script.swift
[9/11] Compiling Narratore Step.swift
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:35:22: warning: capture of non-sendable type 'Game.Type' in an isolated closure
33 | extension Step {
34 | public static var skip: Self {
35 | .init { _, _ in .advance(nil) }
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
36 | }
37 |
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:40:46: warning: capture of non-sendable type 'Game.Type' in an isolated closure
38 | public init(choice: Choice<Game>) {
39 | self.init { info, handling in
40 | guard let firstOption = choice.options.first else {
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
41 | if choice.config.failIfNoOptions {
42 | handling.handle(event: .errorProduced(.noOptions(choice: choice)))
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:38:15: warning: capture of non-sendable type 'Game.Type' in an isolated closure
36 | }
37 |
38 | public init(choice: Choice<Game>) {
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
39 | self.init { info, handling in
40 | guard let firstOption = choice.options.first else {
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:54:15: warning: capture of non-sendable type 'Game.Generate.Type' in an isolated closure
52 | for option in choice.options {
53 | await playerOptions.append(.init(
54 | id: Game.Generate.uniqueString(),
| `- warning: capture of non-sendable type 'Game.Generate.Type' in an isolated closure
55 | message: option.message,
56 | tags: option.tags
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:97:18: warning: capture of non-sendable type 'Game.Type' in an isolated closure
95 | public init(textRequest: TextRequest<Game>) {
96 | self.init { info, handling in
97 | let next = await handling.answer(request: .init(
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
98 | message: textRequest.message,
99 | validate: {
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:95:15: warning: capture of non-sendable type 'Game.Type' in an isolated closure
93 | }
94 |
95 | public init(textRequest: TextRequest<Game>) {
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
96 | self.init { info, handling in
97 | let next = await handling.answer(request: .init(
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:100:11: warning: capture of non-sendable type 'Game.Type' in an isolated closure
98 | message: textRequest.message,
99 | validate: {
100 | switch textRequest.validate($0) {
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
101 | case .valid(let validated):
102 | .valid(.init(value: validated.text))
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:95:15: warning: capture of non-sendable type 'Game.Type' in an isolated closure
93 | }
94 |
95 | public init(textRequest: TextRequest<Game>) {
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
96 | self.init { info, handling in
97 | let next = await handling.answer(request: .init(
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:133:36: warning: capture of non-sendable type 'Game.Type' in an isolated closure
131 | public init(narration: Narration<Game>) {
132 | self.init { info, handling in
133 | let next: Next<Game, Void> = if !narration.messages.isEmpty || !narration.tags.isEmpty {
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
134 | await handling.acknowledge(narration: .init(
135 | messages: narration.messages,
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:131:15: warning: capture of non-sendable type 'Game.Type' in an isolated closure
129 | }
130 |
131 | public init(narration: Narration<Game>) {
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
132 | self.init { info, handling in
133 | let next: Next<Game, Void> = if !narration.messages.isEmpty || !narration.tags.isEmpty {
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:162:36: warning: capture of non-sendable type 'Game.Type' in an isolated closure
160 | public init(jump: Jump<Game>) {
161 | self.init { info, handling in
162 | let next: Next<Game, Void> = if !jump.narration.messages.isEmpty || !jump.narration.tags.isEmpty {
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
163 | await handling.acknowledge(narration: .init(
164 | messages: jump.narration.messages,
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:160:15: warning: capture of non-sendable type 'Game.Type' in an isolated closure
158 | }
159 |
160 | public init(jump: Jump<Game>) {
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
161 | self.init { info, handling in
162 | let next: Next<Game, Void> = if !jump.narration.messages.isEmpty || !jump.narration.tags.isEmpty {
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:189:15: warning: capture of non-sendable type 'Game.Type' in an isolated closure
187 | }
188 |
189 | public init(update: @escaping Update<Game>) {
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
190 | self.init { info, _ in
191 | await update(&info.world)
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/Step.swift:191:21: warning: capture of non-sendable type 'Game.Type' in an isolated closure
189 | public init(update: @escaping Update<Game>) {
190 | self.init { info, _ in
191 | await update(&info.world)
| `- warning: capture of non-sendable type 'Game.Type' in an isolated closure
192 | return .advance(nil)
193 | }
[10/11] Emitting module Narratore
[11/11] Compiling Narratore ResultBuilders.swift
/Users/admin/builder/spi-builder-workspace/Sources/Narratore/ResultBuilders.swift:97:12: warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
95 | anchor: nil,
96 | getStep: .init { _ in
97 | .init(
| `- warning: capture of non-sendable type 'Scene.Game.Type' in an isolated closure
98 | narration: .init(
99 | messages: [.init(id: nil, text: expression)],
Build complete! (0.84s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Narratore",
"name" : "Narratore",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "14.0"
}
],
"products" : [
{
"name" : "Narratore",
"targets" : [
"Narratore"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "NarratoreTests",
"module_type" : "SwiftTarget",
"name" : "NarratoreTests",
"path" : "Tests/NarratoreTests",
"sources" : [
"NarratoreTests.swift",
"TestValuesAndMocks.swift"
],
"target_dependencies" : [
"Narratore"
],
"type" : "test"
},
{
"c99name" : "Narratore",
"module_type" : "SwiftTarget",
"name" : "Narratore",
"path" : "Sources/Narratore",
"product_memberships" : [
"Narratore"
],
"sources" : [
"DSL.swift",
"Handler.swift",
"ResultBuilders.swift",
"Runner.swift",
"Script.swift",
"Setting.swift",
"Step.swift",
"Story.swift"
],
"type" : "library"
}
],
"tools_version" : "6.0"
}
Done.