PCFC11 local release gates

The unused .github/workflows/ci.yml has been removed from the source package.
Its compiler-test commands are retained below for local execution. Nothing in
this process requires a repository connection, GitHub account or upload.
The ordinary feedback command remains: bash test-pcfc11.sh
The optimizer phase retains scalar initialization checks. The added
check_helpers phase tests 0.2.10 helper expansion and constant flow, including
the Windows instruction model on Linux and independent GCC references.
The check_liveness phase adds dead local writes and branch/loop fixed points;
check_registers adds integer placement, preserved registers and call/pressure
checks. check_expressions covers direct operands, branches, effects and conversions.
The check_integer_codegen phase checks 6,465 Python-derived integer products
per configuration, mixed compiler objects, effects, floating-to-unsigned
conversions and x87 rounding/control/stack behavior.
The standard runner has 37 Linux or 36 native Windows phases.
The 350-case constraints gate retains all earlier cases and adds 87 generic-selection
and array-compatibility regressions. Forty VLA cases verify specific Windows
unsupported-feature diagnostics (30 valid inputs and 10 required rejections);
these count separately from program execution. The 146 initializer fixtures
include four explicit PCFC11-only constant-comma extensions with equivalent
independent reference programs. No inherited corpus or fixture was removed.
The check_copyflow phase validates typed integer IR, copy snapshots, CFG joins,
loop fixed points, effect barriers, budgets and deliberate verifier failures.
The check_constcfg phase adds executable-edge constant analysis, Python-derived
integer expectations, widening loops, dead paths and side-effect preservation.
The check_valuenumber phase adds exact same-block integer expression reuse,
13,632 differential outputs per target/level, 62,641 direct IR checks per
configuration, effects, availability and bounded fallback.
The check_knownbits phase adds 17,280 outputs per target/level, 14,811 direct
IR checks per configuration and 3,672 independently enumerated Python cases.
Invalid shifts are IR data, not executed C; effects and bounded refusal remain.
The check_bitcfg phase adds cross-block facts with 17,024 outputs per target/level,
3,864 direct IR checks per configuration and 256 independently enumerated CFGs.
The check_bitarith phase adds arithmetic bits with 18,048 outputs per target/level,
92,534 direct local/CFG checks and 9,228 independent Python concrete cases.
The check_unused phase adds 43,776 outputs and 77 assembly assertions per
target/level for discarded integer calculations, required values, ordered calls,
qualified/memory reads, FP/division retention and bounded fallbacks.
The check_csmith and check_upstream phases add independent generated inputs
and pinned application/library tests. Explicit reference-timeout and platform
skips are not passes; see docs/INDEPENDENT_TESTING.md.
The added check_diagnostics phase checks warning semantics and output preservation.
The new check_numerics phase validates scalar matrix kernels independently.
Native Windows also uses RtlVirtualUnwind through the generated register frame.

Run these additional Linux gates from a fresh source directory on supported
x86-64 Linux with native GCC, Make, Bash and Python 3.11+. Stop on any failure
and retain the logs/reports. These are release-maintainer checks; they include
more work than the ordinary feedback command and may take several minutes.
Existing test scripts produce their reports; no results are uploaded.

Linux compiler and inherited suite

  gcc -std=c11 -fsyntax-only tests/host_windows_macro.c
  make -j2
  python3 -c 'import json,pathlib,subprocess; assert pathlib.Path("VERSION").read_text().strip() == json.loads(subprocess.check_output(["./pcfc11","--info-json"]))["version"], "VERSION does not match built compiler"'
  gcc -std=c11 -Itest test/line.c -x c test/common -o line-reference.exe
  ./line-reference.exe
  make -j2 test
  make -j2 -W pcfc11 PCFCFLAGS=-O1 test
  make -j2 BOOTSTRAPFLAGS=-O1 PCFCFLAGS=-O1 test-stage2

