Files
mattgodbolt-molty bad220a3e9 Tighten release-track heuristic, drop now-unnecessary overrides
Simpler rules eliminate ~60 .properties overrides by reading the
existing isNightly + (empty) semver signal correctly:

- New rule: isNightly=true with an *empty* semver classifies as
  'nightly' (not 'experimental'). CE convention is that a parenthesised
  tag like "(contracts)" or "(modules)" names a *specific* feature
  fork, while no semver at all means "the canonical nightly build,
  nothing fancy". This catches wasm32clang, flangtrunk, lc3-trunk,
  cpp4oclclspv, every dotnettrunk* compiler, rustccggcc-master, and
  mrustc-master without a single per-compiler override.
- New sub-rule on Rule 1: a real semver with a prerelease segment
  (1.28.0-preview, 1.0.0-rc1) classifies as 'nightly' if isNightly is
  also set, else 'prerelease'. micropython-preview is the in-tree
  example: maintainer's explicit isNightly=true means "rolling preview
  branch", not "RC of an upcoming release". dxc 1.8.2306-preview (no
  isNightly) stays 'prerelease', as it should.

c++ feature-fork compilers (gcontracts-trunk, gcc-modules-trunk,
glambda-p2034-trunk, etc.) still hit Rule 6 → 'experimental' because
their semver is non-empty (a parenthesised feature name).

Reverts all releaseTrack=nightly overrides from commits 009048206
(Rust master compilers) and f2980f40c (the dotnet/wasm/lc3/clspv/flang
sweep) — the new heuristic handles every one of them. Audit script
confirms zero remaining misclassifications and zero overrides needed
across all etc/config/*.properties.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 17:32:44 -05:00
..
2023-07-30 18:06:09 -05:00
2026-05-06 10:38:05 -04:00
2020-05-20 12:55:12 +02:00
2026-03-21 21:21:40 +01:00
2018-02-23 09:19:04 -06:00
2026-02-20 12:54:12 +01:00
2025-08-02 16:20:20 -05:00
2022-05-09 23:13:50 -05:00
2022-12-27 18:46:15 -06:00
2022-05-09 23:13:50 -05:00
2023-02-02 20:44:45 +01:00
2024-03-08 22:25:09 -06:00
2025-10-04 16:37:04 +02:00
2020-10-01 23:40:14 +02:00

How do I ?

This is a how-to guide for the user-interface presented by Compiler Explorer. This doesn't cover the details of how to set up or modify Compiler Explorer for your own needs. For that, please check the documents which already cover topics like:

Fast links:

Change the assembly syntax from Intel

Output, intel and at&t

The option to switch assembly from Intel to AT&T syntax is present in the Output option of each compiler. If enough space is not present, the option also presents itself as the gear symbol (⚙)

Compare the time taken by compilation and networking

Brief overview of UI

This is the symbol that looks like a bar graph (📊). If your compilations are taking long, you can use this to check the time taken by:

  • Networking, JavaScript, waiting for events, etc.
  • Checking the cache and retrieving from it on a cache-hit
  • Compilation (on force compilation or cache-miss)
  • Parsing the generated assembly before presenting it

View intermediate information provided by the compilers

Options for GCC Options for Clang

Though both GCC and Clang create supplementary outputs along with assembly (shown by default), and an executable (created if an executor has been added), the exact nature of the outputs and their formats differ between the compilers.

GCC allows the Tree, IPA, RTL and graph outputs, while Clang allows optimization, AST, IR and graph outputs. Some outputs (e.g. RTL or graph) also have a rich set of options in the UI to enable focussing on a particular function or compiler stage.