The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of Eval, reference 1.5.0 (2070df), with Swift 6.1 for macOS (SPM) on 24 Apr 2025 19:29:36 UTC.

Swift 6 data race errors: 8

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tevelee/Eval.git
Reference: 1.5.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tevelee/Eval
 * tag               1.5.0      -> FETCH_HEAD
HEAD is now at 2070dfb Version 1.5.0
Cloned https://github.com/tevelee/Eval.git
Revision (git rev-parse @):
2070dfb6f739a9665c81601162ac16ee8291fb30
SUCCESS checkout https://github.com/tevelee/Eval.git at 1.5.0
========================================
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": "eval",
      "name": "Eval",
      "url": "https://github.com/tevelee/Eval.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Eval",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/tevelee/Eval.git
[1/82718] Fetching eval
Fetched https://github.com/tevelee/Eval.git from cache (7.76s)
Creating working copy for https://github.com/tevelee/Eval.git
Working copy of https://github.com/tevelee/Eval.git resolved at 1.5.0 (2070dfb)
warning: '.resolve-product-dependencies': dependency 'eval' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/tevelee/Eval.git
https://github.com/tevelee/Eval.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Eval",
  "name" : "Eval",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Eval",
      "targets" : [
        "Eval"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "EvalTests",
      "module_type" : "SwiftTarget",
      "name" : "EvalTests",
      "path" : "Tests/EvalTests",
      "sources" : [
        "IntegrationTests/InterpreterTests.swift",
        "IntegrationTests/TemplateTests.swift",
        "UnitTests/DataTypeTests.swift",
        "UnitTests/FunctionTests.swift",
        "UnitTests/InterpreterContextTests.swift",
        "UnitTests/KeywordTests.swift",
        "UnitTests/LiteralTests.swift",
        "UnitTests/MatchResultTests.swift",
        "UnitTests/MatchStatementTests.swift",
        "UnitTests/MatcherTests.swift",
        "UnitTests/PatternTests.swift",
        "UnitTests/TemplateInterpreterTests.swift",
        "UnitTests/TypedInterpreterTests.swift",
        "UnitTests/UtilTests.swift",
        "UnitTests/VariableProcessor.swift",
        "UnitTests/VariableTests.swift",
        "Utils.swift"
      ],
      "target_dependencies" : [
        "Eval"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Eval",
      "module_type" : "SwiftTarget",
      "name" : "Eval",
      "path" : "Sources/Eval",
      "product_memberships" : [
        "Eval"
      ],
      "sources" : [
        "Common.swift",
        "Elements.swift",
        "TemplateInterpreter.swift",
        "TypedInterpreter.swift",
        "Utilities/MatchResult.swift",
        "Utilities/Matcher.swift",
        "Utilities/Pattern.swift",
        "Utilities/Utils.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
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/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/11] Compiling Eval Common.swift
[4/11] Compiling Eval Utils.swift
[5/11] Compiling Eval TemplateInterpreter.swift
/Users/admin/builder/spi-builder-workspace/Sources/Eval/TemplateInterpreter.swift:78:30: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
 24 | /// This interpreter is used to evaluate string expressions and return a transformed string, replacing the content where it matches certain patterns.
 25 | /// Typically used in web applications, where the rendering of an HTML page is provided as a template, and the application replaces certain statements, based on input parameters.
 26 | open class TemplateInterpreter<T>: Interpreter {
    |                                `- note: 'T' previously declared here
 27 |     /// The statements (patterns) registered to the interpreter. If found, these are going to be processed and replaced with the evaluated value
 28 |     public let statements: [Pattern<T, TemplateInterpreter<T>>]
    :
 76 |     /// - parameter next: The value of the current element in the iteration
 77 |     /// - returns: The a combined value based on the previous and the new value
 78 |     public typealias Reducer<T, K> = (_ existing: T, _ next: K) -> T
    |                              `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
 79 |
 80 |     /// In order to support generic types, not just plain String objects, a reducer helps to convert the output to the dedicated output type
[6/11] Compiling Eval Elements.swift
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:116:23: warning: static property 'notInterpreted' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
105 |
106 | /// Options that modify the behaviour of the variable matching, and the output that the framework provides
107 | public struct VariableOptions: OptionSet {
    |               `- note: consider making struct 'VariableOptions' conform to the 'Sendable' protocol
108 |     /// Integer representation of the option
109 |     public let rawValue: Int
    :
114 |
115 |     /// If set, the value of the recognised placeholder will not be processed. Otherwise, it will be evaluated, using the `interpreterForEvaluatingVariables` property of the interpreter instance
116 |     public static let notInterpreted: VariableOptions = VariableOptions(rawValue: 1 << 0)
    |                       |- warning: static property 'notInterpreted' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'notInterpreted' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
117 |     /// Whether the processed variable should be or not to be trimmed (removing whitespaces from both sides)
118 |     public static let notTrimmed: VariableOptions = VariableOptions(rawValue: 1 << 1)
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:118:23: warning: static property 'notTrimmed' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
105 |
106 | /// Options that modify the behaviour of the variable matching, and the output that the framework provides
107 | public struct VariableOptions: OptionSet {
    |               `- note: consider making struct 'VariableOptions' conform to the 'Sendable' protocol
108 |     /// Integer representation of the option
109 |     public let rawValue: Int
    :
116 |     public static let notInterpreted: VariableOptions = VariableOptions(rawValue: 1 << 0)
117 |     /// Whether the processed variable should be or not to be trimmed (removing whitespaces from both sides)
118 |     public static let notTrimmed: VariableOptions = VariableOptions(rawValue: 1 << 1)
    |                       |- warning: static property 'notTrimmed' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'notTrimmed' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 |     /// Provides information whether the match should be exhaustive or just use the shortest possible matching string (even zero characters in some edge cases). This depends on the surrounding `Keyword` instances in the containing collection.
120 |     public static let exhaustiveMatch: VariableOptions = VariableOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:120:23: warning: static property 'exhaustiveMatch' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
105 |
106 | /// Options that modify the behaviour of the variable matching, and the output that the framework provides
107 | public struct VariableOptions: OptionSet {
    |               `- note: consider making struct 'VariableOptions' conform to the 'Sendable' protocol
108 |     /// Integer representation of the option
109 |     public let rawValue: Int
    :
118 |     public static let notTrimmed: VariableOptions = VariableOptions(rawValue: 1 << 1)
119 |     /// Provides information whether the match should be exhaustive or just use the shortest possible matching string (even zero characters in some edge cases). This depends on the surrounding `Keyword` instances in the containing collection.
120 |     public static let exhaustiveMatch: VariableOptions = VariableOptions(rawValue: 1 << 2)
    |                       |- warning: static property 'exhaustiveMatch' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'exhaustiveMatch' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
121 |     /// If interpreted and the result of the evaluation is `nil`, then `acceptsNilValue` determines if the current match result should be instant noMatch, or `nil` is an accepted value, so the matching should be continued
122 |     public static let acceptsNilValue: VariableOptions = VariableOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:122:23: warning: static property 'acceptsNilValue' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
105 |
106 | /// Options that modify the behaviour of the variable matching, and the output that the framework provides
107 | public struct VariableOptions: OptionSet {
    |               `- note: consider making struct 'VariableOptions' conform to the 'Sendable' protocol
108 |     /// Integer representation of the option
109 |     public let rawValue: Int
    :
120 |     public static let exhaustiveMatch: VariableOptions = VariableOptions(rawValue: 1 << 2)
121 |     /// If interpreted and the result of the evaluation is `nil`, then `acceptsNilValue` determines if the current match result should be instant noMatch, or `nil` is an accepted value, so the matching should be continued
122 |     public static let acceptsNilValue: VariableOptions = VariableOptions(rawValue: 1 << 3)
    |                       |- warning: static property 'acceptsNilValue' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'acceptsNilValue' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
123 |
124 |     /// In order to avoid double negatives in the source code (e.g. !notInterpreted), this helper checks the lack of .notInterpreted value in the optionset
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:157:37: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
151 | /// Generic superclass of `Variable`s which are aware of their `Interpreter` classes,
152 | /// as they use it when mapping their values
153 | public class GenericVariable<T, I: Interpreter>: VariableProtocol, PatternElement, Equatable {
    |                              `- note: 'T' previously declared here
154 |     /// Maps and validates the variable value to another
155 |     /// - parameter body: Struct containing the raw matched value and an interpreter object
156 |     /// - returns: The transformed value or nil, if the value was validated with a negative result
157 |     public typealias VariableMapper<T, I: Interpreter> = (_ body: VariableBody<I>) -> T?
    |                                     `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
158 |
159 |     /// Unique identifier of the variable that is used when matching and returning them in the matcher.
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:157:40: warning: generic parameter 'I' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
151 | /// Generic superclass of `Variable`s which are aware of their `Interpreter` classes,
152 | /// as they use it when mapping their values
153 | public class GenericVariable<T, I: Interpreter>: VariableProtocol, PatternElement, Equatable {
    |                                 `- note: 'I' previously declared here
154 |     /// Maps and validates the variable value to another
155 |     /// - parameter body: Struct containing the raw matched value and an interpreter object
156 |     /// - returns: The transformed value or nil, if the value was validated with a negative result
157 |     public typealias VariableMapper<T, I: Interpreter> = (_ body: VariableBody<I>) -> T?
    |                                        `- warning: generic parameter 'I' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
158 |
159 |     /// Unique identifier of the variable that is used when matching and returning them in the matcher.
[7/11] Compiling Eval TypedInterpreter.swift
[8/11] Emitting module Eval
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:116:23: warning: static property 'notInterpreted' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
105 |
106 | /// Options that modify the behaviour of the variable matching, and the output that the framework provides
107 | public struct VariableOptions: OptionSet {
    |               `- note: consider making struct 'VariableOptions' conform to the 'Sendable' protocol
108 |     /// Integer representation of the option
109 |     public let rawValue: Int
    :
114 |
115 |     /// If set, the value of the recognised placeholder will not be processed. Otherwise, it will be evaluated, using the `interpreterForEvaluatingVariables` property of the interpreter instance
116 |     public static let notInterpreted: VariableOptions = VariableOptions(rawValue: 1 << 0)
    |                       |- warning: static property 'notInterpreted' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'notInterpreted' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
117 |     /// Whether the processed variable should be or not to be trimmed (removing whitespaces from both sides)
118 |     public static let notTrimmed: VariableOptions = VariableOptions(rawValue: 1 << 1)
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:118:23: warning: static property 'notTrimmed' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
105 |
106 | /// Options that modify the behaviour of the variable matching, and the output that the framework provides
107 | public struct VariableOptions: OptionSet {
    |               `- note: consider making struct 'VariableOptions' conform to the 'Sendable' protocol
108 |     /// Integer representation of the option
109 |     public let rawValue: Int
    :
116 |     public static let notInterpreted: VariableOptions = VariableOptions(rawValue: 1 << 0)
117 |     /// Whether the processed variable should be or not to be trimmed (removing whitespaces from both sides)
118 |     public static let notTrimmed: VariableOptions = VariableOptions(rawValue: 1 << 1)
    |                       |- warning: static property 'notTrimmed' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'notTrimmed' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 |     /// Provides information whether the match should be exhaustive or just use the shortest possible matching string (even zero characters in some edge cases). This depends on the surrounding `Keyword` instances in the containing collection.
120 |     public static let exhaustiveMatch: VariableOptions = VariableOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:120:23: warning: static property 'exhaustiveMatch' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
105 |
106 | /// Options that modify the behaviour of the variable matching, and the output that the framework provides
107 | public struct VariableOptions: OptionSet {
    |               `- note: consider making struct 'VariableOptions' conform to the 'Sendable' protocol
108 |     /// Integer representation of the option
109 |     public let rawValue: Int
    :
118 |     public static let notTrimmed: VariableOptions = VariableOptions(rawValue: 1 << 1)
119 |     /// Provides information whether the match should be exhaustive or just use the shortest possible matching string (even zero characters in some edge cases). This depends on the surrounding `Keyword` instances in the containing collection.
120 |     public static let exhaustiveMatch: VariableOptions = VariableOptions(rawValue: 1 << 2)
    |                       |- warning: static property 'exhaustiveMatch' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'exhaustiveMatch' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
121 |     /// If interpreted and the result of the evaluation is `nil`, then `acceptsNilValue` determines if the current match result should be instant noMatch, or `nil` is an accepted value, so the matching should be continued
122 |     public static let acceptsNilValue: VariableOptions = VariableOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:122:23: warning: static property 'acceptsNilValue' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
105 |
106 | /// Options that modify the behaviour of the variable matching, and the output that the framework provides
107 | public struct VariableOptions: OptionSet {
    |               `- note: consider making struct 'VariableOptions' conform to the 'Sendable' protocol
108 |     /// Integer representation of the option
109 |     public let rawValue: Int
    :
120 |     public static let exhaustiveMatch: VariableOptions = VariableOptions(rawValue: 1 << 2)
121 |     /// If interpreted and the result of the evaluation is `nil`, then `acceptsNilValue` determines if the current match result should be instant noMatch, or `nil` is an accepted value, so the matching should be continued
122 |     public static let acceptsNilValue: VariableOptions = VariableOptions(rawValue: 1 << 3)
    |                       |- warning: static property 'acceptsNilValue' is not concurrency-safe because non-'Sendable' type 'VariableOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'acceptsNilValue' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
123 |
124 |     /// In order to avoid double negatives in the source code (e.g. !notInterpreted), this helper checks the lack of .notInterpreted value in the optionset
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:157:37: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
151 | /// Generic superclass of `Variable`s which are aware of their `Interpreter` classes,
152 | /// as they use it when mapping their values
153 | public class GenericVariable<T, I: Interpreter>: VariableProtocol, PatternElement, Equatable {
    |                              `- note: 'T' previously declared here
154 |     /// Maps and validates the variable value to another
155 |     /// - parameter body: Struct containing the raw matched value and an interpreter object
156 |     /// - returns: The transformed value or nil, if the value was validated with a negative result
157 |     public typealias VariableMapper<T, I: Interpreter> = (_ body: VariableBody<I>) -> T?
    |                                     `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
158 |
159 |     /// Unique identifier of the variable that is used when matching and returning them in the matcher.
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Elements.swift:157:40: warning: generic parameter 'I' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
151 | /// Generic superclass of `Variable`s which are aware of their `Interpreter` classes,
152 | /// as they use it when mapping their values
153 | public class GenericVariable<T, I: Interpreter>: VariableProtocol, PatternElement, Equatable {
    |                                 `- note: 'I' previously declared here
154 |     /// Maps and validates the variable value to another
155 |     /// - parameter body: Struct containing the raw matched value and an interpreter object
156 |     /// - returns: The transformed value or nil, if the value was validated with a negative result
157 |     public typealias VariableMapper<T, I: Interpreter> = (_ body: VariableBody<I>) -> T?
    |                                        `- warning: generic parameter 'I' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
158 |
159 |     /// Unique identifier of the variable that is used when matching and returning them in the matcher.
/Users/admin/builder/spi-builder-workspace/Sources/Eval/TemplateInterpreter.swift:78:30: warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
 24 | /// This interpreter is used to evaluate string expressions and return a transformed string, replacing the content where it matches certain patterns.
 25 | /// Typically used in web applications, where the rendering of an HTML page is provided as a template, and the application replaces certain statements, based on input parameters.
 26 | open class TemplateInterpreter<T>: Interpreter {
    |                                `- note: 'T' previously declared here
 27 |     /// The statements (patterns) registered to the interpreter. If found, these are going to be processed and replaced with the evaluated value
 28 |     public let statements: [Pattern<T, TemplateInterpreter<T>>]
    :
 76 |     /// - parameter next: The value of the current element in the iteration
 77 |     /// - returns: The a combined value based on the previous and the new value
 78 |     public typealias Reducer<T, K> = (_ existing: T, _ next: K) -> T
    |                              `- warning: generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
 79 |
 80 |     /// In order to support generic types, not just plain String objects, a reducer helps to convert the output to the dedicated output type
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Utilities/Pattern.swift:52:23: warning: static property 'backwardMatch' is not concurrency-safe because non-'Sendable' type 'PatternOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 41 |
 42 | /// Options that modify the pattern matching algorithm
 43 | public struct PatternOptions: OptionSet {
    |               `- note: consider making struct 'PatternOptions' conform to the 'Sendable' protocol
 44 |     /// Integer representation of the option
 45 |     public let rawValue: Int
    :
 50 |
 51 |     /// Searches of the elements of the pattern backward from the end of the output. Othwerise, if not present, it matches from the beginning.
 52 |     public static let backwardMatch: PatternOptions = PatternOptions(rawValue: 1 << 0)
    |                       |- warning: static property 'backwardMatch' is not concurrency-safe because non-'Sendable' type 'PatternOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'backwardMatch' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 53 | }
 54 |
[9/11] Compiling Eval MatchResult.swift
[10/11] Compiling Eval Pattern.swift
/Users/admin/builder/spi-builder-workspace/Sources/Eval/Utilities/Pattern.swift:52:23: warning: static property 'backwardMatch' is not concurrency-safe because non-'Sendable' type 'PatternOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 41 |
 42 | /// Options that modify the pattern matching algorithm
 43 | public struct PatternOptions: OptionSet {
    |               `- note: consider making struct 'PatternOptions' conform to the 'Sendable' protocol
 44 |     /// Integer representation of the option
 45 |     public let rawValue: Int
    :
 50 |
 51 |     /// Searches of the elements of the pattern backward from the end of the output. Othwerise, if not present, it matches from the beginning.
 52 |     public static let backwardMatch: PatternOptions = PatternOptions(rawValue: 1 << 0)
    |                       |- warning: static property 'backwardMatch' is not concurrency-safe because non-'Sendable' type 'PatternOptions' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'backwardMatch' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 53 | }
 54 |
[11/11] Compiling Eval Matcher.swift
Build complete! (5.96s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Eval",
  "name" : "Eval",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Eval",
      "targets" : [
        "Eval"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "EvalTests",
      "module_type" : "SwiftTarget",
      "name" : "EvalTests",
      "path" : "Tests/EvalTests",
      "sources" : [
        "IntegrationTests/InterpreterTests.swift",
        "IntegrationTests/TemplateTests.swift",
        "UnitTests/DataTypeTests.swift",
        "UnitTests/FunctionTests.swift",
        "UnitTests/InterpreterContextTests.swift",
        "UnitTests/KeywordTests.swift",
        "UnitTests/LiteralTests.swift",
        "UnitTests/MatchResultTests.swift",
        "UnitTests/MatchStatementTests.swift",
        "UnitTests/MatcherTests.swift",
        "UnitTests/PatternTests.swift",
        "UnitTests/TemplateInterpreterTests.swift",
        "UnitTests/TypedInterpreterTests.swift",
        "UnitTests/UtilTests.swift",
        "UnitTests/VariableProcessor.swift",
        "UnitTests/VariableTests.swift",
        "Utils.swift"
      ],
      "target_dependencies" : [
        "Eval"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Eval",
      "module_type" : "SwiftTarget",
      "name" : "Eval",
      "path" : "Sources/Eval",
      "product_memberships" : [
        "Eval"
      ],
      "sources" : [
        "Common.swift",
        "Elements.swift",
        "TemplateInterpreter.swift",
        "TypedInterpreter.swift",
        "Utilities/MatchResult.swift",
        "Utilities/Matcher.swift",
        "Utilities/Pattern.swift",
        "Utilities/Utils.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
Done.