Native and modeled Windows checks on Linux

  python3 tools/check.py
  python3 tools/check_constraints.py
  python3 tools/check_initializers.py --sanitize-oracle
  python3 tools/check_bitfields.py --sanitize-oracle
  python3 tools/check_headers.py
  python3 tools/check_preprocessor.py
  python3 tools/check_pycforge.py --sanitize-oracle
  python3 tools/check_sysv_abi.py
  python3 tools/check_optimization.py
  python3 tools/check_division.py --sanitize-reference
  python3 tools/check_helpers.py
  python3 tools/check_liveness.py
  python3 tools/check_registers.py
  python3 tools/check_expressions.py
  python3 tools/check_copyflow.py
  python3 tools/check_constcfg.py
  python3 tools/check_valuenumber.py
  python3 tools/check_knownbits.py
  python3 tools/check_bitcfg.py
  python3 tools/check_bitarith.py
  python3 tools/check_unused.py
  python3 tools/check_csmith.py --report validation-csmith.json
  python3 tools/check_upstream.py --report validation-upstream.json
  python3 tools/check_diagnostics.py
  python3 tools/check_numerics.py --sanitize-reference
  python3 tools/check_toolchain_paths.py
  python3 tools/check_constraints.py --target=windows-x64 --report validation-windows-cross.json

The Windows instruction/ABI model does not execute Windows PE/UCRT/SEH. Retain
the separate native Windows gate below. To verify fresh generated C, use the
matching PyCForge source root with tools/export_pycforge.py --verify; see
docs/PYCFORGE.md for the exact command and fixture-version requirements.

Self-compiled compiler

  python3 tools/check.py --compiler ./stage2/pcfc11 --report validation-bootstrap.json
  python3 tools/check_constraints.py --compiler ./stage2/pcfc11 --report validation-bootstrap-constraints.json
  python3 tools/check_initializers.py --compiler ./stage2/pcfc11 --report validation-bootstrap-initializers.json
  python3 tools/check_bitfields.py --compiler ./stage2/pcfc11 --report validation-bootstrap-bitfields.json
  python3 tools/check_headers.py --compiler ./stage2/pcfc11 --report validation-bootstrap-headers.json
  python3 tools/check_preprocessor.py --compiler ./stage2/pcfc11 --report validation-bootstrap-preprocessor.json
  python3 tools/check_sysv_abi.py --compiler ./stage2/pcfc11 --report validation-bootstrap-abi.json
  python3 tools/check_optimization.py --compiler ./stage2/pcfc11 --report validation-bootstrap-optimization.json
  python3 tools/check_integer_codegen.py --compiler ./stage2/pcfc11 --report validation-bootstrap-integer-codegen.json
  python3 tools/check_division.py --compiler ./stage2/pcfc11 --report validation-bootstrap-division.json
  python3 tools/check_helpers.py --compiler ./stage2/pcfc11 --report validation-bootstrap-helpers.json
  python3 tools/check_liveness.py --compiler ./stage2/pcfc11 --report validation-bootstrap-liveness.json
  python3 tools/check_registers.py --compiler ./stage2/pcfc11 --report validation-bootstrap-registers.json
  python3 tools/check_expressions.py --compiler ./stage2/pcfc11 --report validation-bootstrap-expressions.json
  python3 tools/check_copyflow.py --compiler ./stage2/pcfc11 --report validation-bootstrap-copyflow.json
  python3 tools/check_constcfg.py --compiler ./stage2/pcfc11 --report validation-bootstrap-constcfg.json
  python3 tools/check_valuenumber.py --compiler ./stage2/pcfc11 --report validation-bootstrap-valuenumber.json
  python3 tools/check_knownbits.py --compiler ./stage2/pcfc11 --report validation-bootstrap-knownbits.json
  python3 tools/check_bitcfg.py --compiler ./stage2/pcfc11 --report validation-bootstrap-bitcfg.json
  python3 tools/check_bitarith.py --compiler ./stage2/pcfc11 --report validation-bootstrap-bitarith.json
  python3 tools/check_unused.py --compiler ./stage2/pcfc11 --report validation-bootstrap-unused.json
  python3 tools/check_csmith.py --compiler ./stage2/pcfc11 --report validation-bootstrap-csmith.json
  python3 tools/check_upstream.py --compiler ./stage2/pcfc11 --report validation-bootstrap-upstream.json
  python3 tools/check_diagnostics.py --compiler ./stage2/pcfc11 --report validation-bootstrap-diagnostics.json
  python3 tools/check_numerics.py --compiler ./stage2/pcfc11 --report validation-bootstrap-numerics.json
  python3 tools/check_robustness.py --compiler ./stage2/pcfc11 --report validation-bootstrap-robustness.json
  python3 tools/check_pycforge.py --compiler ./stage2/pcfc11 --report validation-bootstrap-pycforge.json

