Skip to content

build(classic): switch supported toolchains to LLVM - #588

Merged
zoeyrose merged 154 commits into
mainfrom
build/llvm-classic-final
Oct 12, 2026
Merged

zoeyrose merged 154 commits into
mainfrom
build/llvm-classic-final

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Summary

Switch supported Classic builds to LLVM 23.1.3 on Linux and native macOS, and LLVM-MinGW 20261006 UCRT on Windows. Preserve dependency features and optimization behavior with LTO and PGO disabled.

Implementation / behavior

Use Clang, LLD, LLVM utilities, compiler-rt and libunwind with compatible platform libraries. Support monorepo, scoped archive and installed-consumer builds; preserve profiling identities and strict native LCOV export.

Pin current Linux, Windows and release compilers to verified immutable SDK 1.18 images. Bind Windows package helpers and CMake discovery to the selected host Python, independently of target Windows Python. Authenticate current recipes, including both shared libatrinik CMake inputs and the integrated protocol 1084 CMake changes; retain all six original historical release producers.

Run historical GCC and current LLVM server benchmark revisions in separate authenticated containers and caches, preserving strict current LLVM builds and recording the compiler difference. Changes to the benchmark runner and its tests select the requested server benchmark and applicable native checks.

Avoid draining unrelated primary-map work when allocating the minimap's first instance buffer. Preserve completion waits before replacing existing resources. Add deterministic coverage for both cases. Keep the 30-second Windows close deadline and bounded owned-thread stack diagnostics. Record a query-only per-thread CPU baseline before close; after timeout rank matching live thread generations by CPU delta and capture at most two bounded module-relative stacks. Bound sampling and observers, retain owned handles, and resume each thread before unwind. Compile the observer before application startup. Missing, new or exited threads remain unavailable rather than inferred.

Add child-scoped dual-opt-in presentation diagnostics, capped at one bounded identity and 64 paired map-bearing frame records. Record observed resource retirements separately from submissions without new GPU queries or waits. Fence bounded process CPU snapshots by owned handle and process generation; preserve presentation order and the 30-second close deadline.

Authenticate 15 selected compiler/version/runtime/sound/dependency policy inputs and reject ten preferred local shadow paths. Document that this policy-routing drift guard does not attest the entire executable source graph or compiler origin; exact-source review and actual build evidence remain required. Route the shared toolkit-interface test through both native client and server jobs.

Isolate temporary benchmark repositories from inherited Git maintenance, hooks and templates. Apply the same fixture-only policy to clone, commit and worktree operations; retain strict cleanup and actual historical-contract and offline routing assertions. A hostile-policy regression covers successful comparison and candidate failure. Production benchmark execution is unchanged.

Keep the complete 13,146-tick long freeze regression in a separate Check case with a finite 30-second budget and identical fixtures; other Core tests retain their default budget.

Integrate Classic main 2654b1bef9573f3e167d470a3cb9c72acd04819c, including matching protocol 1084 sources and the native changes required by content 1.12.

Validation

