Centralize Research corpus #20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Windows 6.4 proof | |
| # swift-pdf-OWNED, NON-centralized proof job (deliberately NOT added to the | |
| # universal reusable — per principal direction). It empirically proves that the | |
| # Swift 6.3.3 Windows (+Asserts) debug-info-mangler crash | |
| # (Assertion `isActuallyCanonicalOrNull()`, AST/Type.h:421) is resolved on | |
| # Swift 6.4 for the full swift-pdf dependency graph. | |
| # | |
| # Background: two trigger existentials are known. The cohort's `any HTML.View` | |
| # (a ~Copyable-refining, recursively-constrained protocol existential) was | |
| # removed at source and cleared html-render/css/markdown Windows-green. The | |
| # REMAINING trigger in this graph is different: the explicit | |
| # `as? any PDF.HTML.Style.Modifier` / `as? any PDF.HTML.Style.Context.Modifier` | |
| # downcasts in swift-pdf-html-render's `PDF.HTML.Context.apply(inlineStyle:)` | |
| # (PDF.HTML.Context+Rendering.swift:267/:283). Those protocols are PLAIN — no | |
| # ~Copyable, no recursion, no associated types — so the trigger is broader than | |
| # the recursive-~Copyable theory. The dispatch is correct, idiomatic Swift; the | |
| # compiler is buggy. Local repros do not reproduce on macOS 6.4/6.5-dev | |
| # snapshots (non-asserts hosts), so this job is the empirical proof on 6.4 for | |
| # the Windows target specifically. Companion minimal repro (dependency-free, | |
| # 6.3.3-vs-6.4 disposition): windows-existential-repro.yml. | |
| # | |
| # ADVISORY (continue-on-error): 6.4 is pre-release and this proves a compiler | |
| # fix, it must not gate merges. The standard 6.3 Windows leg (universal reusable) | |
| # stays red on this one module until the ecosystem 6.4 move. | |
| # WHEN TO REMOVE: when the ecosystem moves to 6.4 (~Sept 2026) and | |
| # the standard Windows leg is green — then this proof is redundant. | |
| # TRACKING: swift-institute/Issues — swift-issue-noncanonical-existential-windows-debuginfo-ice. | |
| on: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| concurrency: | |
| group: win64-proof-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| windows-6-4: | |
| name: Windows (Swift 6.4, debug) — Style.Modifier existential 6.4-fix proof | |
| if: ${{ !github.event.repository.private }} | |
| runs-on: windows-latest | |
| timeout-minutes: 60 | |
| continue-on-error: true | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Harden runner (audit-mode egress logging) | |
| uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 | |
| with: | |
| egress-policy: audit | |
| - uses: actions/checkout@v6 | |
| - uses: swift-institute/.github/.github/actions/configure-private-repos@main | |
| with: | |
| token: ${{ secrets.PRIVATE_REPO_TOKEN }} | |
| app-client-id: ${{ vars.SWIFT_INSTITUTE_BOT_APP_ID }} | |
| app-private-key: ${{ secrets.SWIFT_INSTITUTE_BOT_APP_PRIVATE_KEY }} | |
| enabled: true | |
| # Swift 6.4. If setup-swift cannot yet resolve a 6.4 toolchain on Windows | |
| # (6.4 is pre-release until the ~Sept move), this step fails and the job — | |
| # being continue-on-error — records that without gating; bump to a specific | |
| # 6.4 development-snapshot tag if needed. | |
| - name: Install Swift 6.4 | |
| uses: SwiftyLab/setup-swift@38f54a76b70d989321de9dc7c840618c08cf56e9 # v1.14.0 | |
| with: | |
| swift-version: "6.4" | |
| - name: Print toolchain info | |
| run: | | |
| swift --version | |
| echo "Runner: ${{ runner.os }}" | |
| # The crash is an IRGen/debug-info build crash surfaced during the test | |
| # target's compile of swift-pdf-html-render — `--build-tests` reproduces it | |
| # without running tests (snapshot-test portability is a separate concern). | |
| # A green build here is the proof: the Style.Modifier existential mangler | |
| # crash is gone. KNOWN LIMIT: the full 6.4 graph currently fails EARLY on | |
| # swift-sequence-primitives (not 6.4-ready) before reaching the crash site, | |
| # so a red here is INCONCLUSIVE until the ecosystem is 6.4-ready; the | |
| # companion windows-existential-repro.yml isolates the answer. | |
| - name: Build (debug, incl. tests) — proof the crash is fixed | |
| run: swift build --build-tests -c debug |