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 iTriangle, reference main (08509e), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 00:21:43 UTC.

Swift 6 data race errors: 6

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.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/iShape-Swift/iTriangle.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/iShape-Swift/iTriangle
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 08509ee fix on border point
Cloned https://github.com/iShape-Swift/iTriangle.git
Revision (git rev-parse @):
08509ee0f096131f116cb40ce4e4bb471d1431eb
SUCCESS checkout https://github.com/iShape-Swift/iTriangle.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/iShape-Swift/iTriangle.git
https://github.com/iShape-Swift/iTriangle.git
{
  "dependencies" : [
    {
      "identity" : "ifixfloat",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.9.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/iShape-Swift/iFixFloat"
    },
    {
      "identity" : "ishape",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.13.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/iShape-Swift/iShape"
    },
    {
      "identity" : "ioverlay",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.22.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/iShape-Swift/iOverlay"
    }
  ],
  "manifest_display_name" : "iTriangle",
  "name" : "iTriangle",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "iTriangle",
      "targets" : [
        "iTriangle"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "iTriangleTests",
      "module_type" : "SwiftTarget",
      "name" : "iTriangleTests",
      "path" : "Tests/iTriangleTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_0.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_1.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_10.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_11.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_12.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_13.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_14.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_15.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_16.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_17.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_18.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_19.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_2.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_20.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_21.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_22.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_23.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_24.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_25.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_26.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_27.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_28.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_29.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_3.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_30.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_31.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_32.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_33.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_34.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_35.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_36.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_37.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_38.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_39.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_4.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_40.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_41.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_42.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_43.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_44.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_45.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_46.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_47.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_48.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_49.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_5.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_50.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_51.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_52.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_53.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_54.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_55.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_56.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_57.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_58.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_59.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_6.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_60.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_61.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_62.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_63.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_64.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_65.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_66.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_67.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_68.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_69.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_7.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_70.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_71.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_72.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_8.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_9.json",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "ReadmeTests.swift",
        "TriangulationTestBank.swift",
        "iConvexTests.swift",
        "iTriangleTests.swift"
      ],
      "target_dependencies" : [
        "iTriangle"
      ],
      "type" : "test"
    },
    {
      "c99name" : "iTriangle",
      "module_type" : "SwiftTarget",
      "name" : "iTriangle",
      "path" : "Sources/iTriangle",
      "product_dependencies" : [
        "iFixFloat",
        "iShape",
        "iOverlay"
      ],
      "product_memberships" : [
        "iTriangle"
      ],
      "sources" : [
        "Delaunay/Array3d.swift",
        "Delaunay/DTriangle.swift",
        "Delaunay/DVertex.swift",
        "Delaunay/Delaunay+Convex.swift",
        "Delaunay/Delaunay.swift",
        "Delaunay/IndexBuffer.swift",
        "Delaunay/Shape+Delaunay.swift",
        "Int.swift",
        "Monotone/MNavNode.swift",
        "Monotone/MPoly.swift",
        "Monotone/MSliceBuffer.swift",
        "Monotone/Shape+mLayout.swift",
        "Monotone/Shape+nLayout.swift",
        "Triangulate/CGShape+Triangulate.swift",
        "Triangulate/CGTriangulation.swift",
        "Triangulate/Shape+Triangulate.swift",
        "Triangulate/Triangulation.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
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/6] Write sources
[5/6] Write swift-version-2F0A5646E1D333AE.txt
[7/21] Compiling iTree TreeNode.swift
[8/21] Compiling iTree NodeStore.swift
[9/21] Compiling iTree Array.swift
[10/21] Compiling iTree RedBlackTree.swift
[11/21] Emitting module iTree
[12/21] Compiling iFixFloat UInt128.swift
[13/22] Emitting module iFixFloat
[14/22] Compiling iFixFloat Triangle.swift
[15/22] Compiling iFixFloat Vec.swift
[16/22] Compiling iFixFloat Rect.swift
[17/22] Compiling iFixFloat Point.swift
[18/22] Compiling iFixFloat FixSin.swift
[19/22] Compiling iFixFloat FixFloat.swift
[20/22] Compiling iFixFloat FixAngle.swift
[21/22] Compiling iFixFloat FixVec.swift
[22/22] Compiling iFixFloat BitPack.swift
[23/32] Emitting module iShape
[24/32] Compiling iShape FixPaths.swift
[25/32] Compiling iShape FixBnd.swift
[26/33] Compiling iShape CGFloat.swift
[27/33] Compiling iShape FixShapes.swift
[28/33] Compiling iShape FixShape.swift
[29/33] Compiling iShape CGPoint.swift
[30/33] Compiling iShape FixPath.swift
[31/33] Compiling iShape Path.swift
[32/33] Compiling iShape Adapter.swift
[33/33] Compiling iShape Shape.swift
[34/70] Emitting module iOverlay
[35/74] Compiling iOverlay Simplify.swift
[36/74] Compiling iOverlay Solver.swift
[37/74] Compiling iOverlay CountSegment.swift
[38/74] Compiling iOverlay ScanFillList.swift
[39/74] Compiling iOverlay OverlayGraph.swift
[40/74] Compiling iOverlay OverlayLink.swift
[41/74] Compiling iOverlay OverlayNode.swift
[42/74] Compiling iOverlay OverlayRule.swift
[43/74] Compiling iOverlay LineRange.swift
[44/74] Compiling iOverlay Point.swift
[45/74] Compiling iOverlay End.swift
[46/74] Compiling iOverlay Segment.swift
[47/74] Compiling iOverlay Array.swift
[48/74] Compiling iOverlay IdSegment.swift
[49/74] Compiling iOverlay ScanBindList.swift
[50/74] Compiling iOverlay ScanBindTree.swift
[51/74] Compiling iOverlay ScanFillTree.swift
[52/74] Compiling iOverlay Segment+Fill.swift
[53/74] Compiling iOverlay IdPoint.swift
[54/74] Compiling iOverlay Int.swift
[55/74] Compiling iOverlay ShapeBinder.swift
[56/74] Compiling iOverlay CGOverlay.swift
[57/74] Compiling iOverlay CGOverlayGraph.swift
[58/74] Compiling iOverlay Divide.swift
[59/74] Compiling iOverlay FillRule.swift
[60/74] Compiling iOverlay Filter.swift
[61/74] Compiling iOverlay Overlay.swift
[62/74] Compiling iOverlay OverlayGraph+Extract.swift
[63/74] Compiling iOverlay ShapeCount.swift
[64/74] Compiling iOverlay XSegment.swift
[65/74] Compiling iOverlay CrossSolver.swift
[66/74] Compiling iOverlay Fragment.swift
[67/74] Compiling iOverlay LineMark.swift
[68/74] Compiling iOverlay SegmentTree.swift
[69/74] Compiling iOverlay SpaceLayout.swift
[70/74] Compiling iOverlay SplitSolver+List.swift
[71/74] Compiling iOverlay SplitSolver+Tree.swift
[72/74] Compiling iOverlay SplitSolver.swift
[73/74] Compiling iOverlay OverlayGraph+ExtractVector.swift
[74/74] Compiling iOverlay VectorEdge.swift
[75/91] Compiling iTriangle Shape+Triangulate.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Delaunay/Delaunay.swift:15:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 13 |     private var buffer: UnsafeMutablePointer<Int>
 14 |     private var capacity: Int
 15 |     private (set) var count: Int
    |            `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 16 |
 17 |     subscript(index: Int) -> Int {
[76/92] Compiling iTriangle MNavNode.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/MNavNode.swift:14:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MNavNode' may have shared mutable state; this is an error in the Swift 6 language mode
  9 |
 10 | @usableFromInline
 11 | struct MNavNode {
    |        `- note: consider making struct 'MNavNode' conform to the 'Sendable' protocol
 12 |
 13 |     @usableFromInline
 14 |     static let empty = MNavNode(next: .empty, index: .empty, prev: .empty, vert: .empty)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MNavNode' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 15 |
 16 |     @usableFromInline
[77/92] Compiling iTriangle MPoly.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/MNavNode.swift:14:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MNavNode' may have shared mutable state; this is an error in the Swift 6 language mode
  9 |
 10 | @usableFromInline
 11 | struct MNavNode {
    |        `- note: consider making struct 'MNavNode' conform to the 'Sendable' protocol
 12 |
 13 |     @usableFromInline
 14 |     static let empty = MNavNode(next: .empty, index: .empty, prev: .empty, vert: .empty)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MNavNode' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 15 |
 16 |     @usableFromInline
[78/92] Compiling iTriangle Array3d.swift
[79/92] Compiling iTriangle DTriangle.swift
[80/92] Emitting module iTriangle
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Delaunay/DVertex.swift:25:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'DVertex' may have shared mutable state; this is an error in the Swift 6 language mode
21 | }
22 |
23 | public struct DVertex {
   |               `- note: consider making struct 'DVertex' conform to the 'Sendable' protocol
24 |
25 |     public static let empty = DVertex(index: .empty, point: .zero, type: .origin)
   |                       |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'DVertex' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     public let index: Int
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Delaunay/Delaunay.swift:15:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 13 |     private var buffer: UnsafeMutablePointer<Int>
 14 |     private var capacity: Int
 15 |     private (set) var count: Int
    |            `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 16 |
 17 |     subscript(index: Int) -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/MNavNode.swift:14:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MNavNode' may have shared mutable state; this is an error in the Swift 6 language mode
  9 |
 10 | @usableFromInline
 11 | struct MNavNode {
    |        `- note: consider making struct 'MNavNode' conform to the 'Sendable' protocol
 12 |
 13 |     @usableFromInline
 14 |     static let empty = MNavNode(next: .empty, index: .empty, prev: .empty, vert: .empty)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MNavNode' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 15 |
 16 |     @usableFromInline
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/Shape+mLayout.swift:18:16: warning: static property 'fail' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
 15 | }
 16 |
 17 | struct MLayout {
    |        `- note: consider making struct 'MLayout' conform to the 'Sendable' protocol
 18 |     static let fail = MLayout(startList: [], navNodes: [], sliceList: [], status: .fail)
    |                |- warning: static property 'fail' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'fail' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 |     static let empty = MLayout(startList: [], navNodes: [], sliceList: [], status: .empty)
 20 |
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/Shape+mLayout.swift:19:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
 15 | }
 16 |
 17 | struct MLayout {
    |        `- note: consider making struct 'MLayout' conform to the 'Sendable' protocol
 18 |     static let fail = MLayout(startList: [], navNodes: [], sliceList: [], status: .fail)
 19 |     static let empty = MLayout(startList: [], navNodes: [], sliceList: [], status: .empty)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     let startList: [Int]
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/Shape+nLayout.swift:23:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MSpecialNode' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | @usableFromInline
 20 | struct MSpecialNode {
    |        `- note: consider making struct 'MSpecialNode' conform to the 'Sendable' protocol
 21 |
 22 |     @usableFromInline
 23 |     static let empty = MSpecialNode(index: .empty, type: .start, sort: .zero)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MSpecialNode' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |
 25 |     @usableFromInline
[81/92] Compiling iTriangle DVertex.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Delaunay/DVertex.swift:25:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'DVertex' may have shared mutable state; this is an error in the Swift 6 language mode
21 | }
22 |
23 | public struct DVertex {
   |               `- note: consider making struct 'DVertex' conform to the 'Sendable' protocol
24 |
25 |     public static let empty = DVertex(index: .empty, point: .zero, type: .origin)
   |                       |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'DVertex' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     public let index: Int
[82/92] Compiling iTriangle Delaunay+Convex.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Delaunay/DVertex.swift:25:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'DVertex' may have shared mutable state; this is an error in the Swift 6 language mode
21 | }
22 |
23 | public struct DVertex {
   |               `- note: consider making struct 'DVertex' conform to the 'Sendable' protocol
24 |
25 |     public static let empty = DVertex(index: .empty, point: .zero, type: .origin)
   |                       |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'DVertex' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     public let index: Int
[83/92] Compiling iTriangle Delaunay.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Delaunay/Delaunay.swift:15:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 13 |     private var buffer: UnsafeMutablePointer<Int>
 14 |     private var capacity: Int
 15 |     private (set) var count: Int
    |            `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 16 |
 17 |     subscript(index: Int) -> Int {
[84/92] Compiling iTriangle IndexBuffer.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Delaunay/Delaunay.swift:15:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 13 |     private var buffer: UnsafeMutablePointer<Int>
 14 |     private var capacity: Int
 15 |     private (set) var count: Int
    |            `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 16 |
 17 |     subscript(index: Int) -> Int {
[85/92] Compiling iTriangle Shape+Delaunay.swift
[86/92] Compiling iTriangle Int.swift
[87/92] Compiling iTriangle Triangulation.swift
[88/92] Compiling iTriangle MSliceBuffer.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/Shape+mLayout.swift:18:16: warning: static property 'fail' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
 15 | }
 16 |
 17 | struct MLayout {
    |        `- note: consider making struct 'MLayout' conform to the 'Sendable' protocol
 18 |     static let fail = MLayout(startList: [], navNodes: [], sliceList: [], status: .fail)
    |                |- warning: static property 'fail' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'fail' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 |     static let empty = MLayout(startList: [], navNodes: [], sliceList: [], status: .empty)
 20 |
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/Shape+mLayout.swift:19:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
 15 | }
 16 |
 17 | struct MLayout {
    |        `- note: consider making struct 'MLayout' conform to the 'Sendable' protocol
 18 |     static let fail = MLayout(startList: [], navNodes: [], sliceList: [], status: .fail)
 19 |     static let empty = MLayout(startList: [], navNodes: [], sliceList: [], status: .empty)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     let startList: [Int]
[89/92] Compiling iTriangle Shape+mLayout.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/Shape+mLayout.swift:18:16: warning: static property 'fail' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
 15 | }
 16 |
 17 | struct MLayout {
    |        `- note: consider making struct 'MLayout' conform to the 'Sendable' protocol
 18 |     static let fail = MLayout(startList: [], navNodes: [], sliceList: [], status: .fail)
    |                |- warning: static property 'fail' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'fail' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 19 |     static let empty = MLayout(startList: [], navNodes: [], sliceList: [], status: .empty)
 20 |
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/Shape+mLayout.swift:19:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
 15 | }
 16 |
 17 | struct MLayout {
    |        `- note: consider making struct 'MLayout' conform to the 'Sendable' protocol
 18 |     static let fail = MLayout(startList: [], navNodes: [], sliceList: [], status: .fail)
 19 |     static let empty = MLayout(startList: [], navNodes: [], sliceList: [], status: .empty)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MLayout' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     let startList: [Int]
[90/92] Compiling iTriangle CGTriangulation.swift
[91/92] Compiling iTriangle Shape+nLayout.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/Shape+nLayout.swift:23:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MSpecialNode' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | @usableFromInline
 20 | struct MSpecialNode {
    |        `- note: consider making struct 'MSpecialNode' conform to the 'Sendable' protocol
 21 |
 22 |     @usableFromInline
 23 |     static let empty = MSpecialNode(index: .empty, type: .start, sort: .zero)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MSpecialNode' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |
 25 |     @usableFromInline
[92/92] Compiling iTriangle CGShape+Triangulate.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Monotone/Shape+nLayout.swift:23:16: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MSpecialNode' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | @usableFromInline
 20 | struct MSpecialNode {
    |        `- note: consider making struct 'MSpecialNode' conform to the 'Sendable' protocol
 21 |
 22 |     @usableFromInline
 23 |     static let empty = MSpecialNode(index: .empty, type: .start, sort: .zero)
    |                |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'MSpecialNode' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |
 25 |     @usableFromInline
Build complete! (14.84s)
Fetching https://github.com/iShape-Swift/iOverlay
Fetching https://github.com/iShape-Swift/iFixFloat
Fetching https://github.com/iShape-Swift/iShape
[1/437] Fetching ishape
[124/632] Fetching ishape, ifixfloat
[139/4205] Fetching ishape, ifixfloat, ioverlay
Fetched https://github.com/iShape-Swift/iFixFloat from cache (1.08s)
Fetched https://github.com/iShape-Swift/iShape from cache (1.08s)
Fetched https://github.com/iShape-Swift/iOverlay from cache (1.08s)
Computing version for https://github.com/iShape-Swift/iOverlay
Computed https://github.com/iShape-Swift/iOverlay at 1.22.0 (1.56s)
Fetching https://github.com/iShape-Swift/iTree
[1/204] Fetching itree
Fetched https://github.com/iShape-Swift/iTree from cache (0.77s)
Computing version for https://github.com/iShape-Swift/iShape
Computed https://github.com/iShape-Swift/iShape at 1.13.0 (1.69s)
Computing version for https://github.com/iShape-Swift/iFixFloat
Computed https://github.com/iShape-Swift/iFixFloat at 1.9.0 (0.47s)
Computing version for https://github.com/iShape-Swift/iTree
Computed https://github.com/iShape-Swift/iTree at 0.5.0 (0.47s)
Creating working copy for https://github.com/iShape-Swift/iOverlay
Working copy of https://github.com/iShape-Swift/iOverlay resolved at 1.22.0
Creating working copy for https://github.com/iShape-Swift/iFixFloat
Working copy of https://github.com/iShape-Swift/iFixFloat resolved at 1.9.0
Creating working copy for https://github.com/iShape-Swift/iShape
Working copy of https://github.com/iShape-Swift/iShape resolved at 1.13.0
Creating working copy for https://github.com/iShape-Swift/iTree
Working copy of https://github.com/iShape-Swift/iTree resolved at 0.5.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "ifixfloat",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.9.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/iShape-Swift/iFixFloat"
    },
    {
      "identity" : "ishape",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.13.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/iShape-Swift/iShape"
    },
    {
      "identity" : "ioverlay",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.22.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/iShape-Swift/iOverlay"
    }
  ],
  "manifest_display_name" : "iTriangle",
  "name" : "iTriangle",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "iTriangle",
      "targets" : [
        "iTriangle"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "iTriangleTests",
      "module_type" : "SwiftTarget",
      "name" : "iTriangleTests",
      "path" : "Tests/iTriangleTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_0.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_1.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_10.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_11.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_12.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_13.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_14.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_15.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_16.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_17.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_18.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_19.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_2.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_20.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_21.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_22.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_23.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_24.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_25.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_26.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_27.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_28.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_29.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_3.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_30.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_31.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_32.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_33.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_34.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_35.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_36.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_37.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_38.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_39.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_4.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_40.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_41.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_42.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_43.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_44.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_45.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_46.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_47.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_48.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_49.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_5.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_50.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_51.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_52.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_53.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_54.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_55.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_56.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_57.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_58.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_59.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_6.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_60.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_61.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_62.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_63.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_64.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_65.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_66.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_67.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_68.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_69.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_7.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_70.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_71.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_72.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_8.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/iTriangleTests/Triangulation/triangle_test_9.json",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "ReadmeTests.swift",
        "TriangulationTestBank.swift",
        "iConvexTests.swift",
        "iTriangleTests.swift"
      ],
      "target_dependencies" : [
        "iTriangle"
      ],
      "type" : "test"
    },
    {
      "c99name" : "iTriangle",
      "module_type" : "SwiftTarget",
      "name" : "iTriangle",
      "path" : "Sources/iTriangle",
      "product_dependencies" : [
        "iFixFloat",
        "iShape",
        "iOverlay"
      ],
      "product_memberships" : [
        "iTriangle"
      ],
      "sources" : [
        "Delaunay/Array3d.swift",
        "Delaunay/DTriangle.swift",
        "Delaunay/DVertex.swift",
        "Delaunay/Delaunay+Convex.swift",
        "Delaunay/Delaunay.swift",
        "Delaunay/IndexBuffer.swift",
        "Delaunay/Shape+Delaunay.swift",
        "Int.swift",
        "Monotone/MNavNode.swift",
        "Monotone/MPoly.swift",
        "Monotone/MSliceBuffer.swift",
        "Monotone/Shape+mLayout.swift",
        "Monotone/Shape+nLayout.swift",
        "Triangulate/CGShape+Triangulate.swift",
        "Triangulate/CGTriangulation.swift",
        "Triangulate/Shape+Triangulate.swift",
        "Triangulate/Triangulation.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
Done.