The Swift Package Index logo.Swift Package Index

Build Information

Successful build of EasyMetalShader, reference main (7f496f), with Swift 6.3 for macOS (SPM) on 17 Apr 2026 06:00:34 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/yukiny0811/EasyMetalShader.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/yukiny0811/EasyMetalShader
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 7f496fc swift-syntax version
Cloned https://github.com/yukiny0811/EasyMetalShader.git
Revision (git rev-parse @):
7f496fcd2b000262151b90a863228215bf101eda
SUCCESS checkout https://github.com/yukiny0811/EasyMetalShader.git at main
Fetching https://github.com/apple/swift-syntax.git
[1/74983] Fetching swift-syntax
Fetched https://github.com/apple/swift-syntax.git from cache (4.87s)
Computing version for https://github.com/apple/swift-syntax.git
Computed https://github.com/apple/swift-syntax.git at 602.0.0 (8.96s)
Creating working copy for https://github.com/apple/swift-syntax.git
Working copy of https://github.com/apple/swift-syntax.git resolved at 602.0.0
Downloading package prebuilt https://download.swift.org/prebuilts/swift-syntax/602.0.0/swiftlang-6.3.0.123.5-macosx26.4-MacroSupport.zip
Downloaded https://download.swift.org/prebuilts/swift-syntax/602.0.0/swiftlang-6.3.0.123.5-macosx26.4-MacroSupport.zip (0.35s)
========================================
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",
  "traits": [
    "default"
  ],
  "dependencies": [
    {
      "identity": "easymetalshader",
      "name": "EasyMetalShader",
      "url": "https://github.com/yukiny0811/EasyMetalShader.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/EasyMetalShader",
      "traits": [
        "default"
      ],
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/yukiny0811/EasyMetalShader.git
[1/962] Fetching easymetalshader
Fetched https://github.com/yukiny0811/EasyMetalShader.git from cache (1.04s)
Fetching https://github.com/apple/swift-syntax.git from cache
Fetched https://github.com/apple/swift-syntax.git from cache (0.82s)
Computing version for https://github.com/apple/swift-syntax.git
Computed https://github.com/apple/swift-syntax.git at 602.0.0 (0.90s)
Creating working copy for https://github.com/apple/swift-syntax.git
Working copy of https://github.com/apple/swift-syntax.git resolved at 602.0.0
Creating working copy for https://github.com/yukiny0811/EasyMetalShader.git
Working copy of https://github.com/yukiny0811/EasyMetalShader.git resolved at main (7f496fc)
warning: '.resolve-product-dependencies': dependency 'easymetalshader' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/yukiny0811/EasyMetalShader.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
Building for debugging...
[0/5] Write sources
[2/5] Write swift-version--6988338F2F200930.txt
[4/27] Compiling EasyMetalShaderMacro InitRender.swift
[5/27] Compiling EasyMetalShaderMacro RenderFunctionStrings.swift
[6/27] Compiling EasyMetalShaderMacro EMRenderShader+MemberMacro.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMRenderShader/EMRenderShader+MemberMacro.swift:71:65: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 69 |                                     if attribute.attributeName.trimmedDescription == "EMTextureArgument" {
 70 |                                         if let args = attribute.arguments?.as(LabeledExprListSyntax.self) {
 71 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
    |                                                                 `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 72 |                                             if args.count >= 2 {
 73 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMRenderShader/EMRenderShader+MemberMacro.swift:73:105: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 71 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
 72 |                                             if args.count >= 2 {
 73 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
    |                                                                                                         `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 74 |                                                     MemberAccessExprSyntax.self
 75 |                                                 )?.declName.baseName.trimmedDescription
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[7/27] Compiling EasyMetalShaderMacro EMRenderShader.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMRenderShader/EMRenderShader+MemberMacro.swift:71:65: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 69 |                                     if attribute.attributeName.trimmedDescription == "EMTextureArgument" {
 70 |                                         if let args = attribute.arguments?.as(LabeledExprListSyntax.self) {
 71 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
    |                                                                 `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 72 |                                             if args.count >= 2 {
 73 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMRenderShader/EMRenderShader+MemberMacro.swift:73:105: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 71 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
 72 |                                             if args.count >= 2 {
 73 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
    |                                                                                                         `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 74 |                                                     MemberAccessExprSyntax.self
 75 |                                                 )?.declName.baseName.trimmedDescription
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[8/27] Compiling EasyMetalShaderMacro EMRenderShader+ExtensionMacro.swift
[9/27] Compiling EasyMetalShaderMacro EMRenderShader+MemberAttributeMacro.swift
[10/27] Compiling EasyMetalShaderMacro EMComputeShader3D+ExtensionMacro.swift
[11/27] Compiling EasyMetalShaderMacro EMComputeShader3D+MemberAttributeMacro.swift
[12/27] Emitting module EasyMetalShaderMacro
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/Utils/String+Error.swift:10:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
 8 | import Foundation
 9 |
10 | extension String: LocalizedError {
   | |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
11 |     public var errorDescription: String? { self }
12 | }
[13/27] Compiling EasyMetalShaderMacro EMTextureArgument.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMTextureArgument/EMTextureArgument.swift:37:39: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
35 |         }
36 |
37 |         guard let usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription else {
   |                                       `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
38 |             throw "invalid texture usage"
39 |         }
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMTextureArgument/EMTextureArgument.swift:44:69: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
42 |
43 |         if args.count >= 2 {
44 |             format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
   |                                                                     `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
45 |         }
46 |
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[14/27] Compiling EasyMetalShaderMacro EasyMetalShaderMacroPlugin.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMTextureArgument/EMTextureArgument.swift:37:39: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
35 |         }
36 |
37 |         guard let usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription else {
   |                                       `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
38 |             throw "invalid texture usage"
39 |         }
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMTextureArgument/EMTextureArgument.swift:44:69: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
42 |
43 |         if args.count >= 2 {
44 |             format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
   |                                                                     `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
45 |         }
46 |
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[15/27] Compiling EasyMetalShaderMacro EMArgument.swift
[16/27] Compiling EasyMetalShaderMacro ComputeFunctionStrings.swift
[17/27] Compiling EasyMetalShaderMacro InitCompute.swift
[18/27] Compiling EasyMetalShaderMacro EMComputeShader+ExtensionMacro.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMComputeShader/EMComputeShader+MemberMacro.swift:64:65: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 62 |                                     if attribute.attributeName.trimmedDescription == "EMTextureArgument" {
 63 |                                         if let args = attribute.arguments?.as(LabeledExprListSyntax.self) {
 64 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
    |                                                                 `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 65 |                                             if args.count >= 2 {
 66 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMComputeShader/EMComputeShader+MemberMacro.swift:66:105: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 64 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
 65 |                                             if args.count >= 2 {
 66 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
    |                                                                                                         `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 67 |                                                     MemberAccessExprSyntax.self
 68 |                                                 )?.declName.baseName.trimmedDescription
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[19/27] Compiling EasyMetalShaderMacro EMComputeShader+MemberAttributeMacro.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMComputeShader/EMComputeShader+MemberMacro.swift:64:65: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 62 |                                     if attribute.attributeName.trimmedDescription == "EMTextureArgument" {
 63 |                                         if let args = attribute.arguments?.as(LabeledExprListSyntax.self) {
 64 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
    |                                                                 `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 65 |                                             if args.count >= 2 {
 66 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMComputeShader/EMComputeShader+MemberMacro.swift:66:105: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 64 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
 65 |                                             if args.count >= 2 {
 66 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
    |                                                                                                         `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 67 |                                                     MemberAccessExprSyntax.self
 68 |                                                 )?.declName.baseName.trimmedDescription
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[20/27] Compiling EasyMetalShaderMacro EMComputeShader+MemberMacro.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMComputeShader/EMComputeShader+MemberMacro.swift:64:65: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 62 |                                     if attribute.attributeName.trimmedDescription == "EMTextureArgument" {
 63 |                                         if let args = attribute.arguments?.as(LabeledExprListSyntax.self) {
 64 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
    |                                                                 `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 65 |                                             if args.count >= 2 {
 66 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMComputeShader/EMComputeShader+MemberMacro.swift:66:105: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 64 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
 65 |                                             if args.count >= 2 {
 66 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
    |                                                                                                         `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 67 |                                                     MemberAccessExprSyntax.self
 68 |                                                 )?.declName.baseName.trimmedDescription
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[21/27] Compiling EasyMetalShaderMacro EMComputeShader.swift
[22/27] Compiling EasyMetalShaderMacro ComputeFunctionStrings3D.swift
[23/27] Compiling EasyMetalShaderMacro InitCompute3D.swift
[24/27] Compiling EasyMetalShaderMacro EMComputeShader3D+MemberMacro.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMComputeShader3D/EMComputeShader3D+MemberMacro.swift:64:65: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 62 |                                     if attribute.attributeName.trimmedDescription == "EMTextureArgument" {
 63 |                                         if let args = attribute.arguments?.as(LabeledExprListSyntax.self) {
 64 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
    |                                                                 `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 65 |                                             if args.count >= 2 {
 66 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMComputeShader3D/EMComputeShader3D+MemberMacro.swift:66:105: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 64 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
 65 |                                             if args.count >= 2 {
 66 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
    |                                                                                                         `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 67 |                                                     MemberAccessExprSyntax.self
 68 |                                                 )?.declName.baseName.trimmedDescription
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[25/27] Compiling EasyMetalShaderMacro EMComputeShader3D.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMComputeShader3D/EMComputeShader3D+MemberMacro.swift:64:65: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 62 |                                     if attribute.attributeName.trimmedDescription == "EMTextureArgument" {
 63 |                                         if let args = attribute.arguments?.as(LabeledExprListSyntax.self) {
 64 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
    |                                                                 `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 65 |                                             if args.count >= 2 {
 66 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/EMComputeShader3D/EMComputeShader3D+MemberMacro.swift:66:105: warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 64 |                                             usage = args.first?.as(LabeledExprSyntax.self)?.expression.as(MemberAccessExprSyntax.self)?.declName.baseName.trimmedDescription
 65 |                                             if args.count >= 2 {
 66 |                                                 format = args[args.index(args.startIndex, offsetBy: 1)].as(LabeledExprSyntax.self)?.expression.as(
    |                                                                                                         `- warning: 'as' is deprecated: This cast will always succeed [#DeprecatedDeclaration]
 67 |                                                     MemberAccessExprSyntax.self
 68 |                                                 )?.declName.baseName.trimmedDescription
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[26/29] Compiling EasyMetalShaderMacro String+Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/Utils/String+Error.swift:10:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
 8 | import Foundation
 9 |
10 | extension String: LocalizedError {
   | |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
11 |     public var errorDescription: String? { self }
12 | }
[27/29] Compiling EasyMetalShaderMacro Util.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShaderMacro/Utils/String+Error.swift:10:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
 8 | import Foundation
 9 |
10 | extension String: LocalizedError {
   | |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
11 |     public var errorDescription: String? { self }
12 | }
[27/29] Write Objects.LinkFileList
[28/29] Linking EasyMetalShaderMacro-tool
[30/54] Compiling EasyMetalShader EMIgnore.swift
[31/54] Compiling EasyMetalShader ShaderCore_EasyMetalShaderLib.swift
[32/56] Compiling EasyMetalShader ShaderStringBuilder.swift
[33/56] Compiling EasyMetalShader EXPORTER.swift
[34/56] Compiling EasyMetalShader MTLTexture+.swift
[35/56] Compiling EasyMetalShader EMMetalDispatch.swift
[36/56] Compiling EasyMetalShader EMMetalFunction.swift
[37/56] Compiling EasyMetalShader EMMetalRenderFunction.swift
[38/56] Compiling EasyMetalShader ShaderRenderer.swift
[39/56] Compiling EasyMetalShader VertexInput.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShader/Models/ArrayBuffer.swift:11:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
  9 | import simd
 10 |
 11 | extension String: LocalizedError {
    | |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 12 |     public var errorDescription: String? { self }
 13 | }
[40/56] Compiling EasyMetalShader ArrayBuffer.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShader/Models/ArrayBuffer.swift:11:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
  9 | import simd
 10 |
 11 | extension String: LocalizedError {
    | |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 12 |     public var errorDescription: String? { self }
 13 | }
[41/56] Compiling EasyMetalShader EMMetalArgument.swift
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShader/Models/ArrayBuffer.swift:11:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
  9 | import simd
 10 |
 11 | extension String: LocalizedError {
    | |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 12 |     public var errorDescription: String? { self }
 13 | }
[42/56] Compiling EasyMetalShader EMMetalTexture.swift
[43/56] Compiling EasyMetalShader EMMetalTextureUsage.swift
[44/56] Compiling EasyMetalShader EMMetalComputeFunction.swift
[45/56] Compiling EasyMetalShader MetalPreLibrary.swift
[46/56] Compiling EasyMetalShader Rand.swift
[47/56] Compiling EasyMetalShader RasterizerData.swift
[48/56] Compiling EasyMetalShader EMArgument.swift
[49/56] Compiling EasyMetalShader EMComputeShader.swift
[50/56] Compiling EasyMetalShader EMComputeShader3D.swift
[51/56] Compiling EasyMetalShader EMRenderShader.swift
[52/56] Compiling EasyMetalShader EMTextureArgument.swift
[53/56] Compiling EasyMetalShader Include.swift
[54/56] Emitting module EasyMetalShader
/Users/admin/builder/spi-builder-workspace/Sources/EasyMetalShader/Models/ArrayBuffer.swift:11:1: warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
  9 | import simd
 10 |
 11 | extension String: LocalizedError {
    | |- warning: extension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 12 |     public var errorDescription: String? { self }
 13 | }
[55/56] Compiling EasyMetalShader EasyShaderView.swift
[56/56] Compiling EasyMetalShader ShaderMTKView.swift
Build complete! (13.84s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-syntax",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "602.0.0",
            "upper_bound" : "603.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-syntax.git"
    }
  ],
  "manifest_display_name" : "EasyMetalShader",
  "name" : "EasyMetalShader",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "EasyMetalShader",
      "targets" : [
        "EasyMetalShader"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "EasyMetalShaderMacro",
      "targets" : [
        "EasyMetalShaderMacro"
      ],
      "type" : {
        "macro" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "EasyMetalShaderTests",
      "module_type" : "SwiftTarget",
      "name" : "EasyMetalShaderTests",
      "path" : "Sources/EasyMetalShaderTests",
      "sources" : [
        "ArrayBufferTests.swift",
        "ComputeShader3DTests.swift",
        "ComputeShaderTests.swift",
        "MetalPreLibraryTests.swift",
        "RenderShaderTests.swift"
      ],
      "target_dependencies" : [
        "EasyMetalShader"
      ],
      "type" : "test"
    },
    {
      "c99name" : "EasyMetalShaderMacro",
      "module_type" : "SwiftTarget",
      "name" : "EasyMetalShaderMacro",
      "path" : "Sources/EasyMetalShaderMacro",
      "product_dependencies" : [
        "SwiftSyntaxMacros",
        "SwiftCompilerPlugin"
      ],
      "product_memberships" : [
        "EasyMetalShader",
        "EasyMetalShaderMacro"
      ],
      "sources" : [
        "EMArgument/EMArgument.swift",
        "EMComputeShader/ComputeFunctionStrings/ComputeFunctionStrings.swift",
        "EMComputeShader/ComputeFunctionStrings/InitCompute.swift",
        "EMComputeShader/EMComputeShader+ExtensionMacro.swift",
        "EMComputeShader/EMComputeShader+MemberAttributeMacro.swift",
        "EMComputeShader/EMComputeShader+MemberMacro.swift",
        "EMComputeShader/EMComputeShader.swift",
        "EMComputeShader3D/ComputeFunctionStrings3D/ComputeFunctionStrings3D.swift",
        "EMComputeShader3D/ComputeFunctionStrings3D/InitCompute3D.swift",
        "EMComputeShader3D/EMComputeShader3D+ExtensionMacro.swift",
        "EMComputeShader3D/EMComputeShader3D+MemberAttributeMacro.swift",
        "EMComputeShader3D/EMComputeShader3D+MemberMacro.swift",
        "EMComputeShader3D/EMComputeShader3D.swift",
        "EMRenderShader/EMRenderShader+ExtensionMacro.swift",
        "EMRenderShader/EMRenderShader+MemberAttributeMacro.swift",
        "EMRenderShader/EMRenderShader+MemberMacro.swift",
        "EMRenderShader/EMRenderShader.swift",
        "EMRenderShader/RenderFunctionStrings/InitRender.swift",
        "EMRenderShader/RenderFunctionStrings/RenderFunctionStrings.swift",
        "EMTextureArgument/EMTextureArgument.swift",
        "EasyMetalShaderMacroPlugin.swift",
        "Utils/String+Error.swift",
        "Utils/Util.swift"
      ],
      "type" : "macro"
    },
    {
      "c99name" : "EasyMetalShader",
      "module_type" : "SwiftTarget",
      "name" : "EasyMetalShader",
      "path" : "Sources/EasyMetalShader",
      "product_memberships" : [
        "EasyMetalShader"
      ],
      "sources" : [
        "Builder/ShaderStringBuilder.swift",
        "EXPORTER.swift",
        "Extensions/MTLTexture+.swift",
        "Macros/EMArgument.swift",
        "Macros/EMComputeShader.swift",
        "Macros/EMComputeShader3D.swift",
        "Macros/EMRenderShader.swift",
        "Macros/EMTextureArgument.swift",
        "MetalPreLibrary/Include.swift",
        "MetalPreLibrary/MetalPreLibrary.swift",
        "MetalPreLibrary/Rand.swift",
        "MetalPreLibrary/RasterizerData.swift",
        "MetalPreLibrary/VertexInput.swift",
        "Models/ArrayBuffer.swift",
        "Models/EMMetalArgument.swift",
        "Models/EMMetalTexture.swift",
        "Models/EMMetalTextureUsage.swift",
        "Pipelines/EMMetalComputeFunction.swift",
        "Pipelines/EMMetalDispatch.swift",
        "Pipelines/EMMetalFunction.swift",
        "Pipelines/EMMetalRenderFunction.swift",
        "Pipelines/ShaderRenderer.swift",
        "PropertyWrappers/EMIgnore.swift",
        "Utils/ShaderCore_EasyMetalShaderLib.swift",
        "Views/EasyShaderView.swift",
        "Views/ShaderMTKView.swift"
      ],
      "target_dependencies" : [
        "EasyMetalShaderMacro"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.