From 8f34669abb93a0f99b6005b85cd6ea1f2965a393 Mon Sep 17 00:00:00 2001
From: "Matt Godbolt (bot acct)"
Date: Tue, 31 Mar 2026 15:02:55 -0500
Subject: [PATCH 01/51] fix: set binaryExecTimeoutMs=20000 in amazon properties
(#8602)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## Problem
PR #7166 accidentally inflated `binaryExecTimeoutMs` in
`compiler-explorer.defaults.properties` by 10x (from 10000ms to 100000ms
— a stray extra zero). This was never intentional and went unmentioned
in the PR.
The effect on production: programs that run for >60s now time out at the
**ALB idle timeout** (60s) rather than receiving CE's own `killed -
processing time exceeded` message. Users see a generic gateway 504 error
instead of a meaningful timeout message.
`compiler-explorer.amazon.properties` already overrides
`compileTimeoutMs` back to 20000ms but had no override for
`binaryExecTimeoutMs`, so prod inherited the inflated 100s value.
## Fix
Add an explicit `binaryExecTimeoutMs=20000` override in
`compiler-explorer.amazon.properties`, matching `compileTimeoutMs` and
well within the ALB's 60s idle timeout.
The Windows properties already had `binaryExecTimeoutMs=15000` so
Windows exec was unaffected.
*(I'm Molty, an AI assistant acting on behalf of @mattgodbolt)*
Co-authored-by: mattgodbolt-molty
---
etc/config/compiler-explorer.amazon.properties | 1 +
1 file changed, 1 insertion(+)
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
From 78ae38f91730eaeab77f22237c3ad993c742c1d5 Mon Sep 17 00:00:00 2001
From: "Matt Godbolt (bot acct)"
Date: Fri, 3 Apr 2026 15:17:37 -0500
Subject: [PATCH 02/51] Add Perl versions 5.10 through 5.40 (#8606)
Add properties configuration for 15 new Perl versions, one per stable
release branch from 5.10 to 5.40. Uses semVer grouping for proper
version ordering.
New versions: 5.10.1, 5.14.4, 5.16.3, 5.18.4, 5.20.3, 5.22.4,
5.24.4, 5.26.3, 5.28.3, 5.30.3, 5.32.1, 5.34.3, 5.36.3, 5.40.3
Existing versions retained: 5.8.9, 5.38.5, 5.42.1
5.12.5 failed to build and was not included
Ref #8562
Companion PR: compiler-explorer/infra#2050
---------
Co-authored-by: mattgodbolt-molty
---
etc/config/perl.amazon.properties | 43 ++++++++++++++++++++++++++-----
1 file changed, 36 insertions(+), 7 deletions(-)
diff --git a/etc/config/perl.amazon.properties b/etc/config/perl.amazon.properties
index cb444bf6a..507812736 100644
--- a/etc/config/perl.amazon.properties
+++ b/etc/config/perl.amazon.properties
@@ -5,17 +5,46 @@ supportsBinary=false
compilerType=perl
versionFlag=-v
-group.perl.compilers=perl589:perl5385:perl5421
+group.perl.compilers=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
interpreted=true
supportsExecute=true
From 6171cec21f2c4287cc481b4f85f17f4ff866fb9d Mon Sep 17 00:00:00 2001
From: Partouf
Date: Fri, 3 Apr 2026 22:31:09 +0200
Subject: [PATCH 03/51] add new qt
---
etc/config/c++.amazonwin.properties | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
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
From fc188ada84aef9e61948e946a1b33a1c09b55bd1 Mon Sep 17 00:00:00 2001
From: Tony Cook
Date: Sun, 5 Apr 2026 00:46:55 +1100
Subject: [PATCH 04/51] Perl 5.42.2 released (#8604)
Requires https://github.com/compiler-explorer/infra/pull/2047
Co-authored-by: Matt Godbolt
---
etc/config/c++.amazon.properties | 17 +++++++++--------
etc/config/c.amazon.properties | 17 +++++++++--------
etc/config/perl.amazon.properties | 4 +++-
3 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index 0be3ea9a2..d84463ea8 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -6248,23 +6248,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
diff --git a/etc/config/c.amazon.properties b/etc/config/c.amazon.properties
index c89603c1d..a0a6398a5 100644
--- a/etc/config/c.amazon.properties
+++ b/etc/config/c.amazon.properties
@@ -4437,23 +4437,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/perl.amazon.properties b/etc/config/perl.amazon.properties
index 507812736..44d73b8cb 100644
--- a/etc/config/perl.amazon.properties
+++ b/etc/config/perl.amazon.properties
@@ -5,7 +5,7 @@ supportsBinary=false
compilerType=perl
versionFlag=-v
-group.perl.compilers=perl5421:perl5403:perl5385:perl5363:perl5343:perl5321:perl5303:perl5283:perl5263:perl5244:perl5224:perl5203:perl5184:perl5163:perl5144:perl5101:perl589
+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
group.perl.baseName=Perl
group.perl.groupName=Perl
@@ -45,6 +45,8 @@ 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.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
From 3e6eddff2e208527ec4668abb6dfa963420e5dec Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 7 Apr 2026 06:22:12 -0500
Subject: [PATCH 05/51] Bump vite from 8.0.3 to 8.0.5 (#8611)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 8.0.3 to 8.0.5.
Release notes
Sourced from vite's
releases .
v8.0.5
Please refer to CHANGELOG.md
for details.
v8.0.4
Please refer to CHANGELOG.md
for details.
Changelog
Sourced from vite's
changelog .
8.0.5
(2026-04-06)
Bug Fixes
apply server.fs check to env transport (#22159 )
(f02d9fd )
avoid path traversal with optimize deps sourcemap handler (#22161 )
(79f002f )
check server.fs after stripping query as well (#22160 )
(a9a3df2 )
disallow referencing files outside the package from sourcemap (#22158 )
(f05f501 )
8.0.4
(2026-04-06)
Features
allow esbuild 0.28 as peer deps (#22155 )
(b0da973 )
hmr: truncate list of files on hmr update (#21535 )
(d00e806 )
optimizer: log when dependency scanning or bundling
takes over 1s (#21797 )
(f61a1ab )
Bug Fixes
hasBothRollupOptionsAndRolldownOptions should return
false for proxy case (#22043 )
(99897d2 )
add types for vite/modulepreload-polyfill (#22126 )
(17330d2 )
deps: update all non-major dependencies (#22073 )
(6daa10f )
deps: update all non-major dependencies (#22143 )
(22b0166 )
resolve: resolve tsconfig paths starting with
# (#22038 )
(3460fc5 )
ssr: use browser platform for webworker SSR builds
(fix #21969 )
(#21963 )
(364c227 )
Documentation
Miscellaneous Chores
Code Refactoring
Commits
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/compiler-explorer/compiler-explorer/network/alerts).
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package-lock.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 07869159a..ac0e9e04a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16441,9 +16441,9 @@
"license": "MIT"
},
"node_modules/vite": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.3.tgz",
- "integrity": "sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==",
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.5.tgz",
+ "integrity": "sha512-nmu43Qvq9UopTRfMx2jOYW5l16pb3iDC1JH6yMuPkpVbzK0k+L7dfsEDH4jRgYFmsg0sTAqkojoZgzLMlwHsCQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -16468,7 +16468,7 @@
"peerDependencies": {
"@types/node": "^20.19.0 || >=22.12.0",
"@vitejs/devtools": "^0.1.0",
- "esbuild": "^0.27.0",
+ "esbuild": "^0.27.0 || ^0.28.0",
"jiti": ">=1.21.0",
"less": "^4.0.0",
"sass": "^1.70.0",
From 826c867fdedb026d8516a433c3b10f1b67dbbea6 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 7 Apr 2026 06:41:53 -0500
Subject: [PATCH 06/51] [bot] Update browsers list (#8603)
Automatic run of `npm run-update-browerslist` which needs to
be done periodically to keep in-date.
See
[here](https://github.com/browserslist/browserslist#browsers-data-updating)
for more details.
Co-authored-by: Compiler Explorer Bot
---
package-lock.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index ac0e9e04a..e742a4e0e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6884,9 +6884,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.10.11",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.11.tgz",
- "integrity": "sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==",
+ "version": "2.10.13",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.13.tgz",
+ "integrity": "sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==",
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.cjs"
@@ -7279,9 +7279,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001781",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
- "integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
+ "version": "1.0.30001782",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001782.tgz",
+ "integrity": "sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==",
"funding": [
{
"type": "opencollective",
From 269753955fc5b703593613fec9aa79fea8a0b3e4 Mon Sep 17 00:00:00 2001
From: Hayden Gray <35206453+A1029384756@users.noreply.github.com>
Date: Tue, 7 Apr 2026 07:42:27 -0400
Subject: [PATCH 07/51] [odin] add odin dev-2026-04 (#8605)
---
etc/config/odin.amazon.properties | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
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)
From c358d9922313a924b6b379f4212d2e3375e562d7 Mon Sep 17 00:00:00 2001
From: narpfel
Date: Tue, 7 Apr 2026 13:43:03 +0200
Subject: [PATCH 08/51] Add NASM 3.00 and 3.01 (#8610)
Infra PR: https://github.com/compiler-explorer/infra/pull/2052
Resolves #8609.
---
etc/config/assembly.amazon.properties | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
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
From ca3ced7fade60125358cf1884759fe6871886ec9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 7 Apr 2026 06:43:55 -0500
Subject: [PATCH 09/51] Bump lodash from 4.17.23 to 4.18.1 (#8612)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
Release notes
Sourced from lodash's
releases .
4.18.1
Bugs
Fixes a ReferenceError issue in lodash
lodash-es lodash-amd and
lodash.template when using the template and
fromPairs functions from the modular builds. See lodash/lodash#6167
These defects were related to how lodash distributions are built from
the main branch using https://github.com/lodash-archive/lodash-cli .
When internal dependencies change inside lodash functions, equivalent
updates need to be made to a mapping in the lodash-cli. (hey, it was
ahead of its time once upon a time!). We know this, but we missed it in
the last release. It's the kind of thing that passes in CI, but fails bc
the build is not the same thing you tested.
There is no diff on main for this, but you can see the diffs for each
of the npm packages on their respective branches:
4.18.0
v4.18.0
Full Changelog : https://github.com/lodash/lodash/compare/4.17.23...4.18.0
Security
_.unset / _.omit : Fixed
prototype pollution via constructor/prototype
path traversal (GHSA-f23m-r3pf-42rh ,
fe8d32e ).
Previously, array-wrapped path segments and primitive roots could bypass
the existing guards, allowing deletion of properties from built-in
prototypes. Now constructor and prototype are
blocked unconditionally as non-terminal path keys, matching
baseSet. Calls that previously returned true
and deleted the property now return false and leave the
target untouched.
_.template : Fixed code injection via
imports keys (GHSA-r5fr-rjxr-66jc ,
CVE-2026-4800, 879aaa9 ).
Fixes an incomplete patch for CVE-2021-23337. The variable
option was validated against reForbiddenIdentifierChars but
importsKeys was left unguarded, allowing code injection via
the same Function() constructor sink. imports
keys containing forbidden identifier characters now throw
"Invalid imports option passed into
_.template".
Docs
Add security notice for _.template in threat model and
API docs (#6099 )
Document lower > upper behavior in
_.random (#6115 )
Fix quotes in _.compact jsdoc (#6090 )
lodash.* modular packages
Diff
We have also regenerated and published a select number of the
lodash.* modular packages.
These modular packages had fallen out of sync significantly from the
minor/patch updates to lodash. Specifically, we have brought the
following packages up to parity w/ the latest lodash release because
they have had CVEs on them in the past:
Commits
cb0b9b9
release(patch): bump main to 4.18.1 (#6177 )
75535f5
chore: prune stale advisory refs (#6170 )
62e91bc
docs: remove n_ Node.js < 6 REPL note from README (#6165 )
59be2de
release(minor): bump to 4.18.0 (#6161 )
af63457
fix: broken tests for _.template 879aaa9
1073a76
fix: linting issues
879aaa9
fix: validate imports keys in _.template
fe8d32e
fix: block prototype pollution in baseUnset via constructor/prototype
traversal
18ba0a3
refactor(fromPairs): use baseAssignValue for consistent assignment (#6153 )
b819080
ci: add dist sync validation workflow (#6137 )
Additional commits viewable in compare
view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/compiler-explorer/compiler-explorer/network/alerts).
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package-lock.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index e742a4e0e..34980f23b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11820,9 +11820,9 @@
}
},
"node_modules/lodash": {
- "version": "4.17.23",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
- "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
+ "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
"dev": true,
"license": "MIT"
},
From e2ee3f42fe7bf1041fb236355d22a9d6fc87a2c4 Mon Sep 17 00:00:00 2001
From: RunjiaChen <142142406+RunjiaChen@users.noreply.github.com>
Date: Tue, 7 Apr 2026 13:56:28 +0200
Subject: [PATCH 10/51] Add clang-tidy as a default tool for CUDA C++ (#8597)
Updates etc/config/cuda.defaults.properties to include clangtidydefault
in the tools list. This change officially enables the clang-tidy tool
within the UI dropdown for developers compiling CUDA code, mirroring its
availability in C and C++.
---
etc/config/cuda.defaults.properties | 8 ++++++++
1 file changed, 8 insertions(+)
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
From b1be01ebfff85d2a84df3c8fbb58c1eaa793784c Mon Sep 17 00:00:00 2001
From: narpfel
Date: Wed, 8 Apr 2026 11:00:32 +0200
Subject: [PATCH 11/51] [opt-pipeline]: Reorder error conditions (#8615)
---
lib/base-compiler.ts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/base-compiler.ts b/lib/base-compiler.ts
index b9bd53bc4..d71954aae 100644
--- a/lib/base-compiler.ts
+++ b/lib/base-compiler.ts
@@ -1554,9 +1554,9 @@ export class BaseCompiler {
const output = await this.runCompiler(this.compiler.exe, newOptions, this.filename(inputFilename), execOptions);
const compileEnd = performance.now();
- if (output.code) {
+ if (output.truncated) {
return {
- error: `Invocation failed: ${utils.resultLinesToText(output.stderr)}${utils.resultLinesToText(output.stdout)}}`,
+ error: 'Exceeded max output limit',
results: {},
compileTime: output.execTime || compileEnd - compileStart,
};
@@ -1570,9 +1570,9 @@ export class BaseCompiler {
};
}
- if (output.truncated) {
+ if (output.code) {
return {
- error: 'Exceeded max output limit',
+ error: `Invocation failed: ${utils.resultLinesToText(output.stderr)}${utils.resultLinesToText(output.stdout)}}`,
results: {},
compileTime: output.execTime || compileEnd - compileStart,
};
From f38834bb59134d3ed79120b8c4e00c41e9fe70a8 Mon Sep 17 00:00:00 2001
From: Patrick Quist
Date: Wed, 8 Apr 2026 11:01:31 +0200
Subject: [PATCH 12/51] Add CE Library Wizard documentation (#8581)
---
docs/AddingALibrary.md | 55 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
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
From 2fba07e77d1bb2e857dbdb976ae4717c32c3cd8c Mon Sep 17 00:00:00 2001
From: Matt Godbolt
Date: Wed, 8 Apr 2026 20:18:43 -0500
Subject: [PATCH 13/51] Latest sponsors!
---
etc/config/sponsors.yaml | 2 ++
1 file changed, 2 insertions(+)
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
From 9074d09d69263f6dbfbb1c86ad1ce445e5333cda Mon Sep 17 00:00:00 2001
From: kevinjeon-g <136382173+kevinjeon-g@users.noreply.github.com>
Date: Thu, 9 Apr 2026 10:25:38 -0400
Subject: [PATCH 14/51] Keep InlineInfo lines for dex2oat (#8614)
We currently retain only StackMap, but InlineInfo is also useful.
---
lib/compilers/dex2oat.ts | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/compilers/dex2oat.ts b/lib/compilers/dex2oat.ts
index 63ccce6ea..435100f00 100644
--- a/lib/compilers/dex2oat.ts
+++ b/lib/compilers/dex2oat.ts
@@ -78,7 +78,7 @@ export class Dex2OatCompiler extends BaseCompiler {
methodRegex: RegExp;
methodSizeRegex: RegExp;
insnRegex: RegExp;
- stackMapRegex: RegExp;
+ extraInfoRegex: RegExp;
offsetRegex: RegExp;
insnSetArgRegex: RegExp;
@@ -123,7 +123,7 @@ export class Dex2OatCompiler extends BaseCompiler {
this.methodSizeRegex = /^\s+CODE:\s+\(code_offset=(0x\w+)\s+size=(\d+).*$/;
this.insnRegex = /^\s+(0x\w+):\s+\w+\s+(.*)$/;
- this.stackMapRegex = /^\s+(StackMap\[\d+\])\s+\((.*)\).*$/;
+ this.extraInfoRegex = /^\s+((StackMap|InlineInfo)\[\d+\])\s+\((.*)\).*$/;
// Similar to insnRegex above, but this applies after oatdump output has
// been cleaned up.
@@ -756,9 +756,9 @@ export class Dex2OatCompiler extends BaseCompiler {
// instructions are stored in classes.cfg's disassembly step.
absoluteToRelativeOffsets[Number.parseInt(match![1], 16)] =
Number.parseInt(match![1], 16) - currentCodeOffset;
- } else if (inCode && this.stackMapRegex.test(l)) {
- match = l.match(this.stackMapRegex);
- methodsToInstructions[currentMethod].push(' ' + match![1] + ' ' + match![2]);
+ } else if (inCode && this.extraInfoRegex.test(l)) {
+ match = l.match(this.extraInfoRegex);
+ methodsToInstructions[currentMethod].push(' ' + match![2] + ' ' + match![3]);
}
}
From d81e69dc87a9dd7a4c1f9a90abcdb20d1166352c Mon Sep 17 00:00:00 2001
From: narpfel
Date: Wed, 15 Apr 2026 03:42:40 +0200
Subject: [PATCH 15/51] Add Cranelift backend option for Rust (#8624)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Resolves #5716.
Cranelift currently does not support `--emit=asm`, so this PR mimics the
behaviour of the wasmtime WASM compiler (which also uses Cranelift as
its backend): It unconditionally checks “Compile to binary object”. (See
also
https://github.com/compiler-explorer/compiler-explorer/issues/5716#issuecomment-2671167020.)
---
etc/config/rust.amazon.properties | 15 ++++++++-
lib/compilers/_all.ts | 1 +
lib/compilers/rustc-cg-cranelift.ts | 50 +++++++++++++++++++++++++++++
3 files changed, 65 insertions(+), 1 deletion(-)
create mode 100644 lib/compilers/rustc-cg-cranelift.ts
diff --git a/etc/config/rust.amazon.properties b/etc/config/rust.amazon.properties
index d22329cc1..039af7ca0 100644
--- a/etc/config/rust.amazon.properties
+++ b/etc/config/rust.amazon.properties
@@ -1,4 +1,4 @@
-compilers=&rust:&rustgcc:&mrustc:&rustccggcc
+compilers=&rust:&rustgcc:&mrustc:&rustccggcc:&rustccgcranelift
objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
linker=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
aarch64linker=/opt/compiler-explorer/arm64/gcc-14.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
@@ -313,6 +313,19 @@ 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
diff --git a/lib/compilers/_all.ts b/lib/compilers/_all.ts
index c92037196..6878a97b7 100644
--- a/lib/compilers/_all.ts
+++ b/lib/compilers/_all.ts
@@ -143,6 +143,7 @@ export {ResolcCompiler} from './resolc.js';
export {RGACompiler} from './rga.js';
export {RubyCompiler} from './ruby.js';
export {RustCompiler} from './rust.js';
+export {RustcCgCraneliftCompiler} from './rustc-cg-cranelift.js';
export {RustcCgGCCCompiler} from './rustc-cg-gcc.js';
export {SailCompiler} from './sail.js';
export {ScalaCompiler} from './scala.js';
diff --git a/lib/compilers/rustc-cg-cranelift.ts b/lib/compilers/rustc-cg-cranelift.ts
new file mode 100644
index 000000000..0dff54ddb
--- /dev/null
+++ b/lib/compilers/rustc-cg-cranelift.ts
@@ -0,0 +1,50 @@
+// Copyright (c) 2026, Compiler Explorer Authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
+import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
+import {CompilationEnvironment} from '../compilation-env.js';
+import {RustCompiler} from './rust.js';
+
+export class RustcCgCraneliftCompiler extends RustCompiler {
+ static override get key() {
+ return 'rustc-cg-cranelift';
+ }
+
+ constructor(info: PreliminaryCompilerInfo, env: CompilationEnvironment) {
+ super(info, env);
+ this.compiler.supportsIrView = false;
+ this.compiler.supportsOptOutput = false;
+ this.compiler.optPipeline = undefined;
+ }
+
+ override optionsForFilter(
+ filters: ParseFiltersAndOutputOptions,
+ outputFilename: string,
+ userOptions?: string[],
+ ): string[] {
+ filters.binaryObject = true;
+ return super.optionsForFilter(filters, outputFilename, userOptions);
+ }
+}
From 9e49712dc6a90e98c0a701452ac22a0ec2a5f81f Mon Sep 17 00:00:00 2001
From: Jamie <2119834+jamieQ@users.noreply.github.com>
Date: Tue, 14 Apr 2026 20:43:43 -0500
Subject: [PATCH 16/51] [swift]: add 6.3 and 6.2.4 compilers (#8598)
Adds support for the 6.3 and 6.2.4 swift compilers.
Depends on: https://github.com/compiler-explorer/infra/pull/2045,
https://github.com/compiler-explorer/infra/pull/2054
---
etc/config/swift.amazon.properties | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/etc/config/swift.amazon.properties b/etc/config/swift.amazon.properties
index dd0836226..e2cb87e59 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: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
From 00d3cd6d785fb62ccd826619639b1b4aa7fa8ebb Mon Sep 17 00:00:00 2001
From: Marc Auberer
Date: Wed, 15 Apr 2026 03:44:17 +0200
Subject: [PATCH 17/51] [Spice] Add version 0.25.1 (#8613)
Infra PR: https://github.com/compiler-explorer/infra/pull/2055
---
etc/config/spice.amazon.properties | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
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
#################################
#################################
From bbdc84a5c3d53c98431c089e4c3cc6f6a768ec6c Mon Sep 17 00:00:00 2001
From: Wyatt Childers
Date: Tue, 14 Apr 2026 21:45:03 -0400
Subject: [PATCH 18/51] Add experimental consteval-only types compiler (#8616)
---
etc/config/c++.amazon.properties | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index d84463ea8..aae1dcde3 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -4701,7 +4701,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 +4712,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
From 62b25f64b120a09a7b03dbeeb4e1d501b4a9abd6 Mon Sep 17 00:00:00 2001
From: Manu Linares
Date: Tue, 14 Apr 2026 22:46:17 -0300
Subject: [PATCH 19/51] Add C3 compilers up to 0.7.11 (#8619)
- Add missing versions to group.c3c.compilers
https://github.com/compiler-explorer/infra/pull/2061
https://github.com/compiler-explorer/infra/pull/2067
---
etc/config/c3.amazon.properties | 25 ++++++-
static/modes/c3-mode.ts | 122 +++++++++++++++++++++++++++-----
2 files changed, 126 insertions(+), 21 deletions(-)
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/static/modes/c3-mode.ts b/static/modes/c3-mode.ts
index 836b7558d..0fa3de81b 100644
--- a/static/modes/c3-mode.ts
+++ b/static/modes/c3-mode.ts
@@ -5,49 +5,55 @@ function definition(): monaco.languages.IMonarchLanguage {
defaultToken: 'invalid',
keywords: [
+ 'alias',
'assert',
'asm',
+ 'attrdef',
'bitstruct',
'break',
'case',
'catch',
'const',
+ 'constdef',
'continue',
- 'define',
'default',
'defer',
+ 'distinct',
'do',
'else',
'enum',
'extern',
'false',
'fault',
+ 'faultdef',
'for',
'foreach',
'foreach_r',
'fn',
- 'tlocal',
'if',
'import',
+ 'inline',
+ 'interface',
+ 'lengthof',
'macro',
'module',
'nextcase',
'null',
'private',
'return',
+ 'scope',
'static',
'struct',
'switch',
+ 'tlocal',
'true',
'try',
+ 'typedef',
'union',
'var',
'while',
- 'def',
- 'distinct',
- 'inline',
'$alignof',
- '$append',
+ '$assignable',
'$assert',
'$case',
'$concat',
@@ -60,14 +66,18 @@ function definition(): monaco.languages.IMonarchLanguage {
'$endforeach',
'$endif',
'$endswitch',
+ '$error',
'$eval',
'$evaltype',
'$extnameof',
'$exec',
+ '$feature',
'$for',
'$foreach',
'$if',
'$include',
+ '$is_const',
+ '$kindof',
'$nameof',
'$offsetof',
'$qnameof',
@@ -81,12 +91,31 @@ function definition(): monaco.languages.IMonarchLanguage {
'$vaexpr',
'$vasplat',
'$$abs',
+ '$$acos',
+ '$$asin',
+ '$$atan',
+ '$$any_make',
+ '$$atomic_load',
+ '$$atomic_store',
+ '$$atomic_fetch_exchange',
+ '$$atomic_fetch_add',
+ '$$atomic_fetch_sub',
+ '$$atomic_fetch_and',
+ '$$atomic_fetch_nand',
+ '$$atomic_fetch_or',
+ '$$atomic_fetch_xor',
+ '$$atomic_fetch_max',
+ '$$atomic_fetch_min',
+ '$$atomic_fetch_inc_wrap',
+ '$$atomic_fetch_dec_wrap',
'$$bitreverse',
+ '$$breakpoint',
'$$bswap',
'$$ceil',
'$$compare_exchange',
'$$copysign',
'$$cos',
+ '$$cosh',
'$$clz',
'$$ctz',
'$$add',
@@ -97,18 +126,27 @@ function definition(): monaco.languages.IMonarchLanguage {
'$$sub',
'$$exp',
'$$exp2',
+ '$$exp10',
'$$expect',
'$$expect_with_probability',
+ '$$fence',
'$$floor',
'$$fma',
'$$fmuladd',
'$$frameaddress',
'$$fshl',
'$$fshr',
+ '$$gather',
'$$get_rounding_mode',
+ '$$int_to_mask',
'$$log',
- '$$log10',
'$$log2',
+ '$$log10',
+ '$$matrix_mul',
+ '$$matrix_transpose',
+ '$$mask_to_int',
+ '$$masked_load',
+ '$$masked_store',
'$$max',
'$$memcpy',
'$$memcpy_inline',
@@ -134,22 +172,39 @@ function definition(): monaco.languages.IMonarchLanguage {
'$$reduce_or',
'$$reduce_xor',
'$$reverse',
+ '$$returnaddress',
'$$rint',
+ '$$rnd',
'$$round',
'$$roundeven',
'$$sat_add',
'$$sat_shl',
'$$sat_sub',
+ '$$sat_mul',
+ '$$scatter',
+ '$$select',
'$$set_rounding_mode',
+ '$$sprintf',
+ '$$str_find',
+ '$$str_hash',
+ '$$str_lower',
+ '$$str_pascalcase',
+ '$$str_replace',
+ '$$str_upper',
+ '$$str_snakecase',
'$$swizzle',
'$$swizzle2',
'$$sin',
+ '$$sinh',
'$$sqrt',
- '$$stacktrace',
'$$syscall',
'$$sysclock',
+ '$$tan',
+ '$$tanh',
'$$trap',
'$$trunc',
+ '$$unaligned_load',
+ '$$unaligned_store',
'$$unreachable',
'$$veccomplt',
'$$veccomple',
@@ -161,6 +216,8 @@ function definition(): monaco.languages.IMonarchLanguage {
'$$volatile_store',
'$$wasm_memory_size',
'$$wasm_memory_grow',
+ '$$wstr16',
+ '$$wstr32',
'$$DATE',
'$$FILE',
'$$FILEPATH',
@@ -169,18 +226,20 @@ function definition(): monaco.languages.IMonarchLanguage {
'$$LINE',
'$$LINE_RAW',
'$$MODULE',
+ '$$BENCHMARK_NAMES',
+ '$$BENCHMARK_FNS',
'$$TEST_NAMES',
'$$TEST_FNS',
'$$TIME',
],
typeKeywords: [
- 'anyfault',
'any',
'void',
'bool',
'char',
'double',
'float16',
+ 'bfloat',
'bfloat16',
'float128',
'int128',
@@ -200,6 +259,7 @@ function definition(): monaco.languages.IMonarchLanguage {
'typeid',
'ireg',
'ureg',
+ 'fault',
'$vatype',
'$typeof',
'$typefrom',
@@ -220,6 +280,8 @@ function definition(): monaco.languages.IMonarchLanguage {
'%',
'??',
'!!',
+ '?:',
+ '???',
'++',
'--',
'<<',
@@ -238,17 +300,33 @@ function definition(): monaco.languages.IMonarchLanguage {
'%=',
'<<=',
'>>=',
+ '+++=',
'+++',
'&&&',
'|||',
+ '~',
+ '::',
+ '->',
+ '!!!',
+ '[<',
+ '>]',
+ '=>',
],
symbols: /[=>
Date: Tue, 14 Apr 2026 20:46:38 -0500
Subject: [PATCH 20/51] Bump cryptography from 46.0.6 to 46.0.7 in
/etc/scripts/docenizers (#8617)
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.6
to 46.0.7.
Changelog
Sourced from cryptography's
changelog .
46.0.7 - 2026-04-07
* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could
be
passed to APIs that accept Python buffers, which could lead to buffer
overflow. **CVE-2026-39892**
* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
3.5.6.
.. _v46-0-6:
Commits
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/compiler-explorer/compiler-explorer/network/alerts).
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
etc/scripts/docenizers/uv.lock | 88 +++++++++++++++++-----------------
1 file changed, 44 insertions(+), 44 deletions(-)
diff --git a/etc/scripts/docenizers/uv.lock b/etc/scripts/docenizers/uv.lock
index d64152432..8184cecfb 100644
--- a/etc/scripts/docenizers/uv.lock
+++ b/etc/scripts/docenizers/uv.lock
@@ -171,55 +171,55 @@ requires-dist = [
[[package]]
name = "cryptography"
-version = "46.0.6"
+version = "46.0.7"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "cffi", marker = "platform_python_implementation != 'PyPy'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/a4/ba/04b1bd4218cbc58dc90ce967106d51582371b898690f3ae0402876cc4f34/cryptography-46.0.6.tar.gz", hash = "sha256:27550628a518c5c6c903d84f637fbecf287f6cb9ced3804838a1295dc1fd0759", size = 750542, upload-time = "2026-03-25T23:34:53.396Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/47/93/ac8f3d5ff04d54bc814e961a43ae5b0b146154c89c61b47bb07557679b18/cryptography-46.0.7.tar.gz", hash = "sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5", size = 750652, upload-time = "2026-04-08T01:57:54.692Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/47/23/9285e15e3bc57325b0a72e592921983a701efc1ee8f91c06c5f0235d86d9/cryptography-46.0.6-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:64235194bad039a10bb6d2d930ab3323baaec67e2ce36215fd0952fad0930ca8", size = 7176401, upload-time = "2026-03-25T23:33:22.096Z" },
- { url = "https://files.pythonhosted.org/packages/60/f8/e61f8f13950ab6195b31913b42d39f0f9afc7d93f76710f299b5ec286ae6/cryptography-46.0.6-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:26031f1e5ca62fcb9d1fcb34b2b60b390d1aacaa15dc8b895a9ed00968b97b30", size = 4275275, upload-time = "2026-03-25T23:33:23.844Z" },
- { url = "https://files.pythonhosted.org/packages/19/69/732a736d12c2631e140be2348b4ad3d226302df63ef64d30dfdb8db7ad1c/cryptography-46.0.6-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9a693028b9cbe51b5a1136232ee8f2bc242e4e19d456ded3fa7c86e43c713b4a", size = 4425320, upload-time = "2026-03-25T23:33:25.703Z" },
- { url = "https://files.pythonhosted.org/packages/d4/12/123be7292674abf76b21ac1fc0e1af50661f0e5b8f0ec8285faac18eb99e/cryptography-46.0.6-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:67177e8a9f421aa2d3a170c3e56eca4e0128883cf52a071a7cbf53297f18b175", size = 4278082, upload-time = "2026-03-25T23:33:27.423Z" },
- { url = "https://files.pythonhosted.org/packages/5b/ba/d5e27f8d68c24951b0a484924a84c7cdaed7502bac9f18601cd357f8b1d2/cryptography-46.0.6-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:d9528b535a6c4f8ff37847144b8986a9a143585f0540fbcb1a98115b543aa463", size = 4926514, upload-time = "2026-03-25T23:33:29.206Z" },
- { url = "https://files.pythonhosted.org/packages/34/71/1ea5a7352ae516d5512d17babe7e1b87d9db5150b21f794b1377eac1edc0/cryptography-46.0.6-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:22259338084d6ae497a19bae5d4c66b7ca1387d3264d1c2c0e72d9e9b6a77b97", size = 4457766, upload-time = "2026-03-25T23:33:30.834Z" },
- { url = "https://files.pythonhosted.org/packages/01/59/562be1e653accee4fdad92c7a2e88fced26b3fdfce144047519bbebc299e/cryptography-46.0.6-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:760997a4b950ff00d418398ad73fbc91aa2894b5c1db7ccb45b4f68b42a63b3c", size = 3986535, upload-time = "2026-03-25T23:33:33.02Z" },
- { url = "https://files.pythonhosted.org/packages/d6/8b/b1ebfeb788bf4624d36e45ed2662b8bd43a05ff62157093c1539c1288a18/cryptography-46.0.6-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3dfa6567f2e9e4c5dceb8ccb5a708158a2a871052fa75c8b78cb0977063f1507", size = 4277618, upload-time = "2026-03-25T23:33:34.567Z" },
- { url = "https://files.pythonhosted.org/packages/dd/52/a005f8eabdb28df57c20f84c44d397a755782d6ff6d455f05baa2785bd91/cryptography-46.0.6-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:cdcd3edcbc5d55757e5f5f3d330dd00007ae463a7e7aa5bf132d1f22a4b62b19", size = 4890802, upload-time = "2026-03-25T23:33:37.034Z" },
- { url = "https://files.pythonhosted.org/packages/ec/4d/8e7d7245c79c617d08724e2efa397737715ca0ec830ecb3c91e547302555/cryptography-46.0.6-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:d4e4aadb7fc1f88687f47ca20bb7227981b03afaae69287029da08096853b738", size = 4457425, upload-time = "2026-03-25T23:33:38.904Z" },
- { url = "https://files.pythonhosted.org/packages/1d/5c/f6c3596a1430cec6f949085f0e1a970638d76f81c3ea56d93d564d04c340/cryptography-46.0.6-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2b417edbe8877cda9022dde3a008e2deb50be9c407eef034aeeb3a8b11d9db3c", size = 4405530, upload-time = "2026-03-25T23:33:40.842Z" },
- { url = "https://files.pythonhosted.org/packages/7e/c9/9f9cea13ee2dbde070424e0c4f621c091a91ffcc504ffea5e74f0e1daeff/cryptography-46.0.6-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:380343e0653b1c9d7e1f55b52aaa2dbb2fdf2730088d48c43ca1c7c0abb7cc2f", size = 4667896, upload-time = "2026-03-25T23:33:42.781Z" },
- { url = "https://files.pythonhosted.org/packages/ad/b5/1895bc0821226f129bc74d00eccfc6a5969e2028f8617c09790bf89c185e/cryptography-46.0.6-cp311-abi3-win32.whl", hash = "sha256:bcb87663e1f7b075e48c3be3ecb5f0b46c8fc50b50a97cf264e7f60242dca3f2", size = 3026348, upload-time = "2026-03-25T23:33:45.021Z" },
- { url = "https://files.pythonhosted.org/packages/c3/f8/c9bcbf0d3e6ad288b9d9aa0b1dee04b063d19e8c4f871855a03ab3a297ab/cryptography-46.0.6-cp311-abi3-win_amd64.whl", hash = "sha256:6739d56300662c468fddb0e5e291f9b4d084bead381667b9e654c7dd81705124", size = 3483896, upload-time = "2026-03-25T23:33:46.649Z" },
- { url = "https://files.pythonhosted.org/packages/01/41/3a578f7fd5c70611c0aacba52cd13cb364a5dee895a5c1d467208a9380b0/cryptography-46.0.6-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:2ef9e69886cbb137c2aef9772c2e7138dc581fad4fcbcf13cc181eb5a3ab6275", size = 7117147, upload-time = "2026-03-25T23:33:48.249Z" },
- { url = "https://files.pythonhosted.org/packages/fa/87/887f35a6fca9dde90cad08e0de0c89263a8e59b2d2ff904fd9fcd8025b6f/cryptography-46.0.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7f417f034f91dcec1cb6c5c35b07cdbb2ef262557f701b4ecd803ee8cefed4f4", size = 4266221, upload-time = "2026-03-25T23:33:49.874Z" },
- { url = "https://files.pythonhosted.org/packages/aa/a8/0a90c4f0b0871e0e3d1ed126aed101328a8a57fd9fd17f00fb67e82a51ca/cryptography-46.0.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d24c13369e856b94892a89ddf70b332e0b70ad4a5c43cf3e9cb71d6d7ffa1f7b", size = 4408952, upload-time = "2026-03-25T23:33:52.128Z" },
- { url = "https://files.pythonhosted.org/packages/16/0b/b239701eb946523e4e9f329336e4ff32b1247e109cbab32d1a7b61da8ed7/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:aad75154a7ac9039936d50cf431719a2f8d4ed3d3c277ac03f3339ded1a5e707", size = 4270141, upload-time = "2026-03-25T23:33:54.11Z" },
- { url = "https://files.pythonhosted.org/packages/0f/a8/976acdd4f0f30df7b25605f4b9d3d89295351665c2091d18224f7ad5cdbf/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:3c21d92ed15e9cfc6eb64c1f5a0326db22ca9c2566ca46d845119b45b4400361", size = 4904178, upload-time = "2026-03-25T23:33:55.725Z" },
- { url = "https://files.pythonhosted.org/packages/b1/1b/bf0e01a88efd0e59679b69f42d4afd5bced8700bb5e80617b2d63a3741af/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:4668298aef7cddeaf5c6ecc244c2302a2b8e40f384255505c22875eebb47888b", size = 4441812, upload-time = "2026-03-25T23:33:57.364Z" },
- { url = "https://files.pythonhosted.org/packages/bb/8b/11df86de2ea389c65aa1806f331cae145f2ed18011f30234cc10ca253de8/cryptography-46.0.6-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:8ce35b77aaf02f3b59c90b2c8a05c73bac12cea5b4e8f3fbece1f5fddea5f0ca", size = 3963923, upload-time = "2026-03-25T23:33:59.361Z" },
- { url = "https://files.pythonhosted.org/packages/91/e0/207fb177c3a9ef6a8108f234208c3e9e76a6aa8cf20d51932916bd43bda0/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:c89eb37fae9216985d8734c1afd172ba4927f5a05cfd9bf0e4863c6d5465b013", size = 4269695, upload-time = "2026-03-25T23:34:00.909Z" },
- { url = "https://files.pythonhosted.org/packages/21/5e/19f3260ed1e95bced52ace7501fabcd266df67077eeb382b79c81729d2d3/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4", size = 4869785, upload-time = "2026-03-25T23:34:02.796Z" },
- { url = "https://files.pythonhosted.org/packages/10/38/cd7864d79aa1d92ef6f1a584281433419b955ad5a5ba8d1eb6c872165bcb/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:69cf0056d6947edc6e6760e5f17afe4bea06b56a9ac8a06de9d2bd6b532d4f3a", size = 4441404, upload-time = "2026-03-25T23:34:04.35Z" },
- { url = "https://files.pythonhosted.org/packages/09/0a/4fe7a8d25fed74419f91835cf5829ade6408fd1963c9eae9c4bce390ecbb/cryptography-46.0.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e7304c4f4e9490e11efe56af6713983460ee0780f16c63f219984dab3af9d2d", size = 4397549, upload-time = "2026-03-25T23:34:06.342Z" },
- { url = "https://files.pythonhosted.org/packages/5f/a0/7d738944eac6513cd60a8da98b65951f4a3b279b93479a7e8926d9cd730b/cryptography-46.0.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b928a3ca837c77a10e81a814a693f2295200adb3352395fad024559b7be7a736", size = 4651874, upload-time = "2026-03-25T23:34:07.916Z" },
- { url = "https://files.pythonhosted.org/packages/cb/f1/c2326781ca05208845efca38bf714f76939ae446cd492d7613808badedf1/cryptography-46.0.6-cp314-cp314t-win32.whl", hash = "sha256:97c8115b27e19e592a05c45d0dd89c57f81f841cc9880e353e0d3bf25b2139ed", size = 3001511, upload-time = "2026-03-25T23:34:09.892Z" },
- { url = "https://files.pythonhosted.org/packages/c9/57/fe4a23eb549ac9d903bd4698ffda13383808ef0876cc912bcb2838799ece/cryptography-46.0.6-cp314-cp314t-win_amd64.whl", hash = "sha256:c797e2517cb7880f8297e2c0f43bb910e91381339336f75d2c1c2cbf811b70b4", size = 3471692, upload-time = "2026-03-25T23:34:11.613Z" },
- { url = "https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:12cae594e9473bca1a7aceb90536060643128bb274fcea0fc459ab90f7d1ae7a", size = 7162776, upload-time = "2026-03-25T23:34:13.308Z" },
- { url = "https://files.pythonhosted.org/packages/49/b3/dc27efd8dcc4bff583b3f01d4a3943cd8b5821777a58b3a6a5f054d61b79/cryptography-46.0.6-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:639301950939d844a9e1c4464d7e07f902fe9a7f6b215bb0d4f28584729935d8", size = 4270529, upload-time = "2026-03-25T23:34:15.019Z" },
- { url = "https://files.pythonhosted.org/packages/e6/05/e8d0e6eb4f0d83365b3cb0e00eb3c484f7348db0266652ccd84632a3d58d/cryptography-46.0.6-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ed3775295fb91f70b4027aeba878d79b3e55c0b3e97eaa4de71f8f23a9f2eb77", size = 4414827, upload-time = "2026-03-25T23:34:16.604Z" },
- { url = "https://files.pythonhosted.org/packages/2f/97/daba0f5d2dc6d855e2dcb70733c812558a7977a55dd4a6722756628c44d1/cryptography-46.0.6-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8927ccfbe967c7df312ade694f987e7e9e22b2425976ddbf28271d7e58845290", size = 4271265, upload-time = "2026-03-25T23:34:18.586Z" },
- { url = "https://files.pythonhosted.org/packages/89/06/fe1fce39a37ac452e58d04b43b0855261dac320a2ebf8f5260dd55b201a9/cryptography-46.0.6-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:b12c6b1e1651e42ab5de8b1e00dc3b6354fdfd778e7fa60541ddacc27cd21410", size = 4916800, upload-time = "2026-03-25T23:34:20.561Z" },
- { url = "https://files.pythonhosted.org/packages/ff/8a/b14f3101fe9c3592603339eb5d94046c3ce5f7fc76d6512a2d40efd9724e/cryptography-46.0.6-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:063b67749f338ca9c5a0b7fe438a52c25f9526b851e24e6c9310e7195aad3b4d", size = 4448771, upload-time = "2026-03-25T23:34:22.406Z" },
- { url = "https://files.pythonhosted.org/packages/01/b3/0796998056a66d1973fd52ee89dc1bb3b6581960a91ad4ac705f182d398f/cryptography-46.0.6-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:02fad249cb0e090b574e30b276a3da6a149e04ee2f049725b1f69e7b8351ec70", size = 3978333, upload-time = "2026-03-25T23:34:24.281Z" },
- { url = "https://files.pythonhosted.org/packages/c5/3d/db200af5a4ffd08918cd55c08399dc6c9c50b0bc72c00a3246e099d3a849/cryptography-46.0.6-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:7e6142674f2a9291463e5e150090b95a8519b2fb6e6aaec8917dd8d094ce750d", size = 4271069, upload-time = "2026-03-25T23:34:25.895Z" },
- { url = "https://files.pythonhosted.org/packages/d7/18/61acfd5b414309d74ee838be321c636fe71815436f53c9f0334bf19064fa/cryptography-46.0.6-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:456b3215172aeefb9284550b162801d62f5f264a081049a3e94307fe20792cfa", size = 4878358, upload-time = "2026-03-25T23:34:27.67Z" },
- { url = "https://files.pythonhosted.org/packages/8b/65/5bf43286d566f8171917cae23ac6add941654ccf085d739195a4eacf1674/cryptography-46.0.6-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:341359d6c9e68834e204ceaf25936dffeafea3829ab80e9503860dcc4f4dac58", size = 4448061, upload-time = "2026-03-25T23:34:29.375Z" },
- { url = "https://files.pythonhosted.org/packages/e0/25/7e49c0fa7205cf3597e525d156a6bce5b5c9de1fd7e8cb01120e459f205a/cryptography-46.0.6-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9a9c42a2723999a710445bc0d974e345c32adfd8d2fac6d8a251fa829ad31cfb", size = 4399103, upload-time = "2026-03-25T23:34:32.036Z" },
- { url = "https://files.pythonhosted.org/packages/44/46/466269e833f1c4718d6cd496ffe20c56c9c8d013486ff66b4f69c302a68d/cryptography-46.0.6-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6617f67b1606dfd9fe4dbfa354a9508d4a6d37afe30306fe6c101b7ce3274b72", size = 4659255, upload-time = "2026-03-25T23:34:33.679Z" },
- { url = "https://files.pythonhosted.org/packages/0a/09/ddc5f630cc32287d2c953fc5d32705e63ec73e37308e5120955316f53827/cryptography-46.0.6-cp38-abi3-win32.whl", hash = "sha256:7f6690b6c55e9c5332c0b59b9c8a3fb232ebf059094c17f9019a51e9827df91c", size = 3010660, upload-time = "2026-03-25T23:34:35.418Z" },
- { url = "https://files.pythonhosted.org/packages/1b/82/ca4893968aeb2709aacfb57a30dec6fa2ab25b10fa9f064b8882ce33f599/cryptography-46.0.6-cp38-abi3-win_amd64.whl", hash = "sha256:79e865c642cfc5c0b3eb12af83c35c5aeff4fa5c672dc28c43721c2c9fdd2f0f", size = 3471160, upload-time = "2026-03-25T23:34:37.191Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/5d/4a8f770695d73be252331e60e526291e3df0c9b27556a90a6b47bccca4c2/cryptography-46.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4", size = 7179869, upload-time = "2026-04-08T01:56:17.157Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/45/6d80dc379b0bbc1f9d1e429f42e4cb9e1d319c7a8201beffd967c516ea01/cryptography-46.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325", size = 4275492, upload-time = "2026-04-08T01:56:19.36Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/9a/1765afe9f572e239c3469f2cb429f3ba7b31878c893b246b4b2994ffe2fe/cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308", size = 4426670, upload-time = "2026-04-08T01:56:21.415Z" },
+ { url = "https://files.pythonhosted.org/packages/8f/3e/af9246aaf23cd4ee060699adab1e47ced3f5f7e7a8ffdd339f817b446462/cryptography-46.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77", size = 4280275, upload-time = "2026-04-08T01:56:23.539Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/54/6bbbfc5efe86f9d71041827b793c24811a017c6ac0fd12883e4caa86b8ed/cryptography-46.0.7-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1", size = 4928402, upload-time = "2026-04-08T01:56:25.624Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/cf/054b9d8220f81509939599c8bdbc0c408dbd2bdd41688616a20731371fe0/cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef", size = 4459985, upload-time = "2026-04-08T01:56:27.309Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/46/4e4e9c6040fb01c7467d47217d2f882daddeb8828f7df800cb806d8a2288/cryptography-46.0.7-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de", size = 3990652, upload-time = "2026-04-08T01:56:29.095Z" },
+ { url = "https://files.pythonhosted.org/packages/36/5f/313586c3be5a2fbe87e4c9a254207b860155a8e1f3cca99f9910008e7d08/cryptography-46.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83", size = 4279805, upload-time = "2026-04-08T01:56:30.928Z" },
+ { url = "https://files.pythonhosted.org/packages/69/33/60dfc4595f334a2082749673386a4d05e4f0cf4df8248e63b2c3437585f2/cryptography-46.0.7-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb", size = 4892883, upload-time = "2026-04-08T01:56:32.614Z" },
+ { url = "https://files.pythonhosted.org/packages/c7/0b/333ddab4270c4f5b972f980adef4faa66951a4aaf646ca067af597f15563/cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b", size = 4459756, upload-time = "2026-04-08T01:56:34.306Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/14/633913398b43b75f1234834170947957c6b623d1701ffc7a9600da907e89/cryptography-46.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85", size = 4410244, upload-time = "2026-04-08T01:56:35.977Z" },
+ { url = "https://files.pythonhosted.org/packages/10/f2/19ceb3b3dc14009373432af0c13f46aa08e3ce334ec6eff13492e1812ccd/cryptography-46.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e", size = 4674868, upload-time = "2026-04-08T01:56:38.034Z" },
+ { url = "https://files.pythonhosted.org/packages/1a/bb/a5c213c19ee94b15dfccc48f363738633a493812687f5567addbcbba9f6f/cryptography-46.0.7-cp311-abi3-win32.whl", hash = "sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457", size = 3026504, upload-time = "2026-04-08T01:56:39.666Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/02/7788f9fefa1d060ca68717c3901ae7fffa21ee087a90b7f23c7a603c32ae/cryptography-46.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b", size = 3488363, upload-time = "2026-04-08T01:56:41.893Z" },
+ { url = "https://files.pythonhosted.org/packages/7b/56/15619b210e689c5403bb0540e4cb7dbf11a6bf42e483b7644e471a2812b3/cryptography-46.0.7-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:d151173275e1728cf7839aaa80c34fe550c04ddb27b34f48c232193df8db5842", size = 7119671, upload-time = "2026-04-08T01:56:44Z" },
+ { url = "https://files.pythonhosted.org/packages/74/66/e3ce040721b0b5599e175ba91ab08884c75928fbeb74597dd10ef13505d2/cryptography-46.0.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c", size = 4268551, upload-time = "2026-04-08T01:56:46.071Z" },
+ { url = "https://files.pythonhosted.org/packages/03/11/5e395f961d6868269835dee1bafec6a1ac176505a167f68b7d8818431068/cryptography-46.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902", size = 4408887, upload-time = "2026-04-08T01:56:47.718Z" },
+ { url = "https://files.pythonhosted.org/packages/40/53/8ed1cf4c3b9c8e611e7122fb56f1c32d09e1fff0f1d77e78d9ff7c82653e/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d", size = 4271354, upload-time = "2026-04-08T01:56:49.312Z" },
+ { url = "https://files.pythonhosted.org/packages/50/46/cf71e26025c2e767c5609162c866a78e8a2915bbcfa408b7ca495c6140c4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:fbfd0e5f273877695cb93baf14b185f4878128b250cc9f8e617ea0c025dfb022", size = 4905845, upload-time = "2026-04-08T01:56:50.916Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/ea/01276740375bac6249d0a971ebdf6b4dc9ead0ee0a34ef3b5a88c1a9b0d4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce", size = 4444641, upload-time = "2026-04-08T01:56:52.882Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/4c/7d258f169ae71230f25d9f3d06caabcff8c3baf0978e2b7d65e0acac3827/cryptography-46.0.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f", size = 3967749, upload-time = "2026-04-08T01:56:54.597Z" },
+ { url = "https://files.pythonhosted.org/packages/b5/2a/2ea0767cad19e71b3530e4cad9605d0b5e338b6a1e72c37c9c1ceb86c333/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99", size = 4270942, upload-time = "2026-04-08T01:56:56.416Z" },
+ { url = "https://files.pythonhosted.org/packages/41/3d/fe14df95a83319af25717677e956567a105bb6ab25641acaa093db79975d/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:c5b1ccd1239f48b7151a65bc6dd54bcfcc15e028c8ac126d3fada09db0e07ef1", size = 4871079, upload-time = "2026-04-08T01:56:58.31Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/59/4a479e0f36f8f378d397f4eab4c850b4ffb79a2f0d58704b8fa0703ddc11/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2", size = 4443999, upload-time = "2026-04-08T01:57:00.508Z" },
+ { url = "https://files.pythonhosted.org/packages/28/17/b59a741645822ec6d04732b43c5d35e4ef58be7bfa84a81e5ae6f05a1d33/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e", size = 4399191, upload-time = "2026-04-08T01:57:02.654Z" },
+ { url = "https://files.pythonhosted.org/packages/59/6a/bb2e166d6d0e0955f1e9ff70f10ec4b2824c9cfcdb4da772c7dd69cc7d80/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee", size = 4655782, upload-time = "2026-04-08T01:57:04.592Z" },
+ { url = "https://files.pythonhosted.org/packages/95/b6/3da51d48415bcb63b00dc17c2eff3a651b7c4fed484308d0f19b30e8cb2c/cryptography-46.0.7-cp314-cp314t-win32.whl", hash = "sha256:fdd1736fed309b4300346f88f74cd120c27c56852c3838cab416e7a166f67298", size = 3002227, upload-time = "2026-04-08T01:57:06.91Z" },
+ { url = "https://files.pythonhosted.org/packages/32/a8/9f0e4ed57ec9cebe506e58db11ae472972ecb0c659e4d52bbaee80ca340a/cryptography-46.0.7-cp314-cp314t-win_amd64.whl", hash = "sha256:e06acf3c99be55aa3b516397fe42f5855597f430add9c17fa46bf2e0fb34c9bb", size = 3475332, upload-time = "2026-04-08T01:57:08.807Z" },
+ { url = "https://files.pythonhosted.org/packages/a7/7f/cd42fc3614386bc0c12f0cb3c4ae1fc2bbca5c9662dfed031514911d513d/cryptography-46.0.7-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4", size = 7165618, upload-time = "2026-04-08T01:57:10.645Z" },
+ { url = "https://files.pythonhosted.org/packages/a5/d0/36a49f0262d2319139d2829f773f1b97ef8aef7f97e6e5bd21455e5a8fb5/cryptography-46.0.7-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7", size = 4270628, upload-time = "2026-04-08T01:57:12.885Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/6c/1a42450f464dda6ffbe578a911f773e54dd48c10f9895a23a7e88b3e7db5/cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832", size = 4415405, upload-time = "2026-04-08T01:57:14.923Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/92/4ed714dbe93a066dc1f4b4581a464d2d7dbec9046f7c8b7016f5286329e2/cryptography-46.0.7-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163", size = 4272715, upload-time = "2026-04-08T01:57:16.638Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/e6/a26b84096eddd51494bba19111f8fffe976f6a09f132706f8f1bf03f51f7/cryptography-46.0.7-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2", size = 4918400, upload-time = "2026-04-08T01:57:19.021Z" },
+ { url = "https://files.pythonhosted.org/packages/c7/08/ffd537b605568a148543ac3c2b239708ae0bd635064bab41359252ef88ed/cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067", size = 4450634, upload-time = "2026-04-08T01:57:21.185Z" },
+ { url = "https://files.pythonhosted.org/packages/16/01/0cd51dd86ab5b9befe0d031e276510491976c3a80e9f6e31810cce46c4ad/cryptography-46.0.7-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0", size = 3985233, upload-time = "2026-04-08T01:57:22.862Z" },
+ { url = "https://files.pythonhosted.org/packages/92/49/819d6ed3a7d9349c2939f81b500a738cb733ab62fbecdbc1e38e83d45e12/cryptography-46.0.7-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba", size = 4271955, upload-time = "2026-04-08T01:57:24.814Z" },
+ { url = "https://files.pythonhosted.org/packages/80/07/ad9b3c56ebb95ed2473d46df0847357e01583f4c52a85754d1a55e29e4d0/cryptography-46.0.7-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006", size = 4879888, upload-time = "2026-04-08T01:57:26.88Z" },
+ { url = "https://files.pythonhosted.org/packages/b8/c7/201d3d58f30c4c2bdbe9b03844c291feb77c20511cc3586daf7edc12a47b/cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0", size = 4449961, upload-time = "2026-04-08T01:57:29.068Z" },
+ { url = "https://files.pythonhosted.org/packages/a5/ef/649750cbf96f3033c3c976e112265c33906f8e462291a33d77f90356548c/cryptography-46.0.7-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85", size = 4401696, upload-time = "2026-04-08T01:57:31.029Z" },
+ { url = "https://files.pythonhosted.org/packages/41/52/a8908dcb1a389a459a29008c29966c1d552588d4ae6d43f3a1a4512e0ebe/cryptography-46.0.7-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e", size = 4664256, upload-time = "2026-04-08T01:57:33.144Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/fa/f0ab06238e899cc3fb332623f337a7364f36f4bb3f2534c2bb95a35b132c/cryptography-46.0.7-cp38-abi3-win32.whl", hash = "sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246", size = 3013001, upload-time = "2026-04-08T01:57:34.933Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/f1/00ce3bde3ca542d1acd8f8cfa38e446840945aa6363f9b74746394b14127/cryptography-46.0.7-cp38-abi3-win_amd64.whl", hash = "sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3", size = 3472985, upload-time = "2026-04-08T01:57:36.714Z" },
]
[[package]]
From 5c9e221cbc60b607e56998280d3232e45e36c150 Mon Sep 17 00:00:00 2001
From: Eric Niebler
Date: Tue, 14 Apr 2026 18:47:24 -0700
Subject: [PATCH 21/51] Add stdexec library configuration for CUDA C++ (#8621)
This is my naive attempt to add
[stdexec](https://github.com/NVIDIA/stdexec) as a library for CUDA C++.
Adding a library is probably more involved that just modifying
`.amazon.properties`. Maybe a CE guru can tell me what steps I've
missed.
---
etc/config/cuda.amazon.properties | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/etc/config/cuda.amazon.properties b/etc/config/cuda.amazon.properties
index d8c988836..bea845524 100644
--- a/etc/config/cuda.amazon.properties
+++ b/etc/config/cuda.amazon.properties
@@ -930,6 +930,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
From bb3a5d26d07c3e6072e2e337a691a0cbb8f25e0a Mon Sep 17 00:00:00 2001
From: Sean Garwood
Date: Tue, 14 Apr 2026 21:49:30 -0400
Subject: [PATCH 22/51] Fix AT&T warning showing for native langs w/ undefined
intelAsm (#8576)
Fixes #8567
Fix bug where `asmSyntax` returned 'att' for compilers that do not
define
`intelAsm` (e.g. Rust, Spice), but that do support Intel:
- The base compiler defaults `supportsIntel` property to
`!!this.compiler.intelAsm`
- Aforementioned compilers override this in [optionsForFilter
override](https://github.com/compiler-explorer/compiler-explorer/blob/6b1ff666f238bce450d9e0825f30113f1b91b9bd/lib/compilers/rust.ts#L272)
Before:
```typescript
// bug
const isAtt = /*...*/ !(this.filters.isSet('intel') && this.compiler.intelAsm.includes('intel'));
/* 1 0 */
/* 0 */
/* !0 => 1 */
```
Removing the check for intelAsm resolves this.
- Extracted the logic that determines the assembly syntax and added unit
tests
that cover all possible inputs.
- Verified with local Rust.
## Miscellany
- **rm handling of 'last operand'**
- **fix: order-agnostic refCardinalityOfSrcDstOperands**
- Marked TODO: only show warnings where relevant, i.e. if the
cardinality of
src/dst operands is not shown in tooltip text but is shown in context
menu,
then the warning should only display in the context menu. Beyond scope
of
this PR.
- **optional supportsIntel arg, test undefined supportsIntel**
---
static/assembly-syntax.ts | 26 ++--
static/panes/compiler.ts | 8 +-
static/tests/assembly-syntax-tests.ts | 203 ++++++++++++++++----------
3 files changed, 142 insertions(+), 95 deletions(-)
diff --git a/static/assembly-syntax.ts b/static/assembly-syntax.ts
index 222014f44..ba7fadfe9 100644
--- a/static/assembly-syntax.ts
+++ b/static/assembly-syntax.ts
@@ -28,7 +28,8 @@ const AssemblySyntaxesList = ['att', 'intel'] as const;
export type AssemblySyntax = (typeof AssemblySyntaxesList)[number];
export const ATT_SYNTAX_WARNING = 'WARNING: The information shown pertains to Intel syntax.';
-const CARDINALITY_REGEX = /\b(?:first|second|third|fourth|last)\s+operands?\b/i;
+const CARDINALITY_REGEX = /\b(?:first|second|third|fourth)\b/i;
+const OPERAND_REGEX = /\boperands?\b/i;
const SOURCE_DEST_REGEX = /\b(?:source|destination)\b/i;
export function addAttSyntaxWarningIfNeeded(
@@ -37,14 +38,19 @@ export function addAttSyntaxWarningIfNeeded(
): AssemblyInstructionInfo {
if (syntax !== 'att') return data;
- const referencesCardinality = (text: string): boolean =>
- CARDINALITY_REGEX.test(text) && SOURCE_DEST_REGEX.test(text);
+ const referencesCardinalityOfSrcDstOperands = (text: string): boolean =>
+ CARDINALITY_REGEX.test(text) && OPERAND_REGEX.test(text) && SOURCE_DEST_REGEX.test(text);
- return referencesCardinality(data.tooltip) || referencesCardinality(data.html)
- ? {
- ...data,
- tooltip: '***' + ATT_SYNTAX_WARNING + '***\n\n' + data.tooltip,
- html: '' + ATT_SYNTAX_WARNING + ' ' + data.html,
- }
- : data;
+ const tooltipRefs = referencesCardinalityOfSrcDstOperands(data.tooltip);
+ const htmlRefs = referencesCardinalityOfSrcDstOperands(data.html);
+ if (!tooltipRefs && !htmlRefs) return data;
+ return {
+ ...data,
+ ...(tooltipRefs && {tooltip: '***' + ATT_SYNTAX_WARNING + '***\n\n' + data.tooltip}),
+ ...(htmlRefs && {html: '' + ATT_SYNTAX_WARNING + ' ' + data.html}),
+ };
+}
+
+export function determineAssemblySyntax(supportsIntel: boolean = false, intelFilterEnabled: boolean): AssemblySyntax {
+ return supportsIntel && !intelFilterEnabled ? 'att' : 'intel';
}
diff --git a/static/panes/compiler.ts b/static/panes/compiler.ts
index 4b0b84563..587f0b428 100644
--- a/static/panes/compiler.ts
+++ b/static/panes/compiler.ts
@@ -84,7 +84,7 @@ import {InstructionSet} from '../../types/instructionsets.js';
import {LanguageKey} from '../../types/languages.interfaces.js';
import {Tool} from '../../types/tool.interfaces.js';
import {ArtifactHandler} from '../artifact-handler.js';
-import {type AssemblySyntax, addAttSyntaxWarningIfNeeded} from '../assembly-syntax.js';
+import {type AssemblySyntax, addAttSyntaxWarningIfNeeded, determineAssemblySyntax} from '../assembly-syntax.js';
import {ICompilerShared} from '../compiler-shared.interfaces.js';
import {CompilerShared} from '../compiler-shared.js';
import {SourceAndFiles} from '../download-service.js';
@@ -2830,12 +2830,8 @@ export class Compiler extends MonacoPane | null): void {
diff --git a/static/tests/assembly-syntax-tests.ts b/static/tests/assembly-syntax-tests.ts
index dd0270c06..c3a28d91a 100644
--- a/static/tests/assembly-syntax-tests.ts
+++ b/static/tests/assembly-syntax-tests.ts
@@ -25,91 +25,136 @@
import {describe, expect, it} from 'vitest';
import {type AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
-import {ATT_SYNTAX_WARNING, addAttSyntaxWarningIfNeeded} from '../assembly-syntax.js';
+import {
+ AssemblySyntax,
+ ATT_SYNTAX_WARNING,
+ addAttSyntaxWarningIfNeeded,
+ determineAssemblySyntax,
+} from '../assembly-syntax.js';
-function makeInfo(tooltip: string, html: string): AssemblyInstructionInfo {
- return {tooltip, html, url: 'https://example.com'};
+const mockUrl = 'https://example.com';
+function makeInfo(tooltip: string, html?: string): AssemblyInstructionInfo {
+ html = html ?? `${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);
});
});
From a7c1ccb0b2e26af40683a068275555531f36a0ff Mon Sep 17 00:00:00 2001
From: Cliff Burdick <30670611+cliffburdick@users.noreply.github.com>
Date: Tue, 14 Apr 2026 18:50:13 -0700
Subject: [PATCH 23/51] CCCL 3.3.1 and 3.3.2 (#8628)
---
etc/config/cuda.amazon.properties | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/etc/config/cuda.amazon.properties b/etc/config/cuda.amazon.properties
index bea845524..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
From f8db7a4b550460283135008363803a8945d37b05 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 14 Apr 2026 20:51:46 -0500
Subject: [PATCH 24/51] Bump pytest from 9.0.2 to 9.0.3 in
/etc/scripts/ce-properties-wizard (#8625)
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to
9.0.3.
Release notes
Sourced from pytest's
releases .
9.0.3
pytest 9.0.3 (2026-04-07)
Bug fixes
#12444 :
Fixed pytest.approx which now correctly takes into account
~collections.abc.Mapping keys order to compare them.
#13634 :
Blocking a conftest.py file using the -p no:
option is now explicitly disallowed.
Previously this resulted in an internal assertion failure during
plugin loading.
Pytest now raises a clear UsageError explaining that
conftest files are not plugins and cannot be disabled via
-p.
#13734 :
Fixed crash when a test raises an exceptiongroup with
__tracebackhide__ = True.
#14195 :
Fixed an issue where non-string messages passed to unittest.TestCase.subTest() were not
printed.
#14343 :
Fixed use of insecure temporary directory (CVE-2025-71176).
Improved documentation
#13388 :
Clarified documentation for -p vs
PYTEST_PLUGINS plugin loading and fixed an incorrect
-p example.
#13731 :
Clarified that capture fixtures (e.g. capsys and
capfd) take precedence over the -s /
--capture=no command-line options in Accessing
captured output from a test function
<accessing-captured-output>.
#14088 :
Clarified that the default pytest_collection hook sets
session.items before it calls
pytest_collection_finish, not after.
#14255 :
TOML integer log levels must be quoted: Updating reference
documentation.
Contributor-facing changes
Commits
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/compiler-explorer/compiler-explorer/network/alerts).
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
etc/scripts/ce-properties-wizard/pyproject.toml | 2 +-
etc/scripts/ce-properties-wizard/uv.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
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]]
From 9d8ea1a13955269685e504f99dec83e534fb8d3c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 14 Apr 2026 20:55:18 -0500
Subject: [PATCH 25/51] Bump follow-redirects from 1.15.11 to 1.16.0 (#8631)
Bumps
[follow-redirects](https://github.com/follow-redirects/follow-redirects)
from 1.15.11 to 1.16.0.
Commits
0c23a22
Release version 1.16.0 of the npm package.
844c4d3
Add sensitiveHeaders option.
5e8b8d0
ci: add Node.js 24.x to the CI matrix
7953e22
ci: upgrade GitHub Actions to use setup-node@v6 and checkout@v6
86dc1f8
Sanitizing input.
See full diff in compare
view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/compiler-explorer/compiler-explorer/network/alerts).
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package-lock.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 34980f23b..d30f96c14 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9490,9 +9490,9 @@
"license": "MIT"
},
"node_modules/follow-redirects": {
- "version": "1.15.11",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
- "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
+ "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
"funding": [
{
"type": "individual",
From fb8dd185f719b024660015b82d1368b834327faa Mon Sep 17 00:00:00 2001
From: jaheikk <146706508+jaheikk@users.noreply.github.com>
Date: Wed, 15 Apr 2026 04:56:19 +0300
Subject: [PATCH 26/51] Add Qt 6.11.0 (#8591)
---
etc/config/c++.amazon.properties | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index aae1dcde3..f0ce94005 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -6354,7 +6354,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
@@ -6369,6 +6369,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
From 8918aae56c7d5379dec1481f9faed3daaff8ba62 Mon Sep 17 00:00:00 2001
From: "Matt Godbolt (bot acct)"
Date: Tue, 14 Apr 2026 21:32:23 -0500
Subject: [PATCH 27/51] Add asm docs for RISC-V SGT/SGTU pseudoinstructions
(#8627)
## Summary
- Fixes #8622: adds assembly documentation entries for the RISC-V `sgt`
and `sgtu` pseudoinstructions so the hover/"View assembly documentation"
feature works instead of showing an error.
- `sgt rd, rs, rt` expands to `slt rd, rt, rs`; `sgtu rd, rs, rt`
expands to `sltu rd, rt, rs`. Entries follow the same shape as the
existing `SGTZ` pseudo entry.
## Test plan
- [x] `npx vitest run test/handlers/asm-docs-tests.ts`
- [x] `npx tsc --noEmit`
- [x] `npm run lint` (no new errors)
---
This PR is authored by an LLM (Claude) acting on behalf of @mattgodbolt.
---------
Co-authored-by: mattgodbolt-molty
Co-authored-by: Claude Opus 4.6 (1M context)
---
etc/scripts/docenizers/docenizer-riscv64.py | 29 ++++++++++++++++++++-
lib/asm-docs/generated/asm-docs-riscv64.ts | 14 ++++++++++
test/handlers/asm-docs-tests.ts | 3 +++
3 files changed, 45 insertions(+), 1 deletion(-)
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'{op} {args}'
+ f'
'
+ f'
ISA : (pseudo)
'
+ )
+ tooltip = f"Psuedo Instruction.\n\nEquivalent ASM:\n\n{equiv}\n\n"
+ info = json.dumps({"html": html, "tooltip": tooltip, "url": htmlhost}, indent=16, separators=(',', ': '), sort_keys=True)
+ output.write(f' case "{op}":\n')
+ output.write(f' return {info[:-1]} }};\n\n')
+
output.write("""
}
}
diff --git a/lib/asm-docs/generated/asm-docs-riscv64.ts b/lib/asm-docs/generated/asm-docs-riscv64.ts
index a3ade2459..d52659739 100644
--- a/lib/asm-docs/generated/asm-docs-riscv64.ts
+++ b/lib/asm-docs/generated/asm-docs-riscv64.ts
@@ -6467,6 +6467,20 @@ export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInf
"url": "https://five-embeddev.github.io/riscv-docs-html/"
};
+ case "SGT":
+ return {
+ "html": "SGT rd, rs, rtEquivalent ASM: slt rd, rt, rs ISA : (pseudo)
",
+ "tooltip": "Psuedo Instruction.\n\nEquivalent ASM:\n\nslt rd, rt, rs\n\n",
+ "url": "https://five-embeddev.github.io/riscv-docs-html/"
+ };
+
+ case "SGTU":
+ return {
+ "html": "SGTU rd, rs, rtEquivalent ASM: sltu rd, rt, rs ISA : (pseudo)
",
+ "tooltip": "Psuedo Instruction.\n\nEquivalent ASM:\n\nsltu rd, rt, rs\n\n",
+ "url": "https://five-embeddev.github.io/riscv-docs-html/"
+ };
+
}
}
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 = {
'https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-reference',
],
],
+ riscv64: [
+ ['SGT', 'Psuedo Instruction.', 'SGT rd, rs, rt', 'https://five-embeddev.github.io/riscv-docs-html/'],
+ ],
wdc65c816: [
[
'jsl',
From 532bbe62b6a1aba3d3c7527576268d4d08e0ca11 Mon Sep 17 00:00:00 2001
From: Max Graey
Date: Wed, 15 Apr 2026 15:30:46 +0300
Subject: [PATCH 28/51] Add wasmtime versions 24.0.5, 36.0.3, 41.0.0, 42.0.2
and 43.0.1 (latest) (#8623)
Related infra PR: https://github.com/compiler-explorer/infra/pull/2062
---
etc/config/wasm.amazon.properties | 14 ++++++++++++--
etc/config/wasm.defaults.properties | 4 ++--
2 files changed, 14 insertions(+), 4 deletions(-)
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
#################################
From 6e35eda1d1f49eda1259e3abfc2d12ed0a900373 Mon Sep 17 00:00:00 2001
From: narpfel
Date: Thu, 16 Apr 2026 23:47:17 +0200
Subject: [PATCH 29/51] Switch `rustc-cg-gcc` to use `rustup` component (#8630)
Infra PR: https://github.com/compiler-explorer/infra/pull/2069
---
etc/config/rust.amazon.properties | 4 ++--
lib/compilers/rustc-cg-gcc.ts | 11 +----------
2 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/etc/config/rust.amazon.properties b/etc/config/rust.amazon.properties
index 039af7ca0..252304e6f 100644
--- a/etc/config/rust.amazon.properties
+++ b/etc/config/rust.amazon.properties
@@ -332,9 +332,9 @@ 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/lib/compilers/rustc-cg-gcc.ts b/lib/compilers/rustc-cg-gcc.ts
index c523bc3ed..468315c80 100644
--- a/lib/compilers/rustc-cg-gcc.ts
+++ b/lib/compilers/rustc-cg-gcc.ts
@@ -63,16 +63,7 @@ export class RustcCgGCCCompiler extends RustCompiler {
}
override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename: string, userOptions?: string[]) {
- // these options are direcly taken from rustc_codegen_gcc doc.
- // See https://github.com/rust-lang/rustc_codegen_gcc
- const toolroot = path.resolve(path.dirname(this.compiler.exe), '..');
-
- let options = [
- '-Z',
- 'codegen-backend=' + path.join(toolroot, 'lib', 'librustc_codegen_gcc.so'),
- '--sysroot',
- path.join(toolroot, 'sysroot'),
- ];
+ let options = ['-Zcodegen-backend=gcc'];
// rust.js makes the asumption that LLVM is used. This may go away when cranelift is available.
// Until this is the case and the super() class is refactored, simply ditch -Cllvm arg.
From b8a9dd5c1a81b5ee017ba7020ac0ad219386d8ad Mon Sep 17 00:00:00 2001
From: Miguel Ojeda
Date: Fri, 17 Apr 2026 08:34:33 +0200
Subject: [PATCH 30/51] Rust 1.95.0 (#8626)
Infra: https://github.com/compiler-explorer/infra/pull/2070.
Signed-off-by: Miguel Ojeda
---
etc/config/rust.amazon.properties | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/etc/config/rust.amazon.properties b/etc/config/rust.amazon.properties
index 252304e6f..72319577f 100644
--- a/etc/config/rust.amazon.properties
+++ b/etc/config/rust.amazon.properties
@@ -2,13 +2,13 @@ compilers=&rust:&rustgcc:&mrustc:&rustccggcc:&rustccgcranelift
objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
linker=/opt/compiler-explorer/gcc-15.2.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
From b3f97f7992c823a42f5e8428d88301caba37be8d Mon Sep 17 00:00:00 2001
From: Richard Smith
Date: Fri, 17 Apr 2026 08:08:03 -0700
Subject: [PATCH 31/51] Make default Carbon code match that used by other
languages (#8633)
Don't define a `Run` (`main`) function. Remove comments mentioning
Carbon Explorer, since that has been unmaintained for several years, and
is very outdated at this point. Add "Type your code here" comment
matching the default for other languages.
---
examples/carbon/default.carbon | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/examples/carbon/default.carbon b/examples/carbon/default.carbon
index c237dffd5..0baf5d809 100644
--- a/examples/carbon/default.carbon
+++ b/examples/carbon/default.carbon
@@ -1,11 +1,4 @@
-// To run this in Carbon Explorer you'll need to uncomment the following line:
-// package sample api;
-
+// Type your code here, or load an example.
fn Square(x: i32) -> i32 {
return x * x;
}
-
-// To run this in Carbon Explorer you'll need to rename this "Main()".
-fn Run() -> i32 {
- return Square(12);
-}
From a26b52297eaa6f47f32a201735cc35f96a1086e3 Mon Sep 17 00:00:00 2001
From: jmuddnv <143751186+jmuddnv@users.noreply.github.com>
Date: Tue, 21 Apr 2026 12:28:05 -0700
Subject: [PATCH 32/51] Changes for HPC SDK 26.3 (#8584)
---
etc/config/c++.amazon.properties | 8 +++++++-
etc/config/c.amazon.properties | 8 +++++++-
etc/config/fortran.amazon.properties | 8 +++++++-
3 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index f0ce94005..5bd757f4b 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -4545,7 +4545,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 +4694,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
diff --git a/etc/config/c.amazon.properties b/etc/config/c.amazon.properties
index a0a6398a5..b205b9df9 100644
--- a/etc/config/c.amazon.properties
+++ b/etc/config/c.amazon.properties
@@ -435,7 +435,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 +506,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
diff --git a/etc/config/fortran.amazon.properties b/etc/config/fortran.amazon.properties
index d3256a813..3651440f1 100644
--- a/etc/config/fortran.amazon.properties
+++ b/etc/config/fortran.amazon.properties
@@ -350,7 +350,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 +417,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
From c52d851ee1fd8978110ece7930e8cea6e5f78702 Mon Sep 17 00:00:00 2001
From: Hayden Gray <35206453+A1029384756@users.noreply.github.com>
Date: Tue, 21 Apr 2026 15:28:25 -0400
Subject: [PATCH 33/51] [odin] better explain @(export) and add two examples
(#8632)
---
examples/odin/default.odin | 13 +++++++++----
examples/odin/max_in_slice.odin | 10 ++++++++++
examples/odin/sum_over_slice.odin | 10 ++++++++++
3 files changed, 29 insertions(+), 4 deletions(-)
create mode 100644 examples/odin/max_in_slice.odin
create mode 100644 examples/odin/sum_over_slice.odin
diff --git a/examples/odin/default.odin b/examples/odin/default.odin
index 3706a9487..4f1d17e4f 100644
--- a/examples/odin/default.odin
+++ b/examples/odin/default.odin
@@ -1,7 +1,12 @@
+// Type your code here, or load an example.
+// At higher optimization levels, procedures may be
+// automatically inlined and will not show up in the
+// output. Use the `@(export)` attribute on procedures
+// you wish to see in the output.
+
package main
-import "core:fmt"
-
-main :: proc() {
- fmt.println("Hello")
+@(export)
+square :: proc(num: int) -> int {
+ return num * num
}
diff --git a/examples/odin/max_in_slice.odin b/examples/odin/max_in_slice.odin
new file mode 100644
index 000000000..dfb80433f
--- /dev/null
+++ b/examples/odin/max_in_slice.odin
@@ -0,0 +1,10 @@
+package main
+
+@(export)
+max_slice :: proc(array: []int) -> int {
+ max_val := min(int)
+ for elem in array {
+ max_val = max(max_val, elem)
+ }
+ return max_val
+}
diff --git a/examples/odin/sum_over_slice.odin b/examples/odin/sum_over_slice.odin
new file mode 100644
index 000000000..5ac855cd2
--- /dev/null
+++ b/examples/odin/sum_over_slice.odin
@@ -0,0 +1,10 @@
+package main
+
+@(export)
+sum_slice :: proc(array: []int) -> int {
+ sum := 0
+ for elem in array {
+ sum += elem
+ }
+ return sum
+}
From bd9dab56c8a3c0f0a27776c2348406770fa9669b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Apr 2026 21:28:54 +0200
Subject: [PATCH 34/51] Bump protobufjs from 7.5.4 to 7.5.5 (#8636)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.4
to 7.5.5.
Changelog
Sourced from protobufjs's
changelog .
Changelog
8.0.1
(2026-03-11)
Bug Fixes
bump protobufjs dependency version for cli package (#2128 )
(549b05e )
correct json syntax in tsconfig.json (#2120 )
(8065625 )
descriptor: guard oneof index for non-Type parents
(#2122 )
(1cac5cf )
do not allow setting proto in Message constructor
(#2126 )
(f05e3c3 )
filter invalid characters from the type name (#2127 )
(535df44 )
8.0.0
(2025-12-16)
⚠ BREAKING CHANGES
add Edition 2024 Support (#2060 )
Features
Commits
Maintainer changes
This version was pushed to npm by fenster , a new releaser for
protobufjs since your current version.
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/compiler-explorer/compiler-explorer/network/alerts).
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package-lock.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index d30f96c14..fe2bb6ee7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13916,9 +13916,9 @@
}
},
"node_modules/protobufjs": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz",
- "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.5.tgz",
+ "integrity": "sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg==",
"hasInstallScript": true,
"license": "BSD-3-Clause",
"dependencies": {
From cbb725f10dba3f3c4c7c6d4b00cbf6c483e9cecd Mon Sep 17 00:00:00 2001
From: Cedric <14017092+douyixuan@users.noreply.github.com>
Date: Wed, 22 Apr 2026 04:06:02 +0800
Subject: [PATCH 35/51] Support Triton 3.5.x and 3.6.0 (#8577)
---
etc/config/triton.amazon.properties | 24 +++++++++++++++++++++---
etc/config/triton.defaults.properties | 24 +++++++++++++++++++++---
etc/scripts/test_triton_wrapper.py | 3 +++
etc/scripts/triton_wrapper.py | 2 +-
4 files changed, 46 insertions(+), 7 deletions(-)
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/scripts/test_triton_wrapper.py b/etc/scripts/test_triton_wrapper.py
index 0745be87b..219c0a02e 100644
--- a/etc/scripts/test_triton_wrapper.py
+++ b/etc/scripts/test_triton_wrapper.py
@@ -48,6 +48,9 @@ CONFIGS = [
for backend in ["cuda", "hip"]
for opt_pipeline in [True, False]
for version_tuple in [
+ (3, 6, 0),
+ (3, 5, 1),
+ (3, 5, 0),
(3, 4, 0),
(3, 3, 1),
(3, 3, 0),
diff --git a/etc/scripts/triton_wrapper.py b/etc/scripts/triton_wrapper.py
index 8473ea349..9c63e2ee0 100644
--- a/etc/scripts/triton_wrapper.py
+++ b/etc/scripts/triton_wrapper.py
@@ -147,7 +147,7 @@ def setup_triton(
requirs such patching to work.
This function is a collection of hacks. It has been tested to work with Triton versions:
- 2.3.0, 2.3.1, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.3.1, 3.4.0.
+ 2.3.0, 2.3.1, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.3.1, 3.4.0, 3.5.0, 3.5.1, 3.6.0.
"""
os.environ["TRITON_ALWAYS_COMPILE"] = "1"
From 81177b1c3ee31593c72e54bb59ebe73589678c8d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 22 Apr 2026 17:49:23 +0200
Subject: [PATCH 36/51] Bump lxml from 6.0.2 to 6.1.0 in
/etc/scripts/docenizers (#8640)
Bumps [lxml](https://github.com/lxml/lxml) from 6.0.2 to 6.1.0.
Changelog
Sourced from lxml's
changelog .
6.1.0 (2026-04-17)
This release fixes a possible external entity injection (XXE)
vulnerability in
iterparse() and the ETCompatXMLParser.
Features added
GH#486: The HTML ARIA accessibility attributes were added to the set
of safe attributes
in lxml.html.defs. This allows lxml_html_clean
to pass them through.
Patch by oomsveta.
The default chunk size for reading from file-likes in
iterparse() is now configurable
with a new chunk_size argument.
Bugs fixed
LP#2146291: The resolve_entities option was still set
to True for
iterparse and ETCompatXMLParser, allowing for
external entity injection (XXE)
when using these parsers without setting this option explicitly.
The default was now changed to 'internal' only (as for the
normal XML and HTML parsers
since lxml 5.0).
Issue found by Sihao Qiu as CVE-2026-41066.
6.0.4 (2026-04-12)
Bugs fixed
LP#2148019: Spurious MemoryError during namespace cleanup.
6.0.3 (2026-04-09)
Bugs fixed
Several out of memory error cases now raise MemoryError
that were not handled before.
Slicing with large step values (outside of +/-
sys.maxsize) could trigger undefined C behaviour.
LP#2125399: Some failing tests were fixed or disabled in PyPy.
LP#2138421: Memory leak in error cases when setting the
public_id or system_url of a document.
... (truncated)
Commits
43722f4
Update changelog.
8747040
Name version of option change in docstring.
6c36e6c
Fix pypistats URL in download statistics script.
c7d76d6
Change security policy to point to Github security advisories.
378ccf8
Update project income report.
315270b
Docs: Reduce TOC depth of package pages and move module contents
first.
6dbba7f
Docs: Show current year in copyright line.
e4385bf
Update project income report.
5bed1e1
Validate file hashes in release download script.
c13ee10
Prepare release of 6.1.0.
Additional commits viewable in compare
view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/compiler-explorer/compiler-explorer/network/alerts).
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
etc/scripts/docenizers/pyproject.toml | 2 +-
etc/scripts/docenizers/uv.lock | 150 +++++++++++++-------------
2 files changed, 76 insertions(+), 76 deletions(-)
diff --git a/etc/scripts/docenizers/pyproject.toml b/etc/scripts/docenizers/pyproject.toml
index df3e715a6..d4ea26f0a 100644
--- a/etc/scripts/docenizers/pyproject.toml
+++ b/etc/scripts/docenizers/pyproject.toml
@@ -5,7 +5,7 @@ description = "Assembly documentation generators for Compiler Explorer"
requires-python = ">=3.12"
dependencies = [
"beautifulsoup4>=4.12.0",
- "lxml>=5.0.0",
+ "lxml>=6.1.0",
"pandas>=2.2.0",
"pdfminer.six>=20231228",
"PyYAML>=6.0",
diff --git a/etc/scripts/docenizers/uv.lock b/etc/scripts/docenizers/uv.lock
index 8184cecfb..0a69f40d4 100644
--- a/etc/scripts/docenizers/uv.lock
+++ b/etc/scripts/docenizers/uv.lock
@@ -162,7 +162,7 @@ dependencies = [
[package.metadata]
requires-dist = [
{ name = "beautifulsoup4", specifier = ">=4.12.0" },
- { name = "lxml", specifier = ">=5.0.0" },
+ { name = "lxml", specifier = ">=6.1.0" },
{ name = "pandas", specifier = ">=2.2.0" },
{ name = "pdfminer-six", specifier = ">=20231228" },
{ name = "pyyaml", specifier = ">=6.0" },
@@ -233,82 +233,82 @@ wheels = [
[[package]]
name = "lxml"
-version = "6.0.2"
+version = "6.1.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/aa/88/262177de60548e5a2bfc46ad28232c9e9cbde697bd94132aeb80364675cb/lxml-6.0.2.tar.gz", hash = "sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62", size = 4073426, upload-time = "2025-09-22T04:04:59.287Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/28/30/9abc9e34c657c33834eaf6cd02124c61bdf5944d802aa48e69be8da3585d/lxml-6.1.0.tar.gz", hash = "sha256:bfd57d8008c4965709a919c3e9a98f76c2c7cb319086b3d26858250620023b13", size = 4197006, upload-time = "2026-04-18T04:32:51.613Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/f3/c8/8ff2bc6b920c84355146cd1ab7d181bc543b89241cfb1ebee824a7c81457/lxml-6.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456", size = 8661887, upload-time = "2025-09-22T04:01:17.265Z" },
- { url = "https://files.pythonhosted.org/packages/37/6f/9aae1008083bb501ef63284220ce81638332f9ccbfa53765b2b7502203cf/lxml-6.0.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924", size = 4667818, upload-time = "2025-09-22T04:01:19.688Z" },
- { url = "https://files.pythonhosted.org/packages/f1/ca/31fb37f99f37f1536c133476674c10b577e409c0a624384147653e38baf2/lxml-6.0.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f", size = 4950807, upload-time = "2025-09-22T04:01:21.487Z" },
- { url = "https://files.pythonhosted.org/packages/da/87/f6cb9442e4bada8aab5ae7e1046264f62fdbeaa6e3f6211b93f4c0dd97f1/lxml-6.0.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534", size = 5109179, upload-time = "2025-09-22T04:01:23.32Z" },
- { url = "https://files.pythonhosted.org/packages/c8/20/a7760713e65888db79bbae4f6146a6ae5c04e4a204a3c48896c408cd6ed2/lxml-6.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564", size = 5023044, upload-time = "2025-09-22T04:01:25.118Z" },
- { url = "https://files.pythonhosted.org/packages/a2/b0/7e64e0460fcb36471899f75831509098f3fd7cd02a3833ac517433cb4f8f/lxml-6.0.2-cp312-cp312-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f", size = 5359685, upload-time = "2025-09-22T04:01:27.398Z" },
- { url = "https://files.pythonhosted.org/packages/b9/e1/e5df362e9ca4e2f48ed6411bd4b3a0ae737cc842e96877f5bf9428055ab4/lxml-6.0.2-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0", size = 5654127, upload-time = "2025-09-22T04:01:29.629Z" },
- { url = "https://files.pythonhosted.org/packages/c6/d1/232b3309a02d60f11e71857778bfcd4acbdb86c07db8260caf7d008b08f8/lxml-6.0.2-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192", size = 5253958, upload-time = "2025-09-22T04:01:31.535Z" },
- { url = "https://files.pythonhosted.org/packages/35/35/d955a070994725c4f7d80583a96cab9c107c57a125b20bb5f708fe941011/lxml-6.0.2-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0", size = 4711541, upload-time = "2025-09-22T04:01:33.801Z" },
- { url = "https://files.pythonhosted.org/packages/1e/be/667d17363b38a78c4bd63cfd4b4632029fd68d2c2dc81f25ce9eb5224dd5/lxml-6.0.2-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092", size = 5267426, upload-time = "2025-09-22T04:01:35.639Z" },
- { url = "https://files.pythonhosted.org/packages/ea/47/62c70aa4a1c26569bc958c9ca86af2bb4e1f614e8c04fb2989833874f7ae/lxml-6.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f", size = 5064917, upload-time = "2025-09-22T04:01:37.448Z" },
- { url = "https://files.pythonhosted.org/packages/bd/55/6ceddaca353ebd0f1908ef712c597f8570cc9c58130dbb89903198e441fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8", size = 4788795, upload-time = "2025-09-22T04:01:39.165Z" },
- { url = "https://files.pythonhosted.org/packages/cf/e8/fd63e15da5e3fd4c2146f8bbb3c14e94ab850589beab88e547b2dbce22e1/lxml-6.0.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f", size = 5676759, upload-time = "2025-09-22T04:01:41.506Z" },
- { url = "https://files.pythonhosted.org/packages/76/47/b3ec58dc5c374697f5ba37412cd2728f427d056315d124dd4b61da381877/lxml-6.0.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6", size = 5255666, upload-time = "2025-09-22T04:01:43.363Z" },
- { url = "https://files.pythonhosted.org/packages/19/93/03ba725df4c3d72afd9596eef4a37a837ce8e4806010569bedfcd2cb68fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322", size = 5277989, upload-time = "2025-09-22T04:01:45.215Z" },
- { url = "https://files.pythonhosted.org/packages/c6/80/c06de80bfce881d0ad738576f243911fccf992687ae09fd80b734712b39c/lxml-6.0.2-cp312-cp312-win32.whl", hash = "sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849", size = 3611456, upload-time = "2025-09-22T04:01:48.243Z" },
- { url = "https://files.pythonhosted.org/packages/f7/d7/0cdfb6c3e30893463fb3d1e52bc5f5f99684a03c29a0b6b605cfae879cd5/lxml-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f", size = 4011793, upload-time = "2025-09-22T04:01:50.042Z" },
- { url = "https://files.pythonhosted.org/packages/ea/7b/93c73c67db235931527301ed3785f849c78991e2e34f3fd9a6663ffda4c5/lxml-6.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6", size = 3672836, upload-time = "2025-09-22T04:01:52.145Z" },
- { url = "https://files.pythonhosted.org/packages/53/fd/4e8f0540608977aea078bf6d79f128e0e2c2bba8af1acf775c30baa70460/lxml-6.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77", size = 8648494, upload-time = "2025-09-22T04:01:54.242Z" },
- { url = "https://files.pythonhosted.org/packages/5d/f4/2a94a3d3dfd6c6b433501b8d470a1960a20ecce93245cf2db1706adf6c19/lxml-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f", size = 4661146, upload-time = "2025-09-22T04:01:56.282Z" },
- { url = "https://files.pythonhosted.org/packages/25/2e/4efa677fa6b322013035d38016f6ae859d06cac67437ca7dc708a6af7028/lxml-6.0.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452", size = 4946932, upload-time = "2025-09-22T04:01:58.989Z" },
- { url = "https://files.pythonhosted.org/packages/ce/0f/526e78a6d38d109fdbaa5049c62e1d32fdd70c75fb61c4eadf3045d3d124/lxml-6.0.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048", size = 5100060, upload-time = "2025-09-22T04:02:00.812Z" },
- { url = "https://files.pythonhosted.org/packages/81/76/99de58d81fa702cc0ea7edae4f4640416c2062813a00ff24bd70ac1d9c9b/lxml-6.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df", size = 5019000, upload-time = "2025-09-22T04:02:02.671Z" },
- { url = "https://files.pythonhosted.org/packages/b5/35/9e57d25482bc9a9882cb0037fdb9cc18f4b79d85df94fa9d2a89562f1d25/lxml-6.0.2-cp313-cp313-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1", size = 5348496, upload-time = "2025-09-22T04:02:04.904Z" },
- { url = "https://files.pythonhosted.org/packages/a6/8e/cb99bd0b83ccc3e8f0f528e9aa1f7a9965dfec08c617070c5db8d63a87ce/lxml-6.0.2-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916", size = 5643779, upload-time = "2025-09-22T04:02:06.689Z" },
- { url = "https://files.pythonhosted.org/packages/d0/34/9e591954939276bb679b73773836c6684c22e56d05980e31d52a9a8deb18/lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd", size = 5244072, upload-time = "2025-09-22T04:02:08.587Z" },
- { url = "https://files.pythonhosted.org/packages/8d/27/b29ff065f9aaca443ee377aff699714fcbffb371b4fce5ac4ca759e436d5/lxml-6.0.2-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6", size = 4718675, upload-time = "2025-09-22T04:02:10.783Z" },
- { url = "https://files.pythonhosted.org/packages/2b/9f/f756f9c2cd27caa1a6ef8c32ae47aadea697f5c2c6d07b0dae133c244fbe/lxml-6.0.2-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a", size = 5255171, upload-time = "2025-09-22T04:02:12.631Z" },
- { url = "https://files.pythonhosted.org/packages/61/46/bb85ea42d2cb1bd8395484fd72f38e3389611aa496ac7772da9205bbda0e/lxml-6.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679", size = 5057175, upload-time = "2025-09-22T04:02:14.718Z" },
- { url = "https://files.pythonhosted.org/packages/95/0c/443fc476dcc8e41577f0af70458c50fe299a97bb6b7505bb1ae09aa7f9ac/lxml-6.0.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659", size = 4785688, upload-time = "2025-09-22T04:02:16.957Z" },
- { url = "https://files.pythonhosted.org/packages/48/78/6ef0b359d45bb9697bc5a626e1992fa5d27aa3f8004b137b2314793b50a0/lxml-6.0.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484", size = 5660655, upload-time = "2025-09-22T04:02:18.815Z" },
- { url = "https://files.pythonhosted.org/packages/ff/ea/e1d33808f386bc1339d08c0dcada6e4712d4ed8e93fcad5f057070b7988a/lxml-6.0.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2", size = 5247695, upload-time = "2025-09-22T04:02:20.593Z" },
- { url = "https://files.pythonhosted.org/packages/4f/47/eba75dfd8183673725255247a603b4ad606f4ae657b60c6c145b381697da/lxml-6.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314", size = 5269841, upload-time = "2025-09-22T04:02:22.489Z" },
- { url = "https://files.pythonhosted.org/packages/76/04/5c5e2b8577bc936e219becb2e98cdb1aca14a4921a12995b9d0c523502ae/lxml-6.0.2-cp313-cp313-win32.whl", hash = "sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2", size = 3610700, upload-time = "2025-09-22T04:02:24.465Z" },
- { url = "https://files.pythonhosted.org/packages/fe/0a/4643ccc6bb8b143e9f9640aa54e38255f9d3b45feb2cbe7ae2ca47e8782e/lxml-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7", size = 4010347, upload-time = "2025-09-22T04:02:26.286Z" },
- { url = "https://files.pythonhosted.org/packages/31/ef/dcf1d29c3f530577f61e5fe2f1bd72929acf779953668a8a47a479ae6f26/lxml-6.0.2-cp313-cp313-win_arm64.whl", hash = "sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf", size = 3671248, upload-time = "2025-09-22T04:02:27.918Z" },
- { url = "https://files.pythonhosted.org/packages/03/15/d4a377b385ab693ce97b472fe0c77c2b16ec79590e688b3ccc71fba19884/lxml-6.0.2-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:b0c732aa23de8f8aec23f4b580d1e52905ef468afb4abeafd3fec77042abb6fe", size = 8659801, upload-time = "2025-09-22T04:02:30.113Z" },
- { url = "https://files.pythonhosted.org/packages/c8/e8/c128e37589463668794d503afaeb003987373c5f94d667124ffd8078bbd9/lxml-6.0.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:4468e3b83e10e0317a89a33d28f7aeba1caa4d1a6fd457d115dd4ffe90c5931d", size = 4659403, upload-time = "2025-09-22T04:02:32.119Z" },
- { url = "https://files.pythonhosted.org/packages/00/ce/74903904339decdf7da7847bb5741fc98a5451b42fc419a86c0c13d26fe2/lxml-6.0.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:abd44571493973bad4598a3be7e1d807ed45aa2adaf7ab92ab7c62609569b17d", size = 4966974, upload-time = "2025-09-22T04:02:34.155Z" },
- { url = "https://files.pythonhosted.org/packages/1f/d3/131dec79ce61c5567fecf82515bd9bc36395df42501b50f7f7f3bd065df0/lxml-6.0.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:370cd78d5855cfbffd57c422851f7d3864e6ae72d0da615fca4dad8c45d375a5", size = 5102953, upload-time = "2025-09-22T04:02:36.054Z" },
- { url = "https://files.pythonhosted.org/packages/3a/ea/a43ba9bb750d4ffdd885f2cd333572f5bb900cd2408b67fdda07e85978a0/lxml-6.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:901e3b4219fa04ef766885fb40fa516a71662a4c61b80c94d25336b4934b71c0", size = 5055054, upload-time = "2025-09-22T04:02:38.154Z" },
- { url = "https://files.pythonhosted.org/packages/60/23/6885b451636ae286c34628f70a7ed1fcc759f8d9ad382d132e1c8d3d9bfd/lxml-6.0.2-cp314-cp314-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:a4bf42d2e4cf52c28cc1812d62426b9503cdb0c87a6de81442626aa7d69707ba", size = 5352421, upload-time = "2025-09-22T04:02:40.413Z" },
- { url = "https://files.pythonhosted.org/packages/48/5b/fc2ddfc94ddbe3eebb8e9af6e3fd65e2feba4967f6a4e9683875c394c2d8/lxml-6.0.2-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2c7fdaa4d7c3d886a42534adec7cfac73860b89b4e5298752f60aa5984641a0", size = 5673684, upload-time = "2025-09-22T04:02:42.288Z" },
- { url = "https://files.pythonhosted.org/packages/29/9c/47293c58cc91769130fbf85531280e8cc7868f7fbb6d92f4670071b9cb3e/lxml-6.0.2-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:98a5e1660dc7de2200b00d53fa00bcd3c35a3608c305d45a7bbcaf29fa16e83d", size = 5252463, upload-time = "2025-09-22T04:02:44.165Z" },
- { url = "https://files.pythonhosted.org/packages/9b/da/ba6eceb830c762b48e711ded880d7e3e89fc6c7323e587c36540b6b23c6b/lxml-6.0.2-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:dc051506c30b609238d79eda75ee9cab3e520570ec8219844a72a46020901e37", size = 4698437, upload-time = "2025-09-22T04:02:46.524Z" },
- { url = "https://files.pythonhosted.org/packages/a5/24/7be3f82cb7990b89118d944b619e53c656c97dc89c28cfb143fdb7cd6f4d/lxml-6.0.2-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8799481bbdd212470d17513a54d568f44416db01250f49449647b5ab5b5dccb9", size = 5269890, upload-time = "2025-09-22T04:02:48.812Z" },
- { url = "https://files.pythonhosted.org/packages/1b/bd/dcfb9ea1e16c665efd7538fc5d5c34071276ce9220e234217682e7d2c4a5/lxml-6.0.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9261bb77c2dab42f3ecd9103951aeca2c40277701eb7e912c545c1b16e0e4917", size = 5097185, upload-time = "2025-09-22T04:02:50.746Z" },
- { url = "https://files.pythonhosted.org/packages/21/04/a60b0ff9314736316f28316b694bccbbabe100f8483ad83852d77fc7468e/lxml-6.0.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:65ac4a01aba353cfa6d5725b95d7aed6356ddc0a3cd734de00124d285b04b64f", size = 4745895, upload-time = "2025-09-22T04:02:52.968Z" },
- { url = "https://files.pythonhosted.org/packages/d6/bd/7d54bd1846e5a310d9c715921c5faa71cf5c0853372adf78aee70c8d7aa2/lxml-6.0.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:b22a07cbb82fea98f8a2fd814f3d1811ff9ed76d0fc6abc84eb21527596e7cc8", size = 5695246, upload-time = "2025-09-22T04:02:54.798Z" },
- { url = "https://files.pythonhosted.org/packages/fd/32/5643d6ab947bc371da21323acb2a6e603cedbe71cb4c99c8254289ab6f4e/lxml-6.0.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:d759cdd7f3e055d6bc8d9bec3ad905227b2e4c785dc16c372eb5b5e83123f48a", size = 5260797, upload-time = "2025-09-22T04:02:57.058Z" },
- { url = "https://files.pythonhosted.org/packages/33/da/34c1ec4cff1eea7d0b4cd44af8411806ed943141804ac9c5d565302afb78/lxml-6.0.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:945da35a48d193d27c188037a05fec5492937f66fb1958c24fc761fb9d40d43c", size = 5277404, upload-time = "2025-09-22T04:02:58.966Z" },
- { url = "https://files.pythonhosted.org/packages/82/57/4eca3e31e54dc89e2c3507e1cd411074a17565fa5ffc437c4ae0a00d439e/lxml-6.0.2-cp314-cp314-win32.whl", hash = "sha256:be3aaa60da67e6153eb15715cc2e19091af5dc75faef8b8a585aea372507384b", size = 3670072, upload-time = "2025-09-22T04:03:38.05Z" },
- { url = "https://files.pythonhosted.org/packages/e3/e0/c96cf13eccd20c9421ba910304dae0f619724dcf1702864fd59dd386404d/lxml-6.0.2-cp314-cp314-win_amd64.whl", hash = "sha256:fa25afbadead523f7001caf0c2382afd272c315a033a7b06336da2637d92d6ed", size = 4080617, upload-time = "2025-09-22T04:03:39.835Z" },
- { url = "https://files.pythonhosted.org/packages/d5/5d/b3f03e22b3d38d6f188ef044900a9b29b2fe0aebb94625ce9fe244011d34/lxml-6.0.2-cp314-cp314-win_arm64.whl", hash = "sha256:063eccf89df5b24e361b123e257e437f9e9878f425ee9aae3144c77faf6da6d8", size = 3754930, upload-time = "2025-09-22T04:03:41.565Z" },
- { url = "https://files.pythonhosted.org/packages/5e/5c/42c2c4c03554580708fc738d13414801f340c04c3eff90d8d2d227145275/lxml-6.0.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:6162a86d86893d63084faaf4ff937b3daea233e3682fb4474db07395794fa80d", size = 8910380, upload-time = "2025-09-22T04:03:01.645Z" },
- { url = "https://files.pythonhosted.org/packages/bf/4f/12df843e3e10d18d468a7557058f8d3733e8b6e12401f30b1ef29360740f/lxml-6.0.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:414aaa94e974e23a3e92e7ca5b97d10c0cf37b6481f50911032c69eeb3991bba", size = 4775632, upload-time = "2025-09-22T04:03:03.814Z" },
- { url = "https://files.pythonhosted.org/packages/e4/0c/9dc31e6c2d0d418483cbcb469d1f5a582a1cd00a1f4081953d44051f3c50/lxml-6.0.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:48461bd21625458dd01e14e2c38dd0aea69addc3c4f960c30d9f59d7f93be601", size = 4975171, upload-time = "2025-09-22T04:03:05.651Z" },
- { url = "https://files.pythonhosted.org/packages/e7/2b/9b870c6ca24c841bdd887504808f0417aa9d8d564114689266f19ddf29c8/lxml-6.0.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:25fcc59afc57d527cfc78a58f40ab4c9b8fd096a9a3f964d2781ffb6eb33f4ed", size = 5110109, upload-time = "2025-09-22T04:03:07.452Z" },
- { url = "https://files.pythonhosted.org/packages/bf/0c/4f5f2a4dd319a178912751564471355d9019e220c20d7db3fb8307ed8582/lxml-6.0.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5179c60288204e6ddde3f774a93350177e08876eaf3ab78aa3a3649d43eb7d37", size = 5041061, upload-time = "2025-09-22T04:03:09.297Z" },
- { url = "https://files.pythonhosted.org/packages/12/64/554eed290365267671fe001a20d72d14f468ae4e6acef1e179b039436967/lxml-6.0.2-cp314-cp314t-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:967aab75434de148ec80597b75062d8123cadf2943fb4281f385141e18b21338", size = 5306233, upload-time = "2025-09-22T04:03:11.651Z" },
- { url = "https://files.pythonhosted.org/packages/7a/31/1d748aa275e71802ad9722df32a7a35034246b42c0ecdd8235412c3396ef/lxml-6.0.2-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d100fcc8930d697c6561156c6810ab4a508fb264c8b6779e6e61e2ed5e7558f9", size = 5604739, upload-time = "2025-09-22T04:03:13.592Z" },
- { url = "https://files.pythonhosted.org/packages/8f/41/2c11916bcac09ed561adccacceaedd2bf0e0b25b297ea92aab99fd03d0fa/lxml-6.0.2-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ca59e7e13e5981175b8b3e4ab84d7da57993eeff53c07764dcebda0d0e64ecd", size = 5225119, upload-time = "2025-09-22T04:03:15.408Z" },
- { url = "https://files.pythonhosted.org/packages/99/05/4e5c2873d8f17aa018e6afde417c80cc5d0c33be4854cce3ef5670c49367/lxml-6.0.2-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:957448ac63a42e2e49531b9d6c0fa449a1970dbc32467aaad46f11545be9af1d", size = 4633665, upload-time = "2025-09-22T04:03:17.262Z" },
- { url = "https://files.pythonhosted.org/packages/0f/c9/dcc2da1bebd6275cdc723b515f93edf548b82f36a5458cca3578bc899332/lxml-6.0.2-cp314-cp314t-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b7fc49c37f1786284b12af63152fe1d0990722497e2d5817acfe7a877522f9a9", size = 5234997, upload-time = "2025-09-22T04:03:19.14Z" },
- { url = "https://files.pythonhosted.org/packages/9c/e2/5172e4e7468afca64a37b81dba152fc5d90e30f9c83c7c3213d6a02a5ce4/lxml-6.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e19e0643cc936a22e837f79d01a550678da8377d7d801a14487c10c34ee49c7e", size = 5090957, upload-time = "2025-09-22T04:03:21.436Z" },
- { url = "https://files.pythonhosted.org/packages/a5/b3/15461fd3e5cd4ddcb7938b87fc20b14ab113b92312fc97afe65cd7c85de1/lxml-6.0.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:1db01e5cf14345628e0cbe71067204db658e2fb8e51e7f33631f5f4735fefd8d", size = 4764372, upload-time = "2025-09-22T04:03:23.27Z" },
- { url = "https://files.pythonhosted.org/packages/05/33/f310b987c8bf9e61c4dd8e8035c416bd3230098f5e3cfa69fc4232de7059/lxml-6.0.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:875c6b5ab39ad5291588aed6925fac99d0097af0dd62f33c7b43736043d4a2ec", size = 5634653, upload-time = "2025-09-22T04:03:25.767Z" },
- { url = "https://files.pythonhosted.org/packages/70/ff/51c80e75e0bc9382158133bdcf4e339b5886c6ee2418b5199b3f1a61ed6d/lxml-6.0.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:cdcbed9ad19da81c480dfd6dd161886db6096083c9938ead313d94b30aadf272", size = 5233795, upload-time = "2025-09-22T04:03:27.62Z" },
- { url = "https://files.pythonhosted.org/packages/56/4d/4856e897df0d588789dd844dbed9d91782c4ef0b327f96ce53c807e13128/lxml-6.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:80dadc234ebc532e09be1975ff538d154a7fa61ea5031c03d25178855544728f", size = 5257023, upload-time = "2025-09-22T04:03:30.056Z" },
- { url = "https://files.pythonhosted.org/packages/0f/85/86766dfebfa87bea0ab78e9ff7a4b4b45225df4b4d3b8cc3c03c5cd68464/lxml-6.0.2-cp314-cp314t-win32.whl", hash = "sha256:da08e7bb297b04e893d91087df19638dc7a6bb858a954b0cc2b9f5053c922312", size = 3911420, upload-time = "2025-09-22T04:03:32.198Z" },
- { url = "https://files.pythonhosted.org/packages/fe/1a/b248b355834c8e32614650b8008c69ffeb0ceb149c793961dd8c0b991bb3/lxml-6.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:252a22982dca42f6155125ac76d3432e548a7625d56f5a273ee78a5057216eca", size = 4406837, upload-time = "2025-09-22T04:03:34.027Z" },
- { url = "https://files.pythonhosted.org/packages/92/aa/df863bcc39c5e0946263454aba394de8a9084dbaff8ad143846b0d844739/lxml-6.0.2-cp314-cp314t-win_arm64.whl", hash = "sha256:bb4c1847b303835d89d785a18801a883436cdfd5dc3d62947f9c49e24f0f5a2c", size = 3822205, upload-time = "2025-09-22T04:03:36.249Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/d4/9326838b59dc36dfae42eec9656b97520f9997eee1de47b8316aaeed169c/lxml-6.1.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d2f17a16cd8751e8eb233a7e41aecdf8e511712e00088bf9be455f604cd0d28d", size = 8570663, upload-time = "2026-04-18T04:27:48.253Z" },
+ { url = "https://files.pythonhosted.org/packages/d8/a4/053745ce1f8303ccbb788b86c0db3a91b973675cefc42566a188637b7c40/lxml-6.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f0cea5b1d3e6e77d71bd2b9972eb2446221a69dc52bb0b9c3c6f6e5700592d93", size = 4624024, upload-time = "2026-04-18T04:27:52.594Z" },
+ { url = "https://files.pythonhosted.org/packages/90/97/a517944b20f8fd0932ad2109482bee4e29fe721416387a363306667941f6/lxml-6.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fc46da94826188ed45cb53bd8e3fc076ae22675aea2087843d4735627f867c6d", size = 4930895, upload-time = "2026-04-18T04:32:56.29Z" },
+ { url = "https://files.pythonhosted.org/packages/94/7c/e08a970727d556caa040a44773c7b7e3ad0f0d73dedc863543e9a8b931f2/lxml-6.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9147d8e386ec3b82c3b15d88927f734f565b0aaadef7def562b853adca45784a", size = 5093820, upload-time = "2026-04-18T04:32:58.94Z" },
+ { url = "https://files.pythonhosted.org/packages/88/ee/2a5c2aa2c32016a226ca25d3e1056a8102ea6e1fe308bf50213586635400/lxml-6.1.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5715e0e28736a070f3f34a7ccc09e2fdcba0e3060abbcf61a1a5718ff6d6b105", size = 5005790, upload-time = "2026-04-18T04:33:01.272Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/38/a0db9be8f38ad6043ab9429487c128dd1d30f07956ef43040402f8da49e8/lxml-6.1.0-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4937460dc5df0cdd2f06a86c285c28afda06aefa3af949f9477d3e8df430c485", size = 5630827, upload-time = "2026-04-18T04:33:04.036Z" },
+ { url = "https://files.pythonhosted.org/packages/31/ba/3c13d3fc24b7cacf675f808a3a1baabf43a30d0cd24c98f94548e9aa58eb/lxml-6.1.0-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bc783ee3147e60a25aa0445ea82b3e8aabb83b240f2b95d32cb75587ff781814", size = 5240445, upload-time = "2026-04-18T04:33:06.87Z" },
+ { url = "https://files.pythonhosted.org/packages/55/ba/eeef4ccba09b2212fe239f46c1692a98db1878e0872ae320756488878a94/lxml-6.1.0-cp312-cp312-manylinux_2_28_i686.whl", hash = "sha256:40d9189f80075f2e1f88db21ef815a2b17b28adf8e50aaf5c789bfe737027f32", size = 5350121, upload-time = "2026-04-18T04:33:09.365Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/01/1da87c7b587c38d0cbe77a01aae3b9c1c49ed47d76918ef3db8fc151b1ca/lxml-6.1.0-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:05b9b8787e35bec69e68daf4952b2e6dfcfb0db7ecf1a06f8cdfbbac4eb71aad", size = 4694949, upload-time = "2026-04-18T04:33:11.628Z" },
+ { url = "https://files.pythonhosted.org/packages/a1/88/7db0fe66d5aaf128443ee1623dec3db1576f3e4c17751ec0ef5866468590/lxml-6.1.0-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0f0f08beb0182e3e9a86fae124b3c47a7b41b7b69b225e1377db983802404e54", size = 5243901, upload-time = "2026-04-18T04:33:13.95Z" },
+ { url = "https://files.pythonhosted.org/packages/00/a8/1346726af7d1f6fca1f11223ba34001462b0a3660416986d37641708d57c/lxml-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73becf6d8c81d4c76b1014dbd3584cb26d904492dcf73ca85dc8bff08dcd6d2d", size = 5048054, upload-time = "2026-04-18T04:33:16.965Z" },
+ { url = "https://files.pythonhosted.org/packages/2e/b7/85057012f035d1a0c87e02f8c723ca3c3e6e0728bcf4cb62080b21b1c1e3/lxml-6.1.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1ae225f66e5938f4fa29d37e009a3bb3b13032ac57eb4eb42afa44f6e4054e69", size = 4777324, upload-time = "2026-04-18T04:33:19.832Z" },
+ { url = "https://files.pythonhosted.org/packages/75/6c/ad2f94a91073ef570f33718040e8e160d5fb93331cf1ab3ca1323f939e2d/lxml-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:690022c7fae793b0489aa68a658822cea83e0d5933781811cabbf5ea3bcfe73d", size = 5645702, upload-time = "2026-04-18T04:33:22.436Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/89/0bb6c0bd549c19004c60eea9dc554dd78fd647b72314ef25d460e0d208c6/lxml-6.1.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:63aeafc26aac0be8aff14af7871249e87ea1319be92090bfd632ec68e03b16a5", size = 5232901, upload-time = "2026-04-18T04:33:26.21Z" },
+ { url = "https://files.pythonhosted.org/packages/a1/d9/d609a11fb567da9399f525193e2b49847b5a409cdebe737f06a8b7126bdc/lxml-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:264c605ab9c0e4aa1a679636f4582c4d3313700009fac3ec9c3412ed0d8f3e1d", size = 5261333, upload-time = "2026-04-18T04:33:28.984Z" },
+ { url = "https://files.pythonhosted.org/packages/a6/3a/ac3f99ec8ac93089e7dd556f279e0d14c24de0a74a507e143a2e4b496e7c/lxml-6.1.0-cp312-cp312-win32.whl", hash = "sha256:56971379bc5ee8037c5a0f09fa88f66cdb7d37c3e38af3e45cf539f41131ac1f", size = 3596289, upload-time = "2026-04-18T04:27:42.819Z" },
+ { url = "https://files.pythonhosted.org/packages/f2/a7/0a915557538593cb1bbeedcd40e13c7a261822c26fecbbdb71dad0c2f540/lxml-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:bba078de0031c219e5dd06cf3e6bf8fb8e6e64a77819b358f53bb132e3e03366", size = 3997059, upload-time = "2026-04-18T04:27:46.764Z" },
+ { url = "https://files.pythonhosted.org/packages/92/96/a5dc078cf0126fbfbc35611d77ecd5da80054b5893e28fb213a5613b9e1d/lxml-6.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:c3592631e652afa34999a088f98ba7dfc7d6aff0d535c410bea77a71743f3819", size = 3659552, upload-time = "2026-04-18T04:27:51.133Z" },
+ { url = "https://files.pythonhosted.org/packages/08/03/69347590f1cf4a6d5a4944bb6099e6d37f334784f16062234e1f892fdb1d/lxml-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a0092f2b107b69601adf562a57c956fbb596e05e3e6651cabd3054113b007e45", size = 8559689, upload-time = "2026-04-18T04:31:57.785Z" },
+ { url = "https://files.pythonhosted.org/packages/3f/58/25e00bb40b185c974cfe156c110474d9a8a8390d5f7c92a4e328189bb60e/lxml-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fc7140d7a7386e6b545d41b7358f4d02b656d4053f5fa6859f92f4b9c2572c4d", size = 4617892, upload-time = "2026-04-18T04:32:01.78Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/54/92ad98a94ac318dc4f97aaac22ff8d1b94212b2ae8af5b6e9b354bf825f7/lxml-6.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:419c58fc92cc3a2c3fa5f78c63dbf5da70c1fa9c1b25f25727ecee89a96c7de2", size = 4923489, upload-time = "2026-04-18T04:33:31.401Z" },
+ { url = "https://files.pythonhosted.org/packages/15/3b/a20aecfab42bdf4f9b390590d345857ad3ffd7c51988d1c89c53a0c73faf/lxml-6.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:37fabd1452852636cf38ecdcc9dd5ca4bba7a35d6c53fa09725deeb894a87491", size = 5082162, upload-time = "2026-04-18T04:33:34.262Z" },
+ { url = "https://files.pythonhosted.org/packages/45/26/2cdb3d281ac1bd175603e290cbe4bad6eff127c0f8de90bafd6f8548f0fd/lxml-6.1.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2853c8b2170cc6cd54a6b4d50d2c1a8a7aeca201f23804b4898525c7a152cfc", size = 4993247, upload-time = "2026-04-18T04:33:36.674Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/05/d735aef963740022a08185c84821f689fc903acb3d50326e6b1e9886cc22/lxml-6.1.0-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8e369cbd690e788c8d15e56222d91a09c6a417f49cbc543040cba0fe2e25a79e", size = 5613042, upload-time = "2026-04-18T04:33:39.205Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/b8/ead7c10efff731738c72e59ed6eb5791854879fbed7ae98781a12006263a/lxml-6.1.0-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e69aa6805905807186eb00e66c6d97a935c928275182eb02ee40ba00da9623b2", size = 5228304, upload-time = "2026-04-18T04:33:41.647Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/10/e9842d2ec322ea65f0a7270aa0315a53abed06058b88ef1b027f620e7a5f/lxml-6.1.0-cp313-cp313-manylinux_2_28_i686.whl", hash = "sha256:4bd1bdb8a9e0e2dd229de19b5f8aebac80e916921b4b2c6ef8a52bc131d0c1f9", size = 5341578, upload-time = "2026-04-18T04:33:44.596Z" },
+ { url = "https://files.pythonhosted.org/packages/89/54/40d9403d7c2775fa7301d3ddd3464689bfe9ba71acc17dfff777071b4fdc/lxml-6.1.0-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:cbd7b79cdcb4986ad78a2662625882747f09db5e4cd7b2ae178a88c9c51b3dfe", size = 4700209, upload-time = "2026-04-18T04:33:47.552Z" },
+ { url = "https://files.pythonhosted.org/packages/85/b2/bbdcc2cf45dfc7dfffef4fd97e5c47b15919b6a365247d95d6f684ef5e82/lxml-6.1.0-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:43e4d297f11080ec9d64a4b1ad7ac02b4484c9f0e2179d9c4ef78e886e747b88", size = 5232365, upload-time = "2026-04-18T04:33:50.249Z" },
+ { url = "https://files.pythonhosted.org/packages/48/5a/b06875665e53aaba7127611a7bed3b7b9658e20b22bc2dd217a0b7ab0091/lxml-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cc16682cc987a3da00aa56a3aa3075b08edb10d9b1e476938cfdbee8f3b67181", size = 5043654, upload-time = "2026-04-18T04:33:52.71Z" },
+ { url = "https://files.pythonhosted.org/packages/e9/9c/e71a069d09641c1a7abeb30e693f828c7c90a41cbe3d650b2d734d876f85/lxml-6.1.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d6d8efe71429635f0559579092bb5e60560d7b9115ee38c4adbea35632e7fa24", size = 4769326, upload-time = "2026-04-18T04:33:55.244Z" },
+ { url = "https://files.pythonhosted.org/packages/cc/06/7a9cd84b3d4ed79adf35f874750abb697dec0b4a81a836037b36e47c091a/lxml-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7e39ab3a28af7784e206d8606ec0e4bcad0190f63a492bca95e94e5a4aef7f6e", size = 5635879, upload-time = "2026-04-18T04:33:58.509Z" },
+ { url = "https://files.pythonhosted.org/packages/cc/f0/9d57916befc1e54c451712c7ee48e9e74e80ae4d03bdce49914e0aee42cd/lxml-6.1.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:9eb667bf50856c4a58145f8ca2d5e5be160191e79eb9e30855a476191b3c3495", size = 5224048, upload-time = "2026-04-18T04:34:00.943Z" },
+ { url = "https://files.pythonhosted.org/packages/99/75/90c4eefda0c08c92221fe0753db2d6699a4c628f76ff4465ec20dea84cc1/lxml-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7f4a77d6f7edf9230cee3e1f7f6764722a41604ee5681844f18db9a81ea0ec33", size = 5250241, upload-time = "2026-04-18T04:34:03.365Z" },
+ { url = "https://files.pythonhosted.org/packages/5e/73/16596f7e4e38fa33084b9ccbccc22a15f82a290a055126f2c1541236d2ff/lxml-6.1.0-cp313-cp313-win32.whl", hash = "sha256:28902146ffbe5222df411c5d19e5352490122e14447e98cd118907ee3fd6ee62", size = 3596938, upload-time = "2026-04-18T04:31:56.206Z" },
+ { url = "https://files.pythonhosted.org/packages/8e/63/981401c5680c1eb30893f00a19641ac80db5d1e7086c62cb4b13ed813038/lxml-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:4a1503c56e4e2b38dc76f2f2da7bae69670c0f1933e27cfa34b2fa5876410b16", size = 3995728, upload-time = "2026-04-18T04:31:58.763Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/e8/c358a38ac3e541d16a1b527e4e9cb78c0419b0506a070ace11777e5e8404/lxml-6.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:e0af85773850417d994d019741239b901b22c6680206f46a34766926e466141d", size = 3658372, upload-time = "2026-04-18T04:32:03.629Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/45/cee4cf203ef0bab5c52afc118da61d6b460c928f2893d40023cfa27e0b80/lxml-6.1.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:ab863fd37458fed6456525f297d21239d987800c46e67da5ef04fc6b3dd93ac8", size = 8576713, upload-time = "2026-04-18T04:32:06.831Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/a7/eda05babeb7e046839204eaf254cd4d7c9130ce2bbf0d9e90ea41af5654d/lxml-6.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:6fd8b1df8254ff4fd93fd31da1fc15770bde23ac045be9bb1f87425702f61cc9", size = 4623874, upload-time = "2026-04-18T04:32:10.755Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/e9/db5846de9b436b91890a62f29d80cd849ea17948a49bf532d5278ee69a9e/lxml-6.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:47024feaae386a92a146af0d2aeed65229bf6fff738e6a11dda6b0015fb8fd03", size = 4949535, upload-time = "2026-04-18T04:34:06.657Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/ba/0d3593373dcae1d68f40dc3c41a5a92f2544e68115eb2f62319a4c2a6500/lxml-6.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3f00972f84450204cd5d93a5395965e348956aaceaadec693a22ec743f8ae3eb", size = 5086881, upload-time = "2026-04-18T04:34:09.556Z" },
+ { url = "https://files.pythonhosted.org/packages/43/76/759a7484539ad1af0d125a9afe9c3fb5f82a8779fd1f5f56319d9e4ea2fd/lxml-6.1.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97faa0860e13b05b15a51fb4986421ef7a30f0b3334061c416e0981e9450ca4c", size = 5031305, upload-time = "2026-04-18T04:34:12.336Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/b9/c1f0daf981a11e47636126901fd4ab82429e18c57aeb0fc3ad2940b42d8b/lxml-6.1.0-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:972a6451204798675407beaad97b868d0c733d9a74dafefc63120b81b8c2de28", size = 5647522, upload-time = "2026-04-18T04:34:14.89Z" },
+ { url = "https://files.pythonhosted.org/packages/31/e6/1f533dcd205275363d9ba3511bcec52fa2df86abf8abe6a5f2c599f0dc31/lxml-6.1.0-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fe022f20bc4569ec66b63b3fb275a3d628d9d32da6326b2982584104db6d3086", size = 5239310, upload-time = "2026-04-18T04:34:17.652Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/8c/4175fb709c78a6e315ed814ed33be3defd8b8721067e70419a6cf6f971da/lxml-6.1.0-cp314-cp314-manylinux_2_28_i686.whl", hash = "sha256:75c4c7c619a744f972f4451bf5adf6d0fb00992a1ffc9fd78e13b0bc817cc99f", size = 5350799, upload-time = "2026-04-18T04:34:20.529Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/77/6ffdebc5994975f0dde4acb59761902bd9d9bb84422b9a0bd239a7da9ca8/lxml-6.1.0-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:3648f20d25102a22b6061c688beb3a805099ea4beb0a01ce62975d926944d292", size = 4697693, upload-time = "2026-04-18T04:34:23.541Z" },
+ { url = "https://files.pythonhosted.org/packages/f8/f1/565f36bd5c73294602d48e04d23f81ff4c8736be6ba5e1d1ec670ac9be80/lxml-6.1.0-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:77b9f99b17cbf14026d1e618035077060fc7195dd940d025149f3e2e830fbfcb", size = 5250708, upload-time = "2026-04-18T04:34:26.001Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/11/a68ab9dd18c5c499404deb4005f4bc4e0e88e5b72cd755ad96efec81d18d/lxml-6.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:32662519149fd7a9db354175aa5e417d83485a8039b8aaa62f873ceee7ea4cad", size = 5084737, upload-time = "2026-04-18T04:34:28.32Z" },
+ { url = "https://files.pythonhosted.org/packages/ab/78/e8f41e2c74f4af564e6a0348aea69fb6daaefa64bc071ef469823d22cc18/lxml-6.1.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:73d658216fc173cf2c939e90e07b941c5e12736b0bf6a99e7af95459cfe8eabb", size = 4737817, upload-time = "2026-04-18T04:34:30.784Z" },
+ { url = "https://files.pythonhosted.org/packages/06/2d/aa4e117aa2ce2f3b35d9ff246be74a2f8e853baba5d2a92c64744474603a/lxml-6.1.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ac4db068889f8772a4a698c5980ec302771bb545e10c4b095d4c8be26749616f", size = 5670753, upload-time = "2026-04-18T04:34:33.675Z" },
+ { url = "https://files.pythonhosted.org/packages/08/f5/dd745d50c0409031dbfcc4881740542a01e54d6f0110bd420fa7782110b8/lxml-6.1.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:45e9dfbd1b661eb64ba0d4dbe762bd210c42d86dd1e5bd2bdf89d634231beb43", size = 5238071, upload-time = "2026-04-18T04:34:36.12Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/74/ad424f36d0340a904665867dab310a3f1f4c96ff4039698de83b77f44c1f/lxml-6.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:89e8d73d09ac696a5ba42ec69787913d53284f12092f651506779314f10ba585", size = 5264319, upload-time = "2026-04-18T04:34:39.035Z" },
+ { url = "https://files.pythonhosted.org/packages/53/36/a15d8b3514ec889bfd6aa3609107fcb6c9189f8dc347f1c0b81eded8d87c/lxml-6.1.0-cp314-cp314-win32.whl", hash = "sha256:ebe33f4ec1b2de38ceb225a1749a2965855bffeef435ba93cd2d5d540783bf2f", size = 3657139, upload-time = "2026-04-18T04:32:20.006Z" },
+ { url = "https://files.pythonhosted.org/packages/1a/a4/263ebb0710851a3c6c937180a9a86df1206fdfe53cc43005aa2237fd7736/lxml-6.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:398443df51c538bd578529aa7e5f7afc6c292644174b47961f3bf87fe5741120", size = 4064195, upload-time = "2026-04-18T04:32:23.876Z" },
+ { url = "https://files.pythonhosted.org/packages/80/68/2000f29d323b6c286de077ad20b429fc52272e44eae6d295467043e56012/lxml-6.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:8c8984e1d8c4b3949e419158fda14d921ff703a9ed8a47236c6eb7a2b6cb4946", size = 3741870, upload-time = "2026-04-18T04:32:27.922Z" },
+ { url = "https://files.pythonhosted.org/packages/30/e9/21383c7c8d43799f0da90224c0d7c921870d476ec9b3e01e1b2c0b8237c5/lxml-6.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:1081dd10bc6fa437db2500e13993abf7cc30716d0a2f40e65abb935f02ec559c", size = 8827548, upload-time = "2026-04-18T04:32:15.094Z" },
+ { url = "https://files.pythonhosted.org/packages/a5/01/c6bc11cd587030dd4f719f65c5657960649fe3e19196c844c75bf32cd0d6/lxml-6.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:dabecc48db5f42ba348d1f5d5afdc54c6c4cc758e676926c7cd327045749517d", size = 4735866, upload-time = "2026-04-18T04:32:18.924Z" },
+ { url = "https://files.pythonhosted.org/packages/f3/01/757132fff5f4acf25463b5298f1a46099f3a94480b806547b29ce5e385de/lxml-6.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e3dd5fe19c9e0ac818a9c7f132a5e43c1339ec1cbbfecb1a938bd3a47875b7c9", size = 4969476, upload-time = "2026-04-18T04:34:41.889Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/fb/1bc8b9d27ed64be7c8903db6c89e74dc8c2cd9ec630a7462e4654316dc5b/lxml-6.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9e7b0a4ca6dcc007a4cef00a761bba2dea959de4bd2df98f926b33c92ca5dfb9", size = 5103719, upload-time = "2026-04-18T04:34:44.797Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/e7/5bf82fa28133536a54601aae633b14988e89ed61d4c1eb6b899b023233aa/lxml-6.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d27bbe326c6b539c64b42638b18bc6003a8d88f76213a97ac9ed4f885efeab7", size = 5027890, upload-time = "2026-04-18T04:34:47.634Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/20/e048db5d4b4ea0366648aa595f26bb764b2670903fc585b87436d0a5032c/lxml-6.1.0-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4e425db0c5445ef0ad56b0eec54f89b88b2d884656e536a90b2f52aecb4ca86", size = 5596008, upload-time = "2026-04-18T04:34:51.503Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/c2/d10807bc8da4824b39e5bd01b5d05c077b6fd01bd91584167edf6b269d22/lxml-6.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4b89b098105b8599dc57adac95d1813409ac476d3c948a498775d3d0c6124bfb", size = 5224451, upload-time = "2026-04-18T04:34:54.263Z" },
+ { url = "https://files.pythonhosted.org/packages/3c/15/2ebea45bea427e7f0057e9ce7b2d62c5aba20c6b001cca89ed0aadb3ad41/lxml-6.1.0-cp314-cp314t-manylinux_2_28_i686.whl", hash = "sha256:c4a699432846df86cc3de502ee85f445ebad748a1c6021d445f3e514d2cd4b1c", size = 5312135, upload-time = "2026-04-18T04:34:56.818Z" },
+ { url = "https://files.pythonhosted.org/packages/31/e2/87eeae151b0be2a308d49a7ec444ff3eb192b14251e62addb29d0bf3778f/lxml-6.1.0-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:30e7b2ed63b6c8e97cca8af048589a788ab5c9c905f36d9cf1c2bb549f450d2f", size = 4639126, upload-time = "2026-04-18T04:34:59.704Z" },
+ { url = "https://files.pythonhosted.org/packages/a3/51/8a3f6a20902ad604dd746ec7b4000311b240d389dac5e9d95adefd349e0c/lxml-6.1.0-cp314-cp314t-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:022981127642fe19866d2907d76241bb07ed21749601f727d5d5dd1ce5d1b773", size = 5232579, upload-time = "2026-04-18T04:35:02.658Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/d2/650d619bdbe048d2c3f2c31edb00e35670a5e2d65b4fe3b61bce37b19121/lxml-6.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:23cad0cc86046d4222f7f418910e46b89971c5a45d3c8abfad0f64b7b05e4a9b", size = 5084206, upload-time = "2026-04-18T04:35:05.175Z" },
+ { url = "https://files.pythonhosted.org/packages/dd/8a/672ca1a3cbeabd1f511ca275a916c0514b747f4b85bdaae103b8fa92f307/lxml-6.1.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:21c3302068f50d1e8728c67c87ba92aa87043abee517aa2576cca1855326b405", size = 4758906, upload-time = "2026-04-18T04:35:08.098Z" },
+ { url = "https://files.pythonhosted.org/packages/be/f1/ef4b691da85c916cb2feb1eec7414f678162798ac85e042fa164419ac05c/lxml-6.1.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:be10838781cb3be19251e276910cd508fe127e27c3242e50521521a0f3781690", size = 5620553, upload-time = "2026-04-18T04:35:11.23Z" },
+ { url = "https://files.pythonhosted.org/packages/59/17/94e81def74107809755ac2782fdad4404420f1c92ca83433d117a6d5acf0/lxml-6.1.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:2173a7bffe97667bbf0767f8a99e587740a8c56fdf3befac4b09cb29a80276fd", size = 5229458, upload-time = "2026-04-18T04:35:14.254Z" },
+ { url = "https://files.pythonhosted.org/packages/21/55/c4be91b0f830a871fc1b0d730943d56013b683d4671d5198260e2eae722b/lxml-6.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c6854e9cf99c84beb004eecd7d3a3868ef1109bf2b1df92d7bc11e96a36c2180", size = 5247861, upload-time = "2026-04-18T04:35:17.006Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/ca/77123e4d77df3cb1e968ade7b1f808f5d3a5c1c96b18a33895397de292c1/lxml-6.1.0-cp314-cp314t-win32.whl", hash = "sha256:00750d63ef0031a05331b9223463b1c7c02b9004cef2346a5b2877f0f9494dd2", size = 3897377, upload-time = "2026-04-18T04:32:07.656Z" },
+ { url = "https://files.pythonhosted.org/packages/64/ce/3554833989d074267c063209bae8b09815e5656456a2d332b947806b05ff/lxml-6.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:80410c3a7e3c617af04de17caa9f9f20adaa817093293d69eae7d7d0522836f5", size = 4392701, upload-time = "2026-04-18T04:32:12.113Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/a0/9b916c68c0e57752c07f8f64b30138d9d4059dbeb27b90274dedbea128ff/lxml-6.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:26dd9f57ee3bd41e7d35b4c98a2ffd89ed11591649f421f0ec19f67d50ec67ac", size = 3817120, upload-time = "2026-04-18T04:32:15.803Z" },
]
[[package]]
From 7d2bdc4f33a4a6416badd4160092120ed3ff648c Mon Sep 17 00:00:00 2001
From: Patrick Quist
Date: Wed, 22 Apr 2026 20:28:10 +0200
Subject: [PATCH 37/51] Add Norcroft C and C++ compiler support (#8641)
---
CONTRIBUTORS.md | 1 +
etc/config/c++.amazon.properties | 21 ++++-
etc/config/c.amazon.properties | 21 ++++-
lib/compilers/_all.ts | 1 +
lib/compilers/norcroft.ts | 122 ++++++++++++++++++++++++++++
lib/parsers/asm-parser-norcroft.ts | 125 +++++++++++++++++++++++++++++
6 files changed, 289 insertions(+), 2 deletions(-)
create mode 100644 lib/compilers/norcroft.ts
create mode 100644 lib/parsers/asm-parser-norcroft.ts
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/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index 5bd757f4b..d9b84529c 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -1,4 +1,4 @@
-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.
@@ -4834,6 +4834,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
diff --git a/etc/config/c.amazon.properties b/etc/config/c.amazon.properties
index b205b9df9..fd4d9a9aa 100644
--- a/etc/config/c.amazon.properties
+++ b/etc/config/c.amazon.properties
@@ -1,4 +1,4 @@
-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
+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=cg152
# 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
@@ -4346,6 +4346,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
diff --git a/lib/compilers/_all.ts b/lib/compilers/_all.ts
index 6878a97b7..704a9dd5b 100644
--- a/lib/compilers/_all.ts
+++ b/lib/compilers/_all.ts
@@ -118,6 +118,7 @@ export {Msp430Compiler} from './msp430.js';
export {NasmCompiler} from './nasm.js';
export {NimCompiler} from './nim.js';
export {NixCompiler} from './nix.js';
+export {NorcroftCompiler} from './norcroft.js';
export {NumbaCompiler} from './numba.js';
export {NvccCompiler} from './nvcc.js';
export {NvcppCompiler} from './nvcpp.js';
diff --git a/lib/compilers/norcroft.ts b/lib/compilers/norcroft.ts
new file mode 100644
index 000000000..c8cc375e9
--- /dev/null
+++ b/lib/compilers/norcroft.ts
@@ -0,0 +1,122 @@
+// Copyright (c) 2025, Compiler Explorer Authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+import path from 'node:path';
+
+import _ from 'underscore';
+
+import type {ExecutionOptions} from '../../types/compilation/compilation.interfaces.js';
+import type {PreliminaryCompilerInfo} from '../../types/compiler.interfaces.js';
+import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
+import {unwrap} from '../assert.js';
+import {BaseCompiler} from '../base-compiler.js';
+import {CompilationEnvironment} from '../compilation-env.js';
+import {logger} from '../logger.js';
+import {NorcroftObjAsmParser} from '../parsers/asm-parser-norcroft.js';
+
+export class NorcroftCompiler extends BaseCompiler {
+ constructor(compilerInfo: PreliminaryCompilerInfo, env: CompilationEnvironment) {
+ super(compilerInfo, env);
+
+ this.asm = new NorcroftObjAsmParser(this.compilerProps);
+ }
+
+ static get key() {
+ return 'norcroft';
+ }
+
+ override async getVersion() {
+ logger.info(`Gathering ${this.compiler.id} version information on ${this.compiler.exe}...`);
+ if (this.compiler.explicitVersion) {
+ logger.debug(`${this.compiler.id} has forced version output: ${this.compiler.explicitVersion}`);
+ return {stdout: this.compiler.explicitVersion, stderr: '', code: 0};
+ }
+ const execOptions = this.getDefaultExecOptions();
+ const versionFlag: string[] = [];
+ execOptions.timeoutMs = 0;
+ execOptions.ldPath = this.getSharedLibraryPathsAsLdLibraryPaths([]);
+
+ try {
+ const res = await this.execCompilerCached(this.compiler.exe, versionFlag, execOptions);
+ return {stdout: res.stdout, stderr: res.stderr, code: res.code};
+ } catch (err) {
+ logger.error(`Unable to get version for compiler '${this.compiler.exe}' - ${err}`);
+ return null;
+ }
+ }
+
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename: string, userOptions?: string[]) {
+ filters.binary = false;
+
+ if (_.some(unwrap(userOptions), opt => opt === '-help' || opt === '-h')) {
+ // Let the compiler print its own help text
+ return [];
+ }
+ if (!_.some(unwrap(userOptions), opt => opt === '-E')) {
+ filters.binary = false;
+ }
+ return ['-c', '-S', '--asm-includes-location', '-o', this.filename(outputFilename)];
+ }
+
+ override filterUserOptions(userOptions: string[]) {
+ return userOptions.filter(opt => opt !== '-run' && !opt.startsWith('-W'));
+ }
+
+ override async runCompiler(
+ compiler: string,
+ options: string[],
+ inputFilename: string,
+ execOptions: ExecutionOptions & {env: Record},
+ ) {
+ if (!execOptions) {
+ execOptions = this.getDefaultExecOptions();
+ }
+ if (!execOptions.customCwd) {
+ // ncc resolves relative paths against its cwd; without this it
+ // runs in the server's cwd and can't find the source file.
+ execOptions.customCwd = path.dirname(inputFilename);
+ }
+
+ const result = await this.exec(compiler, options, execOptions);
+
+ // Norcroft diagnostics look like:
+ // "", line 11: Warning: message...
+ // "", line 37: Error: message...
+ // The generic applyParse_SourceWithLine expects:
+ // :11:1: warning: message...
+ // :37:1: error: message...
+ //
+ // Rewrite stderr to that shape so the generic parser can
+ // extract file/line/severity and drive hover markers.
+ if (typeof result.stderr === 'string') {
+ result.stderr = result.stderr
+ // Warnings
+ .replace(/^"([^"]+)",\s*line\s+(\d+):\s*Warning:\s*/gm, '$1:$2:1: warning: ')
+ // Errors and serious errors
+ .replace(/^"([^"]+)",\s*line\s+(\d+):\s*(Error|Serious error):\s*/gm, '$1:$2:1: error: ');
+ }
+
+ return this.transformToCompilationResult(result, inputFilename);
+ }
+}
diff --git a/lib/parsers/asm-parser-norcroft.ts b/lib/parsers/asm-parser-norcroft.ts
new file mode 100644
index 000000000..0de7a71c6
--- /dev/null
+++ b/lib/parsers/asm-parser-norcroft.ts
@@ -0,0 +1,125 @@
+// Copyright (c) 2025, Compiler Explorer Authors
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+import {AsmResultSource, ParsedAsmResult, ParsedAsmResultLine} from '../../types/asmresult/asmresult.interfaces.js';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
+import {PropertyGetter} from '../properties.interfaces.js';
+import * as utils from '../utils.js';
+import {AsmParser} from './asm-parser.js';
+
+export class NorcroftObjAsmParser extends AsmParser {
+ private readonly asmBinaryParser: AsmParser;
+ private readonly headerOrTrailer = /^\s*(?:\S+\s+)?(AREA|END|EXPORT|IMPORT|NOINIT|BASED|COMDEF|COMMON|DATA)\b/;
+ private readonly sourceFile = /^\s*;\s*source-file:\s+"([^"]+)",\s*line\s+(\d+)/;
+ private readonly lineNumber = /^\s*;\s*line:\s+(\d+)(?:\s+\d+)?/;
+ private readonly label = /^([|A-Za-z_.$][\w.$|]*)\s*$/; // label has no whitespace at start of line.
+ private readonly DCD = /^\s*(?:\S+\s+)?(DC[A-Z]*)\b/; // DCD, DCB, DCFD, etc...
+
+ constructor(compilerProps: PropertyGetter) {
+ super(compilerProps);
+ this.asmBinaryParser = new AsmParser(compilerProps);
+ }
+
+ override processAsm(asm: string, filters: ParseFiltersAndOutputOptions): ParsedAsmResult {
+ if (filters.binary) return this.asmBinaryParser.processBinaryAsm(asm, filters);
+
+ let currentfile = '';
+ let currentline: string | undefined;
+
+ const asmLines: ParsedAsmResultLine[] = [];
+ asm = asm.replace(/\u001A$/, '');
+
+ utils.eachLine(asm, line => {
+ let isDirective = false;
+
+ const labelmatch = line.match(this.label);
+ if (labelmatch && !labelmatch[1].startsWith('|')) {
+ // global label (eg. "main", not "|L030|") - reset any line number.
+ currentline = undefined;
+ }
+
+ // Header and trailer keywords should be white and reset any line number.
+ if (line.match(this.headerOrTrailer)) {
+ // possibly also current file?
+ currentline = undefined;
+ isDirective = true;
+ }
+
+ const sourcefilematch = line.match(this.sourceFile);
+ if (sourcefilematch) {
+ currentfile = sourcefilematch[1];
+ currentline = sourcefilematch[2];
+ isDirective = true;
+ }
+
+ const linenumbermatch = line.match(this.lineNumber);
+ if (linenumbermatch) {
+ currentline = linenumbermatch[1];
+ isDirective = true;
+ }
+
+ // Parse the line number from any updated string.
+ // Anything before here can parse or reset the current line.
+ // Anything after can filter a line from display (return) or whiten
+ // the line (set source to null).
+ let source: AsmResultSource | null = null;
+ if (currentfile && currentline) {
+ source = {
+ file: filters.dontMaskFilenames ? currentfile : null,
+ line: Number.parseInt(currentline, 10),
+ };
+ }
+
+ // Comments and blank lines should be filtered as directives.
+ // Note that this includes sourcefilematch and linenumber match -
+ // if the behaviour for them needs to change, check those bools.
+ const trimmed = line.trim();
+ if (trimmed === '' || trimmed.startsWith(';')) {
+ isDirective = true;
+ source = null; // also render white
+ }
+
+ if (labelmatch) {
+ source = null; // render all labels white
+ }
+
+ if (line.match(this.DCD)) {
+ source = null; // render all DCDs(etc) white
+ }
+
+ // Don't append directives if they're filtered out.
+ if (filters.directives && isDirective) return;
+
+ // All lines must be appended to appear in CE's output.
+ asmLines.push({
+ text: line,
+ source,
+ });
+ });
+
+ return {
+ asm: asmLines,
+ };
+ }
+}
From d845d7e9939a9dd3c4bd174f005847ba01376345 Mon Sep 17 00:00:00 2001
From: Andy Soffer
Date: Fri, 24 Apr 2026 18:29:18 -0400
Subject: [PATCH 38/51] Add support for compiling code with libraries to
clang-query. (#8635)
I tested this locally on a few examples with clang-query-19.
---
lib/tooling/clang-query-tool.ts | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/lib/tooling/clang-query-tool.ts b/lib/tooling/clang-query-tool.ts
index b75246d87..fc0a65f0b 100644
--- a/lib/tooling/clang-query-tool.ts
+++ b/lib/tooling/clang-query-tool.ts
@@ -27,6 +27,7 @@ import path from 'node:path';
import {CompilationInfo} from '../../types/compilation/compilation.interfaces.js';
import {ToolInfo} from '../../types/tool.interfaces.js';
+import {OptionsHandlerLibrary} from '../options-handler.js';
import {ToolEnv} from './base-tool.interface.js';
import {BaseTool} from './base-tool.js';
@@ -41,16 +42,27 @@ export class ClangQueryTool extends BaseTool {
this.addOptionsToToolArgs = false;
}
- override async runTool(compilationInfo: CompilationInfo, inputFilepath: string, args: string[], stdin: string) {
+ override async runTool(
+ compilationInfo: CompilationInfo,
+ inputFilepath: string,
+ args: string[],
+ stdin: string,
+ supportedLibraries?: Record,
+ ) {
const sourcefile = inputFilepath;
const compilerExe = compilationInfo.compiler.exe;
const options = compilationInfo.options;
const dir = path.dirname(sourcefile);
- const compileFlags = options.filter((option: string) => option !== sourcefile);
+ const includeflags = super.getIncludeArguments(compilationInfo.libraries, supportedLibraries || {}, dir);
+ const libOptions = super.getLibraryOptions(compilationInfo.libraries, supportedLibraries || {});
+
+ let compileFlags = options.filter((option: string) => option !== sourcefile);
if (!compilerExe.includes('clang++')) {
compileFlags.concat(this.tool.options);
}
+ compileFlags = compileFlags.concat(includeflags);
+ compileFlags = compileFlags.concat(libOptions);
const query_commands_file = this.getUniqueFilePrefix() + 'query_commands.txt';
From f02abbe42cf36b3c66bfb47d84a60f7bd8ecf151 Mon Sep 17 00:00:00 2001
From: "Matt Godbolt (bot acct)"
Date: Thu, 30 Apr 2026 14:44:04 -0500
Subject: [PATCH 39/51] Add GCC 16.1 (#8642)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add GCC 16.1.0 compilers across all supported languages and
architectures.
## Native (x86-64)
- **C++/C:** `g161` / `g161assert`, set as default
- **Ada:** `gnat161` / `gnat161assert`
- **D:** `gdc161` / `gdc161assert`
- **Fortran:** `gfortran161` / `gfortran161assert`
- **Go:** `gccgo161` / `gccgo161assert`
- **COBOL:** `gcccobol161` / `gcccobol161assert`
- **Modula-2:** `gm2161` / `gm2161assert`
- **GIMPLE:** `gimpleg161` / `gimpleg161assert`
- **ObjC / ObjC++:** `objcg161` / `objcppg161`
- **Rust (GCC):** `gccrs-g161`
- **Algol68:** `ga68-g161` — GCC 16 is the first release to ship the
`ga68` frontend; set as default, snapshot remains for trunk
## Cross-compilers (23 architectures)
arm, arm-unknown (eabi), arm64, avr, bpf, c6x, hppa, loongarch64, m68k,
mips, mips64, mips64el, mipsel, powerpc, powerpc64, powerpc64le,
riscv32, riscv64, s390x, sh, sparc, sparc64, sparc-leon.
Note: msp430 uses TI-specific distributions so is not added here.
**Depends on:** infra PR compiler-explorer/infra#2078 + S3 packages
being available.
refs https://github.com/compiler-explorer/compiler-explorer/issues/7948
*(I'm Molty, an AI assistant acting on behalf of @mattgodbolt)*
🤖 Generated by LLM (Claude, via OpenClaw)
---------
Co-authored-by: mattgodbolt-molty
---
etc/config/ada.amazon.properties | 10 +-
etc/config/algol68.amazon.properties | 9 +-
etc/config/c++.amazon.properties | 169 +++++++++++++++++++++++----
etc/config/c.amazon.properties | 169 +++++++++++++++++++++++----
etc/config/cobol.amazon.properties | 10 +-
etc/config/d.amazon.properties | 8 +-
etc/config/fortran.amazon.properties | 14 ++-
etc/config/gimple.amazon.properties | 14 ++-
etc/config/go.amazon.properties | 8 +-
etc/config/modula2.amazon.properties | 10 +-
etc/config/objc++.amazon.properties | 14 ++-
etc/config/objc.amazon.properties | 14 ++-
etc/config/rust.amazon.properties | 12 +-
13 files changed, 372 insertions(+), 89 deletions(-)
diff --git a/etc/config/ada.amazon.properties b/etc/config/ada.amazon.properties
index 290e5e83d..7ec5cb932 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
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/c++.amazon.properties b/etc/config/c++.amazon.properties
index d9b84529c..7b783b478 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -2,7 +2,7 @@ compilers=&gcc86:&icc:&icx:&clang:&clangx86trunk:&clang-rocm:&mosclang-trunk:&rv
# 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
@@ -1780,7 +1784,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 +1835,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 +1863,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 +1889,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 +1948,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 +1986,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 +2001,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 +2070,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 +2150,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 +2232,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 +2248,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 +2317,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 +2330,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 +2397,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 +2410,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 +2487,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 +2500,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 +2576,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 +2589,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 +2669,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 +2762,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 +2787,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 +2876,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 +2909,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 +3028,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 +3081,11 @@ 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.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 +3153,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 +3282,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 +3497,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 +3604,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 +3796,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 +3895,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 +3997,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 +4095,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 +4194,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 +4234,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 +4340,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 +4353,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 +4458,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)
diff --git a/etc/config/c.amazon.properties b/etc/config/c.amazon.properties
index fd4d9a9aa..e73020234 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:&nccarm
-defaultCompiler=cg152
+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)
@@ -1267,7 +1271,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
@@ -1319,6 +1323,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
@@ -1348,7 +1357,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
@@ -1374,6 +1383,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)
@@ -1414,7 +1428,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
@@ -1466,13 +1480,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
@@ -1541,13 +1560,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
@@ -1616,13 +1640,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
@@ -1693,6 +1722,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
@@ -1704,7 +1738,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
@@ -1773,13 +1807,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
@@ -1848,13 +1887,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
@@ -1933,13 +1977,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
@@ -2016,6 +2065,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
@@ -2023,7 +2077,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
@@ -2103,8 +2157,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
@@ -2190,6 +2249,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
@@ -2205,7 +2269,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
@@ -2295,6 +2359,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
@@ -2322,7 +2391,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
@@ -2428,6 +2497,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)
@@ -2476,6 +2550,11 @@ 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.carmce820.exe=/opt/compiler-explorer/arm-wince/gcc-ce-8.2.0/bin/arm-mingw32ce-gcc
compiler.carmce820.semver=8.2.0 (WinCE)
@@ -2524,7 +2603,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
@@ -2651,6 +2730,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
@@ -2928,7 +3012,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
@@ -3033,6 +3117,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
@@ -3214,7 +3303,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
@@ -3314,10 +3403,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
@@ -3411,10 +3505,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
@@ -3504,10 +3603,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
@@ -3597,6 +3701,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
@@ -3633,7 +3742,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
@@ -3739,6 +3848,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)
@@ -3747,7 +3861,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
@@ -3853,6 +3967,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)
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/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 3651440f1..8b7d40013 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
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/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/rust.amazon.properties b/etc/config/rust.amazon.properties
index 72319577f..85e934cde 100644
--- a/etc/config/rust.amazon.properties
+++ b/etc/config/rust.amazon.properties
@@ -1,6 +1,6 @@
compilers=&rust:&rustgcc:&mrustc:&rustccggcc:&rustccgcranelift
-objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
-linker=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
+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=r1950
demangler=/opt/compiler-explorer/demanglers/rust/bin/rustfilt
@@ -254,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
@@ -273,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)
@@ -283,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
@@ -300,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
From 967e04fe8afe6a74b9e811f9659b40904fa5512e Mon Sep 17 00:00:00 2001
From: "Matt Godbolt (bot acct)"
Date: Thu, 30 Apr 2026 15:21:14 -0500
Subject: [PATCH 40/51] Fix duplicate ARM GCC 16.1.0 name (missing unknown-eabi
suffix) (#8651)
Fixes a cosmetic bug introduced in #8642: \`armug1610\` and
\`carmug1610\` were missing the \`name\` property, causing both the
regular and unknown-eabi ARM GCC 16.1.0 compilers to appear identically
as "ARM GCC 16.1.0" in the UI.
All other \`armug*\` / \`carmug*\` entries have an explicit \`name=ARM
GCC X.Y.Z (unknown-eabi)\` property; this PR adds the same for 16.1.0.
*(I'm Molty, an AI assistant acting on behalf of @mattgodbolt)*
Co-authored-by: mattgodbolt-molty
---
etc/config/c++.amazon.properties | 1 +
etc/config/c.amazon.properties | 1 +
2 files changed, 2 insertions(+)
diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index 7b783b478..3cc1b6f27 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -3085,6 +3085,7 @@ compiler.armug1610.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-16.1.0/arm-unk
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++
diff --git a/etc/config/c.amazon.properties b/etc/config/c.amazon.properties
index e73020234..0ef27c296 100644
--- a/etc/config/c.amazon.properties
+++ b/etc/config/c.amazon.properties
@@ -2554,6 +2554,7 @@ compiler.carmug1610.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-16.1.0/arm-un
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
From 39a3300539c4d795e2ce7e74e8ae76ef4fb2fc29 Mon Sep 17 00:00:00 2001
From: "Matt Godbolt (bot acct)"
Date: Fri, 1 May 2026 10:44:24 -0500
Subject: [PATCH 41/51] Add GCC 16.1.0 cross Ada (GNAT) and Fortran compilers
(#8653)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Follow-up to #8642 which added native GCC 16.1.0 and cross C/C++
compilers but missed the Ada and Fortran cross-compiler entries.
## Ada (GNAT) cross compilers added (13 architectures)
arm, arm64, hppa, loongarch64, mips, mips64, powerpc, powerpc64,
powerpc64le, riscv64, s390x, sparc, sparc64
Note: sparc-leon skipped — `CT_CC_LANG_ADA` is disabled in the 16.1.0
ct-ng config for that target. Arches with Ada disabled in ct-ng (avr,
bpf, c6x, m68k, mips64el, mipsel, msp430, riscv32) are also skipped.
## Fortran cross compilers added (17 architectures)
arm, arm64, hppa, loongarch64, mips, mips64, mips64el, mipsel, powerpc,
powerpc64, powerpc64le, riscv32, riscv64, s390x, sparc, sparc64,
sparc-leon
refs #7948
*(I'm Molty, an AI assistant acting on behalf of @mattgodbolt)*
🤖 Generated by LLM (Claude, via OpenClaw)
Co-authored-by: mattgodbolt-molty
---
etc/config/ada.amazon.properties | 78 ++++++++++++++++----
etc/config/fortran.amazon.properties | 102 ++++++++++++++++++++++-----
2 files changed, 150 insertions(+), 30 deletions(-)
diff --git a/etc/config/ada.amazon.properties b/etc/config/ada.amazon.properties
index 7ec5cb932..b928f9418 100644
--- a/etc/config/ada.amazon.properties
+++ b/etc/config/ada.amazon.properties
@@ -137,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
@@ -165,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
@@ -209,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
@@ -277,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
@@ -348,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
@@ -425,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
@@ -503,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
@@ -511,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
@@ -586,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
@@ -664,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
@@ -673,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
@@ -747,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
@@ -761,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
@@ -835,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
@@ -913,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
@@ -989,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
@@ -1051,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
@@ -1080,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/fortran.amazon.properties b/etc/config/fortran.amazon.properties
index 8b7d40013..1ed0eab07 100644
--- a/etc/config/fortran.amazon.properties
+++ b/etc/config/fortran.amazon.properties
@@ -452,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
@@ -477,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
@@ -549,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
@@ -621,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
@@ -700,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
@@ -772,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
@@ -849,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
@@ -926,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
@@ -1020,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
@@ -1096,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
@@ -1212,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
@@ -1313,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
@@ -1323,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
@@ -1396,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
@@ -1480,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
@@ -1488,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
@@ -1569,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
@@ -1614,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
@@ -1702,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
@@ -1793,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
@@ -1884,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
@@ -1975,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
#################################
#################################
From c38a886b692b8faafa3c7d703e59344dd51e6c47 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 1 May 2026 10:44:55 -0500
Subject: [PATCH 42/51] [bot] Update browsers list (#8652)
Automatic run of `npm run-update-browerslist` which needs to
be done periodically to keep in-date.
See
[here](https://github.com/browserslist/browserslist#browsers-data-updating)
for more details.
Co-authored-by: Compiler Explorer Bot
---
package-lock.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index fe2bb6ee7..52b7ff235 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6884,9 +6884,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.10.13",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.13.tgz",
- "integrity": "sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==",
+ "version": "2.10.24",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.24.tgz",
+ "integrity": "sha512-I2NkZOOrj2XuguvWCK6OVh9GavsNjZjK908Rq3mIBK25+GD8vPX5w2WdxVqnQ7xx3SrZJiCiZFu+/Oz50oSYSA==",
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.cjs"
@@ -7279,9 +7279,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001782",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001782.tgz",
- "integrity": "sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==",
+ "version": "1.0.30001791",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001791.tgz",
+ "integrity": "sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ==",
"funding": [
{
"type": "opencollective",
From 08adcc29318a2b309f963a0bf23b26ad2a183279 Mon Sep 17 00:00:00 2001
From: Barry Revzin
Date: Fri, 1 May 2026 14:43:38 -0500
Subject: [PATCH 43/51] Adding experimental Clang for Barry (#8659)
Following https://github.com/compiler-explorer/infra/pull/2084
---------
Co-authored-by: Matt Godbolt
---
etc/config/c++.amazon.properties | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index 3cc1b6f27..e222b56a1 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -537,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_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
@@ -625,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
From c7382de888a78eb2842fc02eb5d9a7687cf09de4 Mon Sep 17 00:00:00 2001
From: Jamie <2119834+jamieQ@users.noreply.github.com>
Date: Fri, 1 May 2026 14:56:34 -0500
Subject: [PATCH 44/51] [swift]: add 2.2.x compilers (#8647)
Adds support for the available 2.x Swift compilers.
Depends on: https://github.com/compiler-explorer/infra/pull/2081
---
etc/config/swift.amazon.properties | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/etc/config/swift.amazon.properties b/etc/config/swift.amazon.properties
index e2cb87e59..77c3be528 100644
--- a/etc/config/swift.amazon.properties
+++ b/etc/config/swift.amazon.properties
@@ -8,7 +8,7 @@ objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
#################################
# swift (x86_64)
-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: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
@@ -144,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)
From ca615992c2a5c9977edc17b7eed05a575570beb4 Mon Sep 17 00:00:00 2001
From: Ashley Coleman
Date: Fri, 1 May 2026 13:57:07 -0600
Subject: [PATCH 45/51] [HLSL] Add DXC 1.10.2605.2 release (#8650)
This change adds the new DXC 1.10.2605.2 release. This PR depends on the
infra PR below being merged and compilers built:
https://github.com/compiler-explorer/infra/pull/2082
---
etc/config/hlsl.amazon.properties | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
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
From 8cf50ac8d240b7bb39d03ee0ba50a4d79b626f7e Mon Sep 17 00:00:00 2001
From: The Phantom Derpstorm
Date: Sat, 2 May 2026 09:01:43 -0400
Subject: [PATCH 46/51] =?UTF-8?q?=E2=9C=A8=20Updated=20and=20maintained=20?=
=?UTF-8?q?(thephd.dev)=20compiler=20for=20Clang=20(#8662)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR is fixing the previously-calcified Clang (thephd.dev) that was
based off a branch that previously wasn't building (and now no longer
exists).
I plan to keep this one going and helping for as long as I can, which
should hopefully be better than earlier!
- [x] clang-builder:
https://github.com/compiler-explorer/clang-builder/pull/107
- [x] clang-builder (with usable libunwind):
https://github.com/compiler-explorer/clang-builder/pull/108
- [x] compiler-workflows:
https://github.com/compiler-explorer/compiler-workflows/pull/62
- [ ] infra: https://github.com/compiler-explorer/infra/pull/2086
---
etc/config/c++.amazon.properties | 14 ++++++++++----
etc/config/c.amazon.properties | 9 ++++++++-
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index e222b56a1..f29067dff 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -537,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_barry: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
@@ -653,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++
diff --git a/etc/config/c.amazon.properties b/etc/config/c.amazon.properties
index 0ef27c296..53786f8cf 100644
--- a/etc/config/c.amazon.properties
+++ b/etc/config/c.amazon.properties
@@ -266,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
@@ -425,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
From 1efb2a209fe1c65cd67f85f6a8a6e6f9ee3d1e4d Mon Sep 17 00:00:00 2001
From: Frank Leon Rose
Date: Sat, 2 May 2026 09:03:08 -0400
Subject: [PATCH 47/51] Further fixes to Clojure compiler execution in CE infra
(#8300)
- [x] Ensure `CLJ_CACHE` environment variable is set to a writable
directory
- [x] Remove unnecessary `CLJ_CONFIG` environment variable
- [x] ~~Configure location of `clojure_wrapper.clj` (not necessary)~~
- [x] Remove logging of namespace injection - text output causes UI to
show compiler error flag
---
etc/scripts/clojure_wrapper.clj | 2 +-
lib/compilers/clojure.ts | 7 ++-----
2 files changed, 3 insertions(+), 6 deletions(-)
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/lib/compilers/clojure.ts b/lib/compilers/clojure.ts
index 438c0ad3d..c0adef732 100644
--- a/lib/compilers/clojure.ts
+++ b/lib/compilers/clojure.ts
@@ -39,7 +39,6 @@ import {JavaCompiler} from './java.js';
export class ClojureCompiler extends JavaCompiler {
compilerWrapperPath: string;
defaultDeps: string;
- configDir: string;
javaHome: string;
static override get key() {
@@ -55,9 +54,6 @@ export class ClojureCompiler extends JavaCompiler {
this.compilerProps('compilerWrapper', '') ||
utils.resolvePathFromAppRoot('etc', 'scripts', 'clojure_wrapper.clj');
this.compiler.supportsClojureMacroExpView = true;
- this.configDir =
- this.compilerProps(`compiler.${this.compiler.id}.config_dir`) ||
- path.resolve(path.dirname(this.compiler.exe), '../.config');
const repoDir =
this.compilerProps(`compiler.${this.compiler.id}.repo_dir`) ||
path.resolve(path.dirname(this.compiler.exe), '../.m2/repository');
@@ -69,7 +65,6 @@ export class ClojureCompiler extends JavaCompiler {
if (this.javaHome) {
execOptions.env.JAVA_HOME = this.javaHome;
}
- execOptions.env.CLJ_CONFIG = this.configDir;
return execOptions;
}
@@ -123,6 +118,8 @@ export class ClojureCompiler extends JavaCompiler {
if (!execOptions.customCwd) {
execOptions.customCwd = path.dirname(inputFilename);
}
+ const tmpDir = path.dirname(inputFilename);
+ execOptions.env.CLJ_CACHE = tmpDir;
// The items in 'options' before the source file are user inputs.
const sourceFileOptionIndex = options.findIndex(option => {
From 75a5b68b067e24617bf4ac60556fb05ccd7ac268 Mon Sep 17 00:00:00 2001
From: Steve
Date: Sat, 2 May 2026 22:05:38 +0900
Subject: [PATCH 48/51] .NET: Improve NativeAOT compilation and unsupported
execution error mode (#8637)
We only support running .NET code on CoreCLR and Mono, so we should reject execution on other compilers otherwise this can confuse users a lot.
In addition, removing the --notrimwarn and --noaotwarn so that users can see warnings during NativeAOT compilations, and adding missing arguments to ilc.
---
lib/compilers/dotnet.ts | 38 ++++++++++++++++++++++-----
lib/execution/dotnet-execution-env.ts | 4 +--
2 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/lib/compilers/dotnet.ts b/lib/compilers/dotnet.ts
index e53dd6f53..8d5b29b30 100644
--- a/lib/compilers/dotnet.ts
+++ b/lib/compilers/dotnet.ts
@@ -846,7 +846,7 @@ do()
await fs.writeFile(
outputPath,
- `// ${isMono ? 'mono' : 'coreclr'} ${await this.getRuntimeVersion()}\n\n${result.stdout
+ `// ${isMono ? 'mono' : 'coreclr'} ${await this.getRuntimeVersion()}${result.stdout
.map(o => o.text)
.reduce((a, n) => `${a}\n${n}`, '')}`,
);
@@ -876,7 +876,7 @@ do()
await fs.writeFile(
outputPath,
- `// ilspy ${await this.getRuntimeVersion()}\n\n${result.stdout
+ `// ilspy ${await this.getRuntimeVersion()}${result.stdout
.map(o => o.text)
.reduce((a, n) => `${a}\n${n}`, '')}`,
);
@@ -892,7 +892,7 @@ do()
await fs.writeFile(
outputPath,
- `// ildasm ${await this.getRuntimeVersion()}\n\n${result.stdout
+ `// ildasm ${await this.getRuntimeVersion()}${result.stdout
.map(o => o.text)
.reduce((a, n) => `${a}\n${n}`, '')}`,
);
@@ -940,7 +940,7 @@ do()
await fs.writeFile(
outputPath,
- `// crossgen2 ${await this.getRuntimeVersion()}\n\n${result.stdout
+ `// crossgen2 ${await this.getRuntimeVersion()}${result.stdout
.map(o => o.text)
.reduce((a, n) => `${a}\n${n}`, '')}`,
);
@@ -976,13 +976,26 @@ do()
'--directpinvoke:libSystem.IO.Compression.Native',
'--directpinvoke:libSystem.Net.Security.Native',
'--directpinvoke:libSystem.Security.Cryptography.Native.OpenSsl',
+ '--feature:System.Reflection.Metadata.MetadataUpdater.IsSupported=false',
+ '--feature:System.Resources.ResourceManager.AllowCustomResourceTypes=false',
+ '--feature:System.Runtime.CompilerServices.RuntimeFeature.IsDynamicCodeSupported=false',
+ '--feature:System.Runtime.InteropServices.EnableConsumingManagedCodeFromNativeHosting=false',
+ '--feature:System.Runtime.InteropServices.EnableCppCLIHostActivation=false',
+ '--feature:System.StartupHookProvider.IsSupported=false',
+ '--feature:System.Linq.Expressions.CanEmitObjectArrayDelegate=false',
+ '--feature:System.Diagnostics.Debugger.IsSupported=false',
+ '--runtimeknob:System.Reflection.Metadata.MetadataUpdater.IsSupported=false',
+ '--runtimeknob:System.Resources.ResourceManager.AllowCustomResourceTypes=false',
+ '--runtimeknob:System.Runtime.CompilerServices.RuntimeFeature.IsDynamicCodeSupported=false',
+ '--runtimeknob:System.Runtime.InteropServices.EnableConsumingManagedCodeFromNativeHosting=false',
+ '--runtimeknob:System.Runtime.InteropServices.EnableCppCLIHostActivation=false',
+ '--runtimeknob:System.StartupHookProvider.IsSupported=false',
+ '--runtimeknob:System.Linq.Expressions.CanEmitObjectArrayDelegate=false',
'--resilient',
'--singlewarn',
'--scanreflection',
'--nosinglewarnassembly:CompilerExplorer',
'--generateunmanagedentrypoints:System.Private.CoreLib',
- '--notrimwarn',
- '--noaotwarn',
].concat(options);
if (!buildToBinary) {
@@ -994,7 +1007,7 @@ do()
await fs.writeFile(
outputPath,
- `// ilc ${await this.getRuntimeVersion()}\n\n${result.stdout
+ `// ilc ${await this.getRuntimeVersion()}${result.stdout
.map(o => o.text)
.reduce((a, n) => `${a}\n${n}`, '')}`,
);
@@ -1012,7 +1025,18 @@ do()
executable = this.compiler.executionWrapper;
}
+ const isCoreClr = this.compiler.group === 'dotnetcoreclr';
const isMono = this.compiler.group === 'dotnetmono';
+
+ if (!isCoreClr && !isMono) {
+ return {
+ ...utils.getEmptyExecutionResult(),
+ stdout: [],
+ stderr: utils.parseOutput('Execution is only supported for CoreCLR and Mono compilers'),
+ code: -1,
+ };
+ }
+
const compilerInfo = await this.getCompilerInfo(this.lang.id);
const extraConfiguration: DotnetExtraConfiguration = {
buildConfig: this.buildConfig,
diff --git a/lib/execution/dotnet-execution-env.ts b/lib/execution/dotnet-execution-env.ts
index 236578dd8..db2ceef7b 100644
--- a/lib/execution/dotnet-execution-env.ts
+++ b/lib/execution/dotnet-execution-env.ts
@@ -47,7 +47,7 @@ export class DotnetExecutionEnvironment extends LocalExecutionEnvironment {
executable: string,
executeParameters: ExecutableExecutionOptions,
homeDir: string,
- extraConfiguration: any,
+ extraConfiguration: DotnetExtraConfiguration,
): Promise {
const programDir = path.dirname(executable);
const programOutputPath = path.join(
@@ -70,7 +70,7 @@ export class DotnetExecutionEnvironment extends LocalExecutionEnvironment {
execOptions.input = executeParameters.stdin;
const execArgs = ['-p', 'System.Runtime.TieredCompilation=false', programDllPath, ...executeParameters.args];
try {
- return this.execBinaryMaybeWrapped(
+ return await this.execBinaryMaybeWrapped(
extraConfiguration.corerunPath,
execArgs,
execOptions,
From 2aa7ea731d4f0e38b4dcbf70456241dd35f0d1e5 Mon Sep 17 00:00:00 2001
From: narpfel
Date: Sat, 2 May 2026 15:07:10 +0200
Subject: [PATCH 49/51] Make opt remarks selectable (#8655)
Resolves #8654.
---
static/panes/opt-view.ts | 3 +++
1 file changed, 3 insertions(+)
diff --git a/static/panes/opt-view.ts b/static/panes/opt-view.ts
index db8165830..f18a92bce 100644
--- a/static/panes/opt-view.ts
+++ b/static/panes/opt-view.ts
@@ -179,6 +179,9 @@ export class Opt extends MonacoPane e.stopPropagation();
// let the browser calculate the height that the text needs
domNode.style.visibility = 'hidden';
From 2d3b738967dc81bc27046d0f0180be6a382ed261 Mon Sep 17 00:00:00 2001
From: LJ <81748770+elle-j@users.noreply.github.com>
Date: Sat, 2 May 2026 15:09:32 +0200
Subject: [PATCH 50/51] Add resolc Solidity compiler v1.0.0 and v1.1.0 (#8656)
Adds resolc v1.0.0 and v1.1.0.
Infra PR:
[compiler-explorer/infra/pull/2083](https://github.com/compiler-explorer/infra/pull/2083)
---
etc/config/solidity.amazon.properties | 12 ++++++++----
etc/config/solidity.defaults.properties | 12 ++++++------
etc/config/yul.amazon.properties | 12 ++++++++----
etc/config/yul.defaults.properties | 14 +++++++-------
4 files changed, 29 insertions(+), 21 deletions(-)
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/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
#################################
#################################
From 9e60f1a03933629553da8bcab3f4464fa889270a Mon Sep 17 00:00:00 2001
From: Sava Victor
Date: Sat, 2 May 2026 16:16:47 +0300
Subject: [PATCH 51/51] Beman libraries trunk (#8661)
---
etc/config/c++.amazon.properties | 76 +++++++++++++++++++++++++++++---
1 file changed, 71 insertions(+), 5 deletions(-)
diff --git a/etc/config/c++.amazon.properties b/etc/config/c++.amazon.properties
index f29067dff..48578f1d5 100644
--- a/etc/config/c++.amazon.properties
+++ b/etc/config/c++.amazon.properties
@@ -5032,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
@@ -5044,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
@@ -5052,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
@@ -5070,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