The Swift Package Index logo.Swift Package Index

Build Information

Successful build of SwiftMath, reference main (48ff18), with Swift 6.0 for macOS (SPM) on 4 Feb 2026 04:30:03 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/mgriebling/SwiftMath.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/mgriebling/SwiftMath
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 48ff188 Merge pull request #60 from nguillot/feat/tokenization-infrastructure
Cloned https://github.com/mgriebling/SwiftMath.git
Revision (git rev-parse @):
48ff188ba118c37d024551238041113560ab09b9
SUCCESS checkout https://github.com/mgriebling/SwiftMath.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/mgriebling/SwiftMath.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64
Building for debugging...
[0/4] Write sources
[0/4] Copying Info.plist
[2/4] Copying mathFonts.bundle
[3/4] Write swift-version-5BDAB9E9C0126B9D.txt
[5/32] Emitting module SwiftMath
[6/34] Compiling SwiftMath MTLineFitter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTLineFitter.swift:87:53: warning: immutable value 't' was never used; consider replacing with '_' or removing it
 85 |             // Check if element fits on current line
 86 |             if !lines.last!.isEmpty && currentWidth + element.width > maxWidth - margin {
 87 |                 if debugPunctuation, case .text(let t) = element.content {
    |                                                     `- warning: immutable value 't' was never used; consider replacing with '_' or removing it
 88 |                     print("    Doesn't fit (width=\(currentWidth) + \(element.width) > \(maxWidth)), current line has \(lines.last!.count) elements")
 89 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTLineFitter.swift:215:13: warning: initialization of immutable value 'debugFit' was never used; consider replacing with assignment to '_' or removing it
213 |
214 |         let debugBreak = false  // Enable to debug break point selection
215 |         let debugFit = false
    |             `- warning: initialization of immutable value 'debugFit' was never used; consider replacing with assignment to '_' or removing it
216 |
217 |         // Scan from right to left to prefer breaking later in the line
[7/34] Compiling SwiftMath resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTLineFitter.swift:87:53: warning: immutable value 't' was never used; consider replacing with '_' or removing it
 85 |             // Check if element fits on current line
 86 |             if !lines.last!.isEmpty && currentWidth + element.width > maxWidth - margin {
 87 |                 if debugPunctuation, case .text(let t) = element.content {
    |                                                     `- warning: immutable value 't' was never used; consider replacing with '_' or removing it
 88 |                     print("    Doesn't fit (width=\(currentWidth) + \(element.width) > \(maxWidth)), current line has \(lines.last!.count) elements")
 89 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTLineFitter.swift:215:13: warning: initialization of immutable value 'debugFit' was never used; consider replacing with assignment to '_' or removing it
213 |
214 |         let debugBreak = false  // Enable to debug break point selection
215 |         let debugFit = false
    |             `- warning: initialization of immutable value 'debugFit' was never used; consider replacing with assignment to '_' or removing it
216 |
217 |         // Scan from right to left to prefer breaking later in the line
[8/34] Compiling SwiftMath RWLock.swift
[9/34] Compiling SwiftMath MTAtomTokenizer.swift
[10/34] Compiling SwiftMath MTBreakableElement.swift
[11/34] Compiling SwiftMath MTDisplayGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:122:25: warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
120 |                 case .display(let preRenderedDisplay):
121 |                     // Use pre-rendered display (fraction, radical, etc.)
122 |                     var mutableDisplay = preRenderedDisplay
    |                         `- warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
123 |                     mutableDisplay.position = elementPosition
124 |                     displays.append(mutableDisplay)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:180:25: warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
178 |                     displays.append(display)
179 |                 case .display(let preRenderedDisplay):
180 |                     var mutableDisplay = preRenderedDisplay
    |                         `- warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
181 |                     mutableDisplay.position = basePosition
182 |                     displays.append(mutableDisplay)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:308:21: warning: variable 'mutableScript' was never mutated; consider changing to 'let' constant
306 |
307 |                 // Reset the scriptDisplay's position to (0, 0) since it will be positioned by the wrapper
308 |                 var mutableScript = scriptDisplay
    |                     `- warning: variable 'mutableScript' was never mutated; consider changing to 'let' constant
309 |                 mutableScript.position = CGPoint.zero
310 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:348:17: warning: variable 'baseDisplay' was never mutated; consider changing to 'let' constant
346 |             // Update the first base display's dimensions to reflect the full extent
347 |             // Width should be base + script, without the spaceAfterScript (that's for cursor advancement)
348 |             var baseDisplay = displays[baseDisplayStartIndex]
    |                 `- warning: variable 'baseDisplay' was never mutated; consider changing to 'let' constant
349 |             baseDisplay.ascent = maxAscent
350 |             baseDisplay.descent = maxDescent
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayPreRenderer.swift:53:42: warning: conditional cast from 'MTMathListDisplay' to 'MTMathListDisplay' always succeeds
51 |         // If the result is a MTMathListDisplay with a single subdisplay, unwrap it
52 |         // This matches the behavior of the legacy typesetter
53 |         if let mathListDisplay = display as? MTMathListDisplay,
   |                                          `- warning: conditional cast from 'MTMathListDisplay' to 'MTMathListDisplay' always succeeds
54 |            mathListDisplay.subDisplays.count == 1 {
55 |             return mathListDisplay.subDisplays[0]
[12/34] Compiling SwiftMath MTDisplayPreRenderer.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:122:25: warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
120 |                 case .display(let preRenderedDisplay):
121 |                     // Use pre-rendered display (fraction, radical, etc.)
122 |                     var mutableDisplay = preRenderedDisplay
    |                         `- warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
123 |                     mutableDisplay.position = elementPosition
124 |                     displays.append(mutableDisplay)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:180:25: warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
178 |                     displays.append(display)
179 |                 case .display(let preRenderedDisplay):
180 |                     var mutableDisplay = preRenderedDisplay
    |                         `- warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
181 |                     mutableDisplay.position = basePosition
182 |                     displays.append(mutableDisplay)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:308:21: warning: variable 'mutableScript' was never mutated; consider changing to 'let' constant
306 |
307 |                 // Reset the scriptDisplay's position to (0, 0) since it will be positioned by the wrapper
308 |                 var mutableScript = scriptDisplay
    |                     `- warning: variable 'mutableScript' was never mutated; consider changing to 'let' constant
309 |                 mutableScript.position = CGPoint.zero
310 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:348:17: warning: variable 'baseDisplay' was never mutated; consider changing to 'let' constant
346 |             // Update the first base display's dimensions to reflect the full extent
347 |             // Width should be base + script, without the spaceAfterScript (that's for cursor advancement)
348 |             var baseDisplay = displays[baseDisplayStartIndex]
    |                 `- warning: variable 'baseDisplay' was never mutated; consider changing to 'let' constant
349 |             baseDisplay.ascent = maxAscent
350 |             baseDisplay.descent = maxDescent
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayPreRenderer.swift:53:42: warning: conditional cast from 'MTMathListDisplay' to 'MTMathListDisplay' always succeeds
51 |         // If the result is a MTMathListDisplay with a single subdisplay, unwrap it
52 |         // This matches the behavior of the legacy typesetter
53 |         if let mathListDisplay = display as? MTMathListDisplay,
   |                                          `- warning: conditional cast from 'MTMathListDisplay' to 'MTMathListDisplay' always succeeds
54 |            mathListDisplay.subDisplays.count == 1 {
55 |             return mathListDisplay.subDisplays[0]
[13/34] Compiling SwiftMath MTElementWidthCalculator.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:122:25: warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
120 |                 case .display(let preRenderedDisplay):
121 |                     // Use pre-rendered display (fraction, radical, etc.)
122 |                     var mutableDisplay = preRenderedDisplay
    |                         `- warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
123 |                     mutableDisplay.position = elementPosition
124 |                     displays.append(mutableDisplay)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:180:25: warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
178 |                     displays.append(display)
179 |                 case .display(let preRenderedDisplay):
180 |                     var mutableDisplay = preRenderedDisplay
    |                         `- warning: variable 'mutableDisplay' was never mutated; consider changing to 'let' constant
181 |                     mutableDisplay.position = basePosition
182 |                     displays.append(mutableDisplay)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:308:21: warning: variable 'mutableScript' was never mutated; consider changing to 'let' constant
306 |
307 |                 // Reset the scriptDisplay's position to (0, 0) since it will be positioned by the wrapper
308 |                 var mutableScript = scriptDisplay
    |                     `- warning: variable 'mutableScript' was never mutated; consider changing to 'let' constant
309 |                 mutableScript.position = CGPoint.zero
310 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayGenerator.swift:348:17: warning: variable 'baseDisplay' was never mutated; consider changing to 'let' constant
346 |             // Update the first base display's dimensions to reflect the full extent
347 |             // Width should be base + script, without the spaceAfterScript (that's for cursor advancement)
348 |             var baseDisplay = displays[baseDisplayStartIndex]
    |                 `- warning: variable 'baseDisplay' was never mutated; consider changing to 'let' constant
349 |             baseDisplay.ascent = maxAscent
350 |             baseDisplay.descent = maxDescent
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/Tokenization/MTDisplayPreRenderer.swift:53:42: warning: conditional cast from 'MTMathListDisplay' to 'MTMathListDisplay' always succeeds
51 |         // If the result is a MTMathListDisplay with a single subdisplay, unwrap it
52 |         // This matches the behavior of the legacy typesetter
53 |         if let mathListDisplay = display as? MTMathListDisplay,
   |                                          `- warning: conditional cast from 'MTMathListDisplay' to 'MTMathListDisplay' always succeeds
54 |            mathListDisplay.subDisplays.count == 1 {
55 |             return mathListDisplay.subDisplays[0]
[14/34] Compiling SwiftMath MTFontMathTableV2.swift
[15/34] Compiling SwiftMath MTFontV2.swift
[16/34] Compiling SwiftMath MathFont.swift
[17/34] Compiling SwiftMath MTConfig.swift
[18/34] Compiling SwiftMath MTFont.swift
[19/34] Compiling SwiftMath MTFontManager.swift
[20/34] Compiling SwiftMath MTMathImage.swift
[21/34] Compiling SwiftMath MTMathList.swift
[22/34] Compiling SwiftMath MTMathListBuilder.swift
[23/34] Compiling SwiftMath MTFontMathTable.swift
[24/34] Compiling SwiftMath MTLabel.swift
[25/34] Compiling SwiftMath MTMathAtomFactory.swift
[26/34] Compiling SwiftMath MTTypesetter+Tokenization.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/MTTypesetter.swift:1507:13: warning: variable 'accentee' was never mutated; consider changing to 'let' constant
1505 |         guard let accent = accent else { return nil }
1506 |
1507 |         var accentee = MTTypesetter.createLineForMathList(accent.innerList, font:font, style:style, cramped:true)
     |             `- warning: variable 'accentee' was never mutated; consider changing to 'let' constant
1508 |         if accent.nucleus.isEmpty {
1509 |             // no accent!
[27/34] Compiling SwiftMath MTTypesetter.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/MTTypesetter.swift:1507:13: warning: variable 'accentee' was never mutated; consider changing to 'let' constant
1505 |         guard let accent = accent else { return nil }
1506 |
1507 |         var accentee = MTTypesetter.createLineForMathList(accent.innerList, font:font, style:style, cramped:true)
     |             `- warning: variable 'accentee' was never mutated; consider changing to 'let' constant
1508 |         if accent.nucleus.isEmpty {
1509 |             // no accent!
[28/34] Compiling SwiftMath MTUnicode.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/MathRender/MTTypesetter.swift:1507:13: warning: variable 'accentee' was never mutated; consider changing to 'let' constant
1505 |         guard let accent = accent else { return nil }
1506 |
1507 |         var accentee = MTTypesetter.createLineForMathList(accent.innerList, font:font, style:style, cramped:true)
     |             `- warning: variable 'accentee' was never mutated; consider changing to 'let' constant
1508 |         if accent.nucleus.isEmpty {
1509 |             // no accent!
[29/34] Compiling SwiftMath MathImage.swift
[30/34] Compiling SwiftMath MTBezierPath.swift
[31/34] Compiling SwiftMath MTColor.swift
[32/34] Compiling SwiftMath MTMathListDisplay.swift
[33/34] Compiling SwiftMath MTMathListIndex.swift
[34/34] Compiling SwiftMath MTMathUILabel.swift
Build complete! (8.97s)
Build complete.
{
  "default_localization" : "en",
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftMath",
  "name" : "SwiftMath",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftMath",
      "targets" : [
        "SwiftMath"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftMathTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftMathTests",
      "path" : "Tests/SwiftMathTests",
      "sources" : [
        "AccentSpacingComparisonTest.swift",
        "ArrowStretchingTest.swift",
        "ConcurrencyThreadsafeTests.swift",
        "DebugOverlapTest.swift",
        "DotlessIJAccentTests.swift",
        "GlyphBoundsTest.swift",
        "LimitOperatorRegressionTests.swift",
        "MTFontMathTableV2Tests.swift",
        "MTFontV2Tests.swift",
        "MTMathListBuilderTests.swift",
        "MTMathListTests.swift",
        "MTMathUILabelLineWrappingTests.swift",
        "MTTypesetterTests.swift",
        "MathDelimiterTests.swift",
        "MathFontTests.swift",
        "MathImageTests.swift",
        "MatricesLineBreakingTest.swift",
        "RelationOperatorSpacingTests.swift",
        "Tokenization/MTAtomTokenizerTests.swift",
        "Tokenization/MTBreakableElementTests.swift",
        "Tokenization/MTDisplayGeneratorTests.swift",
        "Tokenization/MTDisplayPreRendererTests.swift",
        "Tokenization/MTElementWidthCalculatorTests.swift",
        "Tokenization/MTLineFitterTests.swift",
        "Tokenization/MTTokenizationImprovementTests.swift",
        "Tokenization/MTTokenizationRealWorldTests.swift",
        "Tokenization/MTTypesetter+TokenizationTests.swift",
        "WidehatGlyphTest.swift",
        "WidehatTests.swift"
      ],
      "target_dependencies" : [
        "SwiftMath"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftMath",
      "module_type" : "SwiftTarget",
      "name" : "SwiftMath",
      "path" : "Sources/SwiftMath",
      "product_memberships" : [
        "SwiftMath"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/SwiftMath/mathFonts.bundle",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "MathBundle/MTFontMathTableV2.swift",
        "MathBundle/MTFontV2.swift",
        "MathBundle/MathFont.swift",
        "MathBundle/MathImage.swift",
        "MathRender/MTBezierPath.swift",
        "MathRender/MTColor.swift",
        "MathRender/MTConfig.swift",
        "MathRender/MTFont.swift",
        "MathRender/MTFontManager.swift",
        "MathRender/MTFontMathTable.swift",
        "MathRender/MTLabel.swift",
        "MathRender/MTMathAtomFactory.swift",
        "MathRender/MTMathImage.swift",
        "MathRender/MTMathList.swift",
        "MathRender/MTMathListBuilder.swift",
        "MathRender/MTMathListDisplay.swift",
        "MathRender/MTMathListIndex.swift",
        "MathRender/MTMathUILabel.swift",
        "MathRender/MTTypesetter+Tokenization.swift",
        "MathRender/MTTypesetter.swift",
        "MathRender/MTUnicode.swift",
        "MathRender/RWLock.swift",
        "MathRender/Tokenization/MTAtomTokenizer.swift",
        "MathRender/Tokenization/MTBreakableElement.swift",
        "MathRender/Tokenization/MTDisplayGenerator.swift",
        "MathRender/Tokenization/MTDisplayPreRenderer.swift",
        "MathRender/Tokenization/MTElementWidthCalculator.swift",
        "MathRender/Tokenization/MTLineFitter.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.