Compiler sanitizers (in a separate Bash session)

  export ASAN_OPTIONS=detect_leaks=0:halt_on_error=1
  export UBSAN_OPTIONS=halt_on_error=1
  python3 tools/build.py --sanitize --output ./pcfc11-sanitize
  python3 tools/check_initializers.py --compiler ./pcfc11-sanitize --report validation-sanitize-initializers.json
  python3 tools/check_bitfields.py --compiler ./pcfc11-sanitize --report validation-sanitize-bitfields.json
  python3 tools/check_headers.py --compiler ./pcfc11-sanitize --report validation-sanitize-headers.json
  python3 tools/check_preprocessor.py --compiler ./pcfc11-sanitize --report validation-sanitize-preprocessor.json
  python3 tools/check_diagnostics.py --compiler ./pcfc11-sanitize --report validation-sanitize-diagnostics.json
  python3 tools/check_numerics.py --compiler ./pcfc11-sanitize --report validation-sanitize-numerics.json
  python3 tools/check_robustness.py --compiler ./pcfc11-sanitize --report validation-sanitize-robustness.json
  python3 tools/check_constraints.py --compiler ./pcfc11-sanitize --report validation-sanitize-constraints.json
  python3 tools/check.py --compiler ./pcfc11-sanitize --report validation-sanitize-focused.json
  python3 tools/check_sysv_abi.py --compiler ./pcfc11-sanitize --report validation-sanitize-abi.json
  python3 tools/check_optimization.py --compiler ./pcfc11-sanitize --report validation-sanitize-optimization.json
  python3 tools/check_integer_codegen.py --compiler ./pcfc11-sanitize --report validation-sanitize-integer-codegen.json
  python3 tools/check_division.py --compiler ./pcfc11-sanitize --report validation-sanitize-division.json
  python3 tools/check_helpers.py --compiler ./pcfc11-sanitize --report validation-sanitize-helpers.json
  python3 tools/check_liveness.py --compiler ./pcfc11-sanitize --report validation-sanitize-liveness.json
  python3 tools/check_registers.py --compiler ./pcfc11-sanitize --report validation-sanitize-registers.json
  python3 tools/check_expressions.py --compiler ./pcfc11-sanitize --report validation-sanitize-expressions.json
  python3 tools/check_copyflow.py --compiler ./pcfc11-sanitize --report validation-sanitize-copyflow.json
  python3 tools/check_constcfg.py --compiler ./pcfc11-sanitize --report validation-sanitize-constcfg.json
  python3 tools/check_valuenumber.py --compiler ./pcfc11-sanitize --report validation-sanitize-valuenumber.json
  python3 tools/check_knownbits.py --compiler ./pcfc11-sanitize --report validation-sanitize-knownbits.json
  python3 tools/check_bitcfg.py --compiler ./pcfc11-sanitize --report validation-sanitize-bitcfg.json
  python3 tools/check_bitarith.py --compiler ./pcfc11-sanitize --report validation-sanitize-bitarith.json
  python3 tools/check_unused.py --compiler ./pcfc11-sanitize --report validation-sanitize-unused.json
  python3 tools/check_csmith.py --compiler ./pcfc11-sanitize --report validation-sanitize-csmith.json
  python3 tools/check_upstream.py --compiler ./pcfc11-sanitize --report validation-sanitize-upstream.json
  python3 tools/check_pycforge.py --compiler ./pcfc11-sanitize --report validation-sanitize-pycforge.json

The sanitizer compiler uses address, undefined and float-cast-overflow
instrumentation. Leak detection is disabled for the compiler's translation-process allocation
model. Compiler sanitizers and GCC-sanitized generated programs are separate
checks. A passing finite corpus does not prove absence of all undefined behavior.

