Build Information
Successful build of Nifty Dice Roller, reference master (3c0b43
), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 08:20:08 UTC.
Swift 6 data race errors: 2
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 3c0b43d Merge pull request #1 from NiftyTreeStudios/add-license-1
Cloned https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd.git
Revision (git rev-parse @):
3c0b43d7d1897173a7290b4801b6e813e0410de3
SUCCESS checkout https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd.git at master
Fetching https://github.com/apple/swift-argument-parser from cache
Fetched https://github.com/apple/swift-argument-parser from cache (0.73s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 0.3.2 (1.32s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 0.3.2
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "nifty-dice-roller-cmd",
"name": "Nifty Dice Roller",
"url": "https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Nifty-Dice-Roller-cmd",
"dependencies": [
{
"identity": "swift-argument-parser",
"name": "swift-argument-parser",
"url": "https://github.com/apple/swift-argument-parser",
"version": "0.3.2",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-argument-parser",
"dependencies": [
]
}
]
}
]
}
Fetching https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd.git
[1/30] Fetching nifty-dice-roller-cmd
Fetched https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd.git from cache (0.59s)
Fetching https://github.com/apple/swift-argument-parser from cache
Fetched https://github.com/apple/swift-argument-parser from cache (0.59s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 0.3.2 (0.65s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 0.3.2
Creating working copy for https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd.git
Working copy of https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd.git resolved at master (3c0b43d)
Found 1 product dependencies
- swift-argument-parser
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd.git
https://github.com/NiftyTreeStudios/Nifty-Dice-Roller-cmd.git
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "0.3.0",
"upper_bound" : "0.4.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
}
],
"manifest_display_name" : "Nifty Dice Roller",
"name" : "Nifty Dice Roller",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "ios",
"version" : "13.0"
}
],
"products" : [
{
"name" : "ndr",
"targets" : [
"diceroller"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "dicerollerTests",
"module_type" : "SwiftTarget",
"name" : "dicerollerTests",
"path" : "Tests/dicerollerTests",
"sources" : [
"XCTestManifests.swift",
"dicerollerTests.swift"
],
"target_dependencies" : [
"diceroller"
],
"type" : "test"
},
{
"c99name" : "diceroller",
"module_type" : "SwiftTarget",
"name" : "diceroller",
"path" : "Sources/diceroller",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"ndr"
],
"sources" : [
"main.swift"
],
"type" : "executable"
}
],
"tools_version" : "5.2"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/7] Write sources
[2/7] Write ndr-entitlement.plist
[3/7] Write swift-version-2F0A5646E1D333AE.txt
[5/40] Emitting module ArgumentParser
[6/43] Compiling ArgumentParser ParsableArgumentsValidation.swift
[7/43] Compiling ArgumentParser ParsableCommand.swift
[8/43] Compiling ArgumentParser ArgumentDecoder.swift
[9/43] Compiling ArgumentParser ArgumentDefinition.swift
[10/43] Compiling ArgumentParser SequenceExtensions.swift
[11/43] Compiling ArgumentParser StringExtensions.swift
[12/43] Compiling ArgumentParser Tree.swift
[13/43] Compiling ArgumentParser ArgumentSet.swift
[14/43] Compiling ArgumentParser CommandParser.swift
[15/43] Compiling ArgumentParser InputOrigin.swift
[16/43] Compiling ArgumentParser BashCompletionsGenerator.swift
[17/43] Compiling ArgumentParser CompletionsGenerator.swift
[18/43] Compiling ArgumentParser FishCompletionsGenerator.swift
[19/43] Compiling ArgumentParser ZshCompletionsGenerator.swift
[20/43] Compiling ArgumentParser CommandConfiguration.swift
[21/43] Compiling ArgumentParser EnumerableFlag.swift
[22/43] Compiling ArgumentParser ExpressibleByArgument.swift
[23/43] Compiling ArgumentParser ParsableArguments.swift
[24/43] Compiling ArgumentParser Name.swift
[25/43] Compiling ArgumentParser Parsed.swift
[26/43] Compiling ArgumentParser ParsedValues.swift
[27/43] Compiling ArgumentParser Argument.swift
[28/43] Compiling ArgumentParser ArgumentHelp.swift
[29/43] Compiling ArgumentParser CompletionKind.swift
[30/43] Compiling ArgumentParser Errors.swift
[31/43] Compiling ArgumentParser ParserError.swift
[32/43] Compiling ArgumentParser SplitArguments.swift
[33/43] Compiling ArgumentParser HelpCommand.swift
[34/43] Compiling ArgumentParser Flag.swift
[35/43] Compiling ArgumentParser NameSpecification.swift
[36/43] Compiling ArgumentParser Option.swift
[37/43] Compiling ArgumentParser OptionGroup.swift
[38/43] Compiling ArgumentParser HelpGenerator.swift
[39/43] Compiling ArgumentParser MessageInfo.swift
[40/43] Compiling ArgumentParser UsageGenerator.swift
[41/45] Emitting module diceroller
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:42:16: warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
40 |
41 | struct NDR: ParsableCommand {
42 | static let configuration = CommandConfiguration(
| `- warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
43 | abstract: "A Swift command-line tool to roll die",
44 | subcommands: [Roll.self])
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-argument-parser/Sources/ArgumentParser/Parsable Types/CommandConfiguration.swift:13:15: note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
11 |
12 | /// The configuration for a command.
13 | public struct CommandConfiguration {
| `- note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
14 | /// The name of the command to use on the command line.
15 | ///
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
1 | import ArgumentParser
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
2 | import Foundation
3 |
:
40 |
41 | struct NDR: ParsableCommand {
42 | static let configuration = CommandConfiguration(
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 | abstract: "A Swift command-line tool to roll die",
44 | subcommands: [Roll.self])
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:51:23: warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
49 | struct Roll: ParsableCommand {
50 |
51 | public static let configuration = CommandConfiguration(abstract: "A Swift command-line tool to roll die")
| |- warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | @Argument(help: "What to roll: the amount of die, type of die (and modifier) -> 2d20+6")
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-argument-parser/Sources/ArgumentParser/Parsable Types/CommandConfiguration.swift:13:15: note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
11 |
12 | /// The configuration for a command.
13 | public struct CommandConfiguration {
| `- note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
14 | /// The name of the command to use on the command line.
15 | ///
[42/45] Compiling diceroller main.swift
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:42:16: warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
40 |
41 | struct NDR: ParsableCommand {
42 | static let configuration = CommandConfiguration(
| `- warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
43 | abstract: "A Swift command-line tool to roll die",
44 | subcommands: [Roll.self])
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-argument-parser/Sources/ArgumentParser/Parsable Types/CommandConfiguration.swift:13:15: note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
11 |
12 | /// The configuration for a command.
13 | public struct CommandConfiguration {
| `- note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
14 | /// The name of the command to use on the command line.
15 | ///
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
1 | import ArgumentParser
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ArgumentParser'
2 | import Foundation
3 |
:
40 |
41 | struct NDR: ParsableCommand {
42 | static let configuration = CommandConfiguration(
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 | abstract: "A Swift command-line tool to roll die",
44 | subcommands: [Roll.self])
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:51:23: warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
49 | struct Roll: ParsableCommand {
50 |
51 | public static let configuration = CommandConfiguration(abstract: "A Swift command-line tool to roll die")
| |- warning: static property 'configuration' is not concurrency-safe because non-'Sendable' type 'CommandConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | @Argument(help: "What to roll: the amount of die, type of die (and modifier) -> 2d20+6")
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-argument-parser/Sources/ArgumentParser/Parsable Types/CommandConfiguration.swift:13:15: note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
11 |
12 | /// The configuration for a command.
13 | public struct CommandConfiguration {
| `- note: struct 'CommandConfiguration' does not conform to the 'Sendable' protocol
14 | /// The name of the command to use on the command line.
15 | ///
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:35:9: error: main actor-isolated var 'rolledDie' can not be mutated from a nonisolated context
6 | var modifier: Int = 0
7 | var total: Int = 0
8 | var rolledDie: [String] = []
| `- note: mutation of this var is only permitted within the actor
9 |
10 | func separateArguments(roll: String) -> (Int, Int, Int) {
:
28 | }
29 |
30 | func calculateRoll(dieAmount: Int, dieType: Int, modifier: Int) -> Int {
| `- note: add '@MainActor' to make global function 'calculateRoll(dieAmount:dieType:modifier:)' part of global actor 'MainActor'
31 | var calculatedTotal: Int = 0
32 | for _ in 1...dieAmount {
33 | let roll = Int.random(in: 1...dieType)
34 | calculatedTotal += roll
35 | rolledDie.append("d\(dieType): \(roll)")
| `- error: main actor-isolated var 'rolledDie' can not be mutated from a nonisolated context
36 | }
37 | calculatedTotal += modifier
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:66:14: error: main actor-isolated var 'dieAmount' can not be referenced from a nonisolated context
2 | import Foundation
3 |
4 | var dieAmount: Int = 1
| `- note: var declared here
5 | var dieType: Int = 1
6 | var modifier: Int = 0
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
64 | return
65 | } else {
66 | (dieAmount, dieType, modifier) = (separateArguments(roll: rollArguments))
| `- error: main actor-isolated var 'dieAmount' can not be referenced from a nonisolated context
67 | total = calculateRoll(dieAmount: dieAmount, dieType: dieType, modifier: modifier)
68 | print("Rolling...")
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:66:25: error: main actor-isolated var 'dieType' can not be referenced from a nonisolated context
3 |
4 | var dieAmount: Int = 1
5 | var dieType: Int = 1
| `- note: var declared here
6 | var modifier: Int = 0
7 | var total: Int = 0
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
64 | return
65 | } else {
66 | (dieAmount, dieType, modifier) = (separateArguments(roll: rollArguments))
| `- error: main actor-isolated var 'dieType' can not be referenced from a nonisolated context
67 | total = calculateRoll(dieAmount: dieAmount, dieType: dieType, modifier: modifier)
68 | print("Rolling...")
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:66:34: error: main actor-isolated var 'modifier' can not be referenced from a nonisolated context
4 | var dieAmount: Int = 1
5 | var dieType: Int = 1
6 | var modifier: Int = 0
| `- note: var declared here
7 | var total: Int = 0
8 | var rolledDie: [String] = []
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
64 | return
65 | } else {
66 | (dieAmount, dieType, modifier) = (separateArguments(roll: rollArguments))
| `- error: main actor-isolated var 'modifier' can not be referenced from a nonisolated context
67 | total = calculateRoll(dieAmount: dieAmount, dieType: dieType, modifier: modifier)
68 | print("Rolling...")
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:67:13: error: main actor-isolated var 'total' can not be mutated from a nonisolated context
5 | var dieType: Int = 1
6 | var modifier: Int = 0
7 | var total: Int = 0
| `- note: mutation of this var is only permitted within the actor
8 | var rolledDie: [String] = []
9 |
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
65 | } else {
66 | (dieAmount, dieType, modifier) = (separateArguments(roll: rollArguments))
67 | total = calculateRoll(dieAmount: dieAmount, dieType: dieType, modifier: modifier)
| `- error: main actor-isolated var 'total' can not be mutated from a nonisolated context
68 | print("Rolling...")
69 | if detailed {
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:67:46: error: main actor-isolated var 'dieAmount' can not be referenced from a nonisolated context
2 | import Foundation
3 |
4 | var dieAmount: Int = 1
| `- note: var declared here
5 | var dieType: Int = 1
6 | var modifier: Int = 0
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
65 | } else {
66 | (dieAmount, dieType, modifier) = (separateArguments(roll: rollArguments))
67 | total = calculateRoll(dieAmount: dieAmount, dieType: dieType, modifier: modifier)
| `- error: main actor-isolated var 'dieAmount' can not be referenced from a nonisolated context
68 | print("Rolling...")
69 | if detailed {
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:67:66: error: main actor-isolated var 'dieType' can not be referenced from a nonisolated context
3 |
4 | var dieAmount: Int = 1
5 | var dieType: Int = 1
| `- note: var declared here
6 | var modifier: Int = 0
7 | var total: Int = 0
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
65 | } else {
66 | (dieAmount, dieType, modifier) = (separateArguments(roll: rollArguments))
67 | total = calculateRoll(dieAmount: dieAmount, dieType: dieType, modifier: modifier)
| `- error: main actor-isolated var 'dieType' can not be referenced from a nonisolated context
68 | print("Rolling...")
69 | if detailed {
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:67:85: error: main actor-isolated var 'modifier' can not be referenced from a nonisolated context
4 | var dieAmount: Int = 1
5 | var dieType: Int = 1
6 | var modifier: Int = 0
| `- note: var declared here
7 | var total: Int = 0
8 | var rolledDie: [String] = []
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
65 | } else {
66 | (dieAmount, dieType, modifier) = (separateArguments(roll: rollArguments))
67 | total = calculateRoll(dieAmount: dieAmount, dieType: dieType, modifier: modifier)
| `- error: main actor-isolated var 'modifier' can not be referenced from a nonisolated context
68 | print("Rolling...")
69 | if detailed {
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:70:34: error: main actor-isolated var 'dieType' can not be referenced from a nonisolated context
3 |
4 | var dieAmount: Int = 1
5 | var dieType: Int = 1
| `- note: var declared here
6 | var modifier: Int = 0
7 | var total: Int = 0
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
68 | print("Rolling...")
69 | if detailed {
70 | print("Rolled d\(dieType) \(dieAmount) times with modifier of \(modifier)")
| `- error: main actor-isolated var 'dieType' can not be referenced from a nonisolated context
71 | print("Individual rolls \(rolledDie)")
72 | }
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:70:45: error: main actor-isolated var 'dieAmount' can not be referenced from a nonisolated context
2 | import Foundation
3 |
4 | var dieAmount: Int = 1
| `- note: var declared here
5 | var dieType: Int = 1
6 | var modifier: Int = 0
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
68 | print("Rolling...")
69 | if detailed {
70 | print("Rolled d\(dieType) \(dieAmount) times with modifier of \(modifier)")
| `- error: main actor-isolated var 'dieAmount' can not be referenced from a nonisolated context
71 | print("Individual rolls \(rolledDie)")
72 | }
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:70:81: error: main actor-isolated var 'modifier' can not be referenced from a nonisolated context
4 | var dieAmount: Int = 1
5 | var dieType: Int = 1
6 | var modifier: Int = 0
| `- note: var declared here
7 | var total: Int = 0
8 | var rolledDie: [String] = []
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
68 | print("Rolling...")
69 | if detailed {
70 | print("Rolled d\(dieType) \(dieAmount) times with modifier of \(modifier)")
| `- error: main actor-isolated var 'modifier' can not be referenced from a nonisolated context
71 | print("Individual rolls \(rolledDie)")
72 | }
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:71:43: error: main actor-isolated var 'rolledDie' can not be referenced from a nonisolated context
6 | var modifier: Int = 0
7 | var total: Int = 0
8 | var rolledDie: [String] = []
| `- note: var declared here
9 |
10 | func separateArguments(roll: String) -> (Int, Int, Int) {
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
69 | if detailed {
70 | print("Rolled d\(dieType) \(dieAmount) times with modifier of \(modifier)")
71 | print("Individual rolls \(rolledDie)")
| `- error: main actor-isolated var 'rolledDie' can not be referenced from a nonisolated context
72 | }
73 | print("Amount rolled: \(total)")
/Users/admin/builder/spi-builder-workspace/Sources/diceroller/main.swift:73:37: error: main actor-isolated var 'total' can not be referenced from a nonisolated context
5 | var dieType: Int = 1
6 | var modifier: Int = 0
7 | var total: Int = 0
| `- note: var declared here
8 | var rolledDie: [String] = []
9 |
:
57 | private var detailed: Bool = false
58 |
59 | func run() throws {
| `- note: add '@MainActor' to make instance method 'run()' part of global actor 'MainActor'
60 | let range = NSRange(location: 0, length: rollArguments.utf16.count)
61 | let regex = try! NSRegularExpression(pattern: "^[0-9]+d[0-9]+[-+]*[0-9]*")
:
71 | print("Individual rolls \(rolledDie)")
72 | }
73 | print("Amount rolled: \(total)")
| `- error: main actor-isolated var 'total' can not be referenced from a nonisolated context
74 | }
75 | }
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/4] Write swift-version-2F0A5646E1D333AE.txt
[2/37] Emitting module ArgumentParser
[3/40] Compiling ArgumentParser Name.swift
[4/40] Compiling ArgumentParser Parsed.swift
[5/40] Compiling ArgumentParser ParsedValues.swift
[6/40] Compiling ArgumentParser BashCompletionsGenerator.swift
[7/40] Compiling ArgumentParser CompletionsGenerator.swift
[8/40] Compiling ArgumentParser FishCompletionsGenerator.swift
[9/40] Compiling ArgumentParser ZshCompletionsGenerator.swift
[10/40] Compiling ArgumentParser SequenceExtensions.swift
[11/40] Compiling ArgumentParser StringExtensions.swift
[12/40] Compiling ArgumentParser Tree.swift
[13/40] Compiling ArgumentParser ParserError.swift
[14/40] Compiling ArgumentParser SplitArguments.swift
[15/40] Compiling ArgumentParser HelpCommand.swift
[16/40] Compiling ArgumentParser Argument.swift
[17/40] Compiling ArgumentParser ArgumentHelp.swift
[18/40] Compiling ArgumentParser CompletionKind.swift
[19/40] Compiling ArgumentParser Errors.swift
[20/40] Compiling ArgumentParser ArgumentSet.swift
[21/40] Compiling ArgumentParser CommandParser.swift
[22/40] Compiling ArgumentParser InputOrigin.swift
[23/40] Compiling ArgumentParser CommandConfiguration.swift
[24/40] Compiling ArgumentParser EnumerableFlag.swift
[25/40] Compiling ArgumentParser ExpressibleByArgument.swift
[26/40] Compiling ArgumentParser ParsableArguments.swift
[27/40] Compiling ArgumentParser ParsableArgumentsValidation.swift
[28/40] Compiling ArgumentParser ParsableCommand.swift
[29/40] Compiling ArgumentParser ArgumentDecoder.swift
[30/40] Compiling ArgumentParser ArgumentDefinition.swift
[31/40] Compiling ArgumentParser Flag.swift
[32/40] Compiling ArgumentParser NameSpecification.swift
[33/40] Compiling ArgumentParser Option.swift
[34/40] Compiling ArgumentParser OptionGroup.swift
[35/40] Compiling ArgumentParser HelpGenerator.swift
[36/40] Compiling ArgumentParser MessageInfo.swift
[37/40] Compiling ArgumentParser UsageGenerator.swift
[38/42] Compiling diceroller main.swift
[39/42] Emitting module diceroller
[39/42] Write Objects.LinkFileList
[40/42] Linking ndr
[41/42] Applying ndr
Build complete! (2.38s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "0.3.0",
"upper_bound" : "0.4.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
}
],
"manifest_display_name" : "Nifty Dice Roller",
"name" : "Nifty Dice Roller",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "ios",
"version" : "13.0"
}
],
"products" : [
{
"name" : "ndr",
"targets" : [
"diceroller"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "dicerollerTests",
"module_type" : "SwiftTarget",
"name" : "dicerollerTests",
"path" : "Tests/dicerollerTests",
"sources" : [
"XCTestManifests.swift",
"dicerollerTests.swift"
],
"target_dependencies" : [
"diceroller"
],
"type" : "test"
},
{
"c99name" : "diceroller",
"module_type" : "SwiftTarget",
"name" : "diceroller",
"path" : "Sources/diceroller",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"ndr"
],
"sources" : [
"main.swift"
],
"type" : "executable"
}
],
"tools_version" : "5.2"
}
Done.