The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of SwiftCustomLogger, reference 1.1.1 (5eea14), with Swift 6.1 for Linux on 1 May 2025 11:18:10 UTC.

Swift 6 data race errors: 7

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.61.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/nerzh/swift-custom-logger.git
Reference: 1.1.1
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/nerzh/swift-custom-logger
 * tag               1.1.1      -> FETCH_HEAD
HEAD is now at 5eea143 Merge pull request #1 from makoni/master
Cloned https://github.com/nerzh/swift-custom-logger.git
Revision (git rev-parse @):
5eea143e6674a7a263b96cdf51e4db8bad07820c
SUCCESS checkout https://github.com/nerzh/swift-custom-logger.git at 1.1.1
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.1
Building package at path:  $PWD
https://github.com/nerzh/swift-custom-logger.git
https://github.com/nerzh/swift-custom-logger.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.4",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log"
    }
  ],
  "manifest_display_name" : "SwiftCustomLogger",
  "name" : "SwiftCustomLogger",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SwiftCustomLogger",
      "targets" : [
        "SwiftCustomLogger"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftCustomLogger",
      "module_type" : "SwiftTarget",
      "name" : "SwiftCustomLogger",
      "path" : "Sources/SwiftCustomLogger",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "SwiftCustomLogger"
      ],
      "sources" : [
        "BasicFormatter.swift",
        "CustomHandler.swift",
        "LogFormatter.swift",
        "Printer.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Fetching https://github.com/apple/swift-log
[1/3836] Fetching swift-log
Fetched https://github.com/apple/swift-log from cache (0.50s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.6.3 (1.33s)
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.6.3
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-24593BA9C3E375BF.txt
[4/8] Compiling Logging MetadataProvider.swift
[5/8] Compiling Logging Logging.swift
[6/8] Compiling Logging LogHandler.swift
[7/8] Emitting module Logging
[8/8] Compiling Logging Locks.swift
[10/14] Compiling SwiftCustomLogger LogFormatter.swift
[11/14] Compiling SwiftCustomLogger Printer.swift
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:74:16: warning: static property 'stderr' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | private struct OutputStream: TextOutputStream {
   |                `- note: consider making struct 'OutputStream' conform to the 'Sendable' protocol
50 |
51 |     public let file: UnsafeMutablePointer<FILE>
   :
72 |
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
   |                |- warning: static property 'stderr' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'stderr' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
76 |
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:74:50: warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
72 |
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
   |                                                  `- warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
76 |
/usr/include/stdio.h:145:14: note: var declared here
143 | extern FILE *stdin;		/* Standard input stream.  */
144 | extern FILE *stdout;		/* Standard output stream.  */
145 | extern FILE *stderr;		/* Standard error output stream.  */
    |              `- note: var declared here
146 | /* C89/C99 say they're macros.  Make them happy.  */
147 | #define stdin stdin
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:75:16: warning: static property 'stdout' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | private struct OutputStream: TextOutputStream {
   |                `- note: consider making struct 'OutputStream' conform to the 'Sendable' protocol
50 |
51 |     public let file: UnsafeMutablePointer<FILE>
   :
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
   |                |- warning: static property 'stdout' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'stdout' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 |
77 |     #elseif canImport(Musl)
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:75:50: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
   |                                                  `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
76 |
77 |     #elseif canImport(Musl)
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams.  */
143 | extern FILE *stdin;		/* Standard input stream.  */
144 | extern FILE *stdout;		/* Standard output stream.  */
    |              `- note: var declared here
145 | extern FILE *stderr;		/* Standard error output stream.  */
146 | /* C89/C99 say they're macros.  Make them happy.  */
[12/14] Compiling SwiftCustomLogger CustomHandler.swift
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:6:16: warning: stored property 'formatter' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any LogFormatter'; this is an error in the Swift 6 language mode
 4 | public struct CustomHandler: LogHandler {
 5 |
 6 |     public let formatter: LogFormatter
   |                `- warning: stored property 'formatter' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any LogFormatter'; this is an error in the Swift 6 language mode
 7 |     public let printer: Printer
 8 |     public var logLevel: Logger.Level = .info
/host/spi-builder-workspace/Sources/SwiftCustomLogger/LogFormatter.swift:28:17: note: protocol 'LogFormatter' does not conform to the 'Sendable' protocol
26 | }
27 |
28 | public protocol LogFormatter {
   |                 `- note: protocol 'LogFormatter' does not conform to the 'Sendable' protocol
29 |     var timestampFormatter: DateFormatter { get }
30 |
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:7:16: warning: stored property 'printer' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any Printer'; this is an error in the Swift 6 language mode
 5 |
 6 |     public let formatter: LogFormatter
 7 |     public let printer: Printer
   |                `- warning: stored property 'printer' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any Printer'; this is an error in the Swift 6 language mode
 8 |     public var logLevel: Logger.Level = .info
 9 |     private var prettyMetadata: String?
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:23:17: note: protocol 'Printer' does not conform to the 'Sendable' protocol
21 | #endif
22 |
23 | public protocol Printer {
   |                 `- note: protocol 'Printer' does not conform to the 'Sendable' protocol
24 |     func handle(_ formattedLogLine: String)
25 | }
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:4:15: warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
 2 | import Logging
 3 |
 4 | public struct CustomHandler: LogHandler {
   |               `- warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
 5 |
 6 |     public let formatter: LogFormatter
/host/spi-builder-workspace/.build/checkouts/swift-log/Sources/Logging/LogHandler.swift:209:17: note: 'log(level:message:metadata:source:file:function:line:)' declared here
133 |     ///     - function: The function the log line was emitted from.
134 |     ///     - line: The line the log message was emitted from.
135 |     func log(
    |          `- note: requirement 'log(level:message:metadata:source:file:function:line:)' declared here
136 |         level: Logger.Level,
137 |         message: Logger.Message,
    :
207 | extension LogHandler {
208 |     @available(*, deprecated, message: "You should implement this method instead of using the default implementation")
209 |     public func log(
    |                 `- note: 'log(level:message:metadata:source:file:function:line:)' declared here
210 |         level: Logger.Level,
211 |         message: Logger.Message,
[13/14] Emitting module SwiftCustomLogger
/host/spi-builder-workspace/Sources/SwiftCustomLogger/BasicFormatter.swift:56:23: warning: static property 'appleDefault' is not concurrency-safe because non-'Sendable' type 'BasicFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
 2 | import Logging
 3 |
 4 | public struct BasicFormatter: LogFormatter {
   |               `- note: consider making struct 'BasicFormatter' conform to the 'Sendable' protocol
 5 |
 6 |     public let timestampFormatter: DateFormatter
   :
54 |     /// [apple/swift-log](https://github.com/apple/swift-log)'s log format
55 |     /// `2024-04-12T10:00:07-0310 error: Test error message`
56 |     public static let appleDefault = BasicFormatter(
   |                       |- warning: static property 'appleDefault' is not concurrency-safe because non-'Sendable' type 'BasicFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'appleDefault' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
57 |         [
58 |             .timestamp,
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:6:16: warning: stored property 'formatter' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any LogFormatter'; this is an error in the Swift 6 language mode
 4 | public struct CustomHandler: LogHandler {
 5 |
 6 |     public let formatter: LogFormatter
   |                `- warning: stored property 'formatter' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any LogFormatter'; this is an error in the Swift 6 language mode
 7 |     public let printer: Printer
 8 |     public var logLevel: Logger.Level = .info
/host/spi-builder-workspace/Sources/SwiftCustomLogger/LogFormatter.swift:28:17: note: protocol 'LogFormatter' does not conform to the 'Sendable' protocol
26 | }
27 |
28 | public protocol LogFormatter {
   |                 `- note: protocol 'LogFormatter' does not conform to the 'Sendable' protocol
29 |     var timestampFormatter: DateFormatter { get }
30 |
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:7:16: warning: stored property 'printer' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any Printer'; this is an error in the Swift 6 language mode
 5 |
 6 |     public let formatter: LogFormatter
 7 |     public let printer: Printer
   |                `- warning: stored property 'printer' of 'Sendable'-conforming struct 'CustomHandler' has non-sendable type 'any Printer'; this is an error in the Swift 6 language mode
 8 |     public var logLevel: Logger.Level = .info
 9 |     private var prettyMetadata: String?
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:23:17: note: protocol 'Printer' does not conform to the 'Sendable' protocol
21 | #endif
22 |
23 | public protocol Printer {
   |                 `- note: protocol 'Printer' does not conform to the 'Sendable' protocol
24 |     func handle(_ formattedLogLine: String)
25 | }
/host/spi-builder-workspace/Sources/SwiftCustomLogger/CustomHandler.swift:4:15: warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
 2 | import Logging
 3 |
 4 | public struct CustomHandler: LogHandler {
   |               `- warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
 5 |
 6 |     public let formatter: LogFormatter
/host/spi-builder-workspace/.build/checkouts/swift-log/Sources/Logging/LogHandler.swift:209:17: note: 'log(level:message:metadata:source:file:function:line:)' declared here
133 |     ///     - function: The function the log line was emitted from.
134 |     ///     - line: The line the log message was emitted from.
135 |     func log(
    |          `- note: requirement 'log(level:message:metadata:source:file:function:line:)' declared here
136 |         level: Logger.Level,
137 |         message: Logger.Message,
    :
207 | extension LogHandler {
208 |     @available(*, deprecated, message: "You should implement this method instead of using the default implementation")
209 |     public func log(
    |                 `- note: 'log(level:message:metadata:source:file:function:line:)' declared here
210 |         level: Logger.Level,
211 |         message: Logger.Message,
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:74:16: warning: static property 'stderr' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | private struct OutputStream: TextOutputStream {
   |                `- note: consider making struct 'OutputStream' conform to the 'Sendable' protocol
50 |
51 |     public let file: UnsafeMutablePointer<FILE>
   :
72 |
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
   |                |- warning: static property 'stderr' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'stderr' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
76 |
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:74:50: warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
72 |
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
   |                                                  `- warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
76 |
/usr/include/stdio.h:145:14: note: var declared here
143 | extern FILE *stdin;		/* Standard input stream.  */
144 | extern FILE *stdout;		/* Standard output stream.  */
145 | extern FILE *stderr;		/* Standard error output stream.  */
    |              `- note: var declared here
146 | /* C89/C99 say they're macros.  Make them happy.  */
147 | #define stdin stdin
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:75:16: warning: static property 'stdout' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
47 | }
48 |
49 | private struct OutputStream: TextOutputStream {
   |                `- note: consider making struct 'OutputStream' conform to the 'Sendable' protocol
50 |
51 |     public let file: UnsafeMutablePointer<FILE>
   :
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
   |                |- warning: static property 'stdout' is not concurrency-safe because non-'Sendable' type 'OutputStream' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: add '@MainActor' to make static property 'stdout' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 |
77 |     #elseif canImport(Musl)
/host/spi-builder-workspace/Sources/SwiftCustomLogger/Printer.swift:75:50: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
73 |     #elseif canImport(Glibc)
74 |     static let stderr = OutputStream(file: Glibc.stderr!)
75 |     static let stdout = OutputStream(file: Glibc.stdout!)
   |                                                  `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
76 |
77 |     #elseif canImport(Musl)
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams.  */
143 | extern FILE *stdin;		/* Standard input stream.  */
144 | extern FILE *stdout;		/* Standard output stream.  */
    |              `- note: var declared here
145 | extern FILE *stderr;		/* Standard error output stream.  */
146 | /* C89/C99 say they're macros.  Make them happy.  */
[14/14] Compiling SwiftCustomLogger BasicFormatter.swift
/host/spi-builder-workspace/Sources/SwiftCustomLogger/BasicFormatter.swift:56:23: warning: static property 'appleDefault' is not concurrency-safe because non-'Sendable' type 'BasicFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
 2 | import Logging
 3 |
 4 | public struct BasicFormatter: LogFormatter {
   |               `- note: consider making struct 'BasicFormatter' conform to the 'Sendable' protocol
 5 |
 6 |     public let timestampFormatter: DateFormatter
   :
54 |     /// [apple/swift-log](https://github.com/apple/swift-log)'s log format
55 |     /// `2024-04-12T10:00:07-0310 error: Test error message`
56 |     public static let appleDefault = BasicFormatter(
   |                       |- warning: static property 'appleDefault' is not concurrency-safe because non-'Sendable' type 'BasicFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'appleDefault' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
57 |         [
58 |             .timestamp,
Build complete! (9.34s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.4",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log"
    }
  ],
  "manifest_display_name" : "SwiftCustomLogger",
  "name" : "SwiftCustomLogger",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SwiftCustomLogger",
      "targets" : [
        "SwiftCustomLogger"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftCustomLogger",
      "module_type" : "SwiftTarget",
      "name" : "SwiftCustomLogger",
      "path" : "Sources/SwiftCustomLogger",
      "product_dependencies" : [
        "Logging"
      ],
      "product_memberships" : [
        "SwiftCustomLogger"
      ],
      "sources" : [
        "BasicFormatter.swift",
        "CustomHandler.swift",
        "LogFormatter.swift",
        "Printer.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.