diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index c9b08572c..753bca622 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -173,3 +173,4 @@ From oldest to newest contributor, we would like to thank:
- [Josh Brice](https://github.com/jjb0123)
- [Sean Garwood](https://github.com/sean-garwood)
- [Victor Vianna](https://github.com/victorvianna)
+- [Piers Wombwell](https://github.com/pwombwell)
diff --git a/docs/AddingALibrary.md b/docs/AddingALibrary.md
index 67f4d3e59..9febe7f47 100644
--- a/docs/AddingALibrary.md
+++ b/docs/AddingALibrary.md
@@ -6,6 +6,61 @@ and then how to submit PRs to get it into the main CE site.
Note that most libraries are Header-only. This is the easiest form of library to support. If the library needs to be
built, there are some caveats, best practices and good to knows. Consult the bottom of this page for details.
+## CE Library Wizard (recommended)
+
+The easiest way to add a library to Compiler Explorer is to use the
+[CE Library Wizard](https://github.com/compiler-explorer/ce-library-wizard), a CLI tool that automates the entire
+process — including forking repos, updating configuration files, and creating pull requests. It supports C, C++, Rust,
+Fortran, and Go.
+
+*Note: the wizard currently only runs on Linux and requires Git, the
+[GitHub CLI](https://cli.github.com/), and CMake (for libraries that use CMake).*
+
+```bash
+git clone https://github.com/compiler-explorer/ce-library-wizard.git
+cd ce-library-wizard
+./run.sh
+```
+
+This launches an interactive mode that guides you through the process. You can also use command-line flags directly:
+
+```bash
+# C++ library (auto-detects type)
+./run.sh --lang=c++ --lib=https://github.com/fmtlib/fmt --ver=10.2.1
+
+# Header-only C++ library
+./run.sh --lang=c++ --lib=https://github.com/bobluppes/graaf --ver=v1.1.1 --type=header-only
+
+# Rust crate
+./run.sh --lang=rust --lib=serde --ver=1.0.195
+
+# C library
+./run.sh --lang=c --lib=https://github.com/libuv/libuv --ver=1.46.0
+
+# Fortran library (requires fpm.toml)
+./run.sh --lang=fortran --lib=https://github.com/jacobwilliams/json-fortran --ver=8.5.0
+
+# Go module
+./run.sh --lang=go --lib=github.com/google/uuid --ver=v1.6.0
+
+# Multiple versions at once
+./run.sh --lang=c++ --lib=https://github.com/nlohmann/json --ver=3.11.1,3.11.2,3.11.3
+
+# Bulk-add top 100 Rust crates
+./run.sh --top-rust-crates
+```
+
+Useful options include `--verify` to preview changes, `--dry-run` to skip committing, `--install-test` to validate
+installation (C/C++), `--build-test=yes` to test building, and `--type=TYPE` to skip auto-detection (C/C++).
+
+For full documentation, see the
+[CE Library Wizard repository](https://github.com/compiler-explorer/ce-library-wizard).
+
+## Manual configuration
+
+The rest of this document describes how to add libraries manually, which is useful for understanding how the
+configuration works or for cases the wizard doesn't cover.
+
If you're specifically looking for adding a Rust crate to CE, go here
https://github.com/compiler-explorer/infra/blob/main/docs/adding_rust_crates.md
diff --git a/etc/config/ada.amazon.properties b/etc/config/ada.amazon.properties
index 290e5e83d..b928f9418 100644
--- a/etc/config/ada.amazon.properties
+++ b/etc/config/ada.amazon.properties
@@ -1,13 +1,13 @@
# Default settings for Ada
compilers=&gnat:&gnatcross
-defaultCompiler=gnat152
+defaultCompiler=gnat161
versionFlag=--version
compilerType=ada
###############################
# GCC (as in GNU Compiler Collection) for x86
-group.gnat.compilers=&gnatassert:gnat82:gnat95:gnat102:gnat104:gnat105:gnat111:gnat112:gnat113:gnat114:gnat121:gnat122:gnat123:gnat124:gnat125:gnat131:gnat132:gnat133:gnat134:gnat141:gnat142:gnat143:gnat151:gnat152:gnatsnapshot
+group.gnat.compilers=&gnatassert:gnat82:gnat95:gnat102:gnat104:gnat105:gnat111:gnat112:gnat113:gnat114:gnat121:gnat122:gnat123:gnat124:gnat125:gnat131:gnat132:gnat133:gnat134:gnat141:gnat142:gnat143:gnat151:gnat152:gnat161:gnatsnapshot
group.gnat.intelAsm=-masm=intel
group.gnat.groupName=X86-64 GNAT
group.gnat.baseName=x86-64 gnat
@@ -69,6 +69,8 @@ compiler.gnat151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gnatmake
compiler.gnat151.semver=15.1
compiler.gnat152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gnatmake
compiler.gnat152.semver=15.2
+compiler.gnat161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/gnatmake
+compiler.gnat161.semver=16.1
compiler.gnatsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gnatmake
compiler.gnatsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -76,7 +78,7 @@ compiler.gnatsnapshot.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
compiler.gnatsnapshot.semver=(trunk)
## GNAT x86 build with "assertions" (--enable-checking=XXX)
-group.gnatassert.compilers=gnat104assert:gnat105assert:gnat111assert:gnat112assert:gnat113assert:gnat114assert:gnat121assert:gnat122assert:gnat123assert:gnat124assert:gnat125assert:gnat131assert:gnat132assert:gnat133assert:gnat134assert:gnat141assert:gnat142assert:gnat143assert:gnat151assert:gnat152assert
+group.gnatassert.compilers=gnat104assert:gnat105assert:gnat111assert:gnat112assert:gnat113assert:gnat114assert:gnat121assert:gnat122assert:gnat123assert:gnat124assert:gnat125assert:gnat131assert:gnat132assert:gnat133assert:gnat134assert:gnat141assert:gnat142assert:gnat143assert:gnat151assert:gnat152assert:gnat161assert
group.gnatassert.groupName=GCC x86-64 (assertions)
compiler.gnat104assert.exe=/opt/compiler-explorer/gcc-assertions-10.4.0/bin/gnatmake
@@ -119,6 +121,8 @@ compiler.gnat151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gnat
compiler.gnat151assert.semver=15.1 (assertions)
compiler.gnat152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gnatmake
compiler.gnat152assert.semver=15.2 (assertions)
+compiler.gnat161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/gnatmake
+compiler.gnat161assert.semver=16.1 (assertions)
################################
# Cross GNAT
@@ -133,7 +137,7 @@ group.gnatcross.compilerCategories=gcc
################################
# GNAT for loongarch64
-group.gnatloongarch64.compilers=gnatloongarch641410:gnatloongarch641420:gnatloongarch641430:gnatloongarch641510:gnatloongarch641520
+group.gnatloongarch64.compilers=gnatloongarch641410:gnatloongarch641420:gnatloongarch641430:gnatloongarch641510:gnatloongarch641520:gnatloongarch641610
group.gnatloongarch64.groupName=LOONGARCH64 GNAT
group.gnatloongarch64.baseName=loongarch64 gnat
@@ -161,6 +165,10 @@ compiler.gnatloongarch641520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/l
compiler.gnatloongarch641520.semver=15.2.0
compiler.gnatloongarch641520.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.gnatloongarch641520.demangler=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
+compiler.gnatloongarch641610.exe=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-gnatmake
+compiler.gnatloongarch641610.semver=16.1.0
+compiler.gnatloongarch641610.objdumper=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
+compiler.gnatloongarch641610.demangler=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
################################
# GNAT for sparc-leon
@@ -205,7 +213,7 @@ compiler.gnatsparcleon1430.demangler=/opt/compiler-explorer/sparc-leon/gcc-14.3.
################################
# GNAT for sparc
-group.gnatsparcs.compilers=gnatsparc1220:gnatsparc1230:gnatsparc1240:gnatsparc1250:gnatsparc1310:gnatsparc1320:gnatsparc1330:gnatsparc1340:gnatsparc1410:gnatsparc1420:gnatsparc1430:gnatsparc1510:gnatsparc1520
+group.gnatsparcs.compilers=gnatsparc1220:gnatsparc1230:gnatsparc1240:gnatsparc1250:gnatsparc1310:gnatsparc1320:gnatsparc1330:gnatsparc1340:gnatsparc1410:gnatsparc1420:gnatsparc1430:gnatsparc1510:gnatsparc1520:gnatsparc1610
group.gnatsparcs.groupName=SPARC GNAT
group.gnatsparcs.baseName=sparc gnat
@@ -273,10 +281,14 @@ compiler.gnatsparc1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown
compiler.gnatsparc1520.semver=15.2.0
compiler.gnatsparc1520.objdumper=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.gnatsparc1520.demangler=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
+compiler.gnatsparc1610.exe=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gnatmake
+compiler.gnatsparc1610.semver=16.1.0
+compiler.gnatsparc1610.objdumper=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
+compiler.gnatsparc1610.demangler=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
################################
# GNAT for sparc64
-group.gnatsparc64s.compilers=gnatsparc641220:gnatsparc641230:gnatsparc641240:gnatsparc641250:gnatsparc641310:gnatsparc641320:gnatsparc641330:gnatsparc641340:gnatsparc641410:gnatsparc641420:gnatsparc641430:gnatsparc641510:gnatsparc641520
+group.gnatsparc64s.compilers=gnatsparc641220:gnatsparc641230:gnatsparc641240:gnatsparc641250:gnatsparc641310:gnatsparc641320:gnatsparc641330:gnatsparc641340:gnatsparc641410:gnatsparc641420:gnatsparc641430:gnatsparc641510:gnatsparc641520:gnatsparc641610
group.gnatsparc64s.groupName=SPARC64 GNAT
group.gnatsparc64s.baseName=sparc64 gnat
@@ -344,10 +356,14 @@ compiler.gnatsparc641520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-m
compiler.gnatsparc641520.semver=15.2.0
compiler.gnatsparc641520.objdumper=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.gnatsparc641520.demangler=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
+compiler.gnatsparc641610.exe=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-gnatmake
+compiler.gnatsparc641610.semver=16.1.0
+compiler.gnatsparc641610.objdumper=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
+compiler.gnatsparc641610.demangler=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
################################
# GNAT for riscv64
-group.gnatriscv64.compilers=gnatriscv64103:gnatriscv64112:gnatriscv641230:gnatriscv641240:gnatriscv641250:gnatriscv641310:gnatriscv641320:gnatriscv641330:gnatriscv641340:gnatriscv641410:gnatriscv641420:gnatriscv641430:gnatriscv641510:gnatriscv641520
+group.gnatriscv64.compilers=gnatriscv64103:gnatriscv64112:gnatriscv641230:gnatriscv641240:gnatriscv641250:gnatriscv641310:gnatriscv641320:gnatriscv641330:gnatriscv641340:gnatriscv641410:gnatriscv641420:gnatriscv641430:gnatriscv641510:gnatriscv641520:gnatriscv641610
group.gnatriscv64.groupName=RISCV64 GNAT
group.gnatriscv64.baseName=riscv64 gnat
group.gnatriscv64.instructionSet=riscv64
@@ -421,10 +437,14 @@ compiler.gnatriscv641520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-u
compiler.gnatriscv641520.semver=15.2.0
compiler.gnatriscv641520.objdumper=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.gnatriscv641520.demangler=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
+compiler.gnatriscv641610.exe=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gnatmake
+compiler.gnatriscv641610.semver=16.1.0
+compiler.gnatriscv641610.objdumper=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
+compiler.gnatriscv641610.demangler=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
################################
# GNAT for s390x
-group.gnats390x.compilers=gnats390x1120:gnats390x1210:gnats390x1220:gnats390x1230:gnats390x1240:gnats390x1310:gnats390x1320:gnats390x1330:gnats390x1410:gnats390x1420:gnats390x1510:gnats390x1430:gnats390x1340:gnats390x1250:gnats390x1520
+group.gnats390x.compilers=gnats390x1120:gnats390x1210:gnats390x1220:gnats390x1230:gnats390x1240:gnats390x1310:gnats390x1320:gnats390x1330:gnats390x1410:gnats390x1420:gnats390x1510:gnats390x1430:gnats390x1340:gnats390x1250:gnats390x1520:gnats390x1610
group.gnats390x.groupName=S390X GNAT
group.gnats390x.baseName=S390X GNAT
@@ -499,6 +519,10 @@ compiler.gnats390x1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-lin
compiler.gnats390x1520.semver=15.2.0
compiler.gnats390x1520.objdumper=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.gnats390x1520.demangler=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
+compiler.gnats390x1610.exe=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gnatmake
+compiler.gnats390x1610.semver=16.1.0
+compiler.gnats390x1610.objdumper=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
+compiler.gnats390x1610.demangler=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
################################
# GNAT for ppc
@@ -507,7 +531,7 @@ group.gnatppcs.instructionSet=powerpc
## POWER
group.gnatppc.groupName=POWERPC GNAT
-group.gnatppc.compilers=gnatppc1120:gnatppc1210:gnatppc1220:gnatppc1230:gnatppc1240:gnatppc1250:gnatppc1310:gnatppc1320:gnatppc1330:gnatppc1340:gnatppc1410:gnatppc1420:gnatppc1430:gnatppc1510:gnatppc1520
+group.gnatppc.compilers=gnatppc1120:gnatppc1210:gnatppc1220:gnatppc1230:gnatppc1240:gnatppc1250:gnatppc1310:gnatppc1320:gnatppc1330:gnatppc1340:gnatppc1410:gnatppc1420:gnatppc1430:gnatppc1510:gnatppc1520:gnatppc1610
group.gnatppc.baseName=powerpc gnat
compiler.gnatppc1120.exe=/opt/compiler-explorer/powerpc/gcc-11.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gnatmake
@@ -582,11 +606,15 @@ compiler.gnatppc1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unkno
compiler.gnatppc1520.semver=15.2.0
compiler.gnatppc1520.objdumper=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.gnatppc1520.demangler=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
+compiler.gnatppc1610.exe=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gnatmake
+compiler.gnatppc1610.semver=16.1.0
+compiler.gnatppc1610.objdumper=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
+compiler.gnatppc1610.demangler=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
## POWER64
group.gnatppc64.groupName=POWER64 GNAT
group.gnatppc64.baseName=powerpc64 gnat
-group.gnatppc64.compilers=gnatppc64trunk:gnatppc641120:gnatppc641210:gnatppc641220:gnatppc641230:gnatppc641240:gnatppc641250:gnatppc641310:gnatppc641320:gnatppc641330:gnatppc641340:gnatppc641410:gnatppc641420:gnatppc641430:gnatppc641510:gnatppc641520
+group.gnatppc64.compilers=gnatppc64trunk:gnatppc641120:gnatppc641210:gnatppc641220:gnatppc641230:gnatppc641240:gnatppc641250:gnatppc641310:gnatppc641320:gnatppc641330:gnatppc641340:gnatppc641410:gnatppc641420:gnatppc641430:gnatppc641510:gnatppc641520:gnatppc641610
compiler.gnatppc641120.exe=/opt/compiler-explorer/powerpc64/gcc-11.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gnatmake
compiler.gnatppc641120.demangler=/opt/compiler-explorer/powerpc64/gcc-11.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
@@ -660,6 +688,10 @@ compiler.gnatppc641520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64
compiler.gnatppc641520.semver=15.2.0
compiler.gnatppc641520.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.gnatppc641520.demangler=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
+compiler.gnatppc641610.exe=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gnatmake
+compiler.gnatppc641610.semver=16.1.0
+compiler.gnatppc641610.objdumper=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
+compiler.gnatppc641610.demangler=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.gnatppc64trunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gnatmake
compiler.gnatppc64trunk.semver=trunk
@@ -669,7 +701,7 @@ compiler.gnatppc64trunk.demangler=/opt/compiler-explorer/powerpc64/gcc-trunk/pow
## POWER64LE
group.gnatppc64le.groupName=POWER64LE GNAT
group.gnatppc64le.baseName=powerpc64le gnat
-group.gnatppc64le.compilers=gnatppc64le1120:gnatppc64le1210:gnatppc64le1220:gnatppc64le1230:gnatppc64le1310:gnatppc64le1320:gnatppc64letrunk:gnatppc64le1410:gnatppc64le1330:gnatppc64le1240:gnatppc64le1420:gnatppc64le1510:gnatppc64le1430:gnatppc64le1340:gnatppc64le1250:gnatppc64le1520
+group.gnatppc64le.compilers=gnatppc64le1120:gnatppc64le1210:gnatppc64le1220:gnatppc64le1230:gnatppc64le1310:gnatppc64le1320:gnatppc64letrunk:gnatppc64le1410:gnatppc64le1330:gnatppc64le1240:gnatppc64le1420:gnatppc64le1510:gnatppc64le1430:gnatppc64le1340:gnatppc64le1250:gnatppc64le1520:gnatppc64le1610
compiler.gnatppc64le1120.exe=/opt/compiler-explorer/powerpc64le/gcc-11.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gnatmake
compiler.gnatppc64le1120.demangler=/opt/compiler-explorer/powerpc64le/gcc-11.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
@@ -743,6 +775,10 @@ compiler.gnatppc64le1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/power
compiler.gnatppc64le1520.semver=15.2.0
compiler.gnatppc64le1520.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.gnatppc64le1520.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
+compiler.gnatppc64le1610.exe=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gnatmake
+compiler.gnatppc64le1610.semver=16.1.0
+compiler.gnatppc64le1610.objdumper=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
+compiler.gnatppc64le1610.demangler=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.gnatppc64letrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gnatmake
compiler.gnatppc64letrunk.semver=trunk
@@ -757,7 +793,7 @@ group.gnatmipss.compilers=&gnatmips:&gnatmips64
## MIPS
group.gnatmips.groupName=MIPS GNAT
group.gnatmips.baseName=mips gnat
-group.gnatmips.compilers=gnatmips1120:gnatmips1210:gnatmips1220:gnatmips1230:gnatmips1240:gnatmips1250:gnatmips1310:gnatmips1320:gnatmips1330:gnatmips1340:gnatmips1410:gnatmips1420:gnatmips1430:gnatmips1510:gnatmips1520
+group.gnatmips.compilers=gnatmips1120:gnatmips1210:gnatmips1220:gnatmips1230:gnatmips1240:gnatmips1250:gnatmips1310:gnatmips1320:gnatmips1330:gnatmips1340:gnatmips1410:gnatmips1420:gnatmips1430:gnatmips1510:gnatmips1520:gnatmips1610
compiler.gnatmips1120.exe=/opt/compiler-explorer/mips/gcc-11.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gnatmake
compiler.gnatmips1120.demangler=/opt/compiler-explorer/mips/gcc-11.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
@@ -831,11 +867,15 @@ compiler.gnatmips1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-li
compiler.gnatmips1520.semver=15.2.0
compiler.gnatmips1520.objdumper=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.gnatmips1520.demangler=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
+compiler.gnatmips1610.exe=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gnatmake
+compiler.gnatmips1610.semver=16.1.0
+compiler.gnatmips1610.objdumper=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
+compiler.gnatmips1610.demangler=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
## MIPS64
group.gnatmips64.groupName=MIPS64 GNAT
group.gnatmips64.baseName=mips64 gnat
-group.gnatmips64.compilers=gnatmips641120:gnatmips641210:gnatmips641220:gnatmips641230:gnatmips641240:gnatmips641250:gnatmips641310:gnatmips641320:gnatmips641330:gnatmips641340:gnatmips641410:gnatmips641420:gnatmips641430:gnatmips641510:gnatmips641520
+group.gnatmips64.compilers=gnatmips641120:gnatmips641210:gnatmips641220:gnatmips641230:gnatmips641240:gnatmips641250:gnatmips641310:gnatmips641320:gnatmips641330:gnatmips641340:gnatmips641410:gnatmips641420:gnatmips641430:gnatmips641510:gnatmips641520:gnatmips641610
compiler.gnatmips641120.exe=/opt/compiler-explorer/mips64/gcc-11.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gnatmake
compiler.gnatmips641120.demangler=/opt/compiler-explorer/mips64/gcc-11.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
@@ -909,10 +949,14 @@ compiler.gnatmips641520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unkn
compiler.gnatmips641520.semver=15.2.0
compiler.gnatmips641520.objdumper=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.gnatmips641520.demangler=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
+compiler.gnatmips641610.exe=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gnatmake
+compiler.gnatmips641610.semver=16.1.0
+compiler.gnatmips641610.objdumper=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
+compiler.gnatmips641610.demangler=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
################################
# GNAT for arm64
-group.gnatarm64.compilers=gnatarm641210:gnatarm641220:gnatarm641230:gnatarm641240:gnatarm641250:gnatarm641310:gnatarm641320:gnatarm641330:gnatarm641340:gnatarm641410:gnatarm641420:gnatarm641430:gnatarm641510:gnatarm641520
+group.gnatarm64.compilers=gnatarm641210:gnatarm641220:gnatarm641230:gnatarm641240:gnatarm641250:gnatarm641310:gnatarm641320:gnatarm641330:gnatarm641340:gnatarm641410:gnatarm641420:gnatarm641430:gnatarm641510:gnatarm641520:gnatarm641610
group.gnatarm64.groupName=ARM64 GNAT
group.gnatarm64.baseName=arm64 gnat
group.gnatarm64.instructionSet=aarch64
@@ -985,10 +1029,14 @@ compiler.gnatarm641520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unkno
compiler.gnatarm641520.semver=15.2.0
compiler.gnatarm641520.objdumper=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.gnatarm641520.demangler=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
+compiler.gnatarm641610.exe=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gnatmake
+compiler.gnatarm641610.semver=16.1.0
+compiler.gnatarm641610.objdumper=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
+compiler.gnatarm641610.demangler=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
################################
# GNAT for arm
-group.gnatarm.compilers=gnatarm103:gnatarm112:gnatarm1310:gnatarm1320:gnatarm1330:gnatarm1340:gnatarm1410:gnatarm1420:gnatarm1430:gnatarm1510:gnatarm1520
+group.gnatarm.compilers=gnatarm103:gnatarm112:gnatarm1310:gnatarm1320:gnatarm1330:gnatarm1340:gnatarm1410:gnatarm1420:gnatarm1430:gnatarm1510:gnatarm1520:gnatarm1610
group.gnatarm.groupName=ARM GNAT
group.gnatarm.baseName=arm gnat
group.gnatarm.instructionSet=arm32
@@ -1047,10 +1095,14 @@ compiler.gnatarm1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux
compiler.gnatarm1520.semver=15.2.0
compiler.gnatarm1520.objdumper=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.gnatarm1520.demangler=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
+compiler.gnatarm1610.exe=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gnatmake
+compiler.gnatarm1610.semver=16.1.0
+compiler.gnatarm1610.objdumper=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
+compiler.gnatarm1610.demangler=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
################################
# GNAT for HPPA
-group.gnathppa.compilers=gnathppa1420:gnathppa1430:gnathppa1510:gnathppa1520
+group.gnathppa.compilers=gnathppa1420:gnathppa1430:gnathppa1510:gnathppa1520:gnathppa1610
group.gnathppa.groupName=HPPA GNAT
group.gnathppa.baseName=hppa gnat
group.gnathppa.isSemVer=true
@@ -1076,6 +1128,10 @@ compiler.gnathppa1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-li
compiler.gnathppa1520.semver=15.2.0
compiler.gnathppa1520.objdumper=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.gnathppa1520.demangler=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
+compiler.gnathppa1610.exe=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-gnatmake
+compiler.gnathppa1610.semver=16.1.0
+compiler.gnathppa1610.objdumper=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
+compiler.gnathppa1610.demangler=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
#################################
#################################
diff --git a/etc/config/algol68.amazon.properties b/etc/config/algol68.amazon.properties
index c92a18ecf..9d79c66a3 100644
--- a/etc/config/algol68.amazon.properties
+++ b/etc/config/algol68.amazon.properties
@@ -1,5 +1,5 @@
compilers=&ga68
-defaultCompiler=ga68-snapshot
+defaultCompiler=ga68-g161
group.ga68.compilers=&ga68-x86
group.ga68.supportsBinary=false
@@ -10,11 +10,16 @@ group.ga68.isSemVer=true
group.ga68.unwiseOptions=-march=native
# native compiler
-group.ga68-x86.compilers=ga68-snapshot
+group.ga68-x86.compilers=ga68-g161:ga68-snapshot
group.ga68-x86.groupName=x86-64 GA68
group.ga68-x86.baseName=x86-64 GA68
group.ga68-x86.unwiseOptions=-march=native
+compiler.ga68-g161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/ga68
+compiler.ga68-g161.demangler=/opt/compiler-explorer/gcc-16.1.0/bin/c++filt
+compiler.ga68-g161.objdumper=/opt/compiler-explorer/gcc-16.1.0/bin/objdump
+compiler.ga68-g161.semver=16.1.0
+
compiler.ga68-snapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/ga68
compiler.ga68-snapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
compiler.ga68-snapshot.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
diff --git a/etc/config/assembly.amazon.properties b/etc/config/assembly.amazon.properties
index ccbb85e4b..5fe75e55c 100644
--- a/etc/config/assembly.amazon.properties
+++ b/etc/config/assembly.amazon.properties
@@ -4,9 +4,9 @@ objdumper=/opt/compiler-explorer/gcc-12.1.0/bin/objdump
supportsBinary=true
supportsExecute=true
demangler=
-defaultCompiler=nasm21601
+defaultCompiler=nasm301
-group.nasm.compilers=nasm21202:nasm21302:nasm21303:nasm21402:nasm21601
+group.nasm.compilers=nasm21202:nasm21302:nasm21303:nasm21402:nasm21601:nasm300:nasm301
group.nasm.versionFlag=-v
group.nasm.options=
group.nasm.isSemVer=true
@@ -23,6 +23,10 @@ compiler.nasm21402.semver=2.14.02
compiler.nasm21402.exe=/opt/compiler-explorer/nasm-2.14.02/bin/nasm
compiler.nasm21601.semver=2.16.01
compiler.nasm21601.exe=/opt/compiler-explorer/nasm-2.16.01/bin/nasm
+compiler.nasm300.semver=3.00
+compiler.nasm300.exe=/opt/compiler-explorer/nasm-3.00/bin/nasm
+compiler.nasm301.semver=3.01
+compiler.nasm301.exe=/opt/compiler-explorer/nasm-3.01/bin/nasm
group.gnuas.compilers=gnuas72:gnuas73:gnuas92:gnuas103:gnuas112:gnuas121:gnuas142:gnuas151:gnuassnapshot
diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index 0be3ea9a2..48578f1d5 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -1,8 +1,8 @@
-compilers=&gcc86:&icc:&icx:&clang:&clangx86trunk:&clang-rocm:&mosclang-trunk:&rvclang:&wasmclang:&loongarch-clang:&cross:&ellcc:&zapcc:&djggp:&armclang32:&armclang64:&zigcxx:&cxx6502:godbolt.org@443/gpu:godbolt.org@443/winprod:&hexagon-clang:&edg:&vast:&qnx:&z80-clang:&clad-clang:&gcc-classic
+compilers=&gcc86:&icc:&icx:&clang:&clangx86trunk:&clang-rocm:&mosclang-trunk:&rvclang:&wasmclang:&loongarch-clang:&cross:&ellcc:&zapcc:&djggp:&armclang32:&armclang64:&zigcxx:&cxx6502:godbolt.org@443/gpu:godbolt.org@443/winprod:&hexagon-clang:&edg:&vast:&qnx:&z80-clang:&clad-clang:&gcc-classic:&npparm
# Disabled: nvcxx_x86_cxx
# The disabled groups are actually used in the c++.gpu.properties. One day these might exist on both servers, so I want
# to keep them in the same place.
-defaultCompiler=g152
+defaultCompiler=g161
# We use the llvm-trunk demangler for all c/c++ compilers, as c++filt tends to lag behind
demangler=/opt/compiler-explorer/clang-trunk/bin/llvm-cxxfilt
objdumper=/opt/compiler-explorer/gcc-14.2.0/bin/objdump
@@ -18,7 +18,7 @@ llvmDisassembler=/opt/compiler-explorer/clang-19.1.0/bin/llvm-dis
###############################
# GCC for x86
-group.gcc86.compilers=&gcc86assert:g346:g404:g412:g447:g453:g464:g471:g472:g473:g474:g481:g482:g483:g484:g485:g490:g491:g492:g493:g494:g510:g520:g530:g540:g550:g6:g62:g63:g64:g65:g71:g72:g73:g74:g75:g81:g82:g83:g84:g85:g91:g92:g93:g94:g95:g101:g102:g103:g104:g105:g111:g112:g113:g114:g115:g121:g122:g123:g124:g125:g131:g132:g133:g134:g141:g142:g143:g151:g152:gsnapshot:gcontracts-trunk:gcontract-labels-trunk:gcontracts-nonattr-trunk:gcxx-modules-trunk:gcxx-coroutines-trunk:gcc-embed-trunk:gcc-static-analysis-trunk:glambda-p2034-trunk:gcontracts-base-trunk:gcontracts-gnuext-trunk:gcc-thomas-healy-trunk:gtrivial-reloc-trunk
+group.gcc86.compilers=&gcc86assert:g346:g404:g412:g447:g453:g464:g471:g472:g473:g474:g481:g482:g483:g484:g485:g490:g491:g492:g493:g494:g510:g520:g530:g540:g550:g6:g62:g63:g64:g65:g71:g72:g73:g74:g75:g81:g82:g83:g84:g85:g91:g92:g93:g94:g95:g101:g102:g103:g104:g105:g111:g112:g113:g114:g115:g121:g122:g123:g124:g125:g131:g132:g133:g134:g141:g142:g143:g151:g152:g161:gsnapshot:gcontracts-trunk:gcontract-labels-trunk:gcontracts-nonattr-trunk:gcxx-modules-trunk:gcxx-coroutines-trunk:gcc-embed-trunk:gcc-static-analysis-trunk:glambda-p2034-trunk:gcontracts-base-trunk:gcontracts-gnuext-trunk:gcc-thomas-healy-trunk:gtrivial-reloc-trunk
group.gcc86.groupName=GCC x86-64
group.gcc86.instructionSet=amd64
group.gcc86.baseName=x86-64 gcc
@@ -191,6 +191,8 @@ compiler.g151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/g++
compiler.g151.semver=15.1
compiler.g152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/g++
compiler.g152.semver=15.2
+compiler.g161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/g++
+compiler.g161.semver=16.1
compiler.gsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/g++
compiler.gsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -286,7 +288,7 @@ compiler.g71.needsMulti=true
compiler.g72.needsMulti=true
## GCC x86 build with "assertions" (--enable-checking=XXX)
-group.gcc86assert.compilers=g103assert:g104assert:g105assert:g111assert:g112assert:g113assert:g114assert:g121assert:g122assert:g123assert:g124assert:g125assert:g131assert:g132assert:g133assert:g134assert:g141assert:g142assert:g143assert:g151assert:g152assert
+group.gcc86assert.compilers=g103assert:g104assert:g105assert:g111assert:g112assert:g113assert:g114assert:g121assert:g122assert:g123assert:g124assert:g125assert:g131assert:g132assert:g133assert:g134assert:g141assert:g142assert:g143assert:g151assert:g152assert:g161assert
group.gcc86assert.groupName=GCC x86-64 (assertions)
compiler.g103assert.exe=/opt/compiler-explorer/gcc-assertions-10.3.0/bin/g++
@@ -331,6 +333,8 @@ compiler.g151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/g++
compiler.g151assert.semver=15.1 (assertions)
compiler.g152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/g++
compiler.g152assert.semver=15.2 (assertions)
+compiler.g161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/g++
+compiler.g161assert.semver=16.1 (assertions)
################################
# Clang for x86
@@ -533,7 +537,7 @@ compiler.clang2210.ldPath=${exePath}/../lib|${exePath}/../lib/x86_64-unknown-lin
compiler.clang2210.debugPatched=true
-group.clangx86trunk.compilers=clang_trunk:clang_assertions_trunk:clang_concepts:clang_p1144:clang_autonsdmi:clang_p2561:clang_bb_p2996:clang_p2998:clang_p3039:clang_p3068:clang_p3309:clang_p3334:clang_p3367:clang_p3372:clang_p3385:clang_p3412:clang_p3776:clang_p3822:clang_p3951:clang_implicit_constexpr:clang_hana:clang_lifetime:clang_p1061:clang_parmexpr:clang_patmat:clang_embed:clang_dang:clang_reflection:clang_variadic_friends:clang_widberg:clang_resugar:clang_clangir:clang_dascandy_contracts:clang_ericwf_contracts:clang_p1974:clang_chrisbazley
+group.clangx86trunk.compilers=clang_trunk:clang_assertions_trunk:clang_concepts:clang_p1144:clang_autonsdmi:clang_p2561:clang_bb_p2996:clang_p2998:clang_p3039:clang_p3068:clang_p3309:clang_p3334:clang_p3367:clang_p3372:clang_p3385:clang_p3412:clang_p3776:clang_p3822:clang_p3951:clang_barry:clang_implicit_constexpr:clang_hana:clang_lifetime:clang_p1061:clang_parmexpr:clang_patmat:clang_embed:clang_dang:clang_thephd_dev:clang_reflection:clang_variadic_friends:clang_widberg:clang_resugar:clang_clangir:clang_dascandy_contracts:clang_ericwf_contracts:clang_p1974:clang_chrisbazley
group.clangx86trunk.intelAsm=-mllvm --x86-asm-syntax=intel
group.clangx86trunk.options=--gcc-toolchain=/opt/compiler-explorer/gcc-snapshot
group.clangx86trunk.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
@@ -621,6 +625,10 @@ compiler.clang_p3951.exe=/opt/compiler-explorer/clang-p3951-trunk/bin/clang++
compiler.clang_p3951.semver=(template strings - P3951)
compiler.clang_p3951.notification=Experimental P3951 Support (t"..."); see P3951
compiler.clang_p3951.options=-std=c++26 -freflection -fexpansion-statements -stdlib=libc++
+compiler.clang_barry.exe=/opt/compiler-explorer/clang-barry-clang-trunk/bin/clang++
+compiler.clang_barry.semver=(barry prototypes)
+compiler.clang_barry.notification=Barry's various prototypes; see github
+compiler.clang_barry.options=-std=c++26 -freflection -fexpansion-statements -stdlib=libc++
compiler.clang_p1061.exe=/opt/compiler-explorer/clang-p1061-trunk/bin/clang++
compiler.clang_p1061.semver=(experimental P1061)
compiler.clang_p1061.notification=Experimental Structure Bindings can introduce a Pack; see P1061
@@ -645,10 +653,16 @@ compiler.clang_embed.semver=(std::embed)
compiler.clang_embed.options=-std=c++2a -stdlib=libc++
compiler.clang_embed.notification=Experimental std::embed Support; see github
compiler.clang_embed.hidden=true
-compiler.clang_dang.exe=/opt/compiler-explorer/clang-dang-main/bin/clang++
+compiler.clang_dang.exe=/opt/compiler-explorer/clang-thephd.dev/bin/clang++
compiler.clang_dang.semver=(thephd.dev)
-compiler.clang_dang.options=-std=c++2a -stdlib=libc++
-compiler.clang_dang.notification=Embed, Transparent Function Aliases, and more in this custom clang-derived playground; see github for other potential proposal implementations!
+compiler.clang_dang.options=-std=c++2d -stdlib=libc++
+compiler.clang_dang.notification=Generic, std::embed, Transparent Function Aliases, and more in this custom clang-derived playground; see github for other potential proposal implementations!
+compiler.clang_dang.hidden=true
+compiler.clang_thephd_dev.exe=/opt/compiler-explorer/clang-thephd.dev/bin/clang++
+compiler.clang_thephd_dev.semver=(thephd.dev)
+compiler.clang_thephd_dev.options=-std=c++2d -stdlib=libc++
+compiler.clang_thephd_dev.isNightly=true
+compiler.clang_thephd_dev.notification=std::embed and more in this custom clang-derived playground; see github for other potential proposal implementations!
compiler.clang_widberg.exe=/opt/compiler-explorer/clang-widberg-main/bin/clang++
compiler.clang_widberg.semver=(widberg)
compiler.clang_widberg.options=-std=c++2a -stdlib=libc++
@@ -1780,7 +1794,7 @@ compiler.m68kclangtrunk.isNightly=true
# GCC for m68k
group.gccm68k.compilerType=m68k
-group.gccm68k.compilers=m68kg1310:m68kg1320:m68kg1410:m68kg1330:m68kg1420:m68kg1510:m68kg1430:m68kg1340:m68kg1520
+group.gccm68k.compilers=m68kg1310:m68kg1320:m68kg1410:m68kg1330:m68kg1420:m68kg1510:m68kg1430:m68kg1340:m68kg1520:m68kg1610
group.gccm68k.supportsBinary=true
group.gccm68k.supportsExecute=false
group.gccm68k.baseName=M68K gcc
@@ -1831,6 +1845,11 @@ compiler.m68kg1520.exe=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/b
compiler.m68kg1520.semver=15.2.0
compiler.m68kg1520.objdumper=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump
compiler.m68kg1520.demangler=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt
+compiler.m68kg1610.exe=/opt/compiler-explorer/m68k/gcc-16.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-g++
+compiler.m68kg1610.semver=16.1.0
+compiler.m68kg1610.objdumper=/opt/compiler-explorer/m68k/gcc-16.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump
+compiler.m68kg1610.demangler=/opt/compiler-explorer/m68k/gcc-16.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt
+
###############################
# Cross for Tricore
@@ -1854,7 +1873,7 @@ compiler.tricoreg1130.demangler=/opt/compiler-explorer/tricore/gcc-11.3.0/tricor
group.hppa.compilers=&gcchppa
# GCC for HPPA
-group.gcchppa.compilers=hppag1420:hppag1430:hppag1510:hppag1520
+group.gcchppa.compilers=hppag1420:hppag1430:hppag1510:hppag1520:hppag1610
group.gcchppa.supportsBinary=true
group.gcchppa.supportsExecute=false
group.gcchppa.baseName=HPPA gcc
@@ -1880,6 +1899,11 @@ compiler.hppag1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux
compiler.hppag1520.semver=15.2.0
compiler.hppag1520.objdumper=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.hppag1520.demangler=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
+compiler.hppag1610.exe=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-g++
+compiler.hppag1610.semver=16.1.0
+compiler.hppag1610.objdumper=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
+compiler.hppag1610.demangler=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
+
###############################
# Cross for BPF
@@ -1934,7 +1958,7 @@ compiler.bpfclang1300.exe=/opt/compiler-explorer/clang-13.0.0/bin/clang++
compiler.bpfclang1300.semver=13.0.0
# GCC for BPF
-group.gccbpf.compilers=bpfg1310:bpfg1320:bpfg1330:bpfg1340:bpfg1410:bpfgtrunk
+group.gccbpf.compilers=bpfg1310:bpfg1320:bpfg1330:bpfg1340:bpfg1410:bpfg1610:bpfgtrunk
group.gccbpf.supportsBinary=true
group.gccbpf.supportsExecute=false
group.gccbpf.baseName=BPF gcc
@@ -1972,6 +1996,11 @@ compiler.bpfg1410.hidden=true
compiler.bpfg1410.semver=14.1.0
compiler.bpfg1410.objdumper=/opt/compiler-explorer/bpf/gcc-14.1.0/bpf-unknown-none/bin/bpf-unknown-objdump
compiler.bpfg1410.demangler=/opt/compiler-explorer/bpf/gcc-14.1.0/bpf-unknown-none/bin/bpf-unknown-none-c++filt
+compiler.bpfg1610.exe=/opt/compiler-explorer/bpf/gcc-16.1.0/bpf-unknown-none/bin/bpf-unknown-none-g++
+compiler.bpfg1610.semver=16.1.0
+compiler.bpfg1610.objdumper=/opt/compiler-explorer/bpf/gcc-16.1.0/bpf-unknown-none/bin/bpf-unknown-objdump
+compiler.bpfg1610.demangler=/opt/compiler-explorer/bpf/gcc-16.1.0/bpf-unknown-none/bin/bpf-unknown-none-c++filt
+
compiler.bpfgtrunk.exe=/opt/compiler-explorer/bpf/gcc-trunk/bpf-unknown-none/bin/bpf-unknown-none-g++
compiler.bpfgtrunk.semver=trunk
@@ -1982,7 +2011,7 @@ compiler.bpfgtrunk.isNightly=true
group.sparc.compilers=&gccsparc
# GCC for SPARC
-group.gccsparc.compilers=sparcg1220:sparcg1230:sparcg1240:sparcg1250:sparcg1310:sparcg1320:sparcg1330:sparcg1340:sparcg1410:sparcg1420:sparcg1430:sparcg1510:sparcg1520
+group.gccsparc.compilers=sparcg1220:sparcg1230:sparcg1240:sparcg1250:sparcg1310:sparcg1320:sparcg1330:sparcg1340:sparcg1410:sparcg1420:sparcg1430:sparcg1510:sparcg1520:sparcg1610
group.gccsparc.baseName=SPARC gcc
group.gccsparc.groupName=SPARC GCC
group.gccsparc.isSemVer=true
@@ -2051,13 +2080,18 @@ compiler.sparcg1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-li
compiler.sparcg1520.semver=15.2.0
compiler.sparcg1520.objdumper=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.sparcg1520.demangler=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
+compiler.sparcg1610.exe=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-g++
+compiler.sparcg1610.semver=16.1.0
+compiler.sparcg1610.objdumper=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
+compiler.sparcg1610.demangler=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
+
###############################
# Cross for SPARC64
group.sparc64.compilers=&gccsparc64
# GCC for SPARC64
-group.gccsparc64.compilers=sparc64g1220:sparc64g1230:sparc64g1310:sparc64g1320:sparc64g1410:sparc64g1330:sparc64g1240:sparc64g1420:sparc64g1510:sparc64g1430:sparc64g1340:sparc64g1250:sparc64g1520
+group.gccsparc64.compilers=sparc64g1220:sparc64g1230:sparc64g1310:sparc64g1320:sparc64g1410:sparc64g1330:sparc64g1240:sparc64g1420:sparc64g1510:sparc64g1430:sparc64g1340:sparc64g1250:sparc64g1520:sparc64g1610
group.gccsparc64.baseName=SPARC64 gcc
group.gccsparc64.groupName=SPARC64 GCC
group.gccsparc64.isSemVer=true
@@ -2126,13 +2160,18 @@ compiler.sparc64g1520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-mult
compiler.sparc64g1520.semver=15.2.0
compiler.sparc64g1520.objdumper=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.sparc64g1520.demangler=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
+compiler.sparc64g1610.exe=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-g++
+compiler.sparc64g1610.semver=16.1.0
+compiler.sparc64g1610.objdumper=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
+compiler.sparc64g1610.demangler=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
+
###############################
# Cross for SPARC-LEON
group.sparcleon.compilers=&gccsparcleon
# GCC for SPARC-LEON
-group.gccsparcleon.compilers=sparcleong1220:sparcleong1220-1:sparcleong1230:sparcleong1240:sparcleong1250:sparcleong1310:sparcleong1320:sparcleong1330:sparcleong1340:sparcleong1410:sparcleong1420:sparcleong1430:sparcleong1510:sparcleong1520
+group.gccsparcleon.compilers=sparcleong1220:sparcleong1220-1:sparcleong1230:sparcleong1240:sparcleong1250:sparcleong1310:sparcleong1320:sparcleong1330:sparcleong1340:sparcleong1410:sparcleong1420:sparcleong1430:sparcleong1510:sparcleong1520:sparcleong1610
group.gccsparcleon.baseName=SPARC LEON gcc
group.gccsparcleon.groupName=SPARC LEON GCC
group.gccsparcleon.isSemVer=true
@@ -2203,6 +2242,11 @@ compiler.sparcleong1520.exe=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-l
compiler.sparcleong1520.semver=15.2.0
compiler.sparcleong1520.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
compiler.sparcleong1520.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
+compiler.sparcleong1610.exe=/opt/compiler-explorer/sparc-leon/gcc-16.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-g++
+compiler.sparcleong1610.semver=16.1.0
+compiler.sparcleong1610.objdumper=/opt/compiler-explorer/sparc-leon/gcc-16.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
+compiler.sparcleong1610.demangler=/opt/compiler-explorer/sparc-leon/gcc-16.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
+
compiler.sparcleong1220-1.exe=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-g++
compiler.sparcleong1220-1.semver=12.2.0
@@ -2214,7 +2258,7 @@ compiler.sparcleong1220-1.demangler=/opt/compiler-explorer/sparc-leon/gcc-12.2.0
group.c6x.compilers=&gccc6x
# GCC for TI C6x
-group.gccc6x.compilers=c6xg1220:c6xg1230:c6xg1310:c6xg1320:c6xg1410:c6xg1330:c6xg1240:c6xg1420:c6xg1510:c6xg1430:c6xg1340:c6xg1250:c6xg1520
+group.gccc6x.compilers=c6xg1220:c6xg1230:c6xg1310:c6xg1320:c6xg1410:c6xg1330:c6xg1240:c6xg1420:c6xg1510:c6xg1430:c6xg1340:c6xg1250:c6xg1520:c6xg1610
group.gccc6x.baseName=TI C6x gcc
group.gccc6x.groupName=TI C6x GCC
group.gccc6x.isSemVer=true
@@ -2283,6 +2327,11 @@ compiler.c6xg1520.exe=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x-
compiler.c6xg1520.semver=15.2.0
compiler.c6xg1520.objdumper=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x-elf-objdump
compiler.c6xg1520.demangler=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x-elf-c++filt
+compiler.c6xg1610.exe=/opt/compiler-explorer/c6x/gcc-16.1.0/tic6x-elf/bin/tic6x-elf-g++
+compiler.c6xg1610.semver=16.1.0
+compiler.c6xg1610.objdumper=/opt/compiler-explorer/c6x/gcc-16.1.0/tic6x-elf/bin/tic6x-elf-objdump
+compiler.c6xg1610.demangler=/opt/compiler-explorer/c6x/gcc-16.1.0/tic6x-elf/bin/tic6x-elf-c++filt
+
###############################
# Cross for loongarch64
@@ -2291,7 +2340,7 @@ group.loongarch64.compilers=&gccloongarch64
# GCC for loongarch64
group.gccloongarch64.baseName=loongarch64 gcc
group.gccloongarch64.groupName=loongarch64 gcc
-group.gccloongarch64.compilers=loongarch64g1220:loongarch64g1230:loongarch64g1310:loongarch64g1320:loongarch64g1410:loongarch64g1330:loongarch64g1240:loongarch64g1420:loongarch64g1510:loongarch64g1430:loongarch64g1340:loongarch64g1250:loongarch64g1520
+group.gccloongarch64.compilers=loongarch64g1220:loongarch64g1230:loongarch64g1310:loongarch64g1320:loongarch64g1410:loongarch64g1330:loongarch64g1240:loongarch64g1420:loongarch64g1510:loongarch64g1430:loongarch64g1340:loongarch64g1250:loongarch64g1520:loongarch64g1610
group.gccloongarch64.isSemVer=true
compiler.loongarch64g1220.exe=/opt/compiler-explorer/loongarch64/gcc-12.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-g++
@@ -2358,6 +2407,11 @@ compiler.loongarch64g1520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loon
compiler.loongarch64g1520.semver=15.2.0
compiler.loongarch64g1520.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.loongarch64g1520.demangler=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
+compiler.loongarch64g1610.exe=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-g++
+compiler.loongarch64g1610.semver=16.1.0
+compiler.loongarch64g1610.objdumper=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
+compiler.loongarch64g1610.demangler=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
+
###############################
# Cross for sh
@@ -2366,7 +2420,7 @@ group.sh.compilers=&gccsh
# GCC for sh
group.gccsh.baseName=sh gcc
group.gccsh.groupName=sh gcc
-group.gccsh.compilers=shg494:shg950:shg1220:shg1230:shg1240:shg1250:shg1310:shg1320:shg1330:shg1340:shg1410:shg1420:shg1430:shg1510:shg1520
+group.gccsh.compilers=shg494:shg950:shg1220:shg1230:shg1240:shg1250:shg1310:shg1320:shg1330:shg1340:shg1410:shg1420:shg1430:shg1510:shg1520:shg1610
group.gccsh.isSemVer=true
compiler.shg494.exe=/opt/compiler-explorer/sh/gcc-4.9.4/sh-unknown-elf/bin/sh-unknown-elf-g++
@@ -2443,6 +2497,11 @@ compiler.shg1520.exe=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh-
compiler.shg1520.semver=15.2.0
compiler.shg1520.objdumper=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh-unknown-elf-objdump
compiler.shg1520.demangler=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt
+compiler.shg1610.exe=/opt/compiler-explorer/sh/gcc-16.1.0/sh-unknown-elf/bin/sh-unknown-elf-g++
+compiler.shg1610.semver=16.1.0
+compiler.shg1610.objdumper=/opt/compiler-explorer/sh/gcc-16.1.0/sh-unknown-elf/bin/sh-unknown-elf-objdump
+compiler.shg1610.demangler=/opt/compiler-explorer/sh/gcc-16.1.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt
+
###############################
# Cross for s390x
@@ -2451,7 +2510,7 @@ group.s390x.compilers=&gccs390x
# GCC for s390x
group.gccs390x.baseName=s390x gcc
group.gccs390x.groupName=s390x gcc
-group.gccs390x.compilers=gccs390x1120:s390xg1210:s390xg1220:s390xg1230:s390xg1310:s390xg1320:s390xg1410:s390xg1330:s390xg1240:s390xg1420:s390xg1510:s390xg1430:s390xg1340:s390xg1250:s390xg1520
+group.gccs390x.compilers=gccs390x1120:s390xg1210:s390xg1220:s390xg1230:s390xg1310:s390xg1320:s390xg1410:s390xg1330:s390xg1240:s390xg1420:s390xg1510:s390xg1430:s390xg1340:s390xg1250:s390xg1520:s390xg1610
group.gccs390x.isSemVer=true
group.gccs390x.objdumper=/opt/compiler-explorer/s390x/gcc-11.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
@@ -2527,6 +2586,11 @@ compiler.s390xg1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-
compiler.s390xg1520.semver=15.2.0
compiler.s390xg1520.objdumper=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.s390xg1520.demangler=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
+compiler.s390xg1610.exe=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-g++
+compiler.s390xg1610.semver=16.1.0
+compiler.s390xg1610.objdumper=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
+compiler.s390xg1610.demangler=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
+
###############################
# Cross compilers for PPC
@@ -2535,7 +2599,7 @@ group.ppcs.isSemVer=true
group.ppcs.instructionSet=powerpc
## POWER
-group.ppc.compilers=ppcg48:ppcg1120:ppcg1210:ppcg1220:ppcg1230:ppcg1240:ppcg1250:ppcg1310:ppcg1320:ppcg1330:ppcg1340:ppcg1410:ppcg1420:ppcg1430:ppcg1510:ppcg1520
+group.ppc.compilers=ppcg48:ppcg1120:ppcg1210:ppcg1220:ppcg1230:ppcg1240:ppcg1250:ppcg1310:ppcg1320:ppcg1330:ppcg1340:ppcg1410:ppcg1420:ppcg1430:ppcg1510:ppcg1520:ppcg1610
group.ppc.groupName=POWER GCC
group.ppc.baseName=power gcc
@@ -2615,11 +2679,16 @@ compiler.ppcg1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-
compiler.ppcg1520.semver=15.2.0
compiler.ppcg1520.objdumper=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.ppcg1520.demangler=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
+compiler.ppcg1610.exe=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-g++
+compiler.ppcg1610.semver=16.1.0
+compiler.ppcg1610.objdumper=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
+compiler.ppcg1610.demangler=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
+
## POWER64
group.ppc64.groupName=POWER64 GCC
group.ppc64.baseName=power64 gcc
-group.ppc64.compilers=ppc64g8:ppc64g9:ppc64g1120:ppc64g1210:ppc64clang:ppc64g1220:ppc64g1230:ppc64g1310:ppc64g1320:ppc64gtrunk:ppc64g1410:ppc64g1330:ppc64g1240:ppc64g1420:ppc64g1510:ppc64g1430:ppc64g1340:ppc64g1250:ppc64g1520
+group.ppc64.compilers=ppc64g8:ppc64g9:ppc64g1120:ppc64g1210:ppc64clang:ppc64g1220:ppc64g1230:ppc64g1310:ppc64g1320:ppc64gtrunk:ppc64g1410:ppc64g1330:ppc64g1240:ppc64g1420:ppc64g1510:ppc64g1430:ppc64g1340:ppc64g1250:ppc64g1520:ppc64g1610
compiler.ppc64g8.exe=/opt/compiler-explorer/powerpc64/gcc-at12/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++
compiler.ppc64g8.objdumper=/opt/compiler-explorer/powerpc64/gcc-at12/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
@@ -2703,6 +2772,11 @@ compiler.ppc64g1520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-un
compiler.ppc64g1520.semver=15.2.0
compiler.ppc64g1520.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.ppc64g1520.demangler=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
+compiler.ppc64g1610.exe=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++
+compiler.ppc64g1610.semver=16.1.0
+compiler.ppc64g1610.objdumper=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
+compiler.ppc64g1610.demangler=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
+
compiler.ppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++
compiler.ppc64gtrunk.semver=trunk
@@ -2723,7 +2797,7 @@ compiler.ppc64clang.compilerCategories=clang
## POWER64LE
group.ppc64le.groupName=POWER64LE GCC
-group.ppc64le.compilers=ppc64leg630:ppc64leg8:ppc64leg9:ppc64leg1120:ppc64leg1210:ppc64leclang:ppc64leg1220:ppc64leg1230:ppc64leg1310:ppc64leg1320:ppc64legtrunk:ppc64leg1410:ppc64leg1330:ppc64leg1240:ppc64leg1420:ppc64leg1510:ppc64leg1430:ppc64leg1340:ppc64leg1250:ppc64leg1520
+group.ppc64le.compilers=ppc64leg630:ppc64leg8:ppc64leg9:ppc64leg1120:ppc64leg1210:ppc64leclang:ppc64leg1220:ppc64leg1230:ppc64leg1310:ppc64leg1320:ppc64legtrunk:ppc64leg1410:ppc64leg1330:ppc64leg1240:ppc64leg1420:ppc64leg1510:ppc64leg1430:ppc64leg1340:ppc64leg1250:ppc64leg1520:ppc64leg1610
group.ppc64le.baseName=power64le gcc
compiler.ppc64leg630.exe=/opt/compiler-explorer/powerpc64le/gcc-6.3.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++
@@ -2812,6 +2886,11 @@ compiler.ppc64leg1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc6
compiler.ppc64leg1520.semver=15.2.0
compiler.ppc64leg1520.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.ppc64leg1520.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
+compiler.ppc64leg1610.exe=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++
+compiler.ppc64leg1610.semver=16.1.0
+compiler.ppc64leg1610.objdumper=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
+compiler.ppc64leg1610.demangler=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
+
compiler.ppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++
compiler.ppc64legtrunk.semver=trunk
@@ -2840,7 +2919,7 @@ group.gccarm.includeFlag=-I
# 32 bit
group.gcc32arm.groupName=Arm 32-bit GCC
group.gcc32arm.baseName=ARM GCC
-group.gcc32arm.compilers=armhfg54:armg454:armg464:arm541:armg630:armg640:arm710:armg730:armg750:armg820:armce820:arm831:armg850:arm921:arm930:arm940:arm950:arm1020:arm1021:arm1030:arm1031_07:arm1031_10:arm1040:armg1050:arm1100:arm1120:arm1121:arm1130:armg1140:arm1210:armg1220:armg1230:armg1240:armg1250:armg1310:armg1320:armug1320:armg1330:armug1330:armg1340:armug1340:armg1410:armug1410:armg1420:armug1420:armg1430:armug1430:armg1510:armug1510:armg1520:armug1520:armgtrunk
+group.gcc32arm.compilers=armhfg54:armg454:armg464:arm541:armg630:armg640:arm710:armg730:armg750:armg820:armce820:arm831:armg850:arm921:arm930:arm940:arm950:arm1020:arm1021:arm1030:arm1031_07:arm1031_10:arm1040:armg1050:arm1100:arm1120:arm1121:arm1130:armg1140:arm1210:armg1220:armg1230:armg1240:armg1250:armg1310:armg1320:armug1320:armg1330:armug1330:armg1340:armug1340:armg1410:armug1410:armg1420:armug1420:armg1430:armug1430:armg1510:armug1510:armg1520:armug1520:armg1610:armug1610:armgtrunk
group.gcc32arm.isSemVer=true
group.gcc32arm.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
group.gcc32arm.instructionSet=arm32
@@ -2959,6 +3038,11 @@ compiler.armg1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gn
compiler.armg1520.semver=15.2.0
compiler.armg1520.objdumper=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.armg1520.demangler=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
+compiler.armg1610.exe=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-g++
+compiler.armg1610.semver=16.1.0
+compiler.armg1610.objdumper=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
+compiler.armg1610.demangler=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
+
compiler.armug1320.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-13.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-g++
compiler.armug1320.name=ARM GCC 13.2.0 (unknown-eabi)
@@ -3007,6 +3091,12 @@ compiler.armug1520.semver=15.2.0
compiler.armug1520.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-15.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-objdump
compiler.armug1520.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-15.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
compiler.armug1520.name=ARM GCC 15.2.0 (unknown-eabi)
+compiler.armug1610.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-16.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-g++
+compiler.armug1610.semver=16.1.0
+compiler.armug1610.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-16.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-objdump
+compiler.armug1610.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-16.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
+compiler.armug1610.name=ARM GCC 16.1.0 (unknown-eabi)
+
compiler.armce820.exe=/opt/compiler-explorer/arm-wince/gcc-ce-8.2.0/bin/arm-mingw32ce-g++
compiler.armce820.name=ARM gcc 8.2 (WinCE)
@@ -3074,7 +3164,7 @@ compiler.armgtrunk.isNightly=true
# 64 bit
group.gcc64arm.groupName=Arm 64-bit GCC
-group.gcc64arm.compilers=aarchg54:arm64g494:arm64g550:arm64g630:arm64g640:arm64g730:arm64g750:arm64g820:arm64g850:arm64g930:arm64g940:arm64g950:arm64g1020:arm64g1030:arm64g1040:arm64g1100:arm64g1120:arm64g1130:arm64g1140:arm64g1210:arm64gtrunk:arm64g1220:arm64g1230:arm64g1310:arm64g1050:arm64g1320:arm64g1410:arm64g1330:arm64g1240:arm64g1420:arm64g1510:arm64g1430:arm64g1340:arm64g1250:arm64g1520
+group.gcc64arm.compilers=aarchg54:arm64g494:arm64g550:arm64g630:arm64g640:arm64g730:arm64g750:arm64g820:arm64g850:arm64g930:arm64g940:arm64g950:arm64g1020:arm64g1030:arm64g1040:arm64g1100:arm64g1120:arm64g1130:arm64g1140:arm64g1210:arm64gtrunk:arm64g1220:arm64g1230:arm64g1310:arm64g1050:arm64g1320:arm64g1410:arm64g1330:arm64g1240:arm64g1420:arm64g1510:arm64g1430:arm64g1340:arm64g1250:arm64g1520:arm64g1610
group.gcc64arm.isSemVer=true
group.gcc64arm.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump
group.gcc64arm.instructionSet=aarch64
@@ -3203,6 +3293,11 @@ compiler.arm64g1520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-
compiler.arm64g1520.semver=15.2.0
compiler.arm64g1520.objdumper=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.arm64g1520.demangler=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
+compiler.arm64g1610.exe=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-g++
+compiler.arm64g1610.semver=16.1.0
+compiler.arm64g1610.objdumper=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
+compiler.arm64g1610.demangler=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
+
compiler.arm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-g++
compiler.arm64gtrunk.semver=trunk
compiler.arm64gtrunk.isNightly=true
@@ -3413,7 +3508,7 @@ compiler.cl4302161.versionFlag=-version
################################
# GCC for AVR
-group.avr.compilers=avrg454:avrg464:avrg540:avrg730:avrg920:avrg930:avrg1030:avrg1100:avrg1210:avrg1220:avrg1230:avrg1240:avrg1250:avrg1310:avrg1320:avrg1330:avrg1340:avrg1410:avrg1420:avrg1430:avrg1510:avrg1520
+group.avr.compilers=avrg454:avrg464:avrg540:avrg730:avrg920:avrg930:avrg1030:avrg1100:avrg1210:avrg1220:avrg1230:avrg1240:avrg1250:avrg1310:avrg1320:avrg1330:avrg1340:avrg1410:avrg1420:avrg1430:avrg1510:avrg1520:avrg1610
group.avr.groupName=AVR GCC
group.avr.baseName=AVR gcc
group.avr.isSemVer=true
@@ -3520,6 +3615,11 @@ compiler.avrg1520.exe=/opt/compiler-explorer/avr/gcc-15.2.0/avr/bin/avr-g++
compiler.avrg1520.semver=15.2.0
compiler.avrg1520.objdumper=/opt/compiler-explorer/avr/gcc-15.2.0/avr/bin/avr-objdump
compiler.avrg1520.demangler=/opt/compiler-explorer/avr/gcc-15.2.0/avr/bin/avr-c++filt
+compiler.avrg1610.exe=/opt/compiler-explorer/avr/gcc-16.1.0/avr/bin/avr-g++
+compiler.avrg1610.semver=16.1.0
+compiler.avrg1610.objdumper=/opt/compiler-explorer/avr/gcc-16.1.0/avr/bin/avr-objdump
+compiler.avrg1610.demangler=/opt/compiler-explorer/avr/gcc-16.1.0/avr/bin/avr-c++filt
+
###############################
# Cross compiler for MIPS
@@ -3707,7 +3807,7 @@ compiler.mips64el-clang1300.semver=13.0.0
## MIPS
group.mips.groupName=MIPS GCC
-group.mips.compilers=mips5:mipsg494:mipsg550:mips930:mipsg950:mips1120:mipsg1210:mipsg1220:mipsg1230:mipsg1240:mipsg1250:mipsg1310:mipsg1320:mipsg1330:mipsg1340:mipsg1410:mipsg1420:mipsg1430:mipsg1510:mipsg1520
+group.mips.compilers=mips5:mipsg494:mipsg550:mips930:mipsg950:mips1120:mipsg1210:mipsg1220:mipsg1230:mipsg1240:mipsg1250:mipsg1310:mipsg1320:mipsg1330:mipsg1340:mipsg1410:mipsg1420:mipsg1430:mipsg1510:mipsg1520:mipsg1610
group.mips.baseName=mips gcc
compiler.mipsg494.exe=/opt/compiler-explorer/mips/gcc-4.9.4/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-g++
@@ -3806,10 +3906,15 @@ compiler.mipsg1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux
compiler.mipsg1520.semver=15.2.0
compiler.mipsg1520.objdumper=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.mipsg1520.demangler=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
+compiler.mipsg1610.exe=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-g++
+compiler.mipsg1610.semver=16.1.0
+compiler.mipsg1610.objdumper=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
+compiler.mipsg1610.demangler=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
+
## MIPS 64
group.mips64.groupName=MIPS64 GCC
-group.mips64.compilers=mips64g494:mips64g550:mips64g950:mips64g1210:mips64g1220:mips64g1230:mips64g1310:mips64g1320:mips64g1410:mips64g1330:mips64g1240:mips64g1420:mips64g1510:mips64g1430:mips64g1340:mips64g1250:mips64g1520:mips564:mips112064
+group.mips64.compilers=mips64g494:mips64g550:mips64g950:mips64g1210:mips64g1220:mips64g1230:mips64g1310:mips64g1320:mips64g1410:mips64g1330:mips64g1240:mips64g1420:mips64g1510:mips64g1430:mips64g1340:mips64g1250:mips64g1520:mips64g1610:mips564:mips112064
group.mips64.baseName=mips64 gcc
compiler.mips64g494.exe=/opt/compiler-explorer/mips64/gcc-4.9.4/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-g++
@@ -3903,10 +4008,15 @@ compiler.mips64g1520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown
compiler.mips64g1520.semver=15.2.0
compiler.mips64g1520.objdumper=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.mips64g1520.demangler=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
+compiler.mips64g1610.exe=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-g++
+compiler.mips64g1610.semver=16.1.0
+compiler.mips64g1610.objdumper=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
+compiler.mips64g1610.demangler=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
+
## MIPS EL
group.mipsel.groupName=MIPSEL GCC
-group.mipsel.compilers=mips5el:mipselg494:mipselg550:mipselg950:mipselg1210:mipselg1220:mipselg1230:mipselg1240:mipselg1250:mipselg1310:mipselg1320:mipselg1330:mipselg1340:mipselg1410:mipselg1420:mipselg1430:mipselg1510:mipselg1520
+group.mipsel.compilers=mips5el:mipselg494:mipselg550:mipselg950:mipselg1210:mipselg1220:mipselg1230:mipselg1240:mipselg1250:mipselg1310:mipselg1320:mipselg1330:mipselg1340:mipselg1410:mipselg1420:mipselg1430:mipselg1510:mipselg1520:mipselg1610
group.mipsel.baseName=mipsel gcc
compiler.mipselg494.exe=/opt/compiler-explorer/mipsel/gcc-4.9.4/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-g++
@@ -3996,10 +4106,15 @@ compiler.mipselg1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multili
compiler.mipselg1520.semver=15.2.0
compiler.mipselg1520.objdumper=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.mipselg1520.demangler=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
+compiler.mipselg1610.exe=/opt/compiler-explorer/mipsel/gcc-16.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-g++
+compiler.mipselg1610.semver=16.1.0
+compiler.mipselg1610.objdumper=/opt/compiler-explorer/mipsel/gcc-16.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
+compiler.mipselg1610.demangler=/opt/compiler-explorer/mipsel/gcc-16.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
+
## MIPS 64 EL
group.mips64el.groupName=MIPS64EL GCC
-group.mips64el.compilers=mips64elg494:mips64elg550:mips64elg950:mips64elg1210:mips64elg1220:mips64elg1230:mips64elg1310:mips64elg1320:mips64elg1410:mips64elg1330:mips64elg1240:mips64elg1420:mips64elg1510:mips64elg1430:mips64elg1340:mips64elg1250:mips64elg1520:mips564el
+group.mips64el.compilers=mips64elg494:mips64elg550:mips64elg950:mips64elg1210:mips64elg1220:mips64elg1230:mips64elg1310:mips64elg1320:mips64elg1410:mips64elg1330:mips64elg1240:mips64elg1420:mips64elg1510:mips64elg1430:mips64elg1340:mips64elg1250:mips64elg1520:mips64elg1610:mips564el
group.mips64el.baseName=mips64 (el) gcc
group.mips64el.compilerCategories=gcc
@@ -4090,6 +4205,11 @@ compiler.mips64elg1520.exe=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-m
compiler.mips64elg1520.semver=15.2.0
compiler.mips64elg1520.objdumper=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.mips64elg1520.demangler=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
+compiler.mips64elg1610.exe=/opt/compiler-explorer/mips64el/gcc-16.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-g++
+compiler.mips64elg1610.semver=16.1.0
+compiler.mips64elg1610.objdumper=/opt/compiler-explorer/mips64el/gcc-16.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
+compiler.mips64elg1610.demangler=/opt/compiler-explorer/mips64el/gcc-16.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
+
###############################
# GCC for nanoMIPS
@@ -4125,7 +4245,7 @@ group.rvgcc.supportsBinary=true
group.rvgcc.supportsBinaryObject=true
## GCC for RISC-V 32-bits
-group.rv64gcc.compilers=rv64-gcctrunk:rv64-gcc1230:rv64-gcc1220:rv64-gcc1210:rv64-gcc1140:rv64-gcc1130:rv64-gcc1120:rv64-gcc1030:rv64-gcc1020:rv64-gcc940:rv64-gcc850:rv64-gcc820:rv64-gcc1310:rv64-gcc1320:rv64-gcc1410:rv64-gcc1330:rv64-gcc1240:rv64-gcc1420:rv64-gcc1510:rv64-gcc1430:rv64-gcc1340:rv64-gcc1250:rv64-gcc1520
+group.rv64gcc.compilers=rv64-gcctrunk:rv64-gcc1230:rv64-gcc1220:rv64-gcc1210:rv64-gcc1140:rv64-gcc1130:rv64-gcc1120:rv64-gcc1030:rv64-gcc1020:rv64-gcc940:rv64-gcc850:rv64-gcc820:rv64-gcc1310:rv64-gcc1320:rv64-gcc1410:rv64-gcc1330:rv64-gcc1240:rv64-gcc1420:rv64-gcc1510:rv64-gcc1430:rv64-gcc1340:rv64-gcc1250:rv64-gcc1520:rv64-gcc1610
group.rv64gcc.groupName=RISC-V (64-bits) gcc
group.rv64gcc.baseName=RISC-V (64-bits) gcc
@@ -4231,6 +4351,11 @@ compiler.rv64-gcc1520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unkn
compiler.rv64-gcc1520.semver=15.2.0
compiler.rv64-gcc1520.objdumper=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.rv64-gcc1520.demangler=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
+compiler.rv64-gcc1610.exe=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-g++
+compiler.rv64-gcc1610.semver=16.1.0
+compiler.rv64-gcc1610.objdumper=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
+compiler.rv64-gcc1610.demangler=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
+
compiler.rv64-gcctrunk.exe=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-g++
compiler.rv64-gcctrunk.semver=(trunk)
@@ -4239,7 +4364,7 @@ compiler.rv64-gcctrunk.objdumper=/opt/compiler-explorer/riscv64/gcc-trunk/riscv6
compiler.rv64-gcctrunk.demangler=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
## GCC for RISC-V 32-bits
-group.rv32gcc.compilers=rv32-gcctrunk:rv32-gcc1230:rv32-gcc1220:rv32-gcc1210:rv32-gcc1140:rv32-gcc1130:rv32-gcc1120:rv32-gcc1030:rv32-gcc1020:rv32-gcc940:rv32-gcc850:rv32-gcc820:rv32-gcc1310:rv32-gcc1320:rv32-gcc1410:rv32-gcc1330:rv32-gcc1240:rv32-gcc1420:rv32-gcc1510:rv32-gcc1430:rv32-gcc1340:rv32-gcc1250:rv32-gcc1520
+group.rv32gcc.compilers=rv32-gcctrunk:rv32-gcc1230:rv32-gcc1220:rv32-gcc1210:rv32-gcc1140:rv32-gcc1130:rv32-gcc1120:rv32-gcc1030:rv32-gcc1020:rv32-gcc940:rv32-gcc850:rv32-gcc820:rv32-gcc1310:rv32-gcc1320:rv32-gcc1410:rv32-gcc1330:rv32-gcc1240:rv32-gcc1420:rv32-gcc1510:rv32-gcc1430:rv32-gcc1340:rv32-gcc1250:rv32-gcc1520:rv32-gcc1610
group.rv32gcc.groupName=RISC-V (32-bits) gcc
group.rv32gcc.baseName=RISC-V (32-bits) gcc
@@ -4344,6 +4469,11 @@ compiler.rv32-gcc1520.exe=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unkn
compiler.rv32-gcc1520.semver=15.2.0
compiler.rv32-gcc1520.objdumper=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.rv32-gcc1520.demangler=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
+compiler.rv32-gcc1610.exe=/opt/compiler-explorer/riscv32/gcc-16.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-g++
+compiler.rv32-gcc1610.semver=16.1.0
+compiler.rv32-gcc1610.objdumper=/opt/compiler-explorer/riscv32/gcc-16.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
+compiler.rv32-gcc1610.demangler=/opt/compiler-explorer/riscv32/gcc-16.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
+
compiler.rv32-gcctrunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-g++
compiler.rv32-gcctrunk.semver=(trunk)
@@ -4545,7 +4675,7 @@ compiler.gcc6502_1110.notification=This uses AVR-GCC 11.1.0 to compile C++ and u
#################################
# NVHPC nvc++
-group.nvcxx_x86_cxx.compilers=nvcxx_x86_cxx22_7:nvcxx_x86_cxx22_9:nvcxx_x86_cxx22_11:nvcxx_x86_cxx23_1:nvcxx_x86_cxx23_3:nvcxx_x86_cxx23_5:nvcxx_x86_cxx23_7:nvcxx_x86_cxx23_9:nvcxx_x86_cxx23_11:nvcxx_x86_cxx24_1:nvcxx_x86_cxx24_3:nvcxx_x86_cxx24_5:nvcxx_x86_cxx24_7:nvcxx_x86_cxx24_9:nvcxx_x86_cxx24_11:nvcxx_x86_cxx25_1:nvcxx_x86_cxx25_3:nvcxx_x86_cxx25_5:nvcxx_x86_cxx25_7:nvcxx_x86_cxx25_9:nvcxx_x86_cxx25_11:nvcxx_x86_cxx26_1
+group.nvcxx_x86_cxx.compilers=nvcxx_x86_cxx22_7:nvcxx_x86_cxx22_9:nvcxx_x86_cxx22_11:nvcxx_x86_cxx23_1:nvcxx_x86_cxx23_3:nvcxx_x86_cxx23_5:nvcxx_x86_cxx23_7:nvcxx_x86_cxx23_9:nvcxx_x86_cxx23_11:nvcxx_x86_cxx24_1:nvcxx_x86_cxx24_3:nvcxx_x86_cxx24_5:nvcxx_x86_cxx24_7:nvcxx_x86_cxx24_9:nvcxx_x86_cxx24_11:nvcxx_x86_cxx25_1:nvcxx_x86_cxx25_3:nvcxx_x86_cxx25_5:nvcxx_x86_cxx25_7:nvcxx_x86_cxx25_9:nvcxx_x86_cxx25_11:nvcxx_x86_cxx26_1:nvcxx_x86_cxx26_3
group.nvcxx_x86_cxx.options=
group.nvcxx_x86_cxx.binaryHideFuncRe=^(__.*|_(init|start|fini)|(de)?register_tm_clones|call_gmon_start|frame_dummy|\.plt.*|_dl_relocate_static_pie)$
group.nvcxx_x86_cxx.needsMulti=false
@@ -4694,6 +4824,12 @@ compiler.nvcxx_x86_cxx26_1.nvdisasm=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/
compiler.nvcxx_x86_cxx26_1.exe=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.1/compilers/bin/nvc++
compiler.nvcxx_x86_cxx26_1.semver=26.1
+compiler.nvcxx_x86_cxx26_3.demangler=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/compilers/bin/nvdecode
+compiler.nvcxx_x86_cxx26_3.cuobjdump=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/cuda/13.0/bin/cuobjdump
+compiler.nvcxx_x86_cxx26_3.nvdisasm=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/cuda/13.0/bin/nvdisasm
+compiler.nvcxx_x86_cxx26_3.exe=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/compilers/bin/nvc++
+compiler.nvcxx_x86_cxx26_3.semver=26.3
+
#################################
# EDG compiler
group.edg.compilers=&edg-gnu:&edg-default
@@ -4701,7 +4837,7 @@ group.edg.compilerType=edg
group.edg.compilerCategories=edg-cpfe
group.edg.includeFlag=--sys_include=
-group.edg-gnu.compilers=edg-6_5-gcc-13:edg-6_6-gcc-13:edg-6_7-gcc-14:edg-6_8-gcc-15:edg-experimental-reflection
+group.edg-gnu.compilers=edg-6_5-gcc-13:edg-6_6-gcc-13:edg-6_7-gcc-14:edg-6_8-gcc-15:edg-experimental-reflection:edg-experimental-consteval-types
compiler.edg-6_5-gcc-13.exe=/opt/compiler-explorer/edg-6.5-gcc-13-20231120/eccp-scripts/eccp-gcc
compiler.edg-6_5-gcc-13.name=EDG 6.5 (GNU mode gcc 13)
compiler.edg-6_6-gcc-13.exe=/opt/compiler-explorer/edg-6.6-gcc-13/eccp-scripts/eccp-gcc
@@ -4712,6 +4848,8 @@ compiler.edg-6_8-gcc-15.exe=/opt/compiler-explorer/edg-6.8-gcc-15/eccp-scripts/e
compiler.edg-6_8-gcc-15.name=EDG 6.8 (GNU mode gcc 15)
compiler.edg-experimental-reflection.exe=/opt/compiler-explorer/edg-gcc-experimental-reflection/eccp-scripts/eccp-gcc
compiler.edg-experimental-reflection.name=EDG (experimental reflection)
+compiler.edg-experimental-consteval-types.exe=/opt/compiler-explorer/edg-gcc-experimental-consteval-types/eccp-scripts/eccp-gcc
+compiler.edg-experimental-consteval-types.name=EDG (experimental consteval-only types)
group.edg-default.compilers=edg-6_5-default-13:edg-6_6-default-13:edg-6_7-default-14:edg-6_8-default-15
compiler.edg-6_5-default-13.exe=/opt/compiler-explorer/edg-6.5-default-13-20231120/eccp-scripts/eccp-default
@@ -4826,6 +4964,25 @@ group.gcc-classic.instructionSet=amd64
compiler.g127.exe=/opt/compiler-explorer/gcc-1.27/bin/g++
compiler.g127.semver=1.27
+#################################
+# Norcroft ARM C++
+group.npparm.compilers=npparm-trunk
+group.npparm.groupName=Norcroft ARM C++
+group.npparm.baseName=Norcroft ARM C++
+group.npparm.compilerType=norcroft
+group.npparm.instructionSet=arm32
+group.npparm.supportsBinary=false
+group.npparm.supportsBinaryObject=false
+group.npparm.supportsExecute=false
+group.npparm.isSemVer=true
+group.npparm.licenseName=BSD 3-clause
+group.npparm.licenseLink=https://github.com/Norcroft/ncc-ng/blob/main/LICENSE
+
+compiler.npparm-trunk.exe=/opt/compiler-explorer/ncc-ng-trunk/bin/n++
+compiler.npparm-trunk.name=Norcroft ARM C++ (trunk)
+compiler.npparm-trunk.semver=(trunk)
+compiler.npparm-trunk.isNightly=true
+
#################################
#################################
# Installed libs
@@ -4875,6 +5032,24 @@ libs.beman_any_view.url=https://github.com/bemanproject/any_view
libs.beman_any_view.versions.trunk.version=trunk
libs.beman_any_view.versions.trunk.path=/opt/compiler-explorer/libs/beman_any_view/main/include
+libs.beman_cache_latest.name=beman.cache_latest
+libs.beman_cache_latest.versions=trunk
+libs.beman_cache_latest.url=https://github.com/bemanproject/cache_latest
+libs.beman_cache_latest.versions.trunk.version=trunk
+libs.beman_cache_latest.versions.trunk.path=/opt/compiler-explorer/libs/beman_cache_latest/main/include
+
+libs.beman_copyable_function.name=beman.copyable_function
+libs.beman_copyable_function.versions=trunk
+libs.beman_copyable_function.url=https://github.com/bemanproject/copyable_function
+libs.beman_copyable_function.versions.trunk.version=trunk
+libs.beman_copyable_function.versions.trunk.path=/opt/compiler-explorer/libs/beman_copyable_function/main/include
+
+libs.beman_cstring_view.name=beman.cstring_view
+libs.beman_cstring_view.versions=trunk
+libs.beman_cstring_view.url=https://github.com/bemanproject/cstring_view
+libs.beman_cstring_view.versions.trunk.version=trunk
+libs.beman_cstring_view.versions.trunk.path=/opt/compiler-explorer/libs/beman_cstring_view/main/include
+
libs.beman_execution.name=beman.execution
libs.beman_execution.versions=trunk
libs.beman_execution.url=https://github.com/bemanproject/execution
@@ -4887,6 +5062,18 @@ libs.beman_exemplar.url=https://github.com/bemanproject/exemplar
libs.beman_exemplar.versions.trunk.version=trunk
libs.beman_exemplar.versions.trunk.path=/opt/compiler-explorer/libs/beman_exemplar/main/include
+libs.beman_indices_view.name=beman.indices_view
+libs.beman_indices_view.versions=trunk
+libs.beman_indices_view.url=https://github.com/bemanproject/indices_view
+libs.beman_indices_view.versions.trunk.version=trunk
+libs.beman_indices_view.versions.trunk.path=/opt/compiler-explorer/libs/beman_indices_view/main/include
+
+libs.beman_inplace_vector.name=beman.inplace_vector
+libs.beman_inplace_vector.versions=trunk
+libs.beman_inplace_vector.url=https://github.com/bemanproject/inplace_vector/
+libs.beman_inplace_vector.versions.trunk.version=trunk
+libs.beman_inplace_vector.versions.trunk.path=/opt/compiler-explorer/libs/beman_inplace_vector/main/include
+
libs.beman_iterator_interface.name=beman.iterator_interface
libs.beman_iterator_interface.versions=trunk
libs.beman_iterator_interface.url=https://github.com/bemanproject/iterator_interface
@@ -4895,11 +5082,11 @@ libs.beman_iterator_interface.staticliblink=beman.iterator_interface
libs.beman_iterator_interface.versions.trunk.version=trunk
libs.beman_iterator_interface.versions.trunk.lookupversion=main
-libs.beman_inplace_vector.name=beman.inplace_vector
-libs.beman_inplace_vector.versions=trunk
-libs.beman_inplace_vector.url=https://github.com/bemanproject/inplace_vector/
-libs.beman_inplace_vector.versions.trunk.version=trunk
-libs.beman_inplace_vector.versions.trunk.path=/opt/compiler-explorer/libs/beman_inplace_vector/main/include
+libs.beman_map.name=beman.map
+libs.beman_map.versions=trunk
+libs.beman_map.url=https://github.com/bemanproject/map
+libs.beman_map.versions.trunk.version=trunk
+libs.beman_map.versions.trunk.path=/opt/compiler-explorer/libs/beman_map/main/include
libs.beman_net.name=beman.net
libs.beman_net.versions=trunk
@@ -4913,18 +5100,54 @@ libs.beman_optional.url=https://github.com/bemanproject/optional
libs.beman_optional.versions.trunk.version=trunk
libs.beman_optional.versions.trunk.path=/opt/compiler-explorer/libs/beman_optional/main/include
+libs.beman_scan_view.name=beman.scan_view
+libs.beman_scan_view.versions=trunk
+libs.beman_scan_view.url=https://github.com/bemanproject/scan_view
+libs.beman_scan_view.versions.trunk.version=trunk
+libs.beman_scan_view.versions.trunk.path=/opt/compiler-explorer/libs/beman_scan_view/main/include
+
libs.beman_scope.name=beman.scope
libs.beman_scope.versions=trunk
libs.beman_scope.url=https://github.com/bemanproject/scope
libs.beman_scope.versions.trunk.version=trunk
libs.beman_scope.versions.trunk.path=/opt/compiler-explorer/libs/beman_scope/main/include
+libs.beman_span.name=beman.span
+libs.beman_span.versions=trunk
+libs.beman_span.url=https://github.com/bemanproject/span
+libs.beman_span.versions.trunk.version=trunk
+libs.beman_span.versions.trunk.path=/opt/compiler-explorer/libs/beman_span/main/include
+
+libs.beman_take_before.name=beman.take_before
+libs.beman_take_before.versions=trunk
+libs.beman_take_before.url=https://github.com/bemanproject/take_before
+libs.beman_take_before.versions.trunk.version=trunk
+libs.beman_take_before.versions.trunk.path=/opt/compiler-explorer/libs/beman_take_before/main/include
+
libs.beman_task.name=beman.task
libs.beman_task.versions=trunk
libs.beman_task.url=https://github.com/bemanproject/task
libs.beman_task.versions.trunk.version=trunk
libs.beman_task.versions.trunk.path=/opt/compiler-explorer/libs/beman_task/main/include
+libs.beman_timed_lock_alg.name=beman.timed_lock_alg
+libs.beman_timed_lock_alg.versions=trunk
+libs.beman_timed_lock_alg.url=https://github.com/bemanproject/timed_lock_alg
+libs.beman_timed_lock_alg.versions.trunk.version=trunk
+libs.beman_timed_lock_alg.versions.trunk.path=/opt/compiler-explorer/libs/beman_timed_lock_alg/main/include
+
+libs.beman_transform_view.name=beman.transform_view
+libs.beman_transform_view.versions=trunk
+libs.beman_transform_view.url=https://github.com/bemanproject/transform_view
+libs.beman_transform_view.versions.trunk.version=trunk
+libs.beman_transform_view.versions.trunk.path=/opt/compiler-explorer/libs/beman_transform_view/main/include
+
+libs.beman_utf_view.name=beman.utf_view
+libs.beman_utf_view.versions=trunk
+libs.beman_utf_view.url=https://github.com/bemanproject/utf_view
+libs.beman_utf_view.versions.trunk.version=trunk
+libs.beman_utf_view.versions.trunk.path=/opt/compiler-explorer/libs/beman_utf_view/main/include
+
libs.benchmark.name=Google Benchmark
libs.benchmark.versions=trunk:120:130:140:141:150:161:162
libs.benchmark.url=https://github.com/google/benchmark
@@ -6248,23 +6471,24 @@ libs.pegtl.versions.280.version=2.8.0
libs.pegtl.versions.280.path=/opt/compiler-explorer/libs/PEGTL/2.8.0/include
libs.perl.name=Perl
+libs.perl.description=Embedding or extending perl
libs.perl.url=https://www.perl.org/
-libs.perl.versions=589:5385:5421
+libs.perl.versions=589:5385:5422
libs.perl.versions.589.version=5.8.9
libs.perl.versions.589.path=/opt/compiler-explorer/perl-5.8.9/lib/5.8.9/x86_64-linux-thread-multi/CORE
-libs.perl.versions.589.options= -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+libs.perl.versions.589.options=-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
libs.perl.versions.589.libpath=/opt/compiler-explorer/perl-5.8.9/lib/5.8.9/x86_64-linux-thread-multi/CORE
libs.perl.versions.589.liblink=perl-5.8.9
libs.perl.versions.5385.version=5.38.5
libs.perl.versions.5385.path=/opt/compiler-explorer/perl-5.38.5/lib/5.38.5/x86_64-linux-thread-multi/CORE
-libs.perl.versions.5385.options= -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+libs.perl.versions.5385.options=-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
libs.perl.versions.5385.libpath=/opt/compiler-explorer/perl-5.38.5/lib/5.38.5/x86_64-linux-thread-multi/CORE
libs.perl.versions.5385.liblink=perl-5.38.5
-libs.perl.versions.5421.version=5.42.1
-libs.perl.versions.5421.path=/opt/compiler-explorer/perl-5.42.1/lib/5.42.1/x86_64-linux-thread-multi/CORE
-libs.perl.versions.5421.options= -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-libs.perl.versions.5421.libpath=/opt/compiler-explorer/perl-5.42.1/lib/5.42.1/x86_64-linux-thread-multi/CORE
-libs.perl.versions.5421.liblink=perl-5.42.1
+libs.perl.versions.5422.version=5.42.2
+libs.perl.versions.5422.path=/opt/compiler-explorer/perl-5.42.2/lib/5.42.2/x86_64-linux-thread-multi/CORE
+libs.perl.versions.5422.options=-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+libs.perl.versions.5422.libpath=/opt/compiler-explorer/perl-5.42.2/lib/5.42.2/x86_64-linux-thread-multi/CORE
+libs.perl.versions.5422.liblink=perl-5.42.2
libs.pipes.name=Pipes
libs.pipes.versions=trunk
@@ -6351,7 +6575,7 @@ libs.qt.url=https://www.qt.io
libs.qt.packagedheaders=true
libs.qt.liblink=Qt6Core
libs.qt.options=-DQT_NO_VERSION_TAGGING
-libs.qt.versions=642:652:660:670:680:690:6100
+libs.qt.versions=642:652:660:670:680:690:6100:6110
libs.qt.versions.642.version=6.4.2
libs.qt.versions.642.path=/app/qt/include/QtCore
libs.qt.versions.652.version=6.5.2
@@ -6366,6 +6590,8 @@ libs.qt.versions.690.version=6.9.0
libs.qt.versions.690.path=/app/qt/include/QtCore
libs.qt.versions.6100.version=6.10.0
libs.qt.versions.6100.path=/app/qt/include/QtCore
+libs.qt.versions.6110.version=6.11.0
+libs.qt.versions.6110.path=/app/qt/include/QtCore
libs.quill.name=Quill
libs.quill.description=C++ Low Latency Logging Library
diff --git a/etc/config/c++.amazonwin.properties b/etc/config/c++.amazonwin.properties
index 9260c9367..eb9e69ed2 100644
--- a/etc/config/c++.amazonwin.properties
+++ b/etc/config/c++.amazonwin.properties
@@ -1554,7 +1554,7 @@ libs.pugixml.versions.1114.version=1.11.4
libs.qt.name=Qt
libs.qt.url=https://www.qt.io
libs.qt.packagedheaders=true
-libs.qt.versions=642:652:660:670:680:690:6100
+libs.qt.versions=642:652:660:670:680:690:6100:6110
libs.qt.liblink=Qt6Cored
libs.qt.versions.642.version=6.4.2
libs.qt.versions.652.version=6.5.2
@@ -1563,6 +1563,7 @@ libs.qt.versions.670.version=6.7.0
libs.qt.versions.680.version=6.8.0
libs.qt.versions.690.version=6.9.0
libs.qt.versions.6100.version=6.10.0
+libs.qt.versions.6110.version=6.11.0
libs.raberu.name=Raberu
libs.raberu.url=https://github.com/jfalcou/raberu
diff --git a/etc/config/c.amazon.properties b/etc/config/c.amazon.properties
index c89603c1d..53786f8cf 100644
--- a/etc/config/c.amazon.properties
+++ b/etc/config/c.amazon.properties
@@ -1,5 +1,5 @@
-compilers=&cgcc86:&cclang:&nvc_x86:&armcclang32:&armcclang64:&cmosclang-trunk:&rvcclang:&wasmcclang:&ppci:&cicc:&cicx:&ccross:&cgcc-classic:&cc65:&sdcc:&ctendra:&tinycc:&zigcc:&cproc86:&chibicc:&ccc:&z80-cclang:&z88dk:&compcert:godbolt.org@443/winprod:&movfuscator:&lc3:&upmem-clang:&cvast:&orcac:&c2rust
-defaultCompiler=cg152
+compilers=&cgcc86:&cclang:&nvc_x86:&armcclang32:&armcclang64:&cmosclang-trunk:&rvcclang:&wasmcclang:&ppci:&cicc:&cicx:&ccross:&cgcc-classic:&cc65:&sdcc:&ctendra:&tinycc:&zigcc:&cproc86:&chibicc:&ccc:&z80-cclang:&z88dk:&compcert:godbolt.org@443/winprod:&movfuscator:&lc3:&upmem-clang:&cvast:&orcac:&c2rust:&nccarm
+defaultCompiler=cg161
# We use the llvm-trunk demangler for all c/c++ compilers, as c++filt tends to lag behind
demangler=/opt/compiler-explorer/clang-trunk/bin/llvm-cxxfilt
objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump
@@ -15,7 +15,7 @@ llvmDisassembler=/opt/compiler-explorer/clang-19.1.0/bin/llvm-dis
###############################
# GCC for x86
-group.cgcc86.compilers=&cgcc86assert:cg346:cg404:cg412:cg447:cg453:cg464:cg471:cg472:cg473:cg474:cg481:cg482:cg483:cg484:cg485:cg490:cg491:cg492:cg493:cg494:cg510:cg520:cg530:cg540:cg6:cg62:cg63:cg65:cg71:cg72:cg73:cg74:cg75:cg81:cg82:cg83:cg84:cg85:cg91:cg92:cg93:cg94:cg95:cg101:cg102:cg103:cg104:cg105:cg111:cg112:cg113:cg114:cg115:cg121:cg122:cg123:cg124:cg125:cg131:cg132:cg133:cg134:cg141:cg142:cg143:cg151:cg152:cgsnapshot:cgstatic-analysis
+group.cgcc86.compilers=&cgcc86assert:cg346:cg404:cg412:cg447:cg453:cg464:cg471:cg472:cg473:cg474:cg481:cg482:cg483:cg484:cg485:cg490:cg491:cg492:cg493:cg494:cg510:cg520:cg530:cg540:cg6:cg62:cg63:cg65:cg71:cg72:cg73:cg74:cg75:cg81:cg82:cg83:cg84:cg85:cg91:cg92:cg93:cg94:cg95:cg101:cg102:cg103:cg104:cg105:cg111:cg112:cg113:cg114:cg115:cg121:cg122:cg123:cg124:cg125:cg131:cg132:cg133:cg134:cg141:cg142:cg143:cg151:cg152:cg161:cgsnapshot:cgstatic-analysis
group.cgcc86.groupName=GCC x86-64
group.cgcc86.instructionSet=amd64
group.cgcc86.isSemVer=true
@@ -179,6 +179,8 @@ compiler.cg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcc
compiler.cg151.semver=15.1
compiler.cg152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
compiler.cg152.semver=15.2
+compiler.cg161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/gcc
+compiler.cg161.semver=16.1
compiler.cgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc
compiler.cgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -200,7 +202,7 @@ compiler.cg71.needsMulti=true
compiler.cg72.needsMulti=true
## GCC x86 build with "assertions" (--enable-checking=XXX)
-group.cgcc86assert.compilers=cg103assert:cg104assert:cg105assert:cg111assert:cg112assert:cg113assert:cg114assert:cg121assert:cg122assert:cg123assert:cg124assert:cg125assert:cg131assert:cg132assert:cg133assert:cg134assert:cg141assert:cg142assert:cg143assert:cg151assert:cg152assert
+group.cgcc86assert.compilers=cg103assert:cg104assert:cg105assert:cg111assert:cg112assert:cg113assert:cg114assert:cg121assert:cg122assert:cg123assert:cg124assert:cg125assert:cg131assert:cg132assert:cg133assert:cg134assert:cg141assert:cg142assert:cg143assert:cg151assert:cg152assert:cg161assert
group.cgcc86assert.groupName=GCC x86-64 (assertions)
compiler.cg103assert.exe=/opt/compiler-explorer/gcc-assertions-10.3.0/bin/gcc
@@ -245,6 +247,8 @@ compiler.cg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcc
compiler.cg151assert.semver=15.1 (assertions)
compiler.cg152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gcc
compiler.cg152assert.semver=15.2 (assertions)
+compiler.cg161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/gcc
+compiler.cg161assert.semver=16.1 (assertions)
# Classic x86 compilers (32-bit only)
@@ -262,7 +266,7 @@ compiler.cg127.exe=/opt/compiler-explorer/gcc-1.27/bin/gcc
compiler.cg127.semver=1.27
# Clang for x86
-group.cclang.compilers=cclang30:cclang31:cclang32:cclang33:cclang341:cclang350:cclang351:cclang352:cclang37x:cclang36x:cclang371:cclang380:cclang381:cclang390:cclang391:cclang400:cclang401:cclang500:cclang501:cclang502:cclang600:cclang601:cclang700:cclang701:cclang710:cclang800:cclang801:cclang900:cclang901:cclang1000:cclang1001:cclang1100:cclang1101:cclang1200:cclang1201:cclang1300:cclang1301:cclang1400:cclang1500:cclang1600:cclang1701:cclang1810:cclang1910:cclang2010:cclang2110:cclang2210:cclang_trunk:cclang_assertions_trunk:cclang_dang:cclang_widberg:cclang_swiftlang
+group.cclang.compilers=cclang30:cclang31:cclang32:cclang33:cclang341:cclang350:cclang351:cclang352:cclang37x:cclang36x:cclang371:cclang380:cclang381:cclang390:cclang391:cclang400:cclang401:cclang500:cclang501:cclang502:cclang600:cclang601:cclang700:cclang701:cclang710:cclang800:cclang801:cclang900:cclang901:cclang1000:cclang1001:cclang1100:cclang1101:cclang1200:cclang1201:cclang1300:cclang1301:cclang1400:cclang1500:cclang1600:cclang1701:cclang1810:cclang1910:cclang2010:cclang2110:cclang2210:cclang_trunk:cclang_assertions_trunk:cclang_dang:cclang_thephd_dev:cclang_widberg:cclang_swiftlang
group.cclang.intelAsm=-mllvm --x86-asm-syntax=intel
group.cclang.options=--gcc-toolchain=/opt/compiler-explorer/gcc-7.2.0
group.cclang.groupName=Clang x86-64
@@ -421,6 +425,13 @@ compiler.cclang_dang.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
compiler.cclang_dang.semver=(thephd.dev)
compiler.cclang_dang.isNightly=true
compiler.cclang_dang.options=--gcc-toolchain=/opt/compiler-explorer/gcc-11.2.0 -std=c2x
+compiler.cclang_dang.hidden=true
+compiler.cclang_thephd_dev.exe=/opt/compiler-explorer/clang-thephd.dev/bin/clang
+compiler.cclang_thephd_dev.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
+compiler.cclang_thephd_dev.semver=(thephd.dev)
+compiler.cclang_thephd_dev.isNightly=true
+compiler.cclang_thephd_dev.options=--gcc-toolchain=/opt/compiler-explorer/gcc-16.1.0 -std=c2y
+compiler.cclang_thephd_dev.notification=Generic, Transparent Function Aliases, and more in this custom clang-derived playground; see github for other potential proposal implementations!
compiler.cclang_widberg.exe=/opt/compiler-explorer/clang-widberg-main/bin/clang
compiler.cclang_widberg.semver=(widberg)
compiler.cclang_widberg.isNightly=true
@@ -435,7 +446,7 @@ compiler.cclang_swiftlang.options=--gcc-toolchain=/opt/compiler-explorer/gcc-sna
#################################
# NVHPC nvc
-group.nvc_x86.compilers=nvc_x86_24_9:nvc_x86_24_11:nvc_x86_25_1:nvc_x86_25_3:nvc_x86_25_5:nvc_x86_25_7:nvc_x86_25_9:nvc_x86_25_11:nvc_x86_26_1
+group.nvc_x86.compilers=nvc_x86_24_9:nvc_x86_24_11:nvc_x86_25_1:nvc_x86_25_3:nvc_x86_25_5:nvc_x86_25_7:nvc_x86_25_9:nvc_x86_25_11:nvc_x86_26_1:nvc_x86_26_3
group.nvc_x86.options=
group.nvc_x86.binaryHideFuncRe=^(__.*|_(init|start|fini)|(de)?register_tm_clones|call_gmon_start|frame_dummy|\.plt.*|_dl_relocate_static_pie)$
group.nvc_x86.needsMulti=false
@@ -506,6 +517,12 @@ compiler.nvc_x86_26_1.nvdisasm=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.1/
compiler.nvc_x86_26_1.exe=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.1/compilers/bin/nvc
compiler.nvc_x86_26_1.semver=26.1
+compiler.nvc_x86_26_3.demangler=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/compilers/bin/nvdecode
+compiler.nvc_x86_26_3.cuobjdump=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/cuda/13.0/bin/cuobjdump
+compiler.nvc_x86_26_3.nvdisasm=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/cuda/13.0/bin/nvdisasm
+compiler.nvc_x86_26_3.exe=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/compilers/bin/nvc
+compiler.nvc_x86_26_3.semver=26.3
+
# Clang for Arm
# Provides 32- and 64-bit menu items for clang-9 and trunk
group.armcclang32.groupName=Arm 32-bit clang
@@ -1261,7 +1278,7 @@ compiler.cbpfclang1300.exe=/opt/compiler-explorer/clang-13.0.0/bin/clang
compiler.cbpfclang1300.semver=13.0.0
# GCC for BPF
-group.cgccbpf.compilers=cbpfg1310:cbpfg1320:cbpfg1330:cbpfg1340:cbpfg1410:cbpfg1420:cbpfg1430:cbpfg1510:cbpfg1520:cbpfgtrunk
+group.cgccbpf.compilers=cbpfg1310:cbpfg1320:cbpfg1330:cbpfg1340:cbpfg1410:cbpfg1420:cbpfg1430:cbpfg1510:cbpfg1520:cbpfg1610:cbpfgtrunk
group.cgccbpf.supportsBinary=true
group.cgccbpf.supportsExecute=false
group.cgccbpf.baseName=BPF gcc
@@ -1313,6 +1330,11 @@ compiler.cbpfg1520.exe=/opt/compiler-explorer/bpf/gcc-15.2.0/bpf-unknown-none/bi
compiler.cbpfg1520.semver=15.2.0
compiler.cbpfg1520.objdumper=/opt/compiler-explorer/bpf/gcc-15.2.0/bpf-unknown-none/bin/bpf-unknown-objdump
compiler.cbpfg1520.demangler=/opt/compiler-explorer/bpf/gcc-15.2.0/bpf-unknown-none/bin/bpf-unknown-none-c++filt
+compiler.cbpfg1610.exe=/opt/compiler-explorer/bpf/gcc-16.1.0/bpf-unknown-none/bin/bpf-unknown-gcc
+compiler.cbpfg1610.semver=16.1.0
+compiler.cbpfg1610.objdumper=/opt/compiler-explorer/bpf/gcc-16.1.0/bpf-unknown-none/bin/bpf-unknown-objdump
+compiler.cbpfg1610.demangler=/opt/compiler-explorer/bpf/gcc-16.1.0/bpf-unknown-none/bin/bpf-unknown-none-c++filt
+
compiler.cbpfgtrunk.exe=/opt/compiler-explorer/bpf/gcc-trunk/bpf-unknown-none/bin/bpf-unknown-gcc
compiler.cbpfgtrunk.semver=trunk
@@ -1342,7 +1364,7 @@ compiler.ctricoreg1130.demangler=/opt/compiler-explorer/tricore/gcc-11.3.0/trico
group.chppa.compilers=&cgcchppa
# GCC for HPPA
-group.cgcchppa.compilers=chppag1420:chppag1430:chppag1510:chppag1520
+group.cgcchppa.compilers=chppag1420:chppag1430:chppag1510:chppag1520:chppag1610
group.cgcchppa.baseName=HPPA gcc
group.cgcchppa.groupName=HPPA GCC
group.cgcchppa.isSemVer=true
@@ -1368,6 +1390,11 @@ compiler.chppag1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linu
compiler.chppag1520.semver=15.2.0
compiler.chppag1520.objdumper=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.chppag1520.demangler=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
+compiler.chppag1610.exe=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-gcc
+compiler.chppag1610.semver=16.1.0
+compiler.chppag1610.objdumper=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
+compiler.chppag1610.demangler=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
+
###############################
# ArchieSDK (Acorn Archimedes ARM2)
@@ -1408,7 +1435,7 @@ compiler.cm68kclangtrunk.isNightly=true
# GCC for m68k
group.cgccm68k.compilerType=m68k
-group.cgccm68k.compilers=cm68kg1310:cm68kg1320:cm68kg1410:cm68kg1330:cm68kg1420:cm68kg1510:cm68kg1430:cm68kg1340:cm68kg1520
+group.cgccm68k.compilers=cm68kg1310:cm68kg1320:cm68kg1410:cm68kg1330:cm68kg1420:cm68kg1510:cm68kg1430:cm68kg1340:cm68kg1520:cm68kg1610
group.cgccm68k.supportsBinary=true
group.cgccm68k.supportsExecute=false
group.cgccm68k.baseName=M68K gcc
@@ -1460,13 +1487,18 @@ compiler.cm68kg1520.exe=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/
compiler.cm68kg1520.semver=15.2.0
compiler.cm68kg1520.objdumper=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump
compiler.cm68kg1520.demangler=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt
+compiler.cm68kg1610.exe=/opt/compiler-explorer/m68k/gcc-16.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-gcc
+compiler.cm68kg1610.semver=16.1.0
+compiler.cm68kg1610.objdumper=/opt/compiler-explorer/m68k/gcc-16.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump
+compiler.cm68kg1610.demangler=/opt/compiler-explorer/m68k/gcc-16.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt
+
###############################
# Cross for SPARC
group.csparc.compilers=&cgccsparc
# GCC for SPARC
-group.cgccsparc.compilers=csparcg1220:csparcg1230:csparcg1240:csparcg1250:csparcg1310:csparcg1320:csparcg1330:csparcg1340:csparcg1410:csparcg1420:csparcg1430:csparcg1510:csparcg1520
+group.cgccsparc.compilers=csparcg1220:csparcg1230:csparcg1240:csparcg1250:csparcg1310:csparcg1320:csparcg1330:csparcg1340:csparcg1410:csparcg1420:csparcg1430:csparcg1510:csparcg1520:csparcg1610
group.cgccsparc.baseName=SPARC gcc
group.cgccsparc.groupName=SPARC GCC
group.cgccsparc.isSemVer=true
@@ -1535,13 +1567,18 @@ compiler.csparcg1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-l
compiler.csparcg1520.semver=15.2.0
compiler.csparcg1520.objdumper=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.csparcg1520.demangler=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
+compiler.csparcg1610.exe=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gcc
+compiler.csparcg1610.semver=16.1.0
+compiler.csparcg1610.objdumper=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
+compiler.csparcg1610.demangler=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
+
###############################
# Cross for SPARC64
group.csparc64.compilers=&cgccsparc64
# GCC for SPARC64
-group.cgccsparc64.compilers=csparc64g1220:csparc64g1230:csparc64g1310:csparc64g1320:csparc64g1410:csparc64g1330:csparc64g1240:csparc64g1420:csparc64g1510:csparc64g1430:csparc64g1340:csparc64g1250:csparc64g1520
+group.cgccsparc64.compilers=csparc64g1220:csparc64g1230:csparc64g1310:csparc64g1320:csparc64g1410:csparc64g1330:csparc64g1240:csparc64g1420:csparc64g1510:csparc64g1430:csparc64g1340:csparc64g1250:csparc64g1520:csparc64g1610
group.cgccsparc64.baseName=SPARC64 gcc
group.cgccsparc64.groupName=SPARC64 GCC
group.cgccsparc64.isSemVer=true
@@ -1610,13 +1647,18 @@ compiler.csparc64g1520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-mul
compiler.csparc64g1520.semver=15.2.0
compiler.csparc64g1520.objdumper=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.csparc64g1520.demangler=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
+compiler.csparc64g1610.exe=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-gcc
+compiler.csparc64g1610.semver=16.1.0
+compiler.csparc64g1610.objdumper=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
+compiler.csparc64g1610.demangler=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
+
###############################
# Cross for SPARC-LEON
group.csparcleon.compilers=&cgccsparcleon
# GCC for SPARC-LEON
-group.cgccsparcleon.compilers=csparcleong1220:csparcleong1220-1:csparcleong1230:csparcleong1240:csparcleong1250:csparcleong1310:csparcleong1320:csparcleong1330:csparcleong1340:csparcleong1410:csparcleong1420:csparcleong1430:csparcleong1510:csparcleong1520
+group.cgccsparcleon.compilers=csparcleong1220:csparcleong1220-1:csparcleong1230:csparcleong1240:csparcleong1250:csparcleong1310:csparcleong1320:csparcleong1330:csparcleong1340:csparcleong1410:csparcleong1420:csparcleong1430:csparcleong1510:csparcleong1520:csparcleong1610
group.cgccsparcleon.baseName=SPARC LEON gcc
group.cgccsparcleon.groupName=SPARC LEON GCC
group.cgccsparcleon.isSemVer=true
@@ -1687,6 +1729,11 @@ compiler.csparcleong1520.exe=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-
compiler.csparcleong1520.semver=15.2.0
compiler.csparcleong1520.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
compiler.csparcleong1520.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
+compiler.csparcleong1610.exe=/opt/compiler-explorer/sparc-leon/gcc-16.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gcc
+compiler.csparcleong1610.semver=16.1.0
+compiler.csparcleong1610.objdumper=/opt/compiler-explorer/sparc-leon/gcc-16.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
+compiler.csparcleong1610.demangler=/opt/compiler-explorer/sparc-leon/gcc-16.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
+
compiler.csparcleong1220-1.exe=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gcc
compiler.csparcleong1220-1.semver=12.2.0
@@ -1698,7 +1745,7 @@ compiler.csparcleong1220-1.demangler=/opt/compiler-explorer/sparc-leon/gcc-12.2.
group.cc6x.compilers=&cgccc6x
# GCC for TI C6x
-group.cgccc6x.compilers=cc6xg1220:cc6xg1230:cc6xg1310:cc6xg1320:cc6xg1410:cc6xg1330:cc6xg1240:cc6xg1420:cc6xg1510:cc6xg1430:cc6xg1340:cc6xg1250:cc6xg1520
+group.cgccc6x.compilers=cc6xg1220:cc6xg1230:cc6xg1310:cc6xg1320:cc6xg1410:cc6xg1330:cc6xg1240:cc6xg1420:cc6xg1510:cc6xg1430:cc6xg1340:cc6xg1250:cc6xg1520:cc6xg1610
group.cgccc6x.baseName=TI C6x gcc
group.cgccc6x.groupName=TI C6x GCC
group.cgccc6x.isSemVer=true
@@ -1767,13 +1814,18 @@ compiler.cc6xg1520.exe=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x
compiler.cc6xg1520.semver=15.2.0
compiler.cc6xg1520.objdumper=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x-elf-objdump
compiler.cc6xg1520.demangler=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x-elf-c++filt
+compiler.cc6xg1610.exe=/opt/compiler-explorer/c6x/gcc-16.1.0/tic6x-elf/bin/tic6x-elf-gcc
+compiler.cc6xg1610.semver=16.1.0
+compiler.cc6xg1610.objdumper=/opt/compiler-explorer/c6x/gcc-16.1.0/tic6x-elf/bin/tic6x-elf-objdump
+compiler.cc6xg1610.demangler=/opt/compiler-explorer/c6x/gcc-16.1.0/tic6x-elf/bin/tic6x-elf-c++filt
+
###############################
# Cross for loongarch64
group.cloongarch64.compilers=&cgccloongarch64
# GCC for loongarch64
-group.cgccloongarch64.compilers=cloongarch64g1220:cloongarch64g1230:cloongarch64g1310:cloongarch64g1320:cloongarch64g1410:cloongarch64g1330:cloongarch64g1240:cloongarch64g1420:cloongarch64g1510:cloongarch64g1430:cloongarch64g1340:cloongarch64g1250:cloongarch64g1520
+group.cgccloongarch64.compilers=cloongarch64g1220:cloongarch64g1230:cloongarch64g1310:cloongarch64g1320:cloongarch64g1410:cloongarch64g1330:cloongarch64g1240:cloongarch64g1420:cloongarch64g1510:cloongarch64g1430:cloongarch64g1340:cloongarch64g1250:cloongarch64g1520:cloongarch64g1610
group.cgccloongarch64.baseName=loongarch64 gcc
group.cgccloongarch64.groupName=loongarch64 GCC
group.cgccloongarch64.isSemVer=true
@@ -1842,13 +1894,18 @@ compiler.cloongarch64g1520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loo
compiler.cloongarch64g1520.semver=15.2.0
compiler.cloongarch64g1520.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.cloongarch64g1520.demangler=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
+compiler.cloongarch64g1610.exe=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-gcc
+compiler.cloongarch64g1610.semver=16.1.0
+compiler.cloongarch64g1610.objdumper=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
+compiler.cloongarch64g1610.demangler=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
+
###############################
# Cross for sh
group.csh.compilers=&cgccsh
# GCC for sh
-group.cgccsh.compilers=cshg494:cshg950:cshg1220:cshg1230:cshg1240:cshg1250:cshg1310:cshg1320:cshg1330:cshg1340:cshg1410:cshg1420:cshg1430:cshg1510:cshg1520
+group.cgccsh.compilers=cshg494:cshg950:cshg1220:cshg1230:cshg1240:cshg1250:cshg1310:cshg1320:cshg1330:cshg1340:cshg1410:cshg1420:cshg1430:cshg1510:cshg1520:cshg1610
group.cgccsh.baseName=sh gcc
group.cgccsh.groupName=sh GCC
group.cgccsh.isSemVer=true
@@ -1927,13 +1984,18 @@ compiler.cshg1520.exe=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh
compiler.cshg1520.semver=15.2.0
compiler.cshg1520.objdumper=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh-unknown-elf-objdump
compiler.cshg1520.demangler=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt
+compiler.cshg1610.exe=/opt/compiler-explorer/sh/gcc-16.1.0/sh-unknown-elf/bin/sh-unknown-elf-gcc
+compiler.cshg1610.semver=16.1.0
+compiler.cshg1610.objdumper=/opt/compiler-explorer/sh/gcc-16.1.0/sh-unknown-elf/bin/sh-unknown-elf-objdump
+compiler.cshg1610.demangler=/opt/compiler-explorer/sh/gcc-16.1.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt
+
###############################
# Cross for s390x
group.cs390x.compilers=&cgccs390x
# GCC for s390x
-group.cgccs390x.compilers=cgccs390x112:cs390xg1210:cs390xg1220:cs390xg1230:cs390xg1310:cs390xg1320:cs390xg1410:cs390xg1330:cs390xg1240:cs390xg1420:cs390xg1510:cs390xg1430:cs390xg1340:cs390xg1250:cs390xg1520
+group.cgccs390x.compilers=cgccs390x112:cs390xg1210:cs390xg1220:cs390xg1230:cs390xg1310:cs390xg1320:cs390xg1410:cs390xg1330:cs390xg1240:cs390xg1420:cs390xg1510:cs390xg1430:cs390xg1340:cs390xg1250:cs390xg1520:cs390xg1610
group.cgccs390x.baseName=s390x gcc
group.cgccs390x.groupName=s390x GCC
group.cgccs390x.isSemVer=true
@@ -2010,6 +2072,11 @@ compiler.cs390xg1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux
compiler.cs390xg1520.semver=15.2.0
compiler.cs390xg1520.objdumper=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.cs390xg1520.demangler=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
+compiler.cs390xg1610.exe=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gcc
+compiler.cs390xg1610.semver=16.1.0
+compiler.cs390xg1610.objdumper=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
+compiler.cs390xg1610.demangler=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
+
###############################
# Cross compilers for PPC
@@ -2017,7 +2084,7 @@ group.cppcs.compilers=&cppc:&cppc64:&cppc64le
group.cppcs.isSemVer=true
group.cppcs.instructionSet=powerpc
-group.cppc.compilers=cppcg48:cppcg1120:cppcg1210:cppcg1220:cppcg1230:cppcg1240:cppcg1250:cppcg1310:cppcg1320:cppcg1330:cppcg1340:cppcg1410:cppcg1420:cppcg1430:cppcg1510:cppcg1520
+group.cppc.compilers=cppcg48:cppcg1120:cppcg1210:cppcg1220:cppcg1230:cppcg1240:cppcg1250:cppcg1310:cppcg1320:cppcg1330:cppcg1340:cppcg1410:cppcg1420:cppcg1430:cppcg1510:cppcg1520:cppcg1610
group.cppc.groupName=POWER
group.cppc.baseName=power gcc
@@ -2097,8 +2164,13 @@ compiler.cppcg1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown
compiler.cppcg1520.semver=15.2.0
compiler.cppcg1520.objdumper=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.cppcg1520.demangler=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
+compiler.cppcg1610.exe=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gcc
+compiler.cppcg1610.semver=16.1.0
+compiler.cppcg1610.objdumper=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
+compiler.cppcg1610.demangler=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
-group.cppc64.compilers=cppc64g8:cppc64g9:cppc64g1120:cppc64g1210:cppc64clang:cppc64g1220:cppc64g1230:cppc64g1310:cppc64g1320:cppc64gtrunk:cppc64g1410:cppc64g1330:cppc64g1240:cppc64g1420:cppc64g1510:cppc64g1430:cppc64g1340:cppc64g1250:cppc64g1520
+
+group.cppc64.compilers=cppc64g8:cppc64g9:cppc64g1120:cppc64g1210:cppc64clang:cppc64g1220:cppc64g1230:cppc64g1310:cppc64g1320:cppc64gtrunk:cppc64g1410:cppc64g1330:cppc64g1240:cppc64g1420:cppc64g1510:cppc64g1430:cppc64g1340:cppc64g1250:cppc64g1520:cppc64g1610
group.cppc64.groupName=POWER64
group.cppc64.baseName=POWER64 gcc
@@ -2184,6 +2256,11 @@ compiler.cppc64g1520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-u
compiler.cppc64g1520.semver=15.2.0
compiler.cppc64g1520.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.cppc64g1520.demangler=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
+compiler.cppc64g1610.exe=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc
+compiler.cppc64g1610.semver=16.1.0
+compiler.cppc64g1610.objdumper=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
+compiler.cppc64g1610.demangler=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
+
compiler.cppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc
compiler.cppc64gtrunk.semver=trunk
@@ -2199,7 +2276,7 @@ compiler.cppc64clang.semver=(snapshot)
compiler.cppc64clang.isNightly=true
compiler.cppc64clang.compilerCategories=clang
-group.cppc64le.compilers=cppc64leg630:cppc64leg8:cppc64leg9:cppc64leg1120:cppc64leg1210:cppc64leclang:cppc64leg1220:cppc64leg1230:cppc64leg1310:cppc64leg1320:cppc64legtrunk:cppc64leg1410:cppc64leg1330:cppc64leg1240:cppc64leg1420:cppc64leg1510:cppc64leg1430:cppc64leg1340:cppc64leg1250:cppc64leg1520
+group.cppc64le.compilers=cppc64leg630:cppc64leg8:cppc64leg9:cppc64leg1120:cppc64leg1210:cppc64leclang:cppc64leg1220:cppc64leg1230:cppc64leg1310:cppc64leg1320:cppc64legtrunk:cppc64leg1410:cppc64leg1330:cppc64leg1240:cppc64leg1420:cppc64leg1510:cppc64leg1430:cppc64leg1340:cppc64leg1250:cppc64leg1520:cppc64leg1610
group.cppc64le.groupName=POWER64LE GCC
group.cppc64le.baseName=power64le gcc
@@ -2289,6 +2366,11 @@ compiler.cppc64leg1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc
compiler.cppc64leg1520.semver=15.2.0
compiler.cppc64leg1520.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.cppc64leg1520.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
+compiler.cppc64leg1610.exe=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc
+compiler.cppc64leg1610.semver=16.1.0
+compiler.cppc64leg1610.objdumper=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
+compiler.cppc64leg1610.demangler=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
+
compiler.cppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc
compiler.cppc64legtrunk.semver=trunk
@@ -2316,7 +2398,7 @@ group.cgccarm.includeFlag=-I
# 32 bit
group.cgcc32arm.groupName=Arm 32-bit GCC
group.cgcc32arm.baseName=ARM GCC
-group.cgcc32arm.compilers=carmhfg54:carmg454:carmg464:carm541:carmg630:carmg640:carm710:carmg730:carmg750:carmg820:carmce820:carm831:carmg850:carm921:carm930:carm1020:carm1021:carm1030:carm1031_07:carm1031_10:carmg1050:carm1100:carm1120:carm1121:carm1130:carmg1140:carm1210:carmg1220:carmg1230:carmg1240:carmg1250:carmg1310:carmg1320:carmug1320:carmg1330:carmug1330:carmg1340:carmug1340:carmg1410:carmug1410:carmg1420:carmug1420:carmg1430:carmug1430:carmg1510:carmug1510:carmg1520:carmug1520:carmgtrunk
+group.cgcc32arm.compilers=carmhfg54:carmg454:carmg464:carm541:carmg630:carmg640:carm710:carmg730:carmg750:carmg820:carmce820:carm831:carmg850:carm921:carm930:carm1020:carm1021:carm1030:carm1031_07:carm1031_10:carmg1050:carm1100:carm1120:carm1121:carm1130:carmg1140:carm1210:carmg1220:carmg1230:carmg1240:carmg1250:carmg1310:carmg1320:carmug1320:carmg1330:carmug1330:carmg1340:carmug1340:carmg1410:carmug1410:carmg1420:carmug1420:carmg1430:carmug1430:carmg1510:carmug1510:carmg1520:carmug1520:carmg1610:carmug1610:carmgtrunk
group.cgcc32arm.isSemVer=true
group.cgcc32arm.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
group.cgcc32arm.instructionSet=arm32
@@ -2422,6 +2504,11 @@ compiler.carmg1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-g
compiler.carmg1520.semver=15.2.0
compiler.carmg1520.objdumper=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.carmg1520.demangler=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
+compiler.carmg1610.exe=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc
+compiler.carmg1610.semver=16.1.0
+compiler.carmg1610.objdumper=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
+compiler.carmg1610.demangler=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
+
compiler.carmug1320.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-13.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-gcc
compiler.carmug1320.name=ARM GCC 13.2.0 (unknown-eabi)
@@ -2470,6 +2557,12 @@ compiler.carmug1520.semver=15.2.0
compiler.carmug1520.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-15.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-objdump
compiler.carmug1520.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-15.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
compiler.carmug1520.name=ARM GCC 15.2.0 (unknown-eabi)
+compiler.carmug1610.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-16.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-gcc
+compiler.carmug1610.semver=16.1.0
+compiler.carmug1610.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-16.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-objdump
+compiler.carmug1610.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-16.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
+compiler.carmug1610.name=ARM GCC 16.1.0 (unknown-eabi)
+
compiler.carmce820.exe=/opt/compiler-explorer/arm-wince/gcc-ce-8.2.0/bin/arm-mingw32ce-gcc
compiler.carmce820.semver=8.2.0 (WinCE)
@@ -2518,7 +2611,7 @@ compiler.carmgtrunk.isNightly=true
# 64 bit
group.cgcc64arm.groupName=ARM64 gcc
group.cgcc64arm.baseName=ARM64 GCC
-group.cgcc64arm.compilers=caarchg54:carm64g494:carm64g550:carm64g630:carm64g640:carm64g730:carm64g750:carm64g820:carm64g850:carm64g930:carm64g940:carm64g950:carm64g1020:carm64g1030:carm64g1040:carm64g1100:carm64g1120:carm64g1130:carm64g1140:carm64g1210:carm64gtrunk:carm64g1220:carm64g1230:carm64g1310:carm64g1050:carm64g1320:carm64g1410:carm64g1330:carm64g1240:carm64g1420:carm64g1510:carm64g1430:carm64g1340:carm64g1250:carm64g1520
+group.cgcc64arm.compilers=caarchg54:carm64g494:carm64g550:carm64g630:carm64g640:carm64g730:carm64g750:carm64g820:carm64g850:carm64g930:carm64g940:carm64g950:carm64g1020:carm64g1030:carm64g1040:carm64g1100:carm64g1120:carm64g1130:carm64g1140:carm64g1210:carm64gtrunk:carm64g1220:carm64g1230:carm64g1310:carm64g1050:carm64g1320:carm64g1410:carm64g1330:carm64g1240:carm64g1420:carm64g1510:carm64g1430:carm64g1340:carm64g1250:carm64g1520:carm64g1610
group.cgcc64arm.isSemVer=true
group.cgcc64arm.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump
group.cgcc64arm.instructionSet=aarch64
@@ -2645,6 +2738,11 @@ compiler.carm64g1520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown
compiler.carm64g1520.semver=15.2.0
compiler.carm64g1520.objdumper=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.carm64g1520.demangler=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
+compiler.carm64g1610.exe=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
+compiler.carm64g1610.semver=16.1.0
+compiler.carm64g1610.objdumper=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
+compiler.carm64g1610.demangler=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
+
compiler.carm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
compiler.carm64gtrunk.semver=trunk
@@ -2922,7 +3020,7 @@ compiler.ccl4302161.versionFlag=-version
################################
# GCC for AVR
-group.cavr.compilers=cavrg454:cavrg464:cavrg540:cavrg730:cavrg920:cavrg930:cavrg1030:cavrg1100:cavrg1210:cavrg1220:cavrg1230:cavrg1240:cavrg1250:cavrg1310:cavrg1320:cavrg1330:cavrg1340:cavrg1410:cavrg1420:cavrg1430:cavrg1510:cavrg1520
+group.cavr.compilers=cavrg454:cavrg464:cavrg540:cavrg730:cavrg920:cavrg930:cavrg1030:cavrg1100:cavrg1210:cavrg1220:cavrg1230:cavrg1240:cavrg1250:cavrg1310:cavrg1320:cavrg1330:cavrg1340:cavrg1410:cavrg1420:cavrg1430:cavrg1510:cavrg1520:cavrg1610
group.cavr.groupName=AVR GCC
group.cavr.baseName=AVR gcc
group.cavr.isSemVer=true
@@ -3027,6 +3125,11 @@ compiler.cavrg1520.exe=/opt/compiler-explorer/avr/gcc-15.2.0/avr/bin/avr-gcc
compiler.cavrg1520.semver=15.2.0
compiler.cavrg1520.objdumper=/opt/compiler-explorer/avr/gcc-15.2.0/avr/bin/avr-objdump
compiler.cavrg1520.demangler=/opt/compiler-explorer/avr/gcc-15.2.0/avr/bin/avr-c++filt
+compiler.cavrg1610.exe=/opt/compiler-explorer/avr/gcc-16.1.0/avr/bin/avr-gcc
+compiler.cavrg1610.semver=16.1.0
+compiler.cavrg1610.objdumper=/opt/compiler-explorer/avr/gcc-16.1.0/avr/bin/avr-objdump
+compiler.cavrg1610.demangler=/opt/compiler-explorer/avr/gcc-16.1.0/avr/bin/avr-c++filt
+
###############################
# Cross compilers for MIPS
@@ -3208,7 +3311,7 @@ compiler.mips64el-cclang1300.semver=13.0.0
# GCC for all MIPS
## MIPS
-group.cmips.compilers=cmips5:cmipsg494:cmipsg550:cmips930:cmipsg950:cmips1120:cmipsg1210:cmipsg1220:cmipsg1230:cmipsg1240:cmipsg1250:cmipsg1310:cmipsg1320:cmipsg1330:cmipsg1340:cmipsg1410:cmipsg1420:cmipsg1430:cmipsg1510:cmipsg1520
+group.cmips.compilers=cmips5:cmipsg494:cmipsg550:cmips930:cmipsg950:cmips1120:cmipsg1210:cmipsg1220:cmipsg1230:cmipsg1240:cmipsg1250:cmipsg1310:cmipsg1320:cmipsg1330:cmipsg1340:cmipsg1410:cmipsg1420:cmipsg1430:cmipsg1510:cmipsg1520:cmipsg1610
group.cmips.groupName=MIPS GCC
group.cmips.baseName=mips gcc
@@ -3308,10 +3411,15 @@ compiler.cmipsg1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linu
compiler.cmipsg1520.semver=15.2.0
compiler.cmipsg1520.objdumper=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.cmipsg1520.demangler=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
+compiler.cmipsg1610.exe=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gcc
+compiler.cmipsg1610.semver=16.1.0
+compiler.cmipsg1610.objdumper=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
+compiler.cmipsg1610.demangler=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
+
## MIPS64
group.cmips64.groupName=MIPS64 GCC
-group.cmips64.compilers=cmips64g494:cmips64g550:cmips64g950:cmips64g1210:cmips64g1220:cmips64g1230:cmips64g1310:cmips64g1320:cmips64g1410:cmips64g1330:cmips64g1240:cmips64g1420:cmips64g1510:cmips64g1430:cmips64g1340:cmips64g1250:cmips64g1520:cmips564:cmips112064
+group.cmips64.compilers=cmips64g494:cmips64g550:cmips64g950:cmips64g1210:cmips64g1220:cmips64g1230:cmips64g1310:cmips64g1320:cmips64g1410:cmips64g1330:cmips64g1240:cmips64g1420:cmips64g1510:cmips64g1430:cmips64g1340:cmips64g1250:cmips64g1520:cmips564:cmips112064:cmips64g1610
group.cmips64.baseName=mips64 gcc
compiler.cmips64g494.exe=/opt/compiler-explorer/mips64/gcc-4.9.4/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc
@@ -3405,10 +3513,15 @@ compiler.cmips64g1520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknow
compiler.cmips64g1520.semver=15.2.0
compiler.cmips64g1520.objdumper=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.cmips64g1520.demangler=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
+compiler.cmips64g1610.exe=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc
+compiler.cmips64g1610.semver=16.1.0
+compiler.cmips64g1610.objdumper=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
+compiler.cmips64g1610.demangler=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
+
## MIPS EL
group.cmipsel.groupName=MIPSEL GCC
-group.cmipsel.compilers=cmips5el:cmipselg494:cmipselg550:cmipselg950:cmipselg1210:cmipselg1220:cmipselg1230:cmipselg1240:cmipselg1250:cmipselg1310:cmipselg1320:cmipselg1330:cmipselg1340:cmipselg1410:cmipselg1420:cmipselg1430:cmipselg1510:cmipselg1520
+group.cmipsel.compilers=cmips5el:cmipselg494:cmipselg550:cmipselg950:cmipselg1210:cmipselg1220:cmipselg1230:cmipselg1240:cmipselg1250:cmipselg1310:cmipselg1320:cmipselg1330:cmipselg1340:cmipselg1410:cmipselg1420:cmipselg1430:cmipselg1510:cmipselg1520:cmipselg1610
group.cmipsel.baseName=mips (el) gcc
compiler.cmipselg494.exe=/opt/compiler-explorer/mipsel/gcc-4.9.4/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-gcc
@@ -3498,10 +3611,15 @@ compiler.cmipselg1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multil
compiler.cmipselg1520.semver=15.2.0
compiler.cmipselg1520.objdumper=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.cmipselg1520.demangler=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
+compiler.cmipselg1610.exe=/opt/compiler-explorer/mipsel/gcc-16.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gcc
+compiler.cmipselg1610.semver=16.1.0
+compiler.cmipselg1610.objdumper=/opt/compiler-explorer/mipsel/gcc-16.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
+compiler.cmipselg1610.demangler=/opt/compiler-explorer/mipsel/gcc-16.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
+
## MIPS64 EL
group.cmips64el.groupName=MIPS64EL GCC
-group.cmips64el.compilers=cmips64elg494:cmips64elg550:cmips64elg950:cmips64elg1210:cmips64elg1220:cmips64elg1230:cmips64elg1310:cmips64elg1320:cmips64elg1410:cmips64elg1330:cmips64elg1240:cmips64elg1420:cmips64elg1510:cmips64elg1430:cmips64elg1340:cmips64elg1250:cmips64elg1520:cmips564el
+group.cmips64el.compilers=cmips64elg494:cmips64elg550:cmips64elg950:cmips64elg1210:cmips64elg1220:cmips64elg1230:cmips64elg1310:cmips64elg1320:cmips64elg1410:cmips64elg1330:cmips64elg1240:cmips64elg1420:cmips64elg1510:cmips64elg1430:cmips64elg1340:cmips64elg1250:cmips64elg1520:cmips564el:cmips64elg1610
group.cmips64el.baseName=mips64 (el) gcc
compiler.cmips64elg494.exe=/opt/compiler-explorer/mips64el/gcc-4.9.4/mips64el-unknown-linux-gnu/bin/mips64el-unknown-linux-gnu-gcc
@@ -3591,6 +3709,11 @@ compiler.cmips64elg1520.exe=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-
compiler.cmips64elg1520.semver=15.2.0
compiler.cmips64elg1520.objdumper=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.cmips64elg1520.demangler=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
+compiler.cmips64elg1610.exe=/opt/compiler-explorer/mips64el/gcc-16.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gcc
+compiler.cmips64elg1610.semver=16.1.0
+compiler.cmips64elg1610.objdumper=/opt/compiler-explorer/mips64el/gcc-16.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
+compiler.cmips64elg1610.demangler=/opt/compiler-explorer/mips64el/gcc-16.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
+
###############################
# GCC for nanoMIPS
@@ -3627,7 +3750,7 @@ group.rvcgcc.supportsBinary=true
group.rvcgcc.supportsBinaryObject=true
## GCC for RISC-V 64-bits
-group.rv64-cgccs.compilers=rv64-cgcctrunk:rv64-cgcc1230:rv64-cgcc1210:rv64-cgcc1140:rv64-cgcc1130:rv64-cgcc1220:rv64-cgcc1120:rv64-cgcc1030:rv64-cgcc1020:rv64-cgcc940:rv64-cgcc850:rv64-cgcc820:rv64-cgcc1310:rv64-cgcc1320:rv64-cgcc1410:rv64-cgcc1330:rv64-cgcc1240:rv64-cgcc1420:rv64-cgcc1510:rv64-cgcc1430:rv64-cgcc1340:rv64-cgcc1250:rv64-cgcc1520
+group.rv64-cgccs.compilers=rv64-cgcctrunk:rv64-cgcc1230:rv64-cgcc1210:rv64-cgcc1140:rv64-cgcc1130:rv64-cgcc1220:rv64-cgcc1120:rv64-cgcc1030:rv64-cgcc1020:rv64-cgcc940:rv64-cgcc850:rv64-cgcc820:rv64-cgcc1310:rv64-cgcc1320:rv64-cgcc1410:rv64-cgcc1330:rv64-cgcc1240:rv64-cgcc1420:rv64-cgcc1510:rv64-cgcc1430:rv64-cgcc1340:rv64-cgcc1250:rv64-cgcc1520:rv64-cgcc1610
group.rv64-cgccs.groupName=RISC-V (64-bits) gcc
group.rv64-cgccs.baseName=RISC-V (64-bits) gcc
@@ -3733,6 +3856,11 @@ compiler.rv64-cgcc1520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unk
compiler.rv64-cgcc1520.semver=15.2.0
compiler.rv64-cgcc1520.objdumper=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.rv64-cgcc1520.demangler=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
+compiler.rv64-cgcc1610.exe=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gcc
+compiler.rv64-cgcc1610.semver=16.1.0
+compiler.rv64-cgcc1610.objdumper=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
+compiler.rv64-cgcc1610.demangler=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
+
compiler.rv64-cgcctrunk.exe=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gcc
compiler.rv64-cgcctrunk.semver=(trunk)
@@ -3741,7 +3869,7 @@ compiler.rv64-cgcctrunk.demangler=/opt/compiler-explorer/riscv64/gcc-trunk/riscv
compiler.rv64-cgcctrunk.isNightly=true
## GCC for RISC-V 32-bits
-group.rv32-cgccs.compilers=rv32-cgcctrunk:rv32-cgcc1220:rv32-cgcc1210:rv32-cgcc1140:rv32-cgcc1130:rv32-cgcc1120:rv32-cgcc1030:rv32-cgcc1020:rv32-cgcc940:rv32-cgcc850:rv32-cgcc820:rv32-cgcc1310:rv32-cgcc1230:rv32-cgcc1320:rv32-cgcc1410:rv32-cgcc1330:rv32-cgcc1240:rv32-cgcc1420:rv32-cgcc1510:rv32-cgcc1430:rv32-cgcc1340:rv32-cgcc1250:rv32-cgcc1520
+group.rv32-cgccs.compilers=rv32-cgcctrunk:rv32-cgcc1220:rv32-cgcc1210:rv32-cgcc1140:rv32-cgcc1130:rv32-cgcc1120:rv32-cgcc1030:rv32-cgcc1020:rv32-cgcc940:rv32-cgcc850:rv32-cgcc820:rv32-cgcc1310:rv32-cgcc1230:rv32-cgcc1320:rv32-cgcc1410:rv32-cgcc1330:rv32-cgcc1240:rv32-cgcc1420:rv32-cgcc1510:rv32-cgcc1430:rv32-cgcc1340:rv32-cgcc1250:rv32-cgcc1520:rv32-cgcc1610
group.rv32-cgccs.groupName=RISC-V (32-bits) gcc
group.rv32-cgccs.baseName=RISC-V (32-bits) gcc
@@ -3847,6 +3975,11 @@ compiler.rv32-cgcc1520.exe=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unk
compiler.rv32-cgcc1520.semver=15.2.0
compiler.rv32-cgcc1520.objdumper=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.rv32-cgcc1520.demangler=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
+compiler.rv32-cgcc1610.exe=/opt/compiler-explorer/riscv32/gcc-16.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc
+compiler.rv32-cgcc1610.semver=16.1.0
+compiler.rv32-cgcc1610.objdumper=/opt/compiler-explorer/riscv32/gcc-16.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
+compiler.rv32-cgcc1610.demangler=/opt/compiler-explorer/riscv32/gcc-16.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
+
compiler.rv32-cgcctrunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc
compiler.rv32-cgcctrunk.semver=(trunk)
@@ -4340,6 +4473,25 @@ group.c2rust.supportsBinaryObject=false
compiler.c2rust-master.exe=/opt/compiler-explorer/c2rust-master/c2rust
compiler.c2rust-master.name=C2Rust (master)
+#################################
+# Norcroft ARM C
+group.nccarm.compilers=nccarm-trunk
+group.nccarm.groupName=Norcroft ARM C
+group.nccarm.baseName=Norcroft ARM C
+group.nccarm.compilerType=norcroft
+group.nccarm.instructionSet=arm32
+group.nccarm.supportsBinary=false
+group.nccarm.supportsBinaryObject=false
+group.nccarm.supportsExecute=false
+group.nccarm.isSemVer=true
+group.nccarm.licenseName=BSD 3-clause
+group.nccarm.licenseLink=https://github.com/Norcroft/ncc-ng/blob/main/LICENSE
+
+compiler.nccarm-trunk.exe=/opt/compiler-explorer/ncc-ng-trunk/bin/ncc
+compiler.nccarm-trunk.name=Norcroft ARM C (trunk)
+compiler.nccarm-trunk.semver=(trunk)
+compiler.nccarm-trunk.isNightly=true
+
#################################
#################################
# Libraries
@@ -4437,23 +4589,24 @@ libs.openssl.versions.111g.path=/opt/compiler-explorer/libs/openssl/openssl_1_1_
libs.openssl.versions.111g.libpath=/opt/compiler-explorer/libs/openssl/openssl_1_1_1g/x86_64/opt/lib:/opt/compiler-explorer/libs/openssl/openssl_1_1_1g/x86/opt/lib
libs.perl.name=Perl
+libs.perl.description=Embedding or extending perl
libs.perl.url=https://www.perl.org/
-libs.perl.versions=589:5385:5421
+libs.perl.versions=589:5385:5422
libs.perl.versions.589.version=5.8.9
libs.perl.versions.589.path=/opt/compiler-explorer/perl-5.8.9/lib/5.8.9/x86_64-linux-thread-multi/CORE
-libs.perl.versions.589.options= -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+libs.perl.versions.589.options=-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
libs.perl.versions.589.libpath=/opt/compiler-explorer/perl-5.8.9/lib/5.8.9/x86_64-linux-thread-multi/CORE
libs.perl.versions.589.liblink=perl-5.8.9
libs.perl.versions.5385.version=5.38.5
libs.perl.versions.5385.path=/opt/compiler-explorer/perl-5.38.5/lib/5.38.5/x86_64-linux-thread-multi/CORE
-libs.perl.versions.5385.options= -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+libs.perl.versions.5385.options=-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
libs.perl.versions.5385.libpath=/opt/compiler-explorer/perl-5.38.5/lib/5.38.5/x86_64-linux-thread-multi/CORE
libs.perl.versions.5385.liblink=perl-5.38.5
-libs.perl.versions.5421.version=5.42.1
-libs.perl.versions.5421.path=/opt/compiler-explorer/perl-5.42.1/lib/5.42.1/x86_64-linux-thread-multi/CORE
-libs.perl.versions.5421.options= -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-libs.perl.versions.5421.libpath=/opt/compiler-explorer/perl-5.42.1/lib/5.42.1/x86_64-linux-thread-multi/CORE
-libs.perl.versions.5421.liblink=perl-5.42.1
+libs.perl.versions.5422.version=5.42.2
+libs.perl.versions.5422.path=/opt/compiler-explorer/perl-5.42.2/lib/5.42.2/x86_64-linux-thread-multi/CORE
+libs.perl.versions.5422.options=-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+libs.perl.versions.5422.libpath=/opt/compiler-explorer/perl-5.42.2/lib/5.42.2/x86_64-linux-thread-multi/CORE
+libs.perl.versions.5422.liblink=perl-5.42.2
libs.ppdt.name=PPDT
libs.ppdt.description=Preprocessor date and time parsing
diff --git a/etc/config/c3.amazon.properties b/etc/config/c3.amazon.properties
index 2daf7c4c2..dcba1883d 100644
--- a/etc/config/c3.amazon.properties
+++ b/etc/config/c3.amazon.properties
@@ -1,10 +1,10 @@
compilers=&c3c
compilerType=c3c
-defaultCompiler=c3c074
+defaultCompiler=c3c0711
supportsBinary=false
supportsBinaryObject=false
supportsExecute=false
-group.c3c.compilers=c3c04:c3c050:c3c055:c3c060:c3c061:c3c062:c3c063:c3c064:c3c065:c3c066:c3c067:c3c068:c3c070:c3c071:c3c072:c3c073:c3c074
+group.c3c.compilers=c3c04:c3c050:c3c055:c3c060:c3c061:c3c062:c3c063:c3c064:c3c065:c3c066:c3c067:c3c068:c3c070:c3c071:c3c072:c3c073:c3c074:c3c075:c3c076:c3c077:c3c078:c3c079:c3c0710:c3c0711
group.c3c.isSemVer=true
group.c3c.baseName=c3
@@ -59,3 +59,24 @@ compiler.c3c073.exe=/opt/compiler-explorer/c3-0.7.3/c3c
compiler.c3c074.semver=0.7.4
compiler.c3c074.exe=/opt/compiler-explorer/c3-0.7.4/c3c
+
+compiler.c3c075.semver=0.7.5
+compiler.c3c075.exe=/opt/compiler-explorer/c3-0.7.5/c3c
+
+compiler.c3c076.semver=0.7.6
+compiler.c3c076.exe=/opt/compiler-explorer/c3-0.7.6/c3c
+
+compiler.c3c077.semver=0.7.7
+compiler.c3c077.exe=/opt/compiler-explorer/c3-0.7.7/c3c
+
+compiler.c3c078.semver=0.7.8
+compiler.c3c078.exe=/opt/compiler-explorer/c3-0.7.8/c3c
+
+compiler.c3c079.semver=0.7.9
+compiler.c3c079.exe=/opt/compiler-explorer/c3-0.7.9/c3c
+
+compiler.c3c0710.semver=0.7.10
+compiler.c3c0710.exe=/opt/compiler-explorer/c3-0.7.10/c3c
+
+compiler.c3c0711.semver=0.7.11
+compiler.c3c0711.exe=/opt/compiler-explorer/c3-0.7.11/c3c
diff --git a/etc/config/cobol.amazon.properties b/etc/config/cobol.amazon.properties
index d45d09d49..4d59553d5 100644
--- a/etc/config/cobol.amazon.properties
+++ b/etc/config/cobol.amazon.properties
@@ -1,6 +1,6 @@
compilers=&gnucobol:&gcccobol
defaultCompiler=gnucobol32
-objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
+objdumper=/opt/compiler-explorer/gcc-16.1.0/bin/objdump
group.gnucobol.groupName=GnuCOBOL
group.gnucobol.compilers=gnucobol32:gnucobol32rc2:gnucobol31:gnucobol22:gnucobol11
@@ -30,7 +30,7 @@ compiler.gnucobol11.licensePreamble=Copyright (c) 2012 Free Software Foundation,
group.gcccobol.compilerType=gcccobol
group.gcccobol.groupName=GCC
-group.gcccobol.compilers=&gcccobolassert:gcccobolsnapshot:gcccobol151:gcccobol152:gcccoboltrunk
+group.gcccobol.compilers=&gcccobolassert:gcccobolsnapshot:gcccobol151:gcccobol152:gcccobol161:gcccoboltrunk
group.gcccobol.unwiseOptions=-march=native
group.gcccobol.isSemVer=true
group.gcccobol.baseName=GCC
@@ -47,12 +47,14 @@ compiler.gcccobol151.semver=15.1.0
compiler.gcccobol152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gcobol
compiler.gcccobol152.semver=15.2.0
+compiler.gcccobol161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/gcobol
+compiler.gcccobol161.semver=16.1.0
compiler.gcccoboltrunk.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcobol
compiler.gcccoboltrunk.semver=(GCC master)
## GCC (from upstream GCC, not GCCRS github) x86 build with "assertions" (--enable-checking=XXX)
-group.gcccobolassert.compilers=gcccobol151assert:gcccobol152assert
+group.gcccobolassert.compilers=gcccobol151assert:gcccobol152assert:gcccobol161assert
group.gcccobolassert.groupName=x86-64 GCC (assertions)
compiler.gcccobol151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcobol
@@ -60,3 +62,5 @@ compiler.gcccobol151assert.semver=15.1.0 (GCC assertions)
compiler.gcccobol152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gcobol
compiler.gcccobol152assert.semver=15.2.0 (GCC assertions)
+compiler.gcccobol161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/gcobol
+compiler.gcccobol161assert.semver=16.1.0 (GCC assertions)
diff --git a/etc/config/compiler-explorer.amazon.properties b/etc/config/compiler-explorer.amazon.properties
index b56125d51..e041de82b 100644
--- a/etc/config/compiler-explorer.amazon.properties
+++ b/etc/config/compiler-explorer.amazon.properties
@@ -3,6 +3,7 @@ cookieDomainRe=godbolt\.org|compiler-explorer\.com|godbo\.lt
cookiePolicyEnabled=true
privacyPolicyEnabled=true
compileTimeoutMs=20000
+binaryExecTimeoutMs=20000
max-asm-size=67108864
maxConcurrentCompiles=2
staticMaxAgeSecs=30
diff --git a/etc/config/cuda.amazon.properties b/etc/config/cuda.amazon.properties
index d8c988836..62fbd1e4f 100644
--- a/etc/config/cuda.amazon.properties
+++ b/etc/config/cuda.amazon.properties
@@ -797,10 +797,14 @@ libs.cueigen.versions.334.version=3.3.4
libs.cueigen.versions.334.path=/opt/compiler-explorer/libs/eigen/v3.3.4
libs.cccl.name=CUDA Core Compute Libraries (CCCL)
libs.cccl.description=Fundamental CUDA Compute libraries: Thrust, CUB, libcudacxx, cudax
-libs.cccl.versions=trunk:330:321:320:314:310:302:301:300:282:281:280:270:261:260:250:240:230:220
+libs.cccl.versions=trunk:332:331:330:321:320:314:310:302:301:300:282:281:280:270:261:260:250:240:230:220
libs.cccl.url=http://www.github.com/NVIDIA/cccl
libs.cccl.versions.trunk.version=trunk
libs.cccl.versions.trunk.path=/opt/compiler-explorer/libs/cccl/trunk/thrust:/opt/compiler-explorer/libs/cccl/trunk/cub:/opt/compiler-explorer/libs/cccl/trunk/libcudacxx/include:/opt/compiler-explorer/libs/cccl/trunk/cudax/include
+libs.cccl.versions.332.version=3.3.2
+libs.cccl.versions.332.path=/opt/compiler-explorer/libs/cccl/v3.3.2/thrust:/opt/compiler-explorer/libs/cccl/v3.3.2/cub:/opt/compiler-explorer/libs/cccl/v3.3.2/libcudacxx/include:/opt/compiler-explorer/libs/cccl/v3.3.2/cudax/include
+libs.cccl.versions.331.version=3.3.1
+libs.cccl.versions.331.path=/opt/compiler-explorer/libs/cccl/v3.3.1/thrust:/opt/compiler-explorer/libs/cccl/v3.3.1/cub:/opt/compiler-explorer/libs/cccl/v3.3.1/libcudacxx/include:/opt/compiler-explorer/libs/cccl/v3.3.1/cudax/include
libs.cccl.versions.330.version=3.3.0
libs.cccl.versions.330.path=/opt/compiler-explorer/libs/cccl/v3.3.0/thrust:/opt/compiler-explorer/libs/cccl/v3.3.0/cub:/opt/compiler-explorer/libs/cccl/v3.3.0/libcudacxx/include:/opt/compiler-explorer/libs/cccl/v3.3.0/cudax/include
libs.cccl.versions.321.version=3.2.1
@@ -930,6 +934,12 @@ libs.nsimd.versions.22.version=2.2
libs.nsimd.versions.22.path=/opt/compiler-explorer/libs/nsimd/v2.2/cuda/include
libs.nsimd.versions.301.version=3.0.1
libs.nsimd.versions.301.path=/opt/compiler-explorer/libs/nsimd/v3.0.1/cuda/include
+libs.stdexec.name=stdexec (std::execution)
+libs.stdexec.description=The proposed C++ framework for asynchronous and parallel programming
+libs.stdexec.versions=trunk
+libs.stdexec.url=https://github.com/NVIDIA/stdexec
+libs.stdexec.versions.trunk.version=trunk
+libs.stdexec.versions.trunk.path=/opt/compiler-explorer/libs/stdexec/trunk/include
libs.hip-amd.name=HIP (AMD Platform)
libs.hip-amd.versions=70001:60400:60303:60204:60102:60002:50700:50203:50103:50002:40502
libs.hip-amd.url=https://github.com/ROCm-Developer-Tools/hipamd
diff --git a/etc/config/cuda.defaults.properties b/etc/config/cuda.defaults.properties
index 4a6e89fa4..e624538b6 100644
--- a/etc/config/cuda.defaults.properties
+++ b/etc/config/cuda.defaults.properties
@@ -42,3 +42,11 @@ compiler.hiptrunkdef.alias=hiptrunk
#group.nvcc121.instructionSet=ptx
#instructionSet=ptx
#supportsAsmDocs=true
+
+tools=clangtidydefault
+
+tools.clangtidydefault.exe=/usr/bin/clang-tidy
+tools.clangtidydefault.name=clang-tidy (default)
+tools.clangtidydefault.type=independent
+tools.clangtidydefault.class=clang-tidy-tool
+tools.clangtidydefault.stdinHint=disabled
diff --git a/etc/config/d.amazon.properties b/etc/config/d.amazon.properties
index 6ac0d173d..32c7f9eb7 100644
--- a/etc/config/d.amazon.properties
+++ b/etc/config/d.amazon.properties
@@ -1,7 +1,7 @@
compilers=&gdc:&ldc:&dmd:&dmd1:&gdccross
defaultCompiler=ldc1_42
-group.gdc.compilers=&gdcassert:gdc48:gdc49:gdc52:gdc92:gdc93:gdc95:gdc101:gdc102:gdc105:gdc111:gdc113:gdc114:gdc121:gdc122:gdc123:gdc124:gdc125:gdc131:gdc132:gdc133:gdc134:gdc141:gdc142:gdc143:gdc151:gdc152:gdctrunk
+group.gdc.compilers=&gdcassert:gdc48:gdc49:gdc52:gdc92:gdc93:gdc95:gdc101:gdc102:gdc105:gdc111:gdc113:gdc114:gdc121:gdc122:gdc123:gdc124:gdc125:gdc131:gdc132:gdc133:gdc134:gdc141:gdc142:gdc143:gdc151:gdc152:gdc161:gdctrunk
group.gdc.groupName=GDC x86-64
group.gdc.includeFlag=-isystem
group.gdc.isSemVer=true
@@ -66,6 +66,8 @@ compiler.gdc151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gdc
compiler.gdc151.semver=15.1
compiler.gdc152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gdc
compiler.gdc152.semver=15.2
+compiler.gdc161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/gdc
+compiler.gdc161.semver=16.1
compiler.gdctrunk.exe=/opt/compiler-explorer/gcc-snapshot/bin/gdc
compiler.gdctrunk.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
@@ -73,7 +75,7 @@ compiler.gdctrunk.semver=(trunk)
compiler.gdctrunk.isNightly=true
## GDC x86 build with "assertions" (--enable-checking=XXX)
-group.gdcassert.compilers=gdc105assert:gdc111assert:gdc113assert:gdc114assert:gdc121assert:gdc122assert:gdc123assert:gdc124assert:gdc125assert:gdc131assert:gdc132assert:gdc133assert:gdc134assert:gdc141assert:gdc142assert:gdc143assert:gdc151assert:gdc152assert
+group.gdcassert.compilers=gdc105assert:gdc111assert:gdc113assert:gdc114assert:gdc121assert:gdc122assert:gdc123assert:gdc124assert:gdc125assert:gdc131assert:gdc132assert:gdc133assert:gdc134assert:gdc141assert:gdc142assert:gdc143assert:gdc151assert:gdc152assert:gdc161assert
group.gdcassert.groupName=GDC x86-64 (assertions)
compiler.gdc105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/gdc
@@ -112,6 +114,8 @@ compiler.gdc151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gdc
compiler.gdc151assert.semver=15.1 (assertions)
compiler.gdc152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gdc
compiler.gdc152assert.semver=15.2 (assertions)
+compiler.gdc161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/gdc
+compiler.gdc161assert.semver=16.1 (assertions)
## CROSS GDC
group.gdccross.compilers=&gdcloongarch64:&gdcs390x:&gdcppc:&gdcppc64:&gdcppc64le:&gdcmips64:&gdcmips:&gdcmipsel:&gdcarm:&gdcarm64:&gdcriscv:&gdcriscv64:&gdchppa
diff --git a/etc/config/fortran.amazon.properties b/etc/config/fortran.amazon.properties
index d3256a813..1ed0eab07 100644
--- a/etc/config/fortran.amazon.properties
+++ b/etc/config/fortran.amazon.properties
@@ -1,7 +1,7 @@
compilers=&gfortran_86:&ifort:&ifx:&nvfortran_x86:&cross:&clang_llvmflang:&lfortran
-defaultCompiler=gfortran152
-demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
-objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
+defaultCompiler=gfortran161
+demangler=/opt/compiler-explorer/gcc-16.1.0/bin/c++filt
+objdumper=/opt/compiler-explorer/gcc-16.1.0/bin/objdump
compilerType=fortran
buildenvsetup=ceconan-fortran
@@ -9,7 +9,7 @@ buildenvsetup.host=https://conan.compiler-explorer.com
###############################
# GCC (as in GNU Compiler Collection) for x86
-group.gfortran_86.compilers=&gfortranassert:gfortran494:gfortran550:gfortran63:gfortran71:gfortran72:gfortran73:gfortran81:gfortran82:gfortran83:gfortran84:gfortran85:gfortran91:gfortran92:gfortran93:gfortran94:gfortran101:gfortran102:gfortran103:gfortran104:gfortran105:gfortran111:gfortran112:gfortran113:gfortran114:gfortran121:gfortran122:gfortran123:gfortran124:gfortran125:gfortran131:gfortran132:gfortran133:gfortran134:gfortran141:gfortran142:gfortran143:gfortran151:gfortran152:gfortransnapshot
+group.gfortran_86.compilers=&gfortranassert:gfortran494:gfortran550:gfortran63:gfortran71:gfortran72:gfortran73:gfortran81:gfortran82:gfortran83:gfortran84:gfortran85:gfortran91:gfortran92:gfortran93:gfortran94:gfortran101:gfortran102:gfortran103:gfortran104:gfortran105:gfortran111:gfortran112:gfortran113:gfortran114:gfortran121:gfortran122:gfortran123:gfortran124:gfortran125:gfortran131:gfortran132:gfortran133:gfortran134:gfortran141:gfortran142:gfortran143:gfortran151:gfortran152:gfortran161:gfortransnapshot
group.gfortran_86.groupName=GFORTRAN x86-64
group.gfortran_86.isSemVer=true
group.gfortran_86.baseName=x86-64 gfortran
@@ -90,6 +90,8 @@ compiler.gfortran151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gfortran
compiler.gfortran151.semver=15.1
compiler.gfortran152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gfortran
compiler.gfortran152.semver=15.2
+compiler.gfortran161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/gfortran
+compiler.gfortran161.semver=16.1
compiler.gfortransnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gfortran
compiler.gfortransnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -98,7 +100,7 @@ compiler.gfortransnapshot.semver=(trunk)
compiler.gfortransnapshot.isNightly=true
## GFORTRAN x86 build with "assertions" (--enable-checking=XXX)
-group.gfortranassert.compilers=gfortran103assert:gfortran104assert:gfortran105assert:gfortran111assert:gfortran112assert:gfortran113assert:gfortran114assert:gfortran121assert:gfortran122assert:gfortran123assert:gfortran124assert:gfortran125assert:gfortran131assert:gfortran132assert:gfortran133assert:gfortran134assert:gfortran141assert:gfortran142assert:gfortran143assert:gfortran151assert:gfortran152assert
+group.gfortranassert.compilers=gfortran103assert:gfortran104assert:gfortran105assert:gfortran111assert:gfortran112assert:gfortran113assert:gfortran114assert:gfortran121assert:gfortran122assert:gfortran123assert:gfortran124assert:gfortran125assert:gfortran131assert:gfortran132assert:gfortran133assert:gfortran134assert:gfortran141assert:gfortran142assert:gfortran143assert:gfortran151assert:gfortran152assert:gfortran161assert
group.gfortranassert.groupName=GFORTRAN x86-64 (assertions)
group.gfortranassert.compilerCategories=gfortran
@@ -144,6 +146,8 @@ compiler.gfortran151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/
compiler.gfortran151assert.semver=15.1 (assertions)
compiler.gfortran152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gfortran
compiler.gfortran152assert.semver=15.2 (assertions)
+compiler.gfortran161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/gfortran
+compiler.gfortran161assert.semver=16.1 (assertions)
###############################
# Intel Parallel Studio XE for x86
@@ -350,7 +354,7 @@ compiler.ifxlatest.options=-gxx-name=/opt/compiler-explorer/gcc-13.2.0/bin/g++
#################################
# NVHPC nvfortran
-group.nvfortran_x86.compilers=nvfortran_x86_24_9:nvfortran_x86_24_11:nvfortran_x86_25_1:nvfortran_x86_25_3:nvfortran_x86_25_5:nvfortran_x86_25_7:nvfortran_x86_25_9:nvfortran_x86_25_11:nvfortran_x86_26_1
+group.nvfortran_x86.compilers=nvfortran_x86_24_9:nvfortran_x86_24_11:nvfortran_x86_25_1:nvfortran_x86_25_3:nvfortran_x86_25_5:nvfortran_x86_25_7:nvfortran_x86_25_9:nvfortran_x86_25_11:nvfortran_x86_26_1:nvfortran_x86_26_3
group.nvfortran_x86.options=
group.nvfortran_x86.needsMulti=false
group.nvfortran_x86.supportsBinary=true
@@ -417,6 +421,12 @@ compiler.nvfortran_x86_26_1.nvdisasm=/opt/compiler-explorer/hpc_sdk/Linux_x86_64
compiler.nvfortran_x86_26_1.exe=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.1/compilers/bin/nvfortran
compiler.nvfortran_x86_26_1.semver=26.1
+compiler.nvfortran_x86_26_3.demangler=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/compilers/bin/nvdecode
+compiler.nvfortran_x86_26_3.cuobjdump=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/cuda/13.0/bin/cuobjdump
+compiler.nvfortran_x86_26_3.nvdisasm=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/cuda/13.0/bin/nvdisasm
+compiler.nvfortran_x86_26_3.exe=/opt/compiler-explorer/hpc_sdk/Linux_x86_64/26.3/compilers/bin/nvfortran
+compiler.nvfortran_x86_26_3.semver=26.3
+
###############################
# GCC Cross-Compilers
group.cross.compilers=&gccarm:&gccaarch64:&ppcs:&gccrvs:&gccmips:&gccmips64:&gccmipsel:&gccmips64el:&gccs390x:&gccriscv:&gccriscv64:&gccloongarch64:&gccsparc:&gccsparc64:&gccsparcleon:&gcchppa:&gcctricore
@@ -442,7 +452,7 @@ compiler.ftricoreg1130.demangler=/opt/compiler-explorer/tricore/gcc-11.3.0/trico
###############################
# GCC for HPPA
-group.gcchppa.compilers=fhppag1420:fhppag1430:fhppag1510:fhppag1520
+group.gcchppa.compilers=fhppag1420:fhppag1430:fhppag1510:fhppag1520:fhppag1610
group.gcchppa.groupName=HPPA gfortran
group.gcchppa.baseName=HPPA gfortran
group.gcchppa.supportsBinary=true
@@ -467,10 +477,14 @@ compiler.fhppag1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linu
compiler.fhppag1520.semver=15.2.0
compiler.fhppag1520.objdumper=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.fhppag1520.demangler=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
+compiler.fhppag1610.exe=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-gfortran
+compiler.fhppag1610.semver=16.1.0
+compiler.fhppag1610.objdumper=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
+compiler.fhppag1610.demangler=/opt/compiler-explorer/hppa/gcc-16.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
###############################
# GCC for SPARC
-group.gccsparc.compilers=fsparcg1220:fsparcg1230:fsparcg1240:fsparcg1250:fsparcg1310:fsparcg1320:fsparcg1330:fsparcg1340:fsparcg1410:fsparcg1420:fsparcg1430:fsparcg1510:fsparcg1520
+group.gccsparc.compilers=fsparcg1220:fsparcg1230:fsparcg1240:fsparcg1250:fsparcg1310:fsparcg1320:fsparcg1330:fsparcg1340:fsparcg1410:fsparcg1420:fsparcg1430:fsparcg1510:fsparcg1520:fsparcg1610
group.gccsparc.groupName=SPARC gfortran
group.gccsparc.baseName=SPARC gfortran
group.gccsparc.compilerCategories=gfortran
@@ -539,10 +553,14 @@ compiler.fsparcg1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-l
compiler.fsparcg1520.semver=15.2.0
compiler.fsparcg1520.objdumper=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.fsparcg1520.demangler=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
+compiler.fsparcg1610.exe=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gfortran
+compiler.fsparcg1610.semver=16.1.0
+compiler.fsparcg1610.objdumper=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
+compiler.fsparcg1610.demangler=/opt/compiler-explorer/sparc/gcc-16.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
###############################
# GCC for SPARC64
-group.gccsparc64.compilers=fsparc64g1220:fsparc64g1230:fsparc64g1310:fsparc64g1320:fsparc64g1410:fsparc64g1330:fsparc64g1240:fsparc64g1420:fsparc64g1510:fsparc64g1430:fsparc64g1340:fsparc64g1250:fsparc64g1520
+group.gccsparc64.compilers=fsparc64g1220:fsparc64g1230:fsparc64g1310:fsparc64g1320:fsparc64g1410:fsparc64g1330:fsparc64g1240:fsparc64g1420:fsparc64g1510:fsparc64g1430:fsparc64g1340:fsparc64g1250:fsparc64g1520:fsparc64g1610
group.gccsparc64.groupName=SPARC64 gfortran
group.gccsparc64.baseName=SPARC64 gfortran
group.gccsparc64.compilerCategories=gfortran
@@ -611,10 +629,14 @@ compiler.fsparc64g1520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-mul
compiler.fsparc64g1520.semver=15.2.0
compiler.fsparc64g1520.objdumper=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.fsparc64g1520.demangler=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
+compiler.fsparc64g1610.exe=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-gfortran
+compiler.fsparc64g1610.semver=16.1.0
+compiler.fsparc64g1610.objdumper=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
+compiler.fsparc64g1610.demangler=/opt/compiler-explorer/sparc64/gcc-16.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
###############################
# GCC for SPARC LEON
-group.gccsparcleon.compilers=fsparcleong1220:fsparcleong1220-1:fsparcleong1230:fsparcleong1240:fsparcleong1250:fsparcleong1310:fsparcleong1320:fsparcleong1330:fsparcleong1340:fsparcleong1410:fsparcleong1420:fsparcleong1430:fsparcleong1510:fsparcleong1520
+group.gccsparcleon.compilers=fsparcleong1220:fsparcleong1220-1:fsparcleong1230:fsparcleong1240:fsparcleong1250:fsparcleong1310:fsparcleong1320:fsparcleong1330:fsparcleong1340:fsparcleong1410:fsparcleong1420:fsparcleong1430:fsparcleong1510:fsparcleong1520:fsparcleong1610
group.gccsparcleon.groupName=SPARC LEON gfortran
group.gccsparcleon.baseName=SPARC LEON gfortran
group.gccsparcleon.compilerCategories=gfortran
@@ -690,10 +712,14 @@ compiler.fsparcleong1520.exe=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-
compiler.fsparcleong1520.semver=15.2.0
compiler.fsparcleong1520.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
compiler.fsparcleong1520.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
+compiler.fsparcleong1610.exe=/opt/compiler-explorer/sparc-leon/gcc-16.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gfortran
+compiler.fsparcleong1610.semver=16.1.0
+compiler.fsparcleong1610.objdumper=/opt/compiler-explorer/sparc-leon/gcc-16.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
+compiler.fsparcleong1610.demangler=/opt/compiler-explorer/sparc-leon/gcc-16.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
###############################
# GCC for LOONGARCH64
-group.gccloongarch64.compilers=floongarch64g1220:floongarch64g1230:floongarch64g1310:floongarch64g1320:floongarch64g1410:floongarch64g1330:floongarch64g1240:floongarch64g1420:floongarch64g1510:floongarch64g1430:floongarch64g1340:floongarch64g1250:floongarch64g1520
+group.gccloongarch64.compilers=floongarch64g1220:floongarch64g1230:floongarch64g1310:floongarch64g1320:floongarch64g1410:floongarch64g1330:floongarch64g1240:floongarch64g1420:floongarch64g1510:floongarch64g1430:floongarch64g1340:floongarch64g1250:floongarch64g1520:floongarch64g1610
group.gccloongarch64.groupName=LOONGARCH64 gfortran
group.gccloongarch64.baseName=LOONGARCH64 gfortran
group.gccloongarch64.compilerCategories=gfortran
@@ -762,10 +788,14 @@ compiler.floongarch64g1520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loo
compiler.floongarch64g1520.semver=15.2.0
compiler.floongarch64g1520.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.floongarch64g1520.demangler=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
+compiler.floongarch64g1610.exe=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-gfortran
+compiler.floongarch64g1610.semver=16.1.0
+compiler.floongarch64g1610.objdumper=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
+compiler.floongarch64g1610.demangler=/opt/compiler-explorer/loongarch64/gcc-16.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
###############################
# GCC for RISCV64
-group.gccriscv64.compilers=friscv64g1140:friscv64g1220:friscv64g1230:friscv64g1310:friscv64g1320:friscv64g1410:friscv64g1330:friscv64g1240:friscv64g1420:friscv64g1510:friscv64g1430:friscv64g1340:friscv64g1250:friscv64g1520
+group.gccriscv64.compilers=friscv64g1140:friscv64g1220:friscv64g1230:friscv64g1310:friscv64g1320:friscv64g1410:friscv64g1330:friscv64g1240:friscv64g1420:friscv64g1510:friscv64g1430:friscv64g1340:friscv64g1250:friscv64g1520:friscv64g1610
group.gccriscv64.groupName=RISCV64 gfortran
group.gccriscv64.baseName=RISCV64 gfortran
group.gccriscv64.compilerCategories=gfortran
@@ -839,10 +869,14 @@ compiler.friscv64g1520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unk
compiler.friscv64g1520.semver=15.2.0
compiler.friscv64g1520.objdumper=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.friscv64g1520.demangler=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
+compiler.friscv64g1610.exe=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gfortran
+compiler.friscv64g1610.semver=16.1.0
+compiler.friscv64g1610.objdumper=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
+compiler.friscv64g1610.demangler=/opt/compiler-explorer/riscv64/gcc-16.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
###############################
# GCC for RISCV
-group.gccriscv.compilers=friscvg1140:friscvg1220:friscvg1230:friscvg1240:friscvg1250:friscvg1310:friscvg1320:friscvg1330:friscvg1340:friscvg1410:friscvg1420:friscvg1430:friscvg1510:friscvg1520
+group.gccriscv.compilers=friscvg1140:friscvg1220:friscvg1230:friscvg1240:friscvg1250:friscvg1310:friscvg1320:friscvg1330:friscvg1340:friscvg1410:friscvg1420:friscvg1430:friscvg1510:friscvg1520:friscvg1610
group.gccriscv.groupName=RISCV (32bit) gfortran
group.gccriscv.baseName=RISCV (32bit) gfortran
group.gccriscv.compilerCategories=gfortran
@@ -916,10 +950,14 @@ compiler.friscvg1520.exe=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unkno
compiler.friscvg1520.semver=15.2.0
compiler.friscvg1520.objdumper=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.friscvg1520.demangler=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
+compiler.friscvg1610.exe=/opt/compiler-explorer/riscv32/gcc-16.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gfortran
+compiler.friscvg1610.semver=16.1.0
+compiler.friscvg1610.objdumper=/opt/compiler-explorer/riscv32/gcc-16.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
+compiler.friscvg1610.demangler=/opt/compiler-explorer/riscv32/gcc-16.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
###############################
# GCC for ARM
-group.gccarm.compilers=farmg640:farmg730:farmg820:farmg1050:farmg1140:farmg1210:farmg1220:farmg1230:farmg1240:farmg1250:farmg1310:farmg1320:farmg1330:farmg1340:farmg1410:farmg1420:farmg1430:farmg1510:farmg1520
+group.gccarm.compilers=farmg640:farmg730:farmg820:farmg1050:farmg1140:farmg1210:farmg1220:farmg1230:farmg1240:farmg1250:farmg1310:farmg1320:farmg1330:farmg1340:farmg1410:farmg1420:farmg1430:farmg1510:farmg1520:farmg1610
group.gccarm.groupName=ARM (32bit) gfortran
group.gccarm.baseName=ARM (32bit) gfortran
group.gccarm.compilerCategories=gfortran
@@ -1010,10 +1048,14 @@ compiler.farmg1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-g
compiler.farmg1520.semver=15.2.0
compiler.farmg1520.objdumper=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.farmg1520.demangler=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
+compiler.farmg1610.exe=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gfortran
+compiler.farmg1610.semver=16.1.0
+compiler.farmg1610.objdumper=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
+compiler.farmg1610.demangler=/opt/compiler-explorer/arm/gcc-16.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
###############################
## GCC for s390x
-group.gccs390x.compilers=fs390xg1210:fs390xg1220:fs390xg1230:fs390xg1310:fs390xg1320:fs390xg1410:fs390xg1330:fs390xg1240:fs390xg1420:fs390xg1510:fs390xg1430:fs390xg1340:fs390xg1250:fs390xg1520
+group.gccs390x.compilers=fs390xg1210:fs390xg1220:fs390xg1230:fs390xg1310:fs390xg1320:fs390xg1410:fs390xg1330:fs390xg1240:fs390xg1420:fs390xg1510:fs390xg1430:fs390xg1340:fs390xg1250:fs390xg1520:fs390xg1610
group.gccs390x.groupName=s390x gfortran
group.gccs390x.baseName=s390x gfortran
group.gccs390x.compilerCategories=gfortran
@@ -1086,6 +1128,10 @@ compiler.fs390xg1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux
compiler.fs390xg1520.semver=15.2.0
compiler.fs390xg1520.objdumper=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.fs390xg1520.demangler=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
+compiler.fs390xg1610.exe=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gfortran
+compiler.fs390xg1610.semver=16.1.0
+compiler.fs390xg1610.objdumper=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
+compiler.fs390xg1610.demangler=/opt/compiler-explorer/s390x/gcc-16.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
###############################
# LLVM Flang for X86
@@ -1202,7 +1248,7 @@ compiler.lfortran0590.clang=/opt/compiler-explorer/clang-19.1.0/bin/clang
###############################
# GCC for ARM 64bit
-group.gccaarch64.compilers=farm64g494:farm64g550:farm64g640:farm64g730:farm64g820:farm64g1050:farm64g1210:farm64g1220:farm64g1230:farm64g1310:farm64g1140:farm64g1320:farm64g1410:farm64g1330:farm64g1240:farm64g1420:farm64g1510:farm64g1430:farm64g1340:farm64g1250:farm64g1520
+group.gccaarch64.compilers=farm64g494:farm64g550:farm64g640:farm64g730:farm64g820:farm64g1050:farm64g1210:farm64g1220:farm64g1230:farm64g1310:farm64g1140:farm64g1320:farm64g1410:farm64g1330:farm64g1240:farm64g1420:farm64g1510:farm64g1430:farm64g1340:farm64g1250:farm64g1520:farm64g1610
group.gccaarch64.groupName=ARM (AARCH64) GCC
group.gccaarch64.baseName=AARCH64 gfortran
group.gccaarch64.compilerCategories=gfortran
@@ -1303,6 +1349,10 @@ compiler.farm64g1520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown
compiler.farm64g1520.semver=15.2.0
compiler.farm64g1520.objdumper=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.farm64g1520.demangler=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
+compiler.farm64g1610.exe=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gfortran
+compiler.farm64g1610.semver=16.1.0
+compiler.farm64g1610.objdumper=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
+compiler.farm64g1610.demangler=/opt/compiler-explorer/arm64/gcc-16.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
###############################
# GCC for PPCs
@@ -1313,7 +1363,7 @@ group.ppcs.compilerCategories=gfortran
###############################
# GCC for PPC
-group.ppc.compilers=fppcg1210:fppcg1220:fppcg1230:fppcg1240:fppcg1250:fppcg1310:fppcg1320:fppcg1330:fppcg1340:fppcg1410:fppcg1420:fppcg1430:fppcg1510:fppcg1520
+group.ppc.compilers=fppcg1210:fppcg1220:fppcg1230:fppcg1240:fppcg1250:fppcg1310:fppcg1320:fppcg1330:fppcg1340:fppcg1410:fppcg1420:fppcg1430:fppcg1510:fppcg1520:fppcg1610
group.ppc.groupName=POWER gfortran
group.ppc.baseName=POWER gfortran
group.ppc.compilerCategories=gfortran
@@ -1386,10 +1436,14 @@ compiler.fppcg1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown
compiler.fppcg1520.semver=15.2.0
compiler.fppcg1520.objdumper=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.fppcg1520.demangler=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
+compiler.fppcg1610.exe=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gfortran
+compiler.fppcg1610.semver=16.1.0
+compiler.fppcg1610.objdumper=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
+compiler.fppcg1610.demangler=/opt/compiler-explorer/powerpc/gcc-16.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
###############################
# GCC for PPC64
-group.ppc64.compilers=fppc64g8:fppc64g9:fppc64g1210:fppc64g1220:fppc64g1230:fppc64g1310:fppc64g1320:fppc64gtrunk:fppc64g1410:fppc64g1330:fppc64g1240:fppc64g1420:fppc64g1510:fppc64g1430:fppc64g1340:fppc64g1250:fppc64g1520
+group.ppc64.compilers=fppc64g8:fppc64g9:fppc64g1210:fppc64g1220:fppc64g1230:fppc64g1310:fppc64g1320:fppc64gtrunk:fppc64g1410:fppc64g1330:fppc64g1240:fppc64g1420:fppc64g1510:fppc64g1430:fppc64g1340:fppc64g1250:fppc64g1520:fppc64g1610
group.ppc64.groupName=POWER64 gfortran
group.ppc64.baseName=POWER64 gfortran
group.ppc64.compilerCategories=gfortran
@@ -1470,6 +1524,10 @@ compiler.fppc64g1520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-u
compiler.fppc64g1520.semver=15.2.0
compiler.fppc64g1520.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.fppc64g1520.demangler=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
+compiler.fppc64g1610.exe=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gfortran
+compiler.fppc64g1610.semver=16.1.0
+compiler.fppc64g1610.objdumper=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
+compiler.fppc64g1610.demangler=/opt/compiler-explorer/powerpc64/gcc-16.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.fppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gfortran
compiler.fppc64gtrunk.semver=trunk
@@ -1478,7 +1536,7 @@ compiler.fppc64gtrunk.demangler=/opt/compiler-explorer/powerpc64/gcc-trunk/power
###############################
# GCC for PPC64LE
-group.ppc64le.compilers=fppc64leg8:fppc64leg9:fppc64leg1210:fppc64leg1220:fppc64leg1230:fppc64leg1310:fppc64leg1320:fppc64legtrunk:fppc64leg1410:fppc64leg1330:fppc64leg1240:fppc64leg1420:fppc64leg1510:fppc64leg1430:fppc64leg1340:fppc64leg1250:fppc64leg1520
+group.ppc64le.compilers=fppc64leg8:fppc64leg9:fppc64leg1210:fppc64leg1220:fppc64leg1230:fppc64leg1310:fppc64leg1320:fppc64legtrunk:fppc64leg1410:fppc64leg1330:fppc64leg1240:fppc64leg1420:fppc64leg1510:fppc64leg1430:fppc64leg1340:fppc64leg1250:fppc64leg1520:fppc64leg1610
group.ppc64le.groupName=POWER64le gfortran
group.ppc64le.baseName=POWER64le gfortran
group.ppc64le.compilerCategories=gfortran
@@ -1559,6 +1617,10 @@ compiler.fppc64leg1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc
compiler.fppc64leg1520.semver=15.2.0
compiler.fppc64leg1520.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.fppc64leg1520.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
+compiler.fppc64leg1610.exe=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gfortran
+compiler.fppc64leg1610.semver=16.1.0
+compiler.fppc64leg1610.objdumper=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
+compiler.fppc64leg1610.demangler=/opt/compiler-explorer/powerpc64le/gcc-16.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.fppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gfortran
compiler.fppc64legtrunk.semver=trunk
@@ -1604,7 +1666,7 @@ compiler.frv64gtrunk.objdumper=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-
################################
# GCC for MIPS
-group.gccmips.compilers=fmipsg494:fmipsg550:fmipsg950:fmipsg1210:fmipsg1220:fmipsg1230:fmipsg1240:fmipsg1250:fmipsg1310:fmipsg1320:fmipsg1330:fmipsg1340:fmipsg1410:fmipsg1420:fmipsg1430:fmipsg1510:fmipsg1520
+group.gccmips.compilers=fmipsg494:fmipsg550:fmipsg950:fmipsg1210:fmipsg1220:fmipsg1230:fmipsg1240:fmipsg1250:fmipsg1310:fmipsg1320:fmipsg1330:fmipsg1340:fmipsg1410:fmipsg1420:fmipsg1430:fmipsg1510:fmipsg1520:fmipsg1610
group.gccmips.groupName=MIPS gfortran
group.gccmips.baseName=MIPS gfortran
group.gccmips.compilerCategories=gfortran
@@ -1692,10 +1754,14 @@ compiler.fmipsg1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linu
compiler.fmipsg1520.semver=15.2.0
compiler.fmipsg1520.objdumper=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.fmipsg1520.demangler=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
+compiler.fmipsg1610.exe=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gfortran
+compiler.fmipsg1610.semver=16.1.0
+compiler.fmipsg1610.objdumper=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
+compiler.fmipsg1610.demangler=/opt/compiler-explorer/mips/gcc-16.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
################################
# GCC for MIPS64
-group.gccmips64.compilers=fmips64g494:fmips64g550:fmips64g950:fmips64g1210:fmips64g1220:fmips64g1230:fmips64g1310:fmips64g1320:fmips64g1410:fmips64g1330:fmips64g1240:fmips64g1420:fmips64g1510:fmips64g1430:fmips64g1340:fmips64g1250:fmips64g1520
+group.gccmips64.compilers=fmips64g494:fmips64g550:fmips64g950:fmips64g1210:fmips64g1220:fmips64g1230:fmips64g1310:fmips64g1320:fmips64g1410:fmips64g1330:fmips64g1240:fmips64g1420:fmips64g1510:fmips64g1430:fmips64g1340:fmips64g1250:fmips64g1520:fmips64g1610
group.gccmips64.groupName=MIPS64 gfortran
group.gccmips64.baseName=MIPS64 gfortran
group.gccmips64.compilerCategories=gfortran
@@ -1783,10 +1849,14 @@ compiler.fmips64g1520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknow
compiler.fmips64g1520.semver=15.2.0
compiler.fmips64g1520.objdumper=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.fmips64g1520.demangler=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
+compiler.fmips64g1610.exe=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gfortran
+compiler.fmips64g1610.semver=16.1.0
+compiler.fmips64g1610.objdumper=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
+compiler.fmips64g1610.demangler=/opt/compiler-explorer/mips64/gcc-16.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
################################
# GCC for MIPSEL
-group.gccmipsel.compilers=fmipselg494:fmipselg550:fmipselg950:fmipselg1210:fmipselg1220:fmipselg1230:fmipselg1240:fmipselg1250:fmipselg1310:fmipselg1320:fmipselg1330:fmipselg1340:fmipselg1410:fmipselg1420:fmipselg1430:fmipselg1510:fmipselg1520
+group.gccmipsel.compilers=fmipselg494:fmipselg550:fmipselg950:fmipselg1210:fmipselg1220:fmipselg1230:fmipselg1240:fmipselg1250:fmipselg1310:fmipselg1320:fmipselg1330:fmipselg1340:fmipselg1410:fmipselg1420:fmipselg1430:fmipselg1510:fmipselg1520:fmipselg1610
group.gccmipsel.groupName=MIPSel gfortran
group.gccmipsel.baseName=MIPSel gfortran
group.gccmipsel.compilerCategories=gfortran
@@ -1874,10 +1944,14 @@ compiler.fmipselg1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multil
compiler.fmipselg1520.semver=15.2.0
compiler.fmipselg1520.objdumper=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.fmipselg1520.demangler=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
+compiler.fmipselg1610.exe=/opt/compiler-explorer/mipsel/gcc-16.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gfortran
+compiler.fmipselg1610.semver=16.1.0
+compiler.fmipselg1610.objdumper=/opt/compiler-explorer/mipsel/gcc-16.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
+compiler.fmipselg1610.demangler=/opt/compiler-explorer/mipsel/gcc-16.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
################################
# GCC for MIPS64el
-group.gccmips64el.compilers=fmips64elg494:fmips64elg550:fmips64elg950:fmips64elg1210:fmips64elg1220:fmips64elg1230:fmips64elg1310:fmips64elg1320:fmips64elg1410:fmips64elg1330:fmips64elg1240:fmips64elg1420:fmips64elg1510:fmips64elg1430:fmips64elg1340:fmips64elg1250:fmips64elg1520
+group.gccmips64el.compilers=fmips64elg494:fmips64elg550:fmips64elg950:fmips64elg1210:fmips64elg1220:fmips64elg1230:fmips64elg1310:fmips64elg1320:fmips64elg1410:fmips64elg1330:fmips64elg1240:fmips64elg1420:fmips64elg1510:fmips64elg1430:fmips64elg1340:fmips64elg1250:fmips64elg1520:fmips64elg1610
group.gccmips64el.groupName=MIPS64el gfortran
group.gccmips64el.baseName=MIPS64el gfortran
group.gccmips64el.compilerCategories=gfortran
@@ -1965,6 +2039,10 @@ compiler.fmips64elg1520.exe=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-
compiler.fmips64elg1520.semver=15.2.0
compiler.fmips64elg1520.objdumper=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.fmips64elg1520.demangler=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
+compiler.fmips64elg1610.exe=/opt/compiler-explorer/mips64el/gcc-16.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gfortran
+compiler.fmips64elg1610.semver=16.1.0
+compiler.fmips64elg1610.objdumper=/opt/compiler-explorer/mips64el/gcc-16.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
+compiler.fmips64elg1610.demangler=/opt/compiler-explorer/mips64el/gcc-16.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
#################################
#################################
diff --git a/etc/config/gimple.amazon.properties b/etc/config/gimple.amazon.properties
index c5fe49e58..2ad1badf4 100644
--- a/etc/config/gimple.amazon.properties
+++ b/etc/config/gimple.amazon.properties
@@ -1,7 +1,7 @@
compilers=&gimplegcc86:&gimplecross:&wyrm
-defaultCompiler=gimpleg152
-demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
-objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
+defaultCompiler=gimpleg161
+demangler=/opt/compiler-explorer/gcc-16.1.0/bin/c++filt
+objdumper=/opt/compiler-explorer/gcc-16.1.0/bin/objdump
needsMulti=false
compilerType=gimple
buildenvsetup=ceconan
@@ -12,7 +12,7 @@ externalparser.exe=/usr/local/bin/asm-parser
###############################
# GCC for x86
-group.gimplegcc86.compilers=&gimplegcc86assert:gimpleg91:gimpleg92:gimpleg93:gimpleg94:gimpleg95:gimpleg101:gimpleg102:gimpleg103:gimpleg104:gimpleg105:gimpleg111:gimpleg112:gimpleg113:gimpleg114:gimpleg121:gimpleg122:gimpleg123:gimpleg124:gimpleg125:gimpleg131:gimpleg132:gimpleg133:gimpleg134:gimpleg141:gimpleg142:gimpleg143:gimpleg151:gimpleg152:gimplegsnapshot:gimplegstatic-analysis
+group.gimplegcc86.compilers=&gimplegcc86assert:gimpleg91:gimpleg92:gimpleg93:gimpleg94:gimpleg95:gimpleg101:gimpleg102:gimpleg103:gimpleg104:gimpleg105:gimpleg111:gimpleg112:gimpleg113:gimpleg114:gimpleg121:gimpleg122:gimpleg123:gimpleg124:gimpleg125:gimpleg131:gimpleg132:gimpleg133:gimpleg134:gimpleg141:gimpleg142:gimpleg143:gimpleg151:gimpleg152:gimpleg161:gimplegsnapshot:gimplegstatic-analysis
group.gimplegcc86.groupName=GCC x86-64
group.gimplegcc86.instructionSet=amd64
group.gimplegcc86.isSemVer=true
@@ -78,6 +78,8 @@ compiler.gimpleg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcc
compiler.gimpleg151.semver=15.1
compiler.gimpleg152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
compiler.gimpleg152.semver=15.2
+compiler.gimpleg161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/gcc
+compiler.gimpleg161.semver=16.1
compiler.gimplegsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc
compiler.gimplegsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -94,7 +96,7 @@ compiler.gimplegstatic-analysis.options=-fanalyzer -fdiagnostics-urls=never -fdi
compiler.gimplegstatic-analysis.notification=Experimental static analyzer; see GCC wiki page
## GCC build with "assertions" (--enable-checking=XXX)
-group.gimplegcc86assert.compilers=gimpleg103assert:gimpleg104assert:gimpleg105assert:gimpleg111assert:gimpleg112assert:gimpleg113assert:gimpleg114assert:gimpleg121assert:gimpleg122assert:gimpleg123assert:gimpleg124assert:gimpleg125assert:gimpleg131assert:gimpleg132assert:gimpleg133assert:gimpleg134assert:gimpleg141assert:gimpleg142assert:gimpleg143assert:gimpleg151assert:gimpleg152assert
+group.gimplegcc86assert.compilers=gimpleg103assert:gimpleg104assert:gimpleg105assert:gimpleg111assert:gimpleg112assert:gimpleg113assert:gimpleg114assert:gimpleg121assert:gimpleg122assert:gimpleg123assert:gimpleg124assert:gimpleg125assert:gimpleg131assert:gimpleg132assert:gimpleg133assert:gimpleg134assert:gimpleg141assert:gimpleg142assert:gimpleg143assert:gimpleg151assert:gimpleg152assert:gimpleg161assert
group.gimplegcc86assert.groupName=GCC x86-64 (assertions)
compiler.gimpleg103assert.exe=/opt/compiler-explorer/gcc-assertions-10.3.0/bin/gcc
@@ -139,6 +141,8 @@ compiler.gimpleg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/g
compiler.gimpleg151assert.semver=15.1 (assertions)
compiler.gimpleg152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gcc
compiler.gimpleg152assert.semver=15.2 (assertions)
+compiler.gimpleg161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/gcc
+compiler.gimpleg161assert.semver=16.1 (assertions)
################################
# GCC for AVR
diff --git a/etc/config/go.amazon.properties b/etc/config/go.amazon.properties
index d70a07e52..851bed25c 100644
--- a/etc/config/go.amazon.properties
+++ b/etc/config/go.amazon.properties
@@ -3,7 +3,7 @@ defaultCompiler=gl1260
objdumper=/opt/compiler-explorer/gcc-13.1.0/bin/objdump
buildenvsetup.host=https://conan.compiler-explorer.com
-group.gccgo.compilers=&gccgoassert:gccgo494:gccgo630:gccgo720:gccgo830:gccgo930:gccgo950:gccgo102:gccgo105:gccgo111:gccgo112:gccgo113:gccgo114:gccgo121:gccgo122:gccgo123:gccgo124:gccgo125:gccgo131:gccgo132:gccgo133:gccgo134:gccgo141:gccgo142:gccgo143:gccgo151:gccgo152
+group.gccgo.compilers=&gccgoassert:gccgo494:gccgo630:gccgo720:gccgo830:gccgo930:gccgo950:gccgo102:gccgo105:gccgo111:gccgo112:gccgo113:gccgo114:gccgo121:gccgo122:gccgo123:gccgo124:gccgo125:gccgo131:gccgo132:gccgo133:gccgo134:gccgo141:gccgo142:gccgo143:gccgo151:gccgo152:gccgo161
group.gccgo.isSemVer=true
group.gccgo.baseName=x86 gccgo
compiler.gccgo494.exe=/opt/compiler-explorer/gcc-4.9.4/bin/gccgo
@@ -60,9 +60,11 @@ compiler.gccgo151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gccgo
compiler.gccgo151.semver=15.1
compiler.gccgo152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gccgo
compiler.gccgo152.semver=15.2
+compiler.gccgo161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/gccgo
+compiler.gccgo161.semver=16.1
## GCC x86 build with "assertions" (--enable-checking=XXX)
-group.gccgoassert.compilers=gccgo105assert:gccgo111assert:gccgo112assert:gccgo113assert:gccgo114assert:gccgo121assert:gccgo122assert:gccgo123assert:gccgo124assert:gccgo125assert:gccgo131assert:gccgo132assert:gccgo133assert:gccgo134assert:gccgo141assert:gccgo142assert:gccgo143assert:gccgo151assert:gccgo152assert
+group.gccgoassert.compilers=gccgo105assert:gccgo111assert:gccgo112assert:gccgo113assert:gccgo114assert:gccgo121assert:gccgo122assert:gccgo123assert:gccgo124assert:gccgo125assert:gccgo131assert:gccgo132assert:gccgo133assert:gccgo134assert:gccgo141assert:gccgo142assert:gccgo143assert:gccgo151assert:gccgo152assert:gccgo161assert
group.gccgoassert.groupName=x86 gccgo (assertions)
compiler.gccgo105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/gccgo
@@ -103,6 +105,8 @@ compiler.gccgo151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcc
compiler.gccgo151assert.semver=15.1 (assertions)
compiler.gccgo152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gccgo
compiler.gccgo152assert.semver=15.2 (assertions)
+compiler.gccgo161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/gccgo
+compiler.gccgo161assert.semver=16.1 (assertions)
group.gl.compilers=&x86gl:&armgl:&mipsgl:&ppcgl:&riscvgl:&s390xgl:&wasmgl
group.gl.versionFlag=version
diff --git a/etc/config/hlsl.amazon.properties b/etc/config/hlsl.amazon.properties
index e47f0481c..8c6c7b3e1 100644
--- a/etc/config/hlsl.amazon.properties
+++ b/etc/config/hlsl.amazon.properties
@@ -1,6 +1,6 @@
compilers=&dxc:&rga:&clang:godbolt.org@443/winprod
-group.dxc.compilers=dxc_trunk:dxc_1_6_2112:dxc_1_7_2207:dxc_1_7_2212:dxc_1_7_2308:dxc_1_8_2306:dxc_1_8_2403:dxc_1_8_2403_1:dxc_1_8_2403_2:dxc_1_8_2405:dxc_1_8_2407:dxc_1_8_2502:dxc_1_8_2505:dxc_1_8_2505_1:dxc_1_9_2602
+group.dxc.compilers=dxc_trunk:dxc_1_6_2112:dxc_1_7_2207:dxc_1_7_2212:dxc_1_7_2308:dxc_1_8_2306:dxc_1_8_2403:dxc_1_8_2403_1:dxc_1_8_2403_2:dxc_1_8_2405:dxc_1_8_2407:dxc_1_8_2502:dxc_1_8_2505:dxc_1_8_2505_1:dxc_1_9_2602:dxc_1_10_2605_2
group.dxc.groupName=DXC
group.dxc.isSemVer=true
group.dxc.baseName=DXC
@@ -36,6 +36,8 @@ compiler.dxc_1_8_2505_1.exe=/opt/compiler-explorer/dxc-1.8.2505.1/bin/dxc
compiler.dxc_1_8_2505_1.semver=1.8.2505.1
compiler.dxc_1_9_2602.exe=/opt/compiler-explorer/dxc-1.9.2602/bin/dxc
compiler.dxc_1_9_2602.semver=1.9.2602
+compiler.dxc_1_10_2605_2.exe=/opt/compiler-explorer/dxc-1.10.2605.2/bin/dxc
+compiler.dxc_1_10_2605_2.semver=1.10.2605.2
group.rga.compilers=rga262_dxctrunk:rga262_dxc172207:rga262_dxc162112:rga261_dxc172207:rga261_dxc162112:rga290_dxctrunk
group.rga.groupName=RGA
diff --git a/etc/config/modula2.amazon.properties b/etc/config/modula2.amazon.properties
index 3fbe4e24a..384bc9ded 100644
--- a/etc/config/modula2.amazon.properties
+++ b/etc/config/modula2.amazon.properties
@@ -1,6 +1,6 @@
# Default settings for modula2
compilers=&gm2
-defaultCompiler=gm2152
+defaultCompiler=gm2161
demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
@@ -15,7 +15,7 @@ needsMulti=false
externalparser=CEAsmParser
externalparser.exe=/usr/local/bin/asm-parser
-group.gm2.compilers=&gm2assert:gm2131:gm2132:gm2133:gm2134:gm2141:gm2142:gm2143:gm2151:gm2152:gm2snapshot
+group.gm2.compilers=&gm2assert:gm2131:gm2132:gm2133:gm2134:gm2141:gm2142:gm2143:gm2151:gm2152:gm2161:gm2snapshot
group.gm2.compilerType=gm2
group.gm2.instructionSet=amd64
group.gm2.isSemVer=true
@@ -40,12 +40,14 @@ compiler.gm2151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gm2
compiler.gm2151.semver=15.1
compiler.gm2152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gm2
compiler.gm2152.semver=15.2
+compiler.gm2161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/gm2
+compiler.gm2161.semver=16.1
compiler.gm2snapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gm2
compiler.gm2snapshot.semver=(snapshot)
## GFORTRAN x86 build with "assertions" (--enable-checking=XXX)
-group.gm2assert.compilers=gm2131assert:gm2132assert:gm2133assert:gm2134assert:gm2141assert:gm2142assert:gm2143assert:gm2151assert:gm2152assert
+group.gm2assert.compilers=gm2131assert:gm2132assert:gm2133assert:gm2134assert:gm2141assert:gm2142assert:gm2143assert:gm2151assert:gm2152assert:gm2161assert
group.gm2assert.groupName=GM2 x86-64 (assertions)
compiler.gm2131assert.exe=/opt/compiler-explorer/gcc-assertions-13.1.0/bin/gm2
@@ -66,3 +68,5 @@ compiler.gm2151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gm2
compiler.gm2151assert.semver=15.1 (assertions)
compiler.gm2152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gm2
compiler.gm2152assert.semver=15.2 (assertions)
+compiler.gm2161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/gm2
+compiler.gm2161assert.semver=16.1 (assertions)
diff --git a/etc/config/objc++.amazon.properties b/etc/config/objc++.amazon.properties
index afd22b97d..3ca1fe78c 100644
--- a/etc/config/objc++.amazon.properties
+++ b/etc/config/objc++.amazon.properties
@@ -1,7 +1,7 @@
compilers=&objcppgcc86:&objcppcross
-defaultCompiler=objcppg152
-demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
-objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
+defaultCompiler=objcppg161
+demangler=/opt/compiler-explorer/gcc-16.1.0/bin/c++filt
+objdumper=/opt/compiler-explorer/gcc-16.1.0/bin/objdump
needsMulti=false
buildenvsetup=ceconan
@@ -14,7 +14,7 @@ llvmDisassembler=/opt/compiler-explorer/clang-19.1.0/bin/llvm-dis
###############################
# GCC for x86
-group.objcppgcc86.compilers=&objcppgcc86assert:objcppg105:objcppg114:objcppg122:objcppg123:objcppg124:objcppg125:objcppg131:objcppg132:objcppg133:objcppg134:objcppg141:objcppg142:objcppg143:objcppg151:objcppg152:objcppgsnapshot
+group.objcppgcc86.compilers=&objcppgcc86assert:objcppg105:objcppg114:objcppg122:objcppg123:objcppg124:objcppg125:objcppg131:objcppg132:objcppg133:objcppg134:objcppg141:objcppg142:objcppg143:objcppg151:objcppg152:objcppg161:objcppgsnapshot
group.objcppgcc86.groupName=GCC x86-64
group.objcppgcc86.instructionSet=amd64
group.objcppgcc86.baseName=x86-64 gcc
@@ -70,6 +70,8 @@ compiler.objcppg151.semver=15.1
compiler.objcppg152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/g++
compiler.objcppg152.semver=15.2
+compiler.objcppg161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/g++
+compiler.objcppg161.semver=16.1
compiler.objcppgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/g++
compiler.objcppgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -79,7 +81,7 @@ compiler.objcppgsnapshot.isNightly=true
## OBJC++ GCC x86 build with "assertions" (--enable-checking=XXX)
group.objcppgcc86assert.groupName=GCC x86-64 (assertions)
-group.objcppgcc86assert.compilers=objcppg105assert:objcppg114assert:objcppg122assert:objcppg123assert:objcppg124assert:objcppg125assert:objcppg131assert:objcppg132assert:objcppg133assert:objcppg134assert:objcppg141assert:objcppg142assert:objcppg143assert:objcppg151assert:objcppg152assert
+group.objcppgcc86assert.compilers=objcppg105assert:objcppg114assert:objcppg122assert:objcppg123assert:objcppg124assert:objcppg125assert:objcppg131assert:objcppg132assert:objcppg133assert:objcppg134assert:objcppg141assert:objcppg142assert:objcppg143assert:objcppg151assert:objcppg152assert:objcppg161assert
compiler.objcppg105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/g++
compiler.objcppg105assert.semver=10.5 (assertions)
@@ -125,6 +127,8 @@ compiler.objcppg151assert.semver=15.1 (assertions)
compiler.objcppg152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/g++
compiler.objcppg152assert.semver=15.2 (assertions)
+compiler.objcppg161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/g++
+compiler.objcppg161assert.semver=16.1 (assertions)
group.objcppcross.compilers=&objcppgccs
diff --git a/etc/config/objc.amazon.properties b/etc/config/objc.amazon.properties
index 14d91322f..e5b16cc72 100644
--- a/etc/config/objc.amazon.properties
+++ b/etc/config/objc.amazon.properties
@@ -1,7 +1,7 @@
compilers=&objcgcc86:&objccross
-defaultCompiler=objcg152
-demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
-objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
+defaultCompiler=objcg161
+demangler=/opt/compiler-explorer/gcc-16.1.0/bin/c++filt
+objdumper=/opt/compiler-explorer/gcc-16.1.0/bin/objdump
needsMulti=false
externalparser=CEAsmParser
@@ -9,7 +9,7 @@ externalparser.exe=/usr/local/bin/asm-parser
###############################
# GCC for x86
-group.objcgcc86.compilers=&objcgcc86assert:objcg346:objcg404:objcg650:objcg105:objcg114:objcg122:objcg123:objcg124:objcg125:objcg131:objcg132:objcg133:objcg134:objcg141:objcg142:objcg143:objcg151:objcg152:objcgsnapshot
+group.objcgcc86.compilers=&objcgcc86assert:objcg346:objcg404:objcg650:objcg105:objcg114:objcg122:objcg123:objcg124:objcg125:objcg131:objcg132:objcg133:objcg134:objcg141:objcg142:objcg143:objcg151:objcg152:objcg161:objcgsnapshot
group.objcgcc86.groupName=GCC x86-64
group.objcgcc86.instructionSet=amd64
group.objcgcc86.isSemVer=true
@@ -72,6 +72,8 @@ compiler.objcg151.semver=15.1
compiler.objcg152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
compiler.objcg152.semver=15.2
+compiler.objcg161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/gcc
+compiler.objcg161.semver=16.1
compiler.objcgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc
compiler.objcgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -80,7 +82,7 @@ compiler.objcgsnapshot.semver=(trunk)
compiler.objcgsnapshot.isNightly=true
## OBJC GCC x86 build with "assertions" (--enable-checking=XXX)
-group.objcgcc86assert.compilers=objcg105assert:objcg114assert:objcg122assert:objcg123assert:objcg124assert:objcg125assert:objcg131assert:objcg132assert:objcg133assert:objcg134assert:objcg141assert:objcg142assert:objcg143assert:objcg151assert:objcg152assert
+group.objcgcc86assert.compilers=objcg105assert:objcg114assert:objcg122assert:objcg123assert:objcg124assert:objcg125assert:objcg131assert:objcg132assert:objcg133assert:objcg134assert:objcg141assert:objcg142assert:objcg143assert:objcg151assert:objcg152assert:objcg161assert
group.objcgcc86assert.groupName=GCC x86-64 (assertions)
compiler.objcg105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/gcc
@@ -127,6 +129,8 @@ compiler.objcg151assert.semver=15.1 (assertions)
compiler.objcg152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gcc
compiler.objcg152assert.semver=15.2 (assertions)
+compiler.objcg161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/gcc
+compiler.objcg161assert.semver=16.1 (assertions)
###############################
# Cross Compilers
diff --git a/etc/config/odin.amazon.properties b/etc/config/odin.amazon.properties
index 943b02e35..488a3ac5b 100644
--- a/etc/config/odin.amazon.properties
+++ b/etc/config/odin.amazon.properties
@@ -1,13 +1,13 @@
compilers=&odin
compilerType=odin
-defaultCompiler=odin202603
+defaultCompiler=odin202604
supportsBinary=true
supportsExecute=true
objdumper=/opt/compiler-explorer/gcc-14.2.0/bin/objdump
clangPath=/opt/compiler-explorer/clang-19.1.0/bin/clang
-group.odin.compilers=odin202411:odin202501:odin202512a:odin202601:odin202602:odin202603
+group.odin.compilers=odin202411:odin202501:odin202512a:odin202601:odin202602:odin202603:odin202604
group.odin.isSemVer=false
group.odin.baseName=odin
@@ -28,3 +28,6 @@ compiler.odin202602.name=Odin (2026-02)
compiler.odin202603.exe=/opt/compiler-explorer/odin-dev-2026-03/odin
compiler.odin202603.name=Odin (2026-03)
+
+compiler.odin202604.exe=/opt/compiler-explorer/odin-dev-2026-04/odin
+compiler.odin202604.name=Odin (2026-04)
diff --git a/etc/config/perl.amazon.properties b/etc/config/perl.amazon.properties
index cb444bf6a..44d73b8cb 100644
--- a/etc/config/perl.amazon.properties
+++ b/etc/config/perl.amazon.properties
@@ -5,17 +5,48 @@ supportsBinary=false
compilerType=perl
versionFlag=-v
-group.perl.compilers=perl589:perl5385:perl5421
+group.perl.compilers=perl5422:perl5421:perl5403:perl5385:perl5363:perl5343:perl5321:perl5303:perl5283:perl5263:perl5244:perl5224:perl5203:perl5184:perl5163:perl5144:perl5101:perl589
group.perl.isSemVer=true
-compiler.perl589.exe=/opt/compiler-explorer/perl-5.8.9/bin/perl
+group.perl.baseName=Perl
+group.perl.groupName=Perl
+group.perl.compilerType=perl
+
compiler.perl589.semver=5.8.9
-compiler.perl589.name=Perl 5.8.9
-compiler.perl5385.exe=/opt/compiler-explorer/perl-5.38.5/bin/perl
+compiler.perl589.exe=/opt/compiler-explorer/perl-5.8.9/bin/perl
+compiler.perl5101.semver=5.10.1
+compiler.perl5101.exe=/opt/compiler-explorer/perl-5.10.1/bin/perl
+compiler.perl5144.semver=5.14.4
+compiler.perl5144.exe=/opt/compiler-explorer/perl-5.14.4/bin/perl
+compiler.perl5163.semver=5.16.3
+compiler.perl5163.exe=/opt/compiler-explorer/perl-5.16.3/bin/perl
+compiler.perl5184.semver=5.18.4
+compiler.perl5184.exe=/opt/compiler-explorer/perl-5.18.4/bin/perl
+compiler.perl5203.semver=5.20.3
+compiler.perl5203.exe=/opt/compiler-explorer/perl-5.20.3/bin/perl
+compiler.perl5224.semver=5.22.4
+compiler.perl5224.exe=/opt/compiler-explorer/perl-5.22.4/bin/perl
+compiler.perl5244.semver=5.24.4
+compiler.perl5244.exe=/opt/compiler-explorer/perl-5.24.4/bin/perl
+compiler.perl5263.semver=5.26.3
+compiler.perl5263.exe=/opt/compiler-explorer/perl-5.26.3/bin/perl
+compiler.perl5283.semver=5.28.3
+compiler.perl5283.exe=/opt/compiler-explorer/perl-5.28.3/bin/perl
+compiler.perl5303.semver=5.30.3
+compiler.perl5303.exe=/opt/compiler-explorer/perl-5.30.3/bin/perl
+compiler.perl5321.semver=5.32.1
+compiler.perl5321.exe=/opt/compiler-explorer/perl-5.32.1/bin/perl
+compiler.perl5343.semver=5.34.3
+compiler.perl5343.exe=/opt/compiler-explorer/perl-5.34.3/bin/perl
+compiler.perl5363.semver=5.36.3
+compiler.perl5363.exe=/opt/compiler-explorer/perl-5.36.3/bin/perl
compiler.perl5385.semver=5.38.5
-compiler.perl5385.name=Perl 5.38.5
-compiler.perl5421.exe=/opt/compiler-explorer/perl-5.42.1/bin/perl
+compiler.perl5385.exe=/opt/compiler-explorer/perl-5.38.5/bin/perl
+compiler.perl5403.semver=5.40.3
+compiler.perl5403.exe=/opt/compiler-explorer/perl-5.40.3/bin/perl
compiler.perl5421.semver=5.42.1
-compiler.perl5421.name=Perl 5.42.1
+compiler.perl5421.exe=/opt/compiler-explorer/perl-5.42.1/bin/perl
+compiler.perl5422.semver=5.42.2
+compiler.perl5422.exe=/opt/compiler-explorer/perl-5.42.2/bin/perl
interpreted=true
supportsExecute=true
diff --git a/etc/config/rust.amazon.properties b/etc/config/rust.amazon.properties
index d22329cc1..85e934cde 100644
--- a/etc/config/rust.amazon.properties
+++ b/etc/config/rust.amazon.properties
@@ -1,14 +1,14 @@
-compilers=&rust:&rustgcc:&mrustc:&rustccggcc
-objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
-linker=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
+compilers=&rust:&rustgcc:&mrustc:&rustccggcc:&rustccgcranelift
+objdumper=/opt/compiler-explorer/gcc-16.1.0/bin/objdump
+linker=/opt/compiler-explorer/gcc-16.1.0/bin/gcc
aarch64linker=/opt/compiler-explorer/arm64/gcc-14.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
-defaultCompiler=r1940
+defaultCompiler=r1950
demangler=/opt/compiler-explorer/demanglers/rust/bin/rustfilt
buildenvsetup=ceconan-rust
buildenvsetup.host=https://conan.compiler-explorer.com
-group.rust.compilers=r1940:r1930:r1920:r1910:r1900:r1890:r1880:r1870:r1860:r1850:r1840:r1830:r1820:r1810:r1800:r1790:r1780:r1770:r1760:r1750:r1740:r1730:r1720:r1710:r1700:r1690:r1680:r1670:r1660:r1650:r1640:r1630:r1620:r1610:r1600:r1590:r1580:r1570:r1560:r1550:r1540:r1530:r1520:r1510:r1500:r1490:r1480:r1470:r1460:r1452:r1450:r1440:r1430:r1420:r1410:r1400:r1390:r1380:r1370:r1360:r1350:r1340:r1330:r1320:r1310:r1300:r1290:r1280:r1271:r1270:r1260:r1250:r1240:r1230:r1220:r1210:r1200:r1190:r1180:r1170:r1160:r1151:r1140:r1130:r1120:r1110:r1100:r190:r180:r170:r160:r150:r140:r130:r120:r110:r100:nightly:beta
+group.rust.compilers=r1950:r1940:r1930:r1920:r1910:r1900:r1890:r1880:r1870:r1860:r1850:r1840:r1830:r1820:r1810:r1800:r1790:r1780:r1770:r1760:r1750:r1740:r1730:r1720:r1710:r1700:r1690:r1680:r1670:r1660:r1650:r1640:r1630:r1620:r1610:r1600:r1590:r1580:r1570:r1560:r1550:r1540:r1530:r1520:r1510:r1500:r1490:r1480:r1470:r1460:r1452:r1450:r1440:r1430:r1420:r1410:r1400:r1390:r1380:r1370:r1360:r1350:r1340:r1330:r1320:r1310:r1300:r1290:r1280:r1271:r1270:r1260:r1250:r1240:r1230:r1220:r1210:r1200:r1190:r1180:r1170:r1160:r1151:r1140:r1130:r1120:r1110:r1100:r190:r180:r170:r160:r150:r140:r130:r120:r110:r100:nightly:beta
group.rust.compilerType=rust
group.rust.isSemVer=true
group.rust.unwiseOptions=-Ctarget-cpu=native|target-cpu=native
@@ -21,6 +21,9 @@ group.rust.supportsBinaryObject=true
group.rust.supportsClippy=true
# Rust 1.83+ needs `libPath` for execution with dynamically linked standard library
# see https://github.com/compiler-explorer/compiler-explorer/pull/7367
+compiler.r1950.exe=/opt/compiler-explorer/rust-1.95.0/bin/rustc
+compiler.r1950.semver=1.95.0
+compiler.r1950.libPath=${exePath}/../lib/rustlib/x86_64-unknown-linux-gnu/lib
compiler.r1940.exe=/opt/compiler-explorer/rust-1.94.0/bin/rustc
compiler.r1940.semver=1.94.0
compiler.r1940.libPath=${exePath}/../lib/rustlib/x86_64-unknown-linux-gnu/lib
@@ -251,7 +254,7 @@ group.rustgcc.options=-frust-incomplete-and-experimental-compiler-do-not-use
group.rustgcc.notification=Rust GCC Frontend - Very early snapshot
# native compiler
-group.gcc86.compilers=&gccrsassert:gccrs-snapshot:gccrs-g141:gccrs-g142:gccrs-g143:gccrs-g151:gccrs-g152:gcc-snapshot
+group.gcc86.compilers=&gccrsassert:gccrs-snapshot:gccrs-g141:gccrs-g142:gccrs-g143:gccrs-g151:gccrs-g152:gccrs-g161:gcc-snapshot
group.gcc86.groupName=x86-64 GCCRS
group.gcc86.baseName=x86-64 GCCRS
group.gcc86.unwiseOptions=-march=native
@@ -270,6 +273,8 @@ compiler.gccrs-g151.semver=15.1 (GCC)
compiler.gccrs-g152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gccrs
compiler.gccrs-g152.semver=15.2 (GCC)
+compiler.gccrs-g161.exe=/opt/compiler-explorer/gcc-16.1.0/bin/gccrs
+compiler.gccrs-g161.semver=16.1 (GCC)
compiler.gcc-snapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gccrs
compiler.gcc-snapshot.semver=(GCC master)
@@ -280,7 +285,7 @@ compiler.gccrs-snapshot.semver=(GCCRS master)
compiler.gccrs-snapshot.isNightly=true
## GCC (from upstream GCC, not GCCRS github) x86 build with "assertions" (--enable-checking=XXX)
-group.gccrsassert.compilers=gccrs-g141assert:gccrs-g142assert:gccrs-g143assert:gccrs-g151assert:gccrs-g152assert
+group.gccrsassert.compilers=gccrs-g141assert:gccrs-g142assert:gccrs-g143assert:gccrs-g151assert:gccrs-g152assert:gccrs-g161assert
group.gccrsassert.groupName=x86-64 GCC (assertions)
compiler.gccrs-g141assert.exe=/opt/compiler-explorer/gcc-assertions-14.1.0/bin/gccrs
@@ -297,6 +302,8 @@ compiler.gccrs-g151assert.semver=15.1 (GCC assertions)
compiler.gccrs-g152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gccrs
compiler.gccrs-g152assert.semver=15.2 (GCC assertions)
+compiler.gccrs-g161assert.exe=/opt/compiler-explorer/gcc-assertions-16.1.0/bin/gccrs
+compiler.gccrs-g161assert.semver=16.1 (GCC assertions)
# cross compilers
group.gcccross.compilers=&rustgccbpf
@@ -313,15 +320,28 @@ compiler.rustbpfgtrunk.demangler=/opt/compiler-explorer/bpf/gcc-trunk/bpf-unknow
compiler.rustbpfgtrunk.semver=(trunk)
compiler.rustbpfgtrunk.isNightly=true
+# Rustc CG Cranelift (Cranelift backend for rustc compiler)
+group.rustccgcranelift.compilers=rustccgcranelift-nightly
+group.rustccgcranelift.compilerType=rustc-cg-cranelift
+group.rustccgcranelift.supportsBinary=true
+group.rustccgcranelift.supportsBinaryObject=true
+group.rustccgcranelift.options=-Zcodegen-backend=cranelift
+group.rustccgcranelift.unwiseOptions=-Ctarget-cpu=native|target-cpu=native
+compiler.rustccgcranelift-nightly.exe=/opt/compiler-explorer/rust-nightly/bin/rustc
+compiler.rustccgcranelift-nightly.name=rustc-cg-cranelift (nightly)
+compiler.rustccgcranelift-nightly.semver=nightly
+compiler.rustccgcranelift-nightly.isNightly=true
+compiler.rustccgcranelift-nightly.libPath=${exePath}/../lib/rustlib/x86_64-unknown-linux-gnu/lib
+
# Rustc CG GCC (GCC backend for rustc compiler)
group.rustccggcc.compilers=rustccggcc-master
group.rustccggcc.compilerType=rustc-cg-gcc
group.rustccggcc.supportsBinary=true
group.rustccggcc.supportsBinaryObject=true
group.rustccggcc.unwiseOptions=-Ctarget-cpu=native|target-cpu=native
-compiler.rustccggcc-master.exe=/opt/compiler-explorer/rustc-cg-gcc-master/bin/rustc
+compiler.rustccggcc-master.exe=/opt/compiler-explorer/rust-nightly/bin/rustc
compiler.rustccggcc-master.name=rustc-cg-gcc (master)
-compiler.rustccggcc-master.libPath=${exePath}/../sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib
+compiler.rustccggcc-master.libPath=${exePath}/../lib/rustlib/x86_64-unknown-linux-gnu/lib
compiler.rustccggcc-master.isNightly=true
# mrustc (compiler used to bootstrap rustc)
diff --git a/etc/config/solidity.amazon.properties b/etc/config/solidity.amazon.properties
index 315bfa2a8..4d2a58c56 100644
--- a/etc/config/solidity.amazon.properties
+++ b/etc/config/solidity.amazon.properties
@@ -62,7 +62,7 @@ compiler.solx012.name=solx 0.1.2
# The Resolc compiler supports compiling both Solidity and Yul (Solidity IR), thus
# the same compiler is used for both languages. The compiler config IDs will clash
# if they are not unique, therefore the IDs contain either 'yul' or 'sol'.
-group.resolc.compilers=resolc040_sol:resolc050_sol:resolc060_sol
+group.resolc.compilers=resolc040_sol:resolc050_sol:resolc060_sol:resolc100_sol:resolc110_sol
group.resolc.compilerType=resolc
group.resolc.objdumper=/opt/compiler-explorer/clang-21.1.0/bin/llvm-objdump
group.resolc.objdumperType=llvm
@@ -72,18 +72,22 @@ group.resolc.intelAsm=false
group.resolc.supportsBinaryObject=true
group.resolc.supportsBinary=false
group.resolc.supportsExecute=false
+group.resolc.instructionSet=riscv64
compiler.resolc040_sol.exe=/opt/compiler-explorer/resolc-0.4.0/resolc
compiler.resolc040_sol.semver=0.4.0
compiler.resolc040_sol.name=resolc 0.4.0
-compiler.resolc040_sol.instructionSet=riscv64
compiler.resolc050_sol.exe=/opt/compiler-explorer/resolc-0.5.0/resolc
compiler.resolc050_sol.semver=0.5.0
compiler.resolc050_sol.name=resolc 0.5.0
-compiler.resolc050_sol.instructionSet=riscv64
compiler.resolc060_sol.exe=/opt/compiler-explorer/resolc-0.6.0/resolc
compiler.resolc060_sol.semver=0.6.0
compiler.resolc060_sol.name=resolc 0.6.0
-compiler.resolc060_sol.instructionSet=riscv64
+compiler.resolc100_sol.exe=/opt/compiler-explorer/resolc-1.0.0/resolc
+compiler.resolc100_sol.semver=1.0.0
+compiler.resolc100_sol.name=resolc 1.0.0
+compiler.resolc110_sol.exe=/opt/compiler-explorer/resolc-1.1.0/resolc
+compiler.resolc110_sol.semver=1.1.0
+compiler.resolc110_sol.name=resolc 1.1.0
#################################
#################################
diff --git a/etc/config/solidity.defaults.properties b/etc/config/solidity.defaults.properties
index 7ab9ef456..b83920265 100644
--- a/etc/config/solidity.defaults.properties
+++ b/etc/config/solidity.defaults.properties
@@ -24,9 +24,9 @@ compiler.solx.compilerType=solx
compiler.solx.instructionSet=evm
compiler.solx.isSemVer=true
-group.resolc.compilers=resolc060_sol
+group.resolc.compilers=resolc110_sol
group.resolc.compilerType=resolc
-group.resolc.objdumper=/usr/local/bin/llvm-objdump
+group.resolc.objdumper=/opt/compiler-explorer/clang-21.1.0/bin/llvm-objdump
group.resolc.objdumperType=llvm
group.resolc.isSemver=true
group.resolc.versionFlag=--version
@@ -34,10 +34,10 @@ group.resolc.intelAsm=false
group.resolc.supportsBinaryObject=true
group.resolc.supportsBinary=false
group.resolc.supportsExecute=false
-compiler.resolc060_sol.exe=/opt/compiler-explorer/resolc-0.6.0/resolc
-compiler.resolc060_sol.semver=0.6.0
-compiler.resolc060_sol.name=resolc 0.6.0
-compiler.resolc060_sol.instructionSet=riscv64
+group.resolc.instructionSet=riscv64
+compiler.resolc110_sol.exe=/opt/compiler-explorer/resolc-1.1.0/resolc
+compiler.resolc110_sol.semver=1.1.0
+compiler.resolc110_sol.name=resolc 1.1.0
#################################
#################################
diff --git a/etc/config/spice.amazon.properties b/etc/config/spice.amazon.properties
index f14da79bc..72aebbd8e 100644
--- a/etc/config/spice.amazon.properties
+++ b/etc/config/spice.amazon.properties
@@ -1,7 +1,7 @@
compilers=&spice
-defaultCompiler=spice02500
+defaultCompiler=spice02501
-group.spice.compilers=spice01902:spice01903:spice01904:spice01905:spice01906:spice02000:spice02001:spice02002:spice02003:spice02004:spice02005:spice02006:spice02100:spice02101:spice02200:spice02201:spice02202:spice02203:spice02204:spice02205:spice02300:spice02400:spice02401:spice02402:spice02403:spice02404:spice02500
+group.spice.compilers=spice01902:spice01903:spice01904:spice01905:spice01906:spice02000:spice02001:spice02002:spice02003:spice02004:spice02005:spice02006:spice02100:spice02101:spice02200:spice02201:spice02202:spice02203:spice02204:spice02205:spice02300:spice02400:spice02401:spice02402:spice02403:spice02404:spice02500:spice02501
group.spice.demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
group.spice.objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
group.spice.isSemVer=true
@@ -13,7 +13,7 @@ group.spice.licenseName=The MIT License
group.spice.licensePreamble=Copyright (c) 2021-2026 Marc Auberer
# spice needs to be able to find clang for linking
-group.spice.extraPath=/opt/compiler-explorer/clang-21.1.0/bin
+group.spice.extraPath=/opt/compiler-explorer/clang-22.1.0/bin
compiler.spice01902.exe=/opt/compiler-explorer/spice-0.19.2/spice
compiler.spice01902.semver=0.19.2
@@ -69,6 +69,8 @@ compiler.spice02404.exe=/opt/compiler-explorer/spice-0.24.4/spice
compiler.spice02404.semver=0.24.4
compiler.spice02500.exe=/opt/compiler-explorer/spice-0.25.0/spice
compiler.spice02500.semver=0.25.0
+compiler.spice02501.exe=/opt/compiler-explorer/spice-0.25.1/spice
+compiler.spice02501.semver=0.25.1
#################################
#################################
diff --git a/etc/config/sponsors.yaml b/etc/config/sponsors.yaml
index d81178c47..968696608 100644
--- a/etc/config/sponsors.yaml
+++ b/etc/config/sponsors.yaml
@@ -542,3 +542,5 @@ levels:
- Christopher Oelsner
- Luis Felipe Gomes
- Brian Tabone
+ - Alex Besogonov
+ - fourish tolod
diff --git a/etc/config/swift.amazon.properties b/etc/config/swift.amazon.properties
index dd0836226..77c3be528 100644
--- a/etc/config/swift.amazon.properties
+++ b/etc/config/swift.amazon.properties
@@ -1,6 +1,6 @@
compilers=&swift:&arm-swift
-demangler=/opt/compiler-explorer/swift-6.2/usr/bin/swift-demangle
-defaultCompiler=swift62
+demangler=/opt/compiler-explorer/swift-6.3/usr/bin/swift-demangle
+defaultCompiler=swift63
objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
#################################
@@ -8,13 +8,13 @@ objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
#################################
# swift (x86_64)
-group.swift.compilers=swift62:swift61:swift603:swift510:swift59:swift58:swift57:swift56:swift55:swift54:swift53:swift52:swift51:swift50:swift42:swift412:swift411:swift41:swift403:swift402:swift311:swiftdevsnapshot:swiftnightly
+group.swift.compilers=swift63:swift624:swift62:swift61:swift603:swift510:swift59:swift58:swift57:swift56:swift55:swift54:swift53:swift52:swift51:swift50:swift42:swift412:swift411:swift41:swift403:swift402:swift311:swift221:swift22:swiftdevsnapshot:swiftnightly
group.swift.isSemVer=true
group.swift.groupName=swift (x86-64)
group.swift.baseName=x86-64 swiftc
# arm-swift (aarch64)
-group.arm-swift.compilers=arm-swift62:arm-swift61:arm-swift603
+group.arm-swift.compilers=arm-swift63:arm-swift624:arm-swift62:arm-swift61:arm-swift603
group.arm-swift.isSemVer=true
group.arm-swift.groupName=swift (aarch64)
group.arm-swift.baseName=aarch64 swiftc
@@ -38,6 +38,12 @@ compiler.swiftdevsnapshot.semver=devsnapshot
# 6.x (x86)
+compiler.swift63.exe=/opt/compiler-explorer/swift-6.3/usr/bin/swiftc
+compiler.swift63.semver=6.3
+
+compiler.swift624.exe=/opt/compiler-explorer/swift-6.2.4/usr/bin/swiftc
+compiler.swift624.semver=6.2.4
+
compiler.swift62.exe=/opt/compiler-explorer/swift-6.2/usr/bin/swiftc
compiler.swift62.semver=6.2
@@ -49,6 +55,14 @@ compiler.swift603.semver=6.0.3
# 6.x (arm)
+compiler.arm-swift63.exe=/opt/compiler-explorer/swift-6.3/usr/bin/swiftc
+compiler.arm-swift63.semver=6.3
+compiler.arm-swift63.options=-target aarch64-swift-linux-musl -sdk /opt/compiler-explorer/swift-6.3-static-sdk/swift-linux-musl/musl-1.2.5.sdk/aarch64 -resource-dir /opt/compiler-explorer/swift-6.3-static-sdk/swift-linux-musl/musl-1.2.5.sdk/aarch64/usr/lib/swift_static
+
+compiler.arm-swift624.exe=/opt/compiler-explorer/swift-6.2.4/usr/bin/swiftc
+compiler.arm-swift624.semver=6.2.4
+compiler.arm-swift624.options=-target aarch64-swift-linux-musl -sdk /opt/compiler-explorer/swift-6.2.4-static-sdk/swift-linux-musl/musl-1.2.5.sdk/aarch64 -resource-dir /opt/compiler-explorer/swift-6.2.4-static-sdk/swift-linux-musl/musl-1.2.5.sdk/aarch64/usr/lib/swift_static
+
compiler.arm-swift62.exe=/opt/compiler-explorer/swift-6.2/usr/bin/swiftc
compiler.arm-swift62.semver=6.2
compiler.arm-swift62.options=-target aarch64-swift-linux-musl -sdk /opt/compiler-explorer/swift-6.2-static-sdk/swift-linux-musl/musl-1.2.5.sdk/aarch64 -resource-dir /opt/compiler-explorer/swift-6.2-static-sdk/swift-linux-musl/musl-1.2.5.sdk/aarch64/usr/lib/swift_static
@@ -130,6 +144,16 @@ compiler.swift311.exe=/opt/compiler-explorer/swift-3.1.1/usr/bin/swiftc
compiler.swift311.semver=3.1.1
compiler.swift311.supportsBinary=false
+# 2.x
+
+compiler.swift221.exe=/opt/compiler-explorer/swift-2.2.1/usr/bin/swiftc
+compiler.swift221.semver=2.2.1
+compiler.swift221.supportsBinary=false
+
+compiler.swift22.exe=/opt/compiler-explorer/swift-2.2/usr/bin/swiftc
+compiler.swift22.semver=2.2
+compiler.swift22.supportsBinary=false
+
#################################
#################################
# Installed libs (See c++.amazon.properties for a scheme of libs group)
diff --git a/etc/config/triton.amazon.properties b/etc/config/triton.amazon.properties
index 346ddc206..fee386896 100644
--- a/etc/config/triton.amazon.properties
+++ b/etc/config/triton.amazon.properties
@@ -1,5 +1,5 @@
compilers=&triton_nvidia:&triton_amd
-defaultCompiler=triton_nvidia_340
+defaultCompiler=triton_nvidia_360
compilerType=triton
interpreted=true
supportsBinary=false
@@ -7,10 +7,19 @@ supportsExecute=false
isSemVer=true
notification=Experimental Triton support on Compiler Explorer. For tutorials, bugs reports, and feature requests, please visit here.
-group.triton_nvidia.compilers=triton_nvidia_340:triton_nvidia_331:triton_nvidia_330:triton_nvidia_320:triton_nvidia_310:triton_nvidia_300:triton_nvidia_231:triton_nvidia_230
+group.triton_nvidia.compilers=triton_nvidia_360:triton_nvidia_351:triton_nvidia_350:triton_nvidia_340:triton_nvidia_331:triton_nvidia_330:triton_nvidia_320:triton_nvidia_310:triton_nvidia_300:triton_nvidia_231:triton_nvidia_230
group.triton_nvidia.groupName=Triton (Nvidia)
group.triton_nvidia.options=--backend cuda --arch 90 --warp_size 32
+compiler.triton_nvidia_360.name=Triton 3.6.0 (Nvidia)
+compiler.triton_nvidia_360.exe=/opt/compiler-explorer/triton/v3.6.0/bin/python3
+
+compiler.triton_nvidia_351.name=Triton 3.5.1 (Nvidia)
+compiler.triton_nvidia_351.exe=/opt/compiler-explorer/triton/v3.5.1/bin/python3
+
+compiler.triton_nvidia_350.name=Triton 3.5.0 (Nvidia)
+compiler.triton_nvidia_350.exe=/opt/compiler-explorer/triton/v3.5.0/bin/python3
+
compiler.triton_nvidia_340.name=Triton 3.4.0 (Nvidia)
compiler.triton_nvidia_340.exe=/opt/compiler-explorer/triton/v3.4.0/bin/python3
@@ -35,10 +44,19 @@ compiler.triton_nvidia_231.exe=/opt/compiler-explorer/triton/v2.3.1/bin/python3
compiler.triton_nvidia_230.name=Triton 2.3.0 (Nvidia)
compiler.triton_nvidia_230.exe=/opt/compiler-explorer/triton/v2.3.0/bin/python3
-group.triton_amd.compilers=triton_amd_340:triton_amd_331:triton_amd_330:triton_amd_320:triton_amd_310:triton_amd_300
+group.triton_amd.compilers=triton_amd_360:triton_amd_351:triton_amd_350:triton_amd_340:triton_amd_331:triton_amd_330:triton_amd_320:triton_amd_310:triton_amd_300
group.triton_amd.groupName=Triton (AMD)
group.triton_amd.options=--backend hip --arch gfx942 --warp_size 32
+compiler.triton_amd_360.name=Triton 3.6.0 (AMD)
+compiler.triton_amd_360.exe=/opt/compiler-explorer/triton/v3.6.0/bin/python3
+
+compiler.triton_amd_351.name=Triton 3.5.1 (AMD)
+compiler.triton_amd_351.exe=/opt/compiler-explorer/triton/v3.5.1/bin/python3
+
+compiler.triton_amd_350.name=Triton 3.5.0 (AMD)
+compiler.triton_amd_350.exe=/opt/compiler-explorer/triton/v3.5.0/bin/python3
+
compiler.triton_amd_340.name=Triton 3.4.0 (AMD)
compiler.triton_amd_340.exe=/opt/compiler-explorer/triton/v3.4.0/bin/python3
diff --git a/etc/config/triton.defaults.properties b/etc/config/triton.defaults.properties
index 346ddc206..fee386896 100644
--- a/etc/config/triton.defaults.properties
+++ b/etc/config/triton.defaults.properties
@@ -1,5 +1,5 @@
compilers=&triton_nvidia:&triton_amd
-defaultCompiler=triton_nvidia_340
+defaultCompiler=triton_nvidia_360
compilerType=triton
interpreted=true
supportsBinary=false
@@ -7,10 +7,19 @@ supportsExecute=false
isSemVer=true
notification=Experimental Triton support on Compiler Explorer. For tutorials, bugs reports, and feature requests, please visit here.
-group.triton_nvidia.compilers=triton_nvidia_340:triton_nvidia_331:triton_nvidia_330:triton_nvidia_320:triton_nvidia_310:triton_nvidia_300:triton_nvidia_231:triton_nvidia_230
+group.triton_nvidia.compilers=triton_nvidia_360:triton_nvidia_351:triton_nvidia_350:triton_nvidia_340:triton_nvidia_331:triton_nvidia_330:triton_nvidia_320:triton_nvidia_310:triton_nvidia_300:triton_nvidia_231:triton_nvidia_230
group.triton_nvidia.groupName=Triton (Nvidia)
group.triton_nvidia.options=--backend cuda --arch 90 --warp_size 32
+compiler.triton_nvidia_360.name=Triton 3.6.0 (Nvidia)
+compiler.triton_nvidia_360.exe=/opt/compiler-explorer/triton/v3.6.0/bin/python3
+
+compiler.triton_nvidia_351.name=Triton 3.5.1 (Nvidia)
+compiler.triton_nvidia_351.exe=/opt/compiler-explorer/triton/v3.5.1/bin/python3
+
+compiler.triton_nvidia_350.name=Triton 3.5.0 (Nvidia)
+compiler.triton_nvidia_350.exe=/opt/compiler-explorer/triton/v3.5.0/bin/python3
+
compiler.triton_nvidia_340.name=Triton 3.4.0 (Nvidia)
compiler.triton_nvidia_340.exe=/opt/compiler-explorer/triton/v3.4.0/bin/python3
@@ -35,10 +44,19 @@ compiler.triton_nvidia_231.exe=/opt/compiler-explorer/triton/v2.3.1/bin/python3
compiler.triton_nvidia_230.name=Triton 2.3.0 (Nvidia)
compiler.triton_nvidia_230.exe=/opt/compiler-explorer/triton/v2.3.0/bin/python3
-group.triton_amd.compilers=triton_amd_340:triton_amd_331:triton_amd_330:triton_amd_320:triton_amd_310:triton_amd_300
+group.triton_amd.compilers=triton_amd_360:triton_amd_351:triton_amd_350:triton_amd_340:triton_amd_331:triton_amd_330:triton_amd_320:triton_amd_310:triton_amd_300
group.triton_amd.groupName=Triton (AMD)
group.triton_amd.options=--backend hip --arch gfx942 --warp_size 32
+compiler.triton_amd_360.name=Triton 3.6.0 (AMD)
+compiler.triton_amd_360.exe=/opt/compiler-explorer/triton/v3.6.0/bin/python3
+
+compiler.triton_amd_351.name=Triton 3.5.1 (AMD)
+compiler.triton_amd_351.exe=/opt/compiler-explorer/triton/v3.5.1/bin/python3
+
+compiler.triton_amd_350.name=Triton 3.5.0 (AMD)
+compiler.triton_amd_350.exe=/opt/compiler-explorer/triton/v3.5.0/bin/python3
+
compiler.triton_amd_340.name=Triton 3.4.0 (AMD)
compiler.triton_amd_340.exe=/opt/compiler-explorer/triton/v3.4.0/bin/python3
diff --git a/etc/config/wasm.amazon.properties b/etc/config/wasm.amazon.properties
index bfdd5d0c7..ab84e6f0f 100644
--- a/etc/config/wasm.amazon.properties
+++ b/etc/config/wasm.amazon.properties
@@ -1,9 +1,9 @@
compilers=&wasmtime
objdumper=/opt/compiler-explorer/clang-18.1.0/bin/llvm-objdump
objdumperType=llvm
-binaryHideFuncRe=^.*::(:?native_to_wasm_trampoline|wasm_to_native_trampoline|array_to_wasm_trampoline).*$
+binaryHideFuncRe=^.*::(:?native_to_wasm_trampoline|wasm_to_native_trampoline|array_to_wasm_trampoline|wasm_to_array_trampoline).*$
-group.wasmtime.compilers=wasmtime2200:wasmtime2101:wasmtime2001
+group.wasmtime.compilers=wasmtime4301:wasmtime4202:wasmtime4100:wasmtime3603:wasmtime2405:wasmtime2200:wasmtime2101:wasmtime2001
group.wasmtime.compilerType=wasmtime
group.wasmtime.options=-Ddebug-info=y -Ccache=n
group.wasmtime.supportsBinary=true
@@ -12,6 +12,16 @@ group.wasmtime.versionFlag=--version
group.wasmtime.isSemVer=true
group.wasmtime.baseName=Wasmtime
+compiler.wasmtime4301.exe=/opt/compiler-explorer/wasmtime-43.0.1/wasmtime
+compiler.wasmtime4301.semver=43.0.1
+compiler.wasmtime4202.exe=/opt/compiler-explorer/wasmtime-42.0.2/wasmtime
+compiler.wasmtime4202.semver=42.0.2
+compiler.wasmtime4100.exe=/opt/compiler-explorer/wasmtime-41.0.0/wasmtime
+compiler.wasmtime4100.semver=41.0.0
+compiler.wasmtime3603.exe=/opt/compiler-explorer/wasmtime-36.0.3/wasmtime
+compiler.wasmtime3603.semver=36.0.3
+compiler.wasmtime2405.exe=/opt/compiler-explorer/wasmtime-24.0.5/wasmtime
+compiler.wasmtime2405.semver=24.0.5
compiler.wasmtime2200.exe=/opt/compiler-explorer/wasmtime-22.0.0/wasmtime
compiler.wasmtime2200.semver=22.0.0
compiler.wasmtime2101.exe=/opt/compiler-explorer/wasmtime-21.0.1/wasmtime
diff --git a/etc/config/wasm.defaults.properties b/etc/config/wasm.defaults.properties
index 2fed9b27d..c6fdb5f8f 100644
--- a/etc/config/wasm.defaults.properties
+++ b/etc/config/wasm.defaults.properties
@@ -2,7 +2,7 @@
compilers=&wasmtimelocal
objdumper=llvm-objdump
objdumperType=llvm
-binaryHideFuncRe=^.*::(:?native_to_wasm_trampoline|wasm_to_native_trampoline|array_to_wasm_trampoline).*$
+binaryHideFuncRe=^.*::(:?native_to_wasm_trampoline|wasm_to_native_trampoline|array_to_wasm_trampoline|wasm_to_array_trampoline).*$
group.wasmtimelocal.compilers=wasmtimedefault
group.wasmtimelocal.compilerType=wasmtime
@@ -11,7 +11,7 @@ group.wasmtimelocal.supportsBinary=true
group.wasmtimelocal.supportsBinaryObject=true
group.wasmtimelocal.versionFlag=--version
-compiler.wasmtimedefault.exe=/opt/compiler-explorer/wasmtime-22.0.0/wasmtime
+compiler.wasmtimedefault.exe=/opt/compiler-explorer/wasmtime-43.0.1/wasmtime
compiler.wasmtimedefault.name=Wasmtime default
#################################
diff --git a/etc/config/yul.amazon.properties b/etc/config/yul.amazon.properties
index 66c519ded..def04c45d 100644
--- a/etc/config/yul.amazon.properties
+++ b/etc/config/yul.amazon.properties
@@ -5,7 +5,7 @@ supportsLibraryCodeFilter=true
# The Resolc compiler supports compiling both Solidity and Yul (Solidity IR), thus
# the same compiler is used for both languages. The compiler config IDs will clash
# if they are not unique, therefore the IDs contain either 'yul' or 'sol'.
-group.resolc.compilers=resolc040_yul:resolc050_yul:resolc060_yul
+group.resolc.compilers=resolc040_yul:resolc050_yul:resolc060_yul:resolc100_yul:resolc110_yul
group.resolc.compilerType=resolc
group.resolc.objdumper=/opt/compiler-explorer/clang-21.1.0/bin/llvm-objdump
group.resolc.objdumperType=llvm
@@ -15,18 +15,22 @@ group.resolc.intelAsm=false
group.resolc.supportsBinaryObject=true
group.resolc.supportsBinary=false
group.resolc.supportsExecute=false
+group.resolc.instructionSet=riscv64
compiler.resolc040_yul.exe=/opt/compiler-explorer/resolc-0.4.0/resolc
compiler.resolc040_yul.semver=0.4.0
compiler.resolc040_yul.name=resolc 0.4.0
-compiler.resolc040_yul.instructionSet=riscv64
compiler.resolc050_yul.exe=/opt/compiler-explorer/resolc-0.5.0/resolc
compiler.resolc050_yul.semver=0.5.0
compiler.resolc050_yul.name=resolc 0.5.0
-compiler.resolc050_yul.instructionSet=riscv64
compiler.resolc060_yul.exe=/opt/compiler-explorer/resolc-0.6.0/resolc
compiler.resolc060_yul.semver=0.6.0
compiler.resolc060_yul.name=resolc 0.6.0
-compiler.resolc060_yul.instructionSet=riscv64
+compiler.resolc100_yul.exe=/opt/compiler-explorer/resolc-1.0.0/resolc
+compiler.resolc100_yul.semver=1.0.0
+compiler.resolc100_yul.name=resolc 1.0.0
+compiler.resolc110_yul.exe=/opt/compiler-explorer/resolc-1.1.0/resolc
+compiler.resolc110_yul.semver=1.1.0
+compiler.resolc110_yul.name=resolc 1.1.0
#################################
#################################
diff --git a/etc/config/yul.defaults.properties b/etc/config/yul.defaults.properties
index 65f15a2f4..f30cf8df0 100644
--- a/etc/config/yul.defaults.properties
+++ b/etc/config/yul.defaults.properties
@@ -1,11 +1,11 @@
compilers=&resolc
compilerType=resolc
-defaultCompiler=resolc060_yul
+defaultCompiler=resolc110_yul
supportsLibraryCodeFilter=true
-group.resolc.compilers=resolc060_yul
+group.resolc.compilers=resolc110_yul
group.resolc.compilerType=resolc
-group.resolc.objdumper=/usr/local/bin/llvm-objdump
+group.resolc.objdumper=/opt/compiler-explorer/clang-21.1.0/bin/llvm-objdump
group.resolc.objdumperType=llvm
group.resolc.isSemver=true
group.resolc.versionFlag=--version
@@ -13,10 +13,10 @@ group.resolc.intelAsm=false
group.resolc.supportsBinaryObject=true
group.resolc.supportsBinary=false
group.resolc.supportsExecute=false
-compiler.resolc060_yul.exe=/opt/compiler-explorer/resolc-0.6.0/resolc
-compiler.resolc060_yul.semver=0.6.0
-compiler.resolc060_yul.name=resolc 0.6.0
-compiler.resolc060_yul.instructionSet=riscv64
+group.resolc.instructionSet=riscv64
+compiler.resolc110_yul.exe=/opt/compiler-explorer/resolc-1.1.0/resolc
+compiler.resolc110_yul.semver=1.1.0
+compiler.resolc110_yul.name=resolc 1.1.0
#################################
#################################
diff --git a/etc/scripts/ce-properties-wizard/pyproject.toml b/etc/scripts/ce-properties-wizard/pyproject.toml
index d2a3c892e..4b3b8a4ef 100644
--- a/etc/scripts/ce-properties-wizard/pyproject.toml
+++ b/etc/scripts/ce-properties-wizard/pyproject.toml
@@ -16,7 +16,7 @@ dependencies = [
[project.optional-dependencies]
dev = [
- "pytest>=9.0.0",
+ "pytest>=9.0.3",
"black>=26.3.0",
"ruff>=0.15.0",
"pytype>=2024.10.11",
diff --git a/etc/scripts/ce-properties-wizard/uv.lock b/etc/scripts/ce-properties-wizard/uv.lock
index 36a80af40..84a8504b4 100644
--- a/etc/scripts/ce-properties-wizard/uv.lock
+++ b/etc/scripts/ce-properties-wizard/uv.lock
@@ -118,7 +118,7 @@ requires-dist = [
{ name = "colorama", specifier = ">=0.4.6" },
{ name = "inquirer", specifier = ">=3.1.3" },
{ name = "pydantic", specifier = ">=2.5.0" },
- { name = "pytest", marker = "extra == 'dev'", specifier = ">=9.0.0" },
+ { name = "pytest", marker = "extra == 'dev'", specifier = ">=9.0.3" },
{ name = "pytype", marker = "extra == 'dev'", specifier = ">=2024.10.11" },
{ name = "ruff", marker = "extra == 'dev'", specifier = ">=0.15.0" },
]
@@ -719,7 +719,7 @@ wheels = [
[[package]]
name = "pytest"
-version = "9.0.2"
+version = "9.0.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama", marker = "sys_platform == 'win32'" },
@@ -730,9 +730,9 @@ dependencies = [
{ name = "pygments" },
{ name = "tomli", marker = "python_full_version < '3.11'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165, upload-time = "2026-04-07T17:16:18.027Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" },
+ { url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249, upload-time = "2026-04-07T17:16:16.13Z" },
]
[[package]]
diff --git a/etc/scripts/clojure_wrapper.clj b/etc/scripts/clojure_wrapper.clj
index 1bfd29a0b..94c5d3ec7 100644
--- a/etc/scripts/clojure_wrapper.clj
+++ b/etc/scripts/clojure_wrapper.clj
@@ -113,7 +113,7 @@
(with-open [out (io/writer (io/output-stream compile-filename))]
(when missing-namespace?
(let [ns-form (str "(ns " namespace ")")]
- (println "Injecting namespace form on first line:" ns-form)
+ ;; Don't log injection - any text output results in compilation error indicator in UI
(.write out ns-form)))
(io/copy input-file out))
diff --git a/etc/scripts/docenizers/docenizer-riscv64.py b/etc/scripts/docenizers/docenizer-riscv64.py
index 35a10b523..c7de9bcca 100755
--- a/etc/scripts/docenizers/docenizer-riscv64.py
+++ b/etc/scripts/docenizers/docenizer-riscv64.py
@@ -130,7 +130,34 @@ export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInf
if record.opcode_alias:
output.write(f' case "{record.opcode_alias}":\n')
output.write(f' return {str(record)[:-1]} }};\n\n')
-
+
+ # Pseudoinstructions missing from the upstream YAML data
+ extra_pseudos = [
+ {
+ "opcode": "SGT",
+ "args": "rd, rs, rt",
+ "equivalent": "slt rd, rt, rs",
+ },
+ {
+ "opcode": "SGTU",
+ "args": "rd, rs, rt",
+ "equivalent": "sltu rd, rt, rs",
+ },
+ ]
+ for pseudo in extra_pseudos:
+ op = pseudo["opcode"]
+ args = pseudo["args"]
+ equiv = pseudo["equivalent"]
+ html = (
+ f'
{equiv}slt rd, rt, rs
sltu rd, rt, rs
${tooltip}
`; + return {tooltip, html, url: mockUrl}; } -describe('addAttSyntaxWarningIfNeeded', () => { - it('does not warn for intel syntax', () => { - const data = makeInfo('first operand is the destination', 'first operand is the destination'); - const result = addAttSyntaxWarningIfNeeded(data, 'intel'); - expect(result).toEqual(data); +describe(addAttSyntaxWarningIfNeeded, () => { + describe('warns when syntax is att and', () => { + const attSyntax: AssemblySyntax = 'att'; + it('appends warning to tooltip and not html when only tooltip references cardinality operand and source/destination', () => { + const data = makeInfo('first operand (destination)', 'Simple description
'); + const result = addAttSyntaxWarningIfNeeded(data, attSyntax); + + expect(result.tooltip).toContain(ATT_SYNTAX_WARNING); + expect(result.html).not.toContain(ATT_SYNTAX_WARNING); + }); + it('appends warning to html and not tooltip only html references cardinality operand and source/destination', () => { + const data = makeInfo('Simple tooltip', 'second operand (source)
'); + const result = addAttSyntaxWarningIfNeeded(data, attSyntax); + + expect(result.tooltip).not.toContain(ATT_SYNTAX_WARNING); + expect(result.html).toContain(ATT_SYNTAX_WARNING); + }); + it('both tooltip and html reference cardinality and source/destination', () => { + const text = 'copies the first operand (source) to the second operand (destination)'; + const data = makeInfo(text); + const result = addAttSyntaxWarningIfNeeded(data, attSyntax); + expect(result.tooltip).toContain(ATT_SYNTAX_WARNING); + expect(result.html).toContain(ATT_SYNTAX_WARNING); + }); + it('handles third and fourth operand references', () => { + const haddpsDescription = + 'Adds single precision floating-point values in the third and fourth dword of the destination operand and stores the result in the second dword of the destination operand.'; + const data = makeInfo(haddpsDescription); + const result = addAttSyntaxWarningIfNeeded(data, 'att'); + expect(result.tooltip).toContain(ATT_SYNTAX_WARNING); + expect(result.html).toContain(ATT_SYNTAX_WARNING); + }); + }); + describe('does not warn when', () => { + describe('syntax is intel', () => { + it('and references cardinality of operands', () => { + const data = makeInfo('first operand (destination)'); + const result = addAttSyntaxWarningIfNeeded(data, 'intel'); + expect(result).toEqual(data); + }); + }); + + describe('syntax is att and', () => { + const attSyntax = 'att'; + it('no cardinality references to destination/source operands', () => { + const data = makeInfo( + 'Decrements the stack pointer and then stores the source operand on the top of the stack', + ); + const result = addAttSyntaxWarningIfNeeded(data, attSyntax); + + expect(result.tooltip).not.toContain(ATT_SYNTAX_WARNING); + expect(result.html).not.toContain(ATT_SYNTAX_WARNING); + }); + it('cardinality is present but source/destination is absent', () => { + const data = makeInfo('Performs a signed multiplication of two operands'); + const result = addAttSyntaxWarningIfNeeded(data, attSyntax); + + expect(result.tooltip).not.toContain(ATT_SYNTAX_WARNING); + expect(result.html).not.toContain(ATT_SYNTAX_WARNING); + }); + it('source/destination is present but cardinality is absent', () => { + const popDesc = + 'Loads the value from the top of the stack to the location specified with the destination operand (or explicit opcode) and then increments the stack pointer.'; + const data = makeInfo(popDesc); + const result = addAttSyntaxWarningIfNeeded(data, attSyntax); + expect(result.tooltip).not.toContain(ATT_SYNTAX_WARNING); + expect(result.html).not.toContain(ATT_SYNTAX_WARNING); + }); + it('tooltip contains "operand" and html contains "destination"', () => { + const data = makeInfo('The first operand is foo', 'Copies bar to the destination register
'); + const result = addAttSyntaxWarningIfNeeded(data, 'att'); + expect(result.tooltip).not.toContain(ATT_SYNTAX_WARNING); + expect(result.html).not.toContain(ATT_SYNTAX_WARNING); + }); + it('tooltip contains "source" and html contains "operand"', () => { + const data = makeInfo( + 'The source operand is foo', + 'Copies bar to the last destination register
', + ); + const result = addAttSyntaxWarningIfNeeded(data, 'att'); + expect(result.tooltip).not.toContain(ATT_SYNTAX_WARNING); + expect(result.html).not.toContain(ATT_SYNTAX_WARNING); + }); + }); }); - it('does not warn for att syntax when no cardinality references exist', () => { - const data = makeInfo('Adds two values', 'Adds two values
'); - const result = addAttSyntaxWarningIfNeeded(data, 'att'); - expect(result.tooltip).not.toContain(ATT_SYNTAX_WARNING); - expect(result.html).not.toContain(ATT_SYNTAX_WARNING); - }); + describe('purity', () => { + it('does not mutate the original data object regardless of syntax', () => { + const data = makeInfo('first operand (destination)'); + const originalTooltip = data.tooltip; + const originalHtml = data.html; - it('does not warn when cardinality is present but source/destination is absent', () => { - const data = makeInfo('The first operand is added to the result', 'The first operand is added
'); - const result = addAttSyntaxWarningIfNeeded(data, 'att'); - expect(result.tooltip).not.toContain(ATT_SYNTAX_WARNING); - }); + addAttSyntaxWarningIfNeeded(data, 'att'); + expect(data.tooltip).toBe(originalTooltip); + expect(data.html).toBe(originalHtml); + }); + it('preserves the url field regardless of syntax', () => { + let result: AssemblyInstructionInfo; + const data = makeInfo('the first operand (destination)'); - it('does not warn when source/destination is present but cardinality is absent', () => { - const data = makeInfo('Copies from source to destination', 'Copies source to destination
'); - const result = addAttSyntaxWarningIfNeeded(data, 'att'); - expect(result.tooltip).not.toContain(ATT_SYNTAX_WARNING); - }); - - it('warns when tooltip references cardinality operand and source/destination', () => { - const data = makeInfo('The first operand is the destination register', 'Simple description
'); - const result = addAttSyntaxWarningIfNeeded(data, 'att'); - expect(result.tooltip).toContain(ATT_SYNTAX_WARNING); - expect(result.html).toContain(ATT_SYNTAX_WARNING); - }); - - it('warns when html references cardinality operand and source/destination', () => { - const data = makeInfo('Simple tooltip', 'The second operand is the source register
'); - const result = addAttSyntaxWarningIfNeeded(data, 'att'); - expect(result.tooltip).toContain(ATT_SYNTAX_WARNING); - expect(result.html).toContain(ATT_SYNTAX_WARNING); - }); - - it('warns when both tooltip and html match', () => { - const text = 'The first operand is the source, the second operand is the destination'; - const data = makeInfo(text, text); - const result = addAttSyntaxWarningIfNeeded(data, 'att'); - expect(result.tooltip).toContain(ATT_SYNTAX_WARNING); - expect(result.html).toContain(ATT_SYNTAX_WARNING); - }); - - it('does not cross-contaminate: tooltip cardinality + html source/dest alone should not warn', () => { - const data = makeInfo('The first operand is shifted left', 'Copies data to the destination register
'); - const result = addAttSyntaxWarningIfNeeded(data, 'att'); - expect(result.tooltip).not.toContain(ATT_SYNTAX_WARNING); - expect(result.html).not.toContain(ATT_SYNTAX_WARNING); - }); - - it('handles fourth operand references', () => { - const data = makeInfo('The fourth operand specifies the destination mask', 'VBLENDVPS description
'); - const result = addAttSyntaxWarningIfNeeded(data, 'att'); - expect(result.tooltip).toContain(ATT_SYNTAX_WARNING); - }); - - it('handles last operand references', () => { - const data = makeInfo('The last operand is the source register', 'Description
'); - const result = addAttSyntaxWarningIfNeeded(data, 'att'); - expect(result.tooltip).toContain(ATT_SYNTAX_WARNING); - }); - - it('does not mutate the original data object', () => { - const data = makeInfo('The first operand is the destination', 'The first operand is the destination
'); - const originalTooltip = data.tooltip; - const originalHtml = data.html; - addAttSyntaxWarningIfNeeded(data, 'att'); - expect(data.tooltip).toBe(originalTooltip); - expect(data.html).toBe(originalHtml); - }); - - it('preserves the url field unchanged', () => { - const data = makeInfo('The first operand is the destination', 'The first operand is the destination
'); - const result = addAttSyntaxWarningIfNeeded(data, 'att'); - expect(result.url).toBe('https://example.com'); + result = addAttSyntaxWarningIfNeeded(data, 'att'); + expect(result.url).toBe(mockUrl); + result = addAttSyntaxWarningIfNeeded(data, 'intel'); + expect(result.url).toBe(mockUrl); + }); + }); +}); + +describe('determineAssemblySyntax', () => { + it.each([ + ['intel', undefined, false], + ['intel', undefined, true], + ['intel', false, false], + ['intel', false, true], + ['att', true, false], + ['intel', true, true], + ])('returns %s when supportsIntel is %s and intel asm syntax filter is %s', (expected, supportsIntel, intelFilterEnabled) => { + expect(determineAssemblySyntax(supportsIntel, intelFilterEnabled)).toBe(expected); }); }); diff --git a/test/handlers/asm-docs-tests.ts b/test/handlers/asm-docs-tests.ts index cf0df352c..b5884358f 100644 --- a/test/handlers/asm-docs-tests.ts +++ b/test/handlers/asm-docs-tests.ts @@ -112,6 +112,9 @@ const TEST_MATRIX: Record