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.0 for macOS (SPM) on 28 Nov 2024 17:40:44 UTC.

Swift 6 data race errors: 6

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.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.58.0
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
Fetching https://github.com/iShape-Swift/iShape
Fetching https://github.com/iShape-Swift/iFixFloat
Fetching https://github.com/iShape-Swift/iOverlay
[1/437] Fetching ishape
[54/632] Fetching ishape, ifixfloat
[249/4205] Fetching ishape, ifixfloat, ioverlay
Fetched https://github.com/iShape-Swift/iShape from cache (1.08s)
Fetched https://github.com/iShape-Swift/iOverlay from cache (1.08s)
Fetched https://github.com/iShape-Swift/iFixFloat from cache (1.08s)
Computing version for https://github.com/iShape-Swift/iOverlay
Computed https://github.com/iShape-Swift/iOverlay at 1.22.0 (0.45s)
Fetching https://github.com/iShape-Swift/iTree
[1/204] Fetching itree
Fetched https://github.com/iShape-Swift/iTree from cache (0.65s)
Computing version for https://github.com/iShape-Swift/iShape
Computed https://github.com/iShape-Swift/iShape at 1.13.0 (3.43s)
Computing version for https://github.com/iShape-Swift/iFixFloat
Computed https://github.com/iShape-Swift/iFixFloat at 1.9.0 (0.44s)
Computing version for https://github.com/iShape-Swift/iTree
Computed https://github.com/iShape-Swift/iTree at 0.5.0 (0.44s)
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/iTree
Working copy of https://github.com/iShape-Swift/iTree resolved at 0.5.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
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "itriangle",
      "name": "iTriangle",
      "url": "https://github.com/iShape-Swift/iTriangle.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/iTriangle",
      "dependencies": [
        {
          "identity": "ifixfloat",
          "name": "iFixFloat",
          "url": "https://github.com/iShape-Swift/iFixFloat",
          "version": "1.9.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/iFixFloat",
          "dependencies": [
          ]
        },
        {
          "identity": "ishape",
          "name": "iShape",
          "url": "https://github.com/iShape-Swift/iShape",
          "version": "1.13.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/iShape",
          "dependencies": [
            {
              "identity": "ifixfloat",
              "name": "iFixFloat",
              "url": "https://github.com/iShape-Swift/iFixFloat",
              "version": "1.9.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/iFixFloat",
              "dependencies": [
              ]
            }
          ]
        },
        {
          "identity": "ioverlay",
          "name": "iOverlay",
          "url": "https://github.com/iShape-Swift/iOverlay",
          "version": "1.22.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/iOverlay",
          "dependencies": [
            {
              "identity": "ifixfloat",
              "name": "iFixFloat",
              "url": "https://github.com/iShape-Swift/iFixFloat",
              "version": "1.9.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/iFixFloat",
              "dependencies": [
              ]
            },
            {
              "identity": "ishape",
              "name": "iShape",
              "url": "https://github.com/iShape-Swift/iShape",
              "version": "1.13.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/iShape",
              "dependencies": [
                {
                  "identity": "ifixfloat",
                  "name": "iFixFloat",
                  "url": "https://github.com/iShape-Swift/iFixFloat",
                  "version": "1.9.0",
                  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/iFixFloat",
                  "dependencies": [
                  ]
                }
              ]
            },
            {
              "identity": "itree",
              "name": "iTree",
              "url": "https://github.com/iShape-Swift/iTree",
              "version": "0.5.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/iTree",
              "dependencies": [
              ]
            }
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/iShape-Swift/iTriangle.git
[9/891] Fetching itriangle
Fetched https://github.com/iShape-Swift/iTriangle.git from cache (1.09s)
Fetching https://github.com/iShape-Swift/iShape from cache
Fetching https://github.com/iShape-Swift/iOverlay from cache
Fetching https://github.com/iShape-Swift/iFixFloat from cache
Fetched https://github.com/iShape-Swift/iShape from cache (0.48s)
Fetched https://github.com/iShape-Swift/iOverlay from cache (0.50s)
Fetched https://github.com/iShape-Swift/iFixFloat from cache (0.50s)
Computing version for https://github.com/iShape-Swift/iOverlay
Computed https://github.com/iShape-Swift/iOverlay at 1.22.0 (0.02s)
Fetching https://github.com/iShape-Swift/iTree from cache
Fetched https://github.com/iShape-Swift/iTree from cache (0.48s)
Computing version for https://github.com/iShape-Swift/iShape
Computed https://github.com/iShape-Swift/iShape at 1.13.0 (0.02s)
Computing version for https://github.com/iShape-Swift/iFixFloat
Computed https://github.com/iShape-Swift/iFixFloat at 1.9.0 (0.02s)
Computing version for https://github.com/iShape-Swift/iTree
Computed https://github.com/iShape-Swift/iTree at 0.5.0 (0.02s)
Creating working copy for https://github.com/iShape-Swift/iTree
Working copy of https://github.com/iShape-Swift/iTree resolved at 0.5.0
Creating working copy for https://github.com/iShape-Swift/iTriangle.git
Working copy of https://github.com/iShape-Swift/iTriangle.git resolved at main (08509ee)
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/iOverlay
Working copy of https://github.com/iShape-Swift/iOverlay resolved at 1.22.0
warning: '.resolve-product-dependencies': dependency 'itriangle' is not used by any target
Found 3 product dependencies
  - iFixFloat
  - iShape
  - iOverlay
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/iShape-Swift/iTriangle.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.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--7754E27361AE5C74.txt
[7/21] Emitting module iTree
[8/21] Compiling iTree TreeNode.swift
[9/21] Compiling iTree RedBlackTree.swift
[10/21] Compiling iTree NodeStore.swift
[11/21] Compiling iTree Array.swift
[12/21] Compiling iFixFloat Rect.swift
[13/21] Compiling iFixFloat UInt128.swift
[14/21] Compiling iFixFloat Triangle.swift
[15/22] Emitting module iFixFloat
[16/22] Compiling iFixFloat BitPack.swift
[17/22] Compiling iFixFloat Point.swift
[18/22] Compiling iFixFloat FixSin.swift
[19/22] Compiling iFixFloat FixFloat.swift
[20/22] Compiling iFixFloat FixVec.swift
[21/22] Compiling iFixFloat FixAngle.swift
[22/22] Compiling iFixFloat Vec.swift
[23/32] Compiling iShape Adapter.swift
[24/32] Compiling iShape FixShapes.swift
[25/32] Emitting module iShape
[26/32] Compiling iShape FixPath.swift
[27/32] Compiling iShape FixBnd.swift
[28/33] Compiling iShape CGPoint.swift
[29/33] Compiling iShape FixPaths.swift
[30/33] Compiling iShape CGFloat.swift
[31/33] Compiling iShape Path.swift
[32/33] Compiling iShape FixShape.swift
[33/33] Compiling iShape Shape.swift
[34/70] Compiling iOverlay Array.swift
[35/70] Compiling iOverlay IdSegment.swift
[36/70] Compiling iOverlay ScanBindList.swift
[37/70] Compiling iOverlay ScanBindTree.swift
[38/74] Emitting module iOverlay
[39/74] Compiling iOverlay LineRange.swift
[40/74] Compiling iOverlay Point.swift
[41/74] Compiling iOverlay End.swift
[42/74] Compiling iOverlay Segment.swift
[43/74] Compiling iOverlay OverlayGraph.swift
[44/74] Compiling iOverlay OverlayLink.swift
[45/74] Compiling iOverlay OverlayNode.swift
[46/74] Compiling iOverlay OverlayRule.swift
[47/74] Compiling iOverlay ShapeBinder.swift
[48/74] Compiling iOverlay CGOverlay.swift
[49/74] Compiling iOverlay CGOverlayGraph.swift
[50/74] Compiling iOverlay Divide.swift
[51/74] Compiling iOverlay FillRule.swift
[52/74] Compiling iOverlay Filter.swift
[53/74] Compiling iOverlay Overlay.swift
[54/74] Compiling iOverlay OverlayGraph+Extract.swift
[55/74] Compiling iOverlay Simplify.swift
[56/74] Compiling iOverlay Solver.swift
[57/74] Compiling iOverlay CountSegment.swift
[58/74] Compiling iOverlay ScanFillList.swift
[59/74] Compiling iOverlay ShapeCount.swift
[60/74] Compiling iOverlay XSegment.swift
[61/74] Compiling iOverlay CrossSolver.swift
[62/74] Compiling iOverlay Fragment.swift
[63/74] Compiling iOverlay ScanFillTree.swift
[64/74] Compiling iOverlay Segment+Fill.swift
[65/74] Compiling iOverlay IdPoint.swift
[66/74] Compiling iOverlay Int.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 CGTriangulation.swift
[76/91] Compiling iTriangle Shape+Triangulate.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Delaunay/Delaunay.swift:15:5: 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 {
[77/92] Compiling iTriangle Triangulation.swift
[78/92] Compiling iTriangle Shape+Delaunay.swift
[79/92] Compiling iTriangle Int.swift
[80/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |
 25 |     @usableFromInline
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 15 |
 16 |     @usableFromInline
[81/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |
 25 |     @usableFromInline
/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 15 |
 16 |     @usableFromInline
[82/92] Compiling iTriangle Delaunay.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Delaunay/Delaunay.swift:15:5: 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 {
[83/92] Compiling iTriangle IndexBuffer.swift
/Users/admin/builder/spi-builder-workspace/Sources/iTriangle/Delaunay/Delaunay.swift:15:5: 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 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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     public let index: Int
[85/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     public let index: Int
[86/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: annotate 'fail' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     let startList: [Int]
[87/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: annotate 'fail' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 20 |
 21 |     let startList: [Int]
[88/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     public let index: Int
[89/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     public let index: Int
[90/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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
   |                       `- 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:5: 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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'fail' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |
 25 |     @usableFromInline
[91/92] Compiling iTriangle Array3d.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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     public let index: Int
[92/92] Compiling iTriangle DTriangle.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: annotate 'empty' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     public let index: Int
Build complete! (13.86s)
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.