Content Quality: Clear Briefing (565 words, range 300-800) with Overview, What Changed, Deprecations and a What We Don't Know section. Appropriate technical depth for a developer audience; body is dense with API names but each is traceable to the notes.
Source Verification: Both sources are first-party (triton-lang project); no independent coverage exists and the article says so in 'What We Don't Know'. Hostnames github.com (line 1131) and raw.githubusercontent.com (line 1717) are on config/source_allowlist.txt by exact match. Snapshots read: source-0.html.gz (release page, HTTP 200, sha256 in manifest, suspicious_patterns null) and source-1.html.gz (RELEASE.md raw text, HTTP 200, suspicious_patterns null). Snapshot sanity-checked (Breaking Changes headings present, datetime 2026-10-27T18:56:21Z), then re-verified against the live GitHub API release body (repos/triton-lang/triton/releases/tags/v3.9.0) and live raw RELEASE.md (byte-identical to the snapshot). API: tag v3.9.0, name 'Triton 3.9.0 Release Notes', created_at 2026-10-26T23:27:53Z, published_at 2026-10-27T18:56:21Z, not draft or prerelease, target release/3.9.x: the 'October 27, 2026' date is correct (published_at); the creation timestamp is the 26th UTC. Verified individually against raw text: (1) Block pointers: 'tl.make_block_ptr raises NotImplementedError, tl.advance was removed, and tl.load/tl.store no longer accept boundary_check or padding_option. Switch to tensor descriptors (tl.make_tensor_descriptor or the host-side TensorDescriptor), which provide bounds checking and zero padding' - exact. (2) Keyword-only: cache_modifier, eviction_policy, volatile, keep_dims/ieee_rounding - exact; 'fails to compile' exact. (3) Type promotion: scalar no longer widens tl.minimum/maximum/comparisons/clamp/fma/binary math, tl.maximum(x_fp16, 0.0) returns float16; '/' and '%' return float32 when an operand is a float narrower than 32 bits - exact. (4) 'Python 3.10 dropped: Triton requires Python 3.11 or newer (>=3.11,<3.16) and no longer ships Python 3.10 wheels' - exact; RELEASE.md table lists 3.8.0 as '>=3.10, <=3.14' - exact (3.5.0 through 3.8.0 all share that range). (5) 'RDNA1/RDNA2 removed: The AMD backend no longer supports gfx10 targets (gfx101x, gfx103x). Use Triton 3.8 for those GPUs' - wording is 'removed'/'no longer supports', not 'deprecated'; the article's 'removes support' is faithful. (6) Hopper ptxas: sm_90 uses CUDA 13 ptxas via TRITON_PTXAS_BLACKWELL_PATH; TRITON_PTXAS_PATH only below sm_90 - exact. (7) Build: nanobind replaced pybind11, PYBIND11_SYSPATH no longer used, AMD codegen own LLVM pin, TRITON_AMD_CODEGEN_PATH prebuilt libtriton_amd_codegen - exact. (8) Additions: tl.atomic_load/atomic_store (acquire/release defaults), tl.fdiv(..., approx=True) fast FP32 division, chained comparisons 0 <= x <= 8, E8M0 0x00 -> 2^-127 and 0xFF -> NaN (previously zero and infinity), barrier insertion rewritten as standalone pass, miscompile fixes in nested-loop flattening, reductions, scans - all present. Quote 'changes results for kernels that use those values' is verbatim. (9) Deprecations: 3.10 will turn off implicit FP fusion by default; 3.9 warns once per process for kernels not setting enable_fp_fusion; TRITON_DEFAULT_FP_FUSION=0 adopts the 3.10 default, =1 keeps fusion and silences the warning; can_reorder=True on tl.cat/tl.reshape/tl.ravel works but warns, 3.10 removes it - exact. (10) RELEASE.md Release Cadence: 'Starting with PyTorch 2.14, Triton feature releases (X.Y.0) follow the PyTorch minor release cadence' - the quoted phrase 'follow the PyTorch minor release cadence' is verbatim. Contributor credits: the notes name only organizations (Meta, AMD, NVIDIA, OpenAI, Intel, Google), no individuals; the article names none, which is consistent. Orphan-link diff: the only external URLs in the body are the two in article.sources; no orphans, no missing body URLs.
Factual Accuracy: No fabricated or misattributed specifics found. Title, summary and lead are each backed by the Breaking Changes section. Minor note: the opening descriptor 'GPU-kernel compiler' is the writer's gloss; the notes do not define Triton in a sentence but describe compiler, kernels, GPU backends and wheels throughout, so the description is consistent with the sources. The 'What We Don't Know' statement that block-pointer usage is not quantified in the notes is true. The framing that 3.9 'removes' Python 3.10 while 3.8.0 supported 3.10 is correct.
Overall Assessment: Accurate, well-sourced Briefing; every number, API name, date and both quoted phrases verified against the raw release body and RELEASE.md. APPROVE. Featured candidacy: 1 - accurate release coverage of breaking changes in a widely used GPU-kernel toolchain for a defined developer audience