Current head: 9f2e4321a8176a0687b85cb6f6b222f88f91d820.

  • Integrated tooling: 819 tests run, with 770 passing and 49 prerequisite skips. Client tooling: 221 tests run, with 219 passing and two prerequisite skips. Import history, compilation, ShellCheck, actionlint and whitespace checks pass.
  • Actual current-head macOS ARM64 LLVM qualification at 9f2e4321 passes all 93 selected CPU tests without failures or skips, including 24 HTTPS transport cases in 12.9097 seconds. LLVM/LLD 23.1.3, compiler-rt, native C/C++ SDK probes and the production Release client/shared-library graph are verified. Independent evidence review authenticates the artifact and exact source. The fixture avoids numeric-loopback reverse DNS while preserving TLS checks and deadlines; its focused independent review passes 15 tests without skips. GPU, Intel macOS and packaging are outside this receipt.
  • Independent source reviews clear GPU resource/fence ordering, historical benchmark compiler selection, Windows host-Python propagation and current/historical recipe authentication. Actual clean new-main baseline selection retains GCC 15.2 / SDK 1.16; current selection uses LLVM 23.1.3 / SDK 1.18.
  • Isolated client LLVM Release and coverage builds each pass 74 tests with 24 GPU prerequisite skips. Required software Vulkan conformance and ASAN/UBSAN conformance pass separately. Native LLVM LCOV measures all 59 objects; restoring the old guard fails the new checkpoint as expected. The diagnostic candidate also compiles production Release with BUILD_TESTING=OFF; required default/dual-opt-in software Vulkan and ASAN/UBSAN runs pass. Default emits zero progress records; opt-in hits exactly 129 lines. Native LCOV measures all59 objects. ASan leak detection was disabled. Fresh exact-head hosted checks and Codex reviews remain required.
  • Isolated server LLVM coverage passes all 74 tests without skips. Native LCOV exports; restoring the unsnapped implementation fails the original numerical assertion without timing out. Preceding a269 hosted validation passes server validation, all applicable native jobs, trusted GPU coverage and the Classic aggregate; the long freeze case completes in 5.46 seconds.
  • Preceding manual Check at 665b4c0 passes every applicable job and the aggregate, including native Windows and macOS. The preceding PR Check fails during temporary historical Git-clone cleanup. Trace evidence confirms fixture maintenance can write after commit returns; attribution of that exact hosted cleanup error remains unproven. The fixture-only repair passes 69 focused tests and independent review, including a reproduced inherited-hook control on both clone and comparison worktree paths. At preceding 31585a03, all 819 integrated tooling tests pass locally. Current 9f2e4321 runs 820 integrated tooling tests: 771 pass and 49 prerequisite-dependent cases skip. The initial native run inherited umask 077 and failed an existing 0755 fixture; the unchanged suite passes with required umask 022. Independent source review verifies the final integrated tree and unchanged validated diagnostic bytes. Current 31585a03 Core and server checks pass, and Codex code review is clear. Current manual Check passes all applicable jobs and the aggregate. Current PR Check fails native Windows close acceptance and therefore the aggregate. CodeQL and server benchmark checks pass. The separate private Security Report is unavailable; older summaries are not represented as fresh.
  • Hosted validation at preceding 24f6ecb passes every applicable PR job and the aggregate; both current-source Codex code reviews are clear. The subsequent actual macOS receipt verifies the repaired fixture. Those receipts retain their exact source/environment scope.
  • Requested server benchmarking on preceding b327 successfully builds and executes the genuine GCC15.2/SDK1.16 base and Clang23.1.3/SDK1.18 head. Small informational samples do not establish a reliable speedup or regression; client performance is qualification-skipped.
  • The preceding 992 native Windows failure captured the unnecessary first-minimap wait. Subsequent b327 Windows validation presents its first gameplay frame but then stalls in SDL D3D12 swapchain acquisition; subsequent a269 and 24f6ecb native Windows validation pass. The latter observes successful close within 19.407 seconds of close acceptance on the hosted Microsoft Basic Render Driver, inside the unchanged 30-second deadline. The earlier stall remains intermittent and unresolved. Current 31585a03 native Windows PR validation times out at the unchanged 30-second close deadline during frame 2 presentation. Process CPU advances 29.968 seconds over 30.016 wall seconds; this does not identify the busy thread or prove GPU work is responsible. The same-head manual validation passes, with frame 2 presentation taking 22.228 seconds on the same reported software adapter and driver version. The last observed map retirement count does not establish continuous fence state during blocked presentation. The current source adds independently reviewed bounded CPU-ranked thread diagnostics. Local actual PowerShell/C# fixtures and 31 focused Python cases pass. Current 9f2e4321 PR validation passes all applicable jobs and the aggregate, and exact-head Codex review is clear. The native Windows fixture successfully identifies and captures the CPU-busy worker with bounded top-two output and natural child exit. Actual real-client close succeeds inside 30 seconds. Independent current macOS and Windows evidence reviews are clear. Current manual Check also passes every applicable job and the aggregate, including both actual native qualification paths and trusted software GPU coverage. All fresh required/applicable checks pass; no unresolved current review findings remain. This preceding failure is still unresolved; no rendering fix is claimed. Earlier native macOS and server qualification receipts retain their exact source/environment scope.
  • Released SDK 1.18 identities and native Windows producer artifacts are independently verified. Classic build(classic): add LLVM toolchain and native coverage prerequisites #586 and SDK feat(protocol): isolate face assets from gameplay #55/fix(release): recover from the v5.8.1 Release-only server failure #56 are merged; SDK #59 is merged after full CI and exact-head reviews; SDK #60 prepares final portable receipts/inventories and workspace #647 retain separate gates.

Limitations / follow-up

Removing the unnecessary wait does not establish timely underlying GPU completion or complete Windows stall recovery; fresh native Windows acceptance remains required. Physical GPU qualification, audible playback and human-approved goldens remain outstanding.

After current checks/reviews pass, merge Classic and run the main-only nonpublishing release rehearsal. Qualify a portable producer bound to merged Classic revision M, verify its genuine release, complete workspace build/export/relocation acceptance, and synchronize provider guidance and pins. Released portable SDK 1.18 remains preliminary. No live deployment is included.

@github-actions

Copy link
Copy Markdown

Movement regression summary

The base/candidate replay was skipped because no movement-sensitive implementation files changed.

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: b327a1c5dc

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b327a1c5dc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/release/windows_producer.py
Comment thread tools/tests/test_server_benchmark.py

Copy link
Copy Markdown
Member Author

@codex review

Please review current head a2690161450b99ef54c3925bb08699001a6e41b3. Both shared libatrinik CMake inputs now join current Windows recipe authentication with individual committed-tamper rejection. Benchmark runner/tests select the requested server comparison and native jobs. The complete 13,146-tick freeze regression has an identical-fixture, finite30-second test case; Core remains5seconds. Independent combined source review clears all three fixes; native integrated tooling810tests passes(49 prerequisite skips), and server coverage74/74 plus ordinary unsnapped negative proof pass. Fresh hosted CI/code/security review remain required. Windows subsequent-frame SDL swapchain stall remains under causal investigation; no close deadline or qualification weakened.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a269016145

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/release/windows_producer.py
Comment thread tools/tests/test_toolkit_dependency_interfaces.py