Native Windows

Use native Windows Python and the tested MinGW-w64 UCRT64 GCC toolchain.

  python tools/test_windows.py

Or use bash test-pcfc11.sh in MSYS2 UCRT64 or Git Bash. Preserve and review the
feedback ZIP under test-results/. This gate builds PCFC11 with GCC; it does not
perform native Windows self-compilation. See WINDOWS_TESTING.txt.

Measurements and release record

  python3 tools/benchmark.py --keep-assembly --report validation-benchmark.json

  python3 tools/measure_compilation.py --baseline /path/to/previous/pcfc11 --report compile-cost.json

The optional matched compilation measurement reports elapsed time and Linux
peak RSS; other hosts explicitly omit RSS. Use a quiet host and retain raw
samples. It is a measurement, not a correctness gate.

The standard feedback command also includes benchmarks. Check all output
checksums and calibration/variability information before interpreting timings.
Record compiler versions/hashes and keep native evidence separate from models.
Review docs/VALIDATION.md, docs/C11_AUDIT.md and the integration plan before a
release. Passing compiler gates does not complete GUI or installer validation.

The version-consistency assertion above is mandatory before packaging. The
initial 0.2.14 archive accidentally retained VERSION=0.2.13 even though its
compiler correctly reported 0.2.14. Native feedback exposed that metadata-only
error; the corrected archive retains the original feedback and review.

External numerical libraries (optional installation, explicit qualification)

  python3 tools/check_blas.py --prefix /path/to/openblas --lapacke --require-library
  python3 tools/check_blas.py --compiler ./stage2/pcfc11 --prefix /path/to/openblas --lapacke --require-library --report validation-bootstrap-blas.json
  python3 tools/check_blas.py --compiler ./pcfc11-sanitize --prefix /path/to/openblas --lapacke --require-library --report validation-sanitize-blas.json

Use the same installed header/library build and runtime dependencies throughout.
For other layouts supply --include-dir/--library/--runtime-dir; see docs/NUMERICS.md.
No supplied provider is reported as NOT TESTED, never a qualification pass.
The required gate fails for missing/incompatible providers. Check wrong-width
rejection, actual runtime configuration and all precision/layout outcomes.
Compiler sanitizers do not instrument the external numerical library.

On native Windows with an installed MSYS2 UCRT64 OpenBLAS package:

  python tools/test_windows.py --openblas-prefix C:/msys64/ucrt64 --lapacke

This adds one required phase, making 37 Windows phases. Omitting the library
keeps the 36-phase default and records external libraries as not requested.

Independent compiler references and fresh generated inputs

  python3 tools/check_csmith.py --reference-cc clang --sanitize-oracle
  python3 tools/check_upstream.py --reference-cc clang --sanitize-oracle
  python3 tools/fuzz_csmith.py --csmith csmith --reference-cc clang --count 32 --start-seed 1001 --output fresh-corpus

The fresh output directory must not already exist. Every source and failed
reference/PCFC11 comparison is retained. New timeouts are failures; the tool
does not silently exclude seeds. Csmith and Clang are optional maintainer tools,
not dependencies of bash test-pcfc11.sh. Csmith 2.3.0 is the qualified generator.

Qualification-harness fault injection and Windows assembly preflight:

  python3 tools/check_qualification.py
  python3 tools/check_windows_codegen.py

These preflight checks do not replace native Windows execution.

SOURCE PACKAGING

Use python tools/package_source.py --output dist/PCFC11-0.2.26-source.zip.
Keep all compiler/test inputs. Bulk evidence belongs in the optional history
archive; packaging/evidence-files.txt lists the concise records shipped with
source. See PACKAGING.md before adding new top-level directories or release files.

Fresh PyCForge applications (separate source-API/headless gate)

  python3 tools/check_fresh_pycforge.py --pycforge-root /path/to/pycforge-1.3.68 --work-dir test-results/fresh-1 --sanitize-oracle --report test-results/fresh-1.json

Use a new work directory for every attempt and retain failed results. The
standard runner remains independent of PyCForge installation. Native Windows
must execute both compiler and optional fresh-application gates separately.
