wavefnd / wavefnd/Wave

Remove Windows GNU and MinGW support after the MSVC release gates pass

Open
#626 0 comments 0 reactions 0 assignees View on GitHub
backward compatibility help wanted migration technical debt
Dominant language
Rust
Stars
53
Forks
16
Avg merge
4h 22m
Merged PRs (30d)
46

Description

Part of #611. Difficulty: **high**. Audit baseline: master `3950416e` (2026-09-12).

## Current evidence

Windows GNU triples remain in [llvm/src/codegen/target.rs](https://github.com/wavefnd/Wave/blob/3950416efc55cbc5ae7d54535e5a4e8699394ff0/llvm/src/codegen/target.rs#L375), with driver/backend paths in [src/cli.rs](https://github.com/wavefnd/Wave/blob/3950416efc55cbc5ae7d54535e5a4e8699394ff0/src/cli.rs#L2717) and MinGW toolchain/package settings in [x.py](https://github.com/wavefnd/Wave/blob/3950416efc55cbc5ae7d54535e5a4e8699394ff0/x.py#L37), .cargo/config.toml and workflows. The requested next-release end state is MSVC-only Windows support.

## Scope

Perform the final bounded retirement after the migration tracker gates pass: remove Windows GNU target registrations/aliases, linker/startup discovery, Windows-specific GNU Cargo configuration, obsolete release inputs and CI provisioning. Reject retired triples with a clear replacement message. Update retained tests to equivalent MSVC coverage before deleting obsolete GNU-only harness code.

## Completion criteria

The supported Windows target list contains MSVC x64/ARM64 only; old Windows GNU commands fail with migration guidance. No active Windows build, package or execution job installs/requires MinGW, GCC, GNU Rust or its runtimes. All meaningful case/ABI behavior remains covered. Linux GNU, other non-Windows GNU targets, Linux LoongArch64 and unrelated inline assembly remain intact. Existing historical issues/PRs and user-owned mirror.yml are not rewritten or removed. Review documentation via #401 and the tracker.

## Dependencies and boundaries

Final step after #625, #621, #624, #623, #615, #616, #617, #618, #619, #614, #620. This supersedes the earlier retain-GNU restriction in #498 only at this gated cutover; it is not authorization to remove support in prerequisite patches.

Contributor guide

Open the contributing guide

Research direction

Start after the prerequisite issues pass by auditing llvm/src/codegen/target.rs, src/cli.rs, x.py, .cargo/config.toml, workflows, and the retained Windows tests. Check the tracker and documentation in #401 before changing the supported target set. Done means MSVC x64/ARM64 remain, retired GNU commands give migration guidance, MinGW-related provisioning is gone, and the specified non-Windows coverage remains intact.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
build-system, ci-cd, compilers, operating-systems
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.