Copy link
Copy Markdown
Member Author

@codex review

Please review exact head24f6ecb12b02a8f73534141ef49ecc388ce285c1. Both latest policy/classification findings are addressed and independently reviewed. Integrated817 tooling tests pass (49 prerequisite skips), client221 pass (two skips), native production/coverage/software GPU/sanitizer diagnostic evidence is clear. Prior a269 hosted aggregate and native Windows pass; earlier b327 intermittent close stall remains unresolved, with bounded opt-in diagnostics added for fresh evidence. No qualification or deadline relaxation.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Nice work!

Reviewed commit: 24f6ecb12b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Copy Markdown
Member Author

@codex security review

Please review exact current head 24f6ecb12b02a8f73534141ef49ecc388ce285c1. The latest summary still binds security completion to an older revision; fresh exact-head security review is required for final acceptance. Self-review and independent source/security review of the integrated changes are clear.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: 24f6ecb12b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Copy Markdown
Member Author

@codex review

Please review exact current head 665b4c0cfe0df177180590993a04c64b17dc54cf. The two-file follow-up removes an unbounded reverse-DNS lookup from numeric-loopback HTTPS test setup while preserving real socket/port binding, TLS assertions and deadlines. Independent review passes 15 focused tests; the integrated tooling suite runs 818 tests with 769 passing and 49 prerequisite skips. Fresh hosted full/native macOS qualification is required; prior LLVM production and security-sensitive source is unchanged.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: 665b4c0cfe

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Copy Markdown
Member Author

@codex review

Please review exact current head 31585a03f079357db53b2be51405062928ad79e6. Only the benchmark test fixture changed since the preceding code-clear head: Git clone, commit and comparison worktree operations isolate inherited maintenance/hooks/templates while preserving strict cleanup and historical contract controls. Independent review reproduced the inherited-hook failure and verifies its repair; all 69 focused tests and all 819 integrated tooling tests pass locally (49 prerequisite skips in the full suite). Production sources and deadlines are unchanged. Fresh hosted PR and native macOS Check runs remain required before merge.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. You're on a roll.

Reviewed commit: 31585a03f0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Copy Markdown
Member Author

@codex review

Please review exact current commit 9f2e432. It adds timeout-only CPU-ranked owned-thread diagnostics, preserving process/thread generation fences, bounded snapshots, resume-before-unwind, default application silence, rendering behavior and the existing 30-second close failure. Independent source review is clear; 820 integrated native tooling tests run (771 pass, 49 prerequisite skips), and actual PowerShell/C# fixture controls pass. Native Windows API execution and real-client acceptance require fresh hosted CI. Prior Windows timeout evidence remains unresolved; no rendering recovery is claimed.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

Reviewed commit: 9f2e4321a8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@zoeyrose
zoeyrose merged commit e009394 into main Oct 12, 2026
52 checks passed
@zoeyrose
zoeyrose deleted the build/llvm-classic-final branch October 12, 2026 03:21
zoeyrose added a commit that referenced this pull request Oct 17, 2026
<!-- claude-projects-attribution: {"github_login":"zoeyrose"} -->
_Requested by **Zoey** · [project
thread](https://claude.ai/code/project/chan_01GqFGRfVxfKgHRxSgL4g4qr?thread=cmsg_01GqFGRfVxfKgHRxSgL4g4qr8QRmstGjD1db1c8HCp5KSi)_

Before: Dependabot's docker updates for `/server` open PRs that change
only one `FROM` line in `server/Dockerfile`, and they always fail Check.
#620 (classic-build 1.18.0 to 1.28.0) fails
`test_server_runtime_provider` and `test_workflow_contracts`. Both tests
require the Dockerfile's build image to equal
`runtime-provider.lock.json` and the `CLASSIC_LINUX_IMAGE` pins.

After: Dependabot ignores `atrinik/classic-build` and `ubuntu` in
`/server`, and a comment in `dependabot.yml` explains why. New SDK or
base images are adopted through a qualification PR, as with #588 and the
1.18 measurement in `docs/CARES_PROVIDER.md`.

Both stages are qualified pins, not routine updates. The SDK image is
bound to the runtime provider lock's measured payload and package
evidence, and to the pins in eight workflows,
`tools/ci/server_benchmark.py` and the AppImage packaging lock.
`CARES_PROVIDER.md` says the Ubuntu base "must pass the actual assembly
checks below; changing an image digest alone does not qualify its
installed package dependencies."

How: an `ignore` list on the existing `/server` docker entry. The `#
syntax=` frontend pin and the other ecosystems still update.

---
_Generated by [Claude
Code](https://claude.ai/code/session_016FyuSKkineBeVKbubYFsqd)_

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: benchmark Explicitly request path-relevant pull request benchmarks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants