Skip to content

Centralize Research corpus #20

Centralize Research corpus

Centralize Research corpus #20

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