Merge branch 'main' into claude/modernize-ajax-and-sentry-filtering

This commit is contained in:
Matt Godbolt
2025-08-11 14:21:10 -05:00
committed by GitHub
163 changed files with 6509 additions and 4325 deletions

View File

@@ -8,5 +8,8 @@ indent_style = space
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
[*.{yml,yaml}] [*.{yml,yaml,pug,json,css,sh}]
indent_size = 2 indent_size = 2
[Makefile]
indent_style = tab

View File

@@ -29,6 +29,7 @@ import {CompilerArguments} from './lib/compiler-arguments.js';
import * as Parsers from './lib/compilers/argument-parsers.js'; import * as Parsers from './lib/compilers/argument-parsers.js';
import {executeDirect} from './lib/exec.js'; import {executeDirect} from './lib/exec.js';
import {logger} from './lib/logger.js'; import {logger} from './lib/logger.js';
import {BaseParser} from './lib/compilers/argument-parsers.js';
const program = new Command(); const program = new Command();
program program
@@ -40,7 +41,21 @@ program
.requiredOption('--parser <type>', 'Compiler parser type') .requiredOption('--parser <type>', 'Compiler parser type')
.requiredOption('--exe <path>', 'Path to compiler executable') .requiredOption('--exe <path>', 'Path to compiler executable')
.option('--padding <number>', 'Padding for output formatting', '40') .option('--padding <number>', 'Padding for output formatting', '40')
.option('--debug', 'Enable debug output'); .option('--debug', 'Enable debug output')
.allowUnknownOption(false)
.configureOutput({
writeErr: (str) => {
if (str.includes('too many arguments')) {
console.error('Error: Unexpected arguments provided.');
console.error('This tool only accepts the following options: --parser, --exe, --padding, --debug');
console.error('\nExample usage:');
console.error(' node --import tsx compiler-args-app.ts --parser gcc --exe /path/to/gcc');
console.error('\nNote: Do not use shell redirections like "2>&1" directly - they will be interpreted as arguments');
process.exit(1);
}
process.stderr.write(str);
}
});
program.parse(); program.parse();
const opts = program.opts(); const opts = program.opts();
@@ -90,6 +105,13 @@ class CompilerArgsApp {
execCompilerCached: async (command: string, args: string[]) => { execCompilerCached: async (command: string, args: string[]) => {
return executeDirect(command, args, {}, fn => fn); return executeDirect(command, args, {}, fn => fn);
}, },
getDefaultExecOptions: () => {
return {
env: process.env,
cwd: process.cwd(),
timeout: 10000,
};
}
}; };
if (this.parserName === 'juliawrapper') { if (this.parserName === 'juliawrapper') {
@@ -99,22 +121,22 @@ class CompilerArgsApp {
async getPossibleStdvers() { async getPossibleStdvers() {
const parser = this.getParser(); const parser = this.getParser();
return await parser.getPossibleStdvers(this.compiler); return await parser.getPossibleStdvers();
} }
async getPossibleTargets() { async getPossibleTargets() {
const parser = this.getParser(); const parser = this.getParser();
return await parser.getPossibleTargets(this.compiler); return await parser.getPossibleTargets();
} }
async getPossibleEditions() { async getPossibleEditions() {
const parser = this.getParser(); const parser = this.getParser();
return await parser.getPossibleEditions(this.compiler); return await parser.getPossibleEditions();
} }
getParser() { getParser(): BaseParser {
if (compilerParsers[this.parserName as keyof typeof compilerParsers]) { if (compilerParsers[this.parserName as keyof typeof compilerParsers]) {
return compilerParsers[this.parserName as keyof typeof compilerParsers]; return new (compilerParsers[this.parserName as keyof typeof compilerParsers])(this.compiler);
} }
console.error('Unknown parser type'); console.error('Unknown parser type');
process.exit(1); process.exit(1);
@@ -122,7 +144,7 @@ class CompilerArgsApp {
async doTheParsing() { async doTheParsing() {
const parser = this.getParser(); const parser = this.getParser();
await parser.parse(this.compiler); await parser.parse();
const options = this.compiler.possibleArguments.possibleArguments; const options = this.compiler.possibleArguments.possibleArguments;
if (parser.hasSupportStartsWith(options, '--target=')) { if (parser.hasSupportStartsWith(options, '--target=')) {
console.log('supportsTargetIs'); console.log('supportsTargetIs');
@@ -150,6 +172,11 @@ class CompilerArgsApp {
console.log(await this.getPossibleTargets()); console.log(await this.getPossibleTargets());
console.log('Editions:'); console.log('Editions:');
console.log(await this.getPossibleEditions()); console.log(await this.getPossibleEditions());
console.log('supportsOptOutput:', !!this.compiler.compiler.supportsOptOutput);
console.log('supportsStackUsageOutput', !!this.compiler.compiler.supportsStackUsageOutput);
console.log('optPipeline:', this.compiler.compiler.optPipeline);
console.log('supportsGccDump', !!this.compiler.compiler.supportsGccDump);
} }
} }

View File

@@ -1,8 +1,8 @@
import {defineConfig} from 'cypress'; import {defineConfig} from 'cypress';
export default defineConfig({ export default defineConfig({
viewportWidth: 1000, viewportWidth: 1280,
viewportHeight: 700, viewportHeight: 1024,
e2e: { e2e: {
baseUrl: 'http://127.0.0.1:10240/', baseUrl: 'http://127.0.0.1:10240/',
supportFile: 'cypress/support/utils.ts', supportFile: 'cypress/support/utils.ts',

165
cypress/README.md Normal file
View File

@@ -0,0 +1,165 @@
# Cypress E2E Tests
This directory contains end-to-end tests for Compiler Explorer using Cypress.
## Running Tests
### Starting Compiler Explorer for Testing
First, start a local Compiler Explorer instance with a clean configuration:
```bash
npm run dev -- --language c++ --no-local
```
The `--no-local` flag is important as it ensures your setup is clean of any local properties.
### Running Cypress Tests
In another terminal:
```bash
# Run all Cypress tests
npm run cypress
# Run specific test file
npm run cypress -- run --spec "cypress/e2e/claude-explain.cy.ts"
# Open Cypress interactive UI (recommended for development)
npm run cypress:open
```
When using the interactive UI, choose "E2E Testing" and select your browser.
## Important Testing Patterns & Lessons Learned
### 1. **Always Use `:visible` Selectors**
GoldenLayout creates template elements that exist in the DOM but aren't visible. Always use `:visible` to avoid selecting template elements:
```javascript
// ❌ Bad - might select template elements
cy.get('.explain-content').should('contain', 'text');
// ✅ Good - only selects visible elements
cy.get('.explain-content:visible').should('contain', 'text');
```
### 2. **Performance: Clear Intercepts in `afterEach`**
Cypress intercepts accumulate across tests causing O(n²) performance degradation. Always clear them:
```javascript
import {clearAllIntercepts} from '../support/utils';
afterEach(() => {
// Use the utility function to clear intercepts
clearAllIntercepts();
// Or manually clear them:
cy.state('routes', []);
cy.state('aliases', {});
// ... other cleanup
});
```
### 3. **Mock Setup Timing is Critical**
Always set up API mocks BEFORE any action that might trigger requests:
```javascript
// ❌ Bad - pane constructor might make requests before mocks are ready
openClaudeExplainPane();
mockClaudeExplainAPI();
// ✅ Good - mocks ready before pane opens
mockClaudeExplainAPI();
openClaudeExplainPane();
```
### 4. **Wait for Async DOM Updates**
Don't just wait for API calls - wait for the actual DOM changes:
```javascript
// ❌ Bad - API completes but DOM might not be updated yet
cy.wait('@getOptions');
cy.get('.dropdown').select('value');
// ✅ Good - wait for specific DOM state
cy.wait('@getOptions');
cy.get('.dropdown option[value="loading"]').should('not.exist');
cy.get('.dropdown').select('value');
```
### 5. **Use Test Data, Not Production Values**
Always use clearly fake test data to:
- Prevent confusion with real values
- Make it obvious when viewing test output
- Ensure tests never accidentally hit production APIs
```javascript
// Use values like: test_first, test_second, focus_a, focus_b
// Not: beginner, expert, assembly, optimization
```
### 6. **Helper Functions for Common Patterns**
Extract common test patterns to helpers, but keep them in the test file if they're specific to one feature:
```javascript
// In test file for feature-specific helpers
function openClaudeExplainPaneWithOptions() {
mockClaudeExplainAPI();
openClaudeExplainPane();
cy.wait('@getOptions');
waitForDropdownsToLoad();
}
// In utils.ts for general helpers
export function setMonacoEditorContent(content: string) { ... }
```
### 7. **State Persistence Between Pane Instances**
Be aware that some state might be static (shared between instances) while other state is per-instance:
- Static state (like consent, cache) persists when closing/reopening panes
- Instance state is lost when panes close
- This affects how you structure tests for features that should persist
### 8. **Block Production APIs**
Always block production API calls in tests to catch configuration issues:
```javascript
cy.intercept('https://api.compiler-explorer.com/**', {
statusCode: 500,
body: {error: 'BLOCKED PRODUCTION API'}
}).as('blockedProduction');
```
## Common Issues & Solutions
### Tests Getting Progressively Slower
- **Cause**: Intercept accumulation
- **Solution**: Clear intercepts in `afterEach` using `clearAllIntercepts()` from utils or manually with `cy.state('routes', [])`
### "Element not found" Despite Being Visible
- **Cause**: Selecting template elements from GoldenLayout
- **Solution**: Use `:visible` pseudo-selector
### API Mocks Not Working
- **Cause**: Mock setup after the request is made
- **Solution**: Set up mocks before opening panes or triggering actions
### Dropdown Selection Failing
- **Cause**: Trying to select before async population completes
- **Solution**: Wait for loading indicators to disappear first
### State Not Persisting in Tests
- **Cause**: Not understanding static vs instance variables
- **Solution**: Check if the feature uses static state that should persist
## Test Organization
- Keep feature-specific test helpers in the test file itself
- Only put truly reusable utilities in `support/utils.ts`
- Use descriptive helper function names that indicate what they do
- Group related tests in `describe` blocks
- Use consistent test data across all tests in a feature
## Debugging Tips
1. Use `cy.log()` to debug what values you're actually getting
2. Check the Cypress command log for unexpected API calls
3. Look for console errors that might indicate JavaScript issues
4. Use `.then()` to inspect element state at specific points
5. Check network tab for requests hitting production instead of mocks

View File

@@ -0,0 +1,613 @@
// 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 {clearAllIntercepts, setMonacoEditorContent, stubConsoleOutput} from '../support/utils';
// Claude Explain specific test utilities
function mockClaudeExplainAPI() {
// Mock GET request for options
cy.intercept('GET', 'http://test.localhost/fake-api/explain', {
statusCode: 200,
body: {
audience: [
{value: 'test_first', description: 'Test first audience level'},
{value: 'test_second', description: 'Test second audience level'},
{value: 'test_third', description: 'Test third audience level'},
],
explanation: [
{value: 'focus_a', description: 'Test focus A explanation type'},
{value: 'focus_b', description: 'Test focus B explanation type'},
{value: 'focus_c', description: 'Test focus C explanation type'},
],
},
}).as('getOptions');
// Mock POST request for explanation
cy.intercept('POST', 'http://test.localhost/fake-api/explain', {
statusCode: 200,
body: {
status: 'success',
explanation: '## Test Assembly Explanation\nThis is a test explanation from the mocked API.',
usage: {totalTokens: 150},
model: 'claude-3-test',
cost: {totalCost: 0.001},
},
}).as('explainRequest');
}
function openClaudeExplainPane() {
cy.get('[data-cy="new-compiler-dropdown-btn"]:visible').click();
cy.get('[data-cy="new-view-explain-btn"]:visible').click();
}
function setupClaudeExplainEnvironment() {
// Start with clean intercepts
clearAllIntercepts();
// Belt and suspenders: block production API calls
cy.intercept('https://api.compiler-explorer.com/**', {statusCode: 500, body: {error: 'BLOCKED PRODUCTION API'}}).as(
'blockedProduction',
);
// Set up configuration
cy.visit('/', {
onBeforeLoad: (win: any) => {
stubConsoleOutput(win);
win.compilerExplorerOptions = win.compilerExplorerOptions || {};
win.compilerExplorerOptions.explainApiEndpoint = 'http://test.localhost/fake-api/explain';
},
});
// Force override after page loads
cy.window().then((win: any) => {
win.compilerExplorerOptions.explainApiEndpoint = 'http://test.localhost/fake-api/explain';
});
}
function mockClaudeExplainAPIWithOptions() {
// Just call the standard mock for consistency
mockClaudeExplainAPI();
}
function mockSuccessfulExplanation() {
cy.intercept('POST', 'http://test.localhost/fake-api/explain', {
statusCode: 200,
body: {
status: 'success',
explanation:
'## Understanding Your Assembly Code\n\nThis simple program:\n\n```cpp\nint main() {\n return 42;\n}\n```\n\nCompiles to very efficient assembly that:\n1. Sets up the stack frame\n2. Moves the value 42 into the return register\n3. Cleans up and returns\n\n### Key Instructions\n- `mov eax, 42` - Places our return value in the EAX register\n- `ret` - Returns control to the caller',
usage: {
inputTokens: 250,
outputTokens: 120,
totalTokens: 370,
},
model: 'claude-3-haiku',
cost: {
inputCost: 0.00025,
outputCost: 0.0012,
totalCost: 0.00145,
},
},
}).as('explainRequest');
}
function mockAPIError() {
cy.intercept('POST', 'http://test.localhost/fake-api/explain', {
statusCode: 500,
body: {error: 'Internal server error'},
}).as('explainError');
}
function giveConsentAndWait() {
cy.get('.consent-btn:visible').click();
cy.wait('@explainRequest');
}
function mockCachedExplanation() {
const mockResponse = {
status: 'success',
explanation: 'This is a cached explanation',
usage: {totalTokens: 100},
model: 'claude-3',
cost: {totalCost: 0.001},
};
cy.intercept('POST', 'http://test.localhost/fake-api/explain', mockResponse).as('explainRequest');
}
// Simplified test helpers
function waitForDropdownsToLoad() {
cy.get('.explain-audience:visible option[value="loading"]').should('not.exist');
cy.get('.explain-type:visible option[value="loading"]').should('not.exist');
}
function openClaudeExplainPaneWithOptions() {
mockClaudeExplainAPI();
openClaudeExplainPane();
cy.wait('@getOptions');
waitForDropdownsToLoad();
}
describe('Claude Explain feature', () => {
beforeEach(() => {
setupClaudeExplainEnvironment();
});
afterEach(() => {
// Clear all Cypress intercepts to prevent O(n²) accumulation
cy.state('routes', []);
cy.state('aliases', {});
// Clear storage and state but avoid aggressive DOM manipulation
cy.window().then(win => {
// Clear any stored explain state/cache
win.localStorage.clear();
win.sessionStorage.clear();
// Reset compiler explorer options
win.compilerExplorerOptions = {};
// Instead of force-closing tabs, let natural cleanup happen
// The next beforeEach will reload the page anyway
});
});
describe('Basic functionality', () => {
it('should open Claude Explain pane from compiler toolbar', () => {
openClaudeExplainPaneWithOptions();
// Verify the explain pane opened
cy.get('.lm_title').should('contain', 'Claude Explain');
cy.get('.explain-consent').should('be.visible');
});
it('should show consent dialog on first use', () => {
openClaudeExplainPaneWithOptions();
// Verify consent dialog is shown (use :visible to avoid template elements)
cy.get('.explain-consent:visible').should('be.visible');
cy.get('.explain-consent:visible').should('contain', 'Consent Request');
cy.get('.explain-consent:visible').should('contain', 'Claude Explain will send your source code');
cy.get('.explain-consent:visible').should('contain', 'compilation output');
cy.get('.explain-consent:visible').should('contain', 'Anthropic');
// Verify consent button exists
cy.get('.consent-btn:visible').should('be.visible');
cy.get('.consent-btn:visible').should('contain', 'Yes, explain this code');
});
it('should remember consent for the session', () => {
mockClaudeExplainAPIWithOptions();
mockClaudeExplainAPI();
// Open first explain pane and give consent
openClaudeExplainPane();
cy.get('.consent-btn:visible').click();
cy.wait('@explainRequest');
// Close the explain pane
cy.get('.lm_close_tab').last().click();
// Set up mocks again before reopening
mockClaudeExplainAPIWithOptions();
// Open a new explain pane
openClaudeExplainPane();
// Verify consent dialog is NOT shown again (check for visible consent, not template)
cy.get('.explain-consent:visible').should('not.exist');
cy.get('.explain-content').should('be.visible');
});
});
describe('no-ai directive handling', () => {
it('should detect no-ai directive and show special message', () => {
// Update code to include no-ai directive
setMonacoEditorContent('// no-ai\nint main() {\n return 42;\n}');
openClaudeExplainPaneWithOptions();
// Verify no-ai message is shown (use :visible to avoid template elements)
cy.get('.explain-no-ai:visible').should('be.visible');
cy.get('.explain-no-ai:visible').should('contain', 'AI Explanation Not Available');
cy.get('.explain-no-ai:visible').should('contain', 'no-ai');
// Verify consent dialog is NOT shown (check visible elements only)
cy.get('.explain-consent:visible').should('not.exist');
});
it('should detect case-insensitive no-ai directive', () => {
// Update code with different case
setMonacoEditorContent('// NO-AI\nint main() {\n return 0;\n}');
openClaudeExplainPaneWithOptions();
// Should still detect it (use :visible to avoid template elements)
cy.get('.explain-no-ai:visible').should('be.visible');
});
});
describe('API interaction and explanations', () => {
it('should fetch and display explanation after consent', () => {
mockClaudeExplainAPIWithOptions();
mockSuccessfulExplanation();
// Open explain pane
openClaudeExplainPane();
// Give consent and wait for API call
giveConsentAndWait();
cy.wait('@getOptions');
// Verify explanation is displayed (use :visible to avoid template elements)
cy.get('.explain-content:visible').should('be.visible');
cy.get('.explain-content:visible').should('contain', 'Understanding Your Assembly Code');
cy.get('.explain-content:visible').should('contain', 'mov eax, 42');
// Verify markdown is rendered (should have headers)
cy.get('.explain-content:visible h2').should('exist');
cy.get('.explain-content:visible h3').should('exist');
cy.get('.explain-content:visible code').should('exist');
// Verify stats are shown
cy.get('.explain-stats:visible').should('be.visible');
cy.get('.explain-stats:visible').should('contain', 'Fresh');
cy.get('.explain-stats:visible').should('contain', 'Model: claude-3-haiku');
cy.get('.explain-stats:visible').should('contain', 'Tokens: 370');
cy.get('.explain-stats:visible').should('contain', 'Cost: $0.001450');
});
it('should handle API errors gracefully', () => {
mockClaudeExplainAPIWithOptions();
mockAPIError();
// Open pane and consent
openClaudeExplainPane();
cy.get('.consent-btn:visible').click();
// Wait for error
cy.wait('@explainError');
// Verify error is displayed (use :visible to avoid template elements)
cy.get('.explain-content:visible').should('contain', 'Error');
cy.get('.explain-content:visible').should('contain', 'Server returned 500');
// Verify error icon
cy.get('.status-icon.fa-times-circle:visible').should('be.visible');
});
it('should show loading state during API call', () => {
mockClaudeExplainAPIWithOptions();
// Mock slow API response with direct reply (no network request)
cy.intercept('POST', 'http://test.localhost/fake-api/explain', {
delay: 1000,
statusCode: 200,
body: {
status: 'success',
explanation: 'Test explanation',
},
}).as('slowExplain');
// Open pane and consent
openClaudeExplainPane();
cy.get('.consent-btn:visible').click();
// Verify loading state (use :visible to avoid template elements)
cy.get('.status-icon.fa-spinner.fa-spin:visible').should('be.visible');
cy.get('.explain-content:visible').should('contain', 'Generating explanation...');
// Wait for response
cy.wait('@slowExplain');
// Verify loading state is gone
cy.get('.status-icon.fa-spinner:visible').should('not.exist');
cy.get('.status-icon.fa-check-circle:visible').should('be.visible');
});
});
describe('Options and customization', () => {
it('should load and display audience and explanation options', () => {
openClaudeExplainPaneWithOptions();
// Verify audience dropdown (use :visible to avoid template elements)
cy.get('.explain-audience:visible').should('be.visible');
cy.get('.explain-audience:visible option').should('have.length', 3);
cy.get('.explain-audience:visible option[value="test_first"]').should('exist');
cy.get('.explain-audience:visible option[value="test_second"]').should('exist');
cy.get('.explain-audience:visible option[value="test_third"]').should('exist');
// Verify explanation type dropdown
cy.get('.explain-type:visible').should('be.visible');
cy.get('.explain-type:visible option').should('have.length', 3);
cy.get('.explain-type:visible option[value="focus_a"]').should('exist');
cy.get('.explain-type:visible option[value="focus_b"]').should('exist');
cy.get('.explain-type:visible option[value="focus_c"]').should('exist');
// Verify info buttons
cy.get('.explain-audience-info:visible').should('be.visible');
cy.get('.explain-type-info:visible').should('be.visible');
});
it('should show popover descriptions for options', () => {
openClaudeExplainPaneWithOptions();
// Click audience info button (use :visible to avoid template elements)
cy.get('.explain-audience-info:visible').click();
// Verify popover appears
cy.get('.popover:visible').should('be.visible');
cy.get('.popover-body:visible').should('contain', 'Test_first:');
cy.get('.popover-body:visible').should('contain', 'Test first audience level');
// Click away to close
cy.get('.explain-content:visible').click();
cy.get('.popover:visible').should('not.exist');
// Click explanation info button
cy.get('.explain-type-info:visible').click();
cy.get('.popover:visible').should('be.visible');
cy.get('.popover-body:visible').should('contain', 'Focus_a:');
cy.get('.popover-body:visible').should('contain', 'Test focus A');
});
it('should re-fetch explanation when options change', () => {
// Block production API
cy.intercept('https://api.compiler-explorer.com/**', {
statusCode: 500,
body: {error: 'BLOCKED PRODUCTION API'},
}).as('blockedProduction');
// Only set up GET mock for options, not POST (we have custom POST below)
cy.intercept('GET', 'http://test.localhost/fake-api/explain', {
statusCode: 200,
body: {
audience: [
{value: 'test_first', description: 'Test first audience level'},
{value: 'test_second', description: 'Test second audience level'},
{value: 'test_third', description: 'Test third audience level'},
],
explanation: [
{value: 'focus_a', description: 'Test focus A explanation type'},
{value: 'focus_b', description: 'Test focus B explanation type'},
{value: 'focus_c', description: 'Test focus C explanation type'},
],
},
}).as('getOptions');
let explainCallCount = 0;
cy.intercept('POST', 'http://test.localhost/fake-api/explain', (req: Cypress.Interception) => {
explainCallCount++;
req.reply({
status: 'success',
explanation: `Explanation #${explainCallCount} for ${req.body.audience} audience`,
usage: {totalTokens: 100},
model: 'test-model',
cost: {totalCost: 0.001},
});
}).as('explainRequest');
// Open pane and wait for options to load first
openClaudeExplainPane();
cy.wait('@getOptions');
waitForDropdownsToLoad();
// Give consent
giveConsentAndWait();
// Wait a bit for content to render
cy.wait(100);
// Verify initial explanation (just check for the count, not the full text)
cy.get('.explain-content:visible').should('contain', 'Explanation #1');
// Change audience level
cy.get('.explain-audience:visible').select('test_second');
// Should trigger new request
cy.wait('@explainRequest');
cy.get('.explain-content:visible').should('contain', 'Explanation #2');
// Change explanation type
cy.get('.explain-type:visible').select('focus_b');
// Should trigger another request
cy.wait('@explainRequest');
cy.get('.explain-content:visible').should('contain', 'Explanation #3');
});
});
describe('Caching and reload', () => {
it('should cache responses and show cache status', () => {
mockClaudeExplainAPIWithOptions();
mockCachedExplanation();
// Open pane and get first explanation
openClaudeExplainPane();
giveConsentAndWait();
// Verify fresh status (use :visible to avoid template elements)
cy.get('.explain-stats:visible').should('contain', 'Fresh');
// Close and reopen pane (should use client cache)
cy.get('.lm_close_tab').last().click();
// Set up options mock only (needed for pane constructor) but NOT explanation mock
mockClaudeExplainAPIWithOptions();
openClaudeExplainPane();
// Since consent was already given, it should go straight to cached content
// (no consent dialog should appear)
cy.get('.explain-consent:visible').should('not.exist');
// Should use cached explanation data
cy.get('.explain-content:visible').should('contain', 'This is a cached explanation');
cy.get('.explain-stats:visible').should('contain', 'Cached (client)');
});
it('should bypass cache when reload button is clicked', () => {
mockClaudeExplainAPIWithOptions();
let callCount = 0;
cy.intercept('POST', 'http://test.localhost/fake-api/explain', (req: Cypress.Interception) => {
callCount++;
const isBypassCache = req.body.bypassCache === true;
req.reply({
status: 'success',
explanation: `Explanation #${callCount}${isBypassCache ? ' (bypassed cache)' : ''}`,
});
}).as('explainRequest');
// Get initial explanation
openClaudeExplainPane();
giveConsentAndWait();
cy.get('.explain-content:visible').should('contain', 'Explanation #1');
// Click reload button (use :visible to avoid template elements)
cy.get('.explain-reload:visible').click();
cy.wait('@explainRequest');
// Should have made a new request with bypassCache flag
cy.get('.explain-content:visible').should('contain', 'Explanation #2 (bypassed cache)');
});
});
describe('Compilation state handling', () => {
it('should handle compilation failures', () => {
// Add invalid code
setMonacoEditorContent('this is not valid C++ code');
openClaudeExplainPaneWithOptions();
// Should show compilation failed message (use :visible to avoid template elements)
cy.get('.explain-content:visible').should('contain', 'Cannot explain: Compilation failed');
// Should not show consent dialog
cy.get('.explain-consent:visible').should('not.exist');
});
it('should update explanation when code changes', () => {
mockClaudeExplainAPIWithOptions();
let explainCount = 0;
cy.intercept('POST', 'http://test.localhost/fake-api/explain', (req: Cypress.Interception) => {
explainCount++;
req.reply({
status: 'success',
explanation: `Explanation for version ${explainCount}`,
});
}).as('explainRequest');
// Open pane and get initial explanation
openClaudeExplainPane();
giveConsentAndWait();
cy.get('.explain-content:visible').should('contain', 'Explanation for version 1');
// Change the code
setMonacoEditorContent('int main() {\n return 100;\n}');
// Wait for new explanation
cy.wait('@explainRequest');
cy.get('.explain-content:visible').should('contain', 'Explanation for version 2');
});
});
describe('UI state and theming', () => {
it('should persist option selections in state', () => {
// Mock API with test options
mockClaudeExplainAPI();
// Open pane
openClaudeExplainPane();
// Add error listener to catch JS errors
cy.window().then(win => {
win.addEventListener('error', e => {
cy.log('JS Error:', e.message, 'at', e.filename + ':' + e.lineno);
});
win.addEventListener('unhandledrejection', e => {
cy.log('Unhandled Promise Rejection:', e.reason);
});
});
// Wait for options to load
cy.wait('@getOptions');
// Wait for dropdown to be populated (wait for "Loading..." to disappear)
cy.get('.explain-audience:visible option[value="loading"]').should('not.exist');
cy.get('.explain-type:visible option[value="loading"]').should('not.exist');
// Give consent first to make dropdowns available
cy.get('.consent-btn:visible').click();
// Wait for dropdowns to be populated with actual options
cy.get('.explain-audience:visible option[value="test_second"]').should('exist');
cy.get('.explain-type:visible option[value="focus_b"]').should('exist');
// Now change options after consent (use :visible to avoid template elements)
cy.get('.explain-audience:visible').select('test_second');
cy.get('.explain-type:visible').select('focus_b');
// Wait for the explanation request triggered by option changes
cy.wait('@explainRequest');
// Get the current URL (which includes state)
cy.url().then((url: string) => {
// Clear intercepts from previous test
cy.state('routes', []);
cy.state('aliases', {});
// Set up mocks BEFORE visiting
mockClaudeExplainAPI();
// Block production API
cy.intercept('https://api.compiler-explorer.com/**', {
statusCode: 500,
body: {error: 'BLOCKED PRODUCTION API'},
}).as('blockedProduction');
// Visit the URL with configuration
cy.visit(url, {
onBeforeLoad: (win: any) => {
win.compilerExplorerOptions = win.compilerExplorerOptions || {};
win.compilerExplorerOptions.explainApiEndpoint = 'http://test.localhost/fake-api/explain';
},
});
// Force override after page loads (in case it gets reset)
cy.window().then((win: any) => {
win.compilerExplorerOptions = win.compilerExplorerOptions || {};
win.compilerExplorerOptions.explainApiEndpoint = 'http://test.localhost/fake-api/explain';
});
// Verify options are restored
cy.get('.explain-audience:visible').should('have.value', 'test_second');
cy.get('.explain-type:visible').should('have.value', 'focus_b');
});
});
});
});

View File

@@ -19,6 +19,7 @@ const PANE_DATA_MAP = {
tree: {name: 'Tree', selector: 'view-gnatdebugtree'}, tree: {name: 'Tree', selector: 'view-gnatdebugtree'},
debug: {name: 'Debug', selector: 'view-gnatdebug'}, debug: {name: 'Debug', selector: 'view-gnatdebug'},
cfg: {name: 'CFG', selector: 'view-cfg'}, cfg: {name: 'CFG', selector: 'view-cfg'},
explain: {name: 'Claude Explain', selector: 'view-explain'},
}; };
describe('Individual pane testing', () => { describe('Individual pane testing', () => {
@@ -68,6 +69,7 @@ describe('Individual pane testing', () => {
addPaneOpenTest(PANE_DATA_MAP.tree); addPaneOpenTest(PANE_DATA_MAP.tree);
addPaneOpenTest(PANE_DATA_MAP.debug); addPaneOpenTest(PANE_DATA_MAP.debug);
addPaneOpenTest(PANE_DATA_MAP.stackusage); addPaneOpenTest(PANE_DATA_MAP.stackusage);
addPaneOpenTest(PANE_DATA_MAP.explain);
// TODO: Bring back once #3899 lands // TODO: Bring back once #3899 lands
// addPaneOpenTest(PaneDataMap.cfg); // addPaneOpenTest(PaneDataMap.cfg);
@@ -92,8 +94,7 @@ describe('Known good state test', () => {
cy.visit( cy.visit(
// This URL manually created. If you need to update, run a local server like the docs/UsingCypress.md say, // This URL manually created. If you need to update, run a local server like the docs/UsingCypress.md say,
// then paste this into your browser, make the changes, and then re-share as a full link. // then paste this into your browser, make the changes, and then re-share as a full link.
'http://localhost:10240/#z:OYLghAFBqd5TB8IAsQGMD2ATApgUWwEsAXTAJwBoiQIAzIgG1wDsBDAW1xAHIBGHpTqYWJAMro2zEHwAsQkSQCqAZ1wAFAB68ADIIBWMyozYtQ6AKQAmAELWblNc3QkiI2q2wBhTIwCuHCwgVpSeADJELLgAcgEARrjkIPIADpgqpG4sPv6BwZRpGa4iEVGxHAlJ8k64LlliJGzkJDkBQSE1dSINTSSlMfGJyY6Nza15HaN9kQMVQ7IAlI6YfuTo3DwA9JsA1AAqAJ4puDsHK%2BQ7WHg7KIm4lDsUO4yYbNg7pju4mpwpzAB0Fh0AEFIiQdioAI5%2BJq4CBgnYsAILHYWADsdhBO2xO3IuBIqxYiICOwAVMSOBYAMyY4HogAiPCWjF4AFZBEEeHpKJheF57PYIed1qirFSBJQSLomUsANYgVk6Yy8WSCDgKpWc7m8niCFQgJVSrlMyhwWBoLAsYTkDimdbUDzEMjkIjYIwmMwASTdlls9mWq3WvG2%2ByOJzOq0uOBOtzxDyeLzeHyJ31%2BAKBoNEEOhsPhWaRHBR6NpONx%2BMJFLJFOptIZJpZPHZlC1gh1PitFFtLBFADUiLgAO6JHYQQikJ7WcULQRGvQLJa3N5DCDMlVq4Ks5vSnm8PUGyXSpZmqBoch%2BFQkFBEKg0CBYDgpJiJaKcDbAAW2HZ4OhsPyMEiCLgToUK6RjCKIEhSNwcgKKIqgaNoxqUIYfCOLgzjFEEECeOMQSoeEMzlJURiFJkIi4SR6RkSw/REUMqGdJhPRjL4bRGIx9RTLRgxJAxUwUXxvTcXMvFLCQeK4KBOiro2HLbjqABK57ggAEp6Ck7H2g7Du%2Bfqft%2Bv7/iOY7OqK4oPD4D5Phck58NOB7GvOlCLngSQrsqPCqpQ6pWJuLY7rqjj7rOMqUPKshKg2VJyUhOozoepqIMeqAYJgVnMDetD3o%2BGUgMABl/iQQhMCQiT6hAcTbnEkRNAcvAStV7DkAcADycT6LURoSveXCiC1LCMHVSF4HEfjAF4UiMPq/CCHgXbANIw3Xp1RAAG64NN3LfLUfilfVghguh26MEQcTkLVPh4Nu4lEOqM2UOt5BxOkuD0rg80nWYCV0CYwAqFpA4tccnISuB4iSNIMFg/BWjbihximOYH4OCdcT6pASyYCkmHTa2j0ung6PuRx7jYSw3isXk%2BHk8JxGoaRmECQUVGYbT9FoRhnG9EzJMsMx0xlDx7H8ZTeEjEJhFC3ZAZrNBlADqYJBAyQnodglDZNv5Oo7Lpdj6bgP6FcZwE2WKdnxY5C64EublyhqHleT5fnybuQWGglyVoBebDoLK55sMA9y3tl1kvlwvC64KBX/oBJugahYOQZD8jQ2osNIfDvMeOTTMEYLImUUUWRMwzWRs7xHMrd0Iu5GLvP8%2BXwvc6LTfNI30vibgklutJHmay7PA9L7OyqAHJwAzpyNfgbhngqOJtmahOyWTlw62fZIVOS5y4yY7G5brFrv6u7jmJcgaArCQKS7Q6d5pav5Bh2%2BU/RwBoRx26CeKEn0Ep4oMOIW5PDAc50Uj7Rkv3Q%2BPAWq7WvuCTAdAdYvxnkbCAK9rKLw3oeK2NtaC73XL5A%2B2oj7BQ9klU8ylbToHIJgb4KRb4hwyk/COyDDYx3fuOAmYFv4Q1/rBZQadAEGHYuhKuWEcIt2ptgduzMi7kUkbI6iMj641zYgxURXQ%2BZcUlgXQSLFa6twFrMOmYkJJSQgTFYhPAlIXh2AAWR9jQnY%2BBNApFMBkEQml%2BxDguJHfWbC54mQnGbCy98MHrwtnOHBrk8EOwIc7KBe4T5RLCiAAAbJFXg0UiGtldpvO2VI0T/DFGKNErIACcaJyl8D4FYKwaIPJWHXHwHQmoB6RJNMlJK3Tz4gG2ugXaFBb5ND%2BuoUw6ExAoEwAOEGghGFsEwmMqIjBJnTP8owoY%2BUUH/koBsx%2Br5XZ7JgeIKZMztz9OBOQP6rt%2BkNGIJyQQideEyD/nBQRcN3SIwwMjYwp0iaY2xlkXGPJ8aug2vAJYZ5RC3VwHsTAvh/kyyDHxe5SyJmnNmZKCS%2B15agPAX3SxuSeAuJ2qZPxNhp4BJHPyPSDhnELwiQ5FJ29bapMVHE7y%2B8tYkOSZ08heV2AkBGmNTuQcsphKYQcng5LKWz1jpw%2BO/Cf4vP4QAj56jOakwkQYqRMjS7yJ1Yo1mOi6aV00fzHmGimLaPzqa72%2Bi1Hizbia%2Bipiu7mIJTkgKABxaIwI9g7DeqNYA%2BwJJeO0r41hs9jacMXqE9Ka8zZYMts5a2MT3INj3oQ7lgVj5Mr5b068DCJXPilTK1%2B8rnSKszsKDYIZDjHFOOcKM1xYz3EeBcRM7xPipgfOmEECIoQwjxHmcEBYiwYgzKWPEBJyBEgLFWAsNYMx1ixe6t0M0LFep1GEMIPY7E7HUuGnxSDaWytQUE025ll4lqvebfNW8007w5U7bdPKH1n3NCAFAbAVCynQowHwcZg63uYdKqNhVK0gU/kq55UN/7vIziIzV4ic4KLzsY9m%2BrsgKOw8oq1XMHVUzNdaiWtr2b2paAoyj7c3XdwNFunN3qVJeBvXiY9k8z2vxjaZWy8aH6YI6Y%2B3BGa1ycuze0t2D67bsqioSgKQnP1IC/VjIqIGE37PDuBrj2y35AQVTBhg/5EgAFpTBSAOBkaaoMSqmY4EQFQagN3ciM6VcgJm3GOaAjip5UEVWpwQuqkjWRs4U0NRhuiFdsMlxZmXF1FcVHN0NYl515GEuqOIzR%2BLMg6OgXuiAtgYDN2epzcrDjkadNUvnrGvjN6NOCek6mkTMnMmeXiW%2B3NpDT6ewFQs4VwBi0abA%2BW3TUGuFfwgnB15AjAtIY1WI0LucabZfprFg1jq8MreC9XJLjqUtGMi4YnmNrMOiTXfR3uGt5M6l9f6wNuBg3ldPXrCl3Hqu8ZCXVgTjL8lNfTfg8TCSrFJI/T1xgjBVocGVuoIgxxPq4ABrfHgJm6AsEwCZ4gKhJDkGwCZ1aUg/C4BM%2BwLgKgeDbj2cNiD7C5qI2YCZlQBwKgIu3NgAIKQUd/kYCZjgOA/wbAlPpqthnbPuciJaNQ0JWCuCkB539ahrOPJ4X5%2BDbzZvcjQODyH0PYfoRmIjzOVqgIADE/DdkwkfI32BVZ4G0EqDII0mgAHVXSXg3IaMxG6BCMYHmVmHcOZhPZG1Vy9cavvhKTUJ6Jz7M3tZzSDzeSmUo/r/QBhoA31MPyp5VuVHDhfcMmyr6baq5vbdQ2Fx1EWpZGuLrhtbNEtv7ctShhujeMt1xO4djunuGMlYHsx1jYg9jeqD9TwJDLPvoIyg137LLYmx8Bx1hP2C2WteyfHxr8pWSyH%2BHwNJ%2B%2BD%2BH4P/IBsTTOUtLaYk0HPSv0pHocHD0wAUedgWTioX0GwKi5MyyzaSvC/J1VUQyASMFFTy29z7ygXUDxBSBoXWEcyeGOTgWeyjl0x42CWvSn0TSnCjz%2B2fXlCsHKV3yP2IP3wAA4X0uVJM81E8et0A6AM9xUhsy0x8xtq1kNOoTczdNFeAh1cwwQFheBzsPUrsOsvBjcR9g9o13t0Cl5MC71k1mUn1WUF9X0N9qCyFek8BVoiB7RbwtCdCNhWDDNlcACAt05gD5tuCyYK9iMq9dEa91tiNNs0t2DzV29XDSNUtTsjtqNO8pZcsvd6w2RrteA3ptDexvFOMXtz0jJpC71%2BMI9sDGs59RM2tF81Cus5wk9%2BUU9/1wcvAOAOBBss9mCc9IM88P8JtwYi9AD1dhFLCLdrCltpEttos685EG8XCGjCMqNksCMdsvCu8nVei9s/DdEAje8RCmMWNl5CjR8yjYjQ9as5CZ8V8UiWsKCJMr91Dut%2BU6ETBIhijQ5SjoiK0KjxtkIQCe9LtgjRCTA/BrgXE/g2BIhkD/EpCljJ9b1ViU11jV8OUMjeUnJT849JNft8DSDd8rAalSDZBCkYS4S0QqQPJ18wSNDYB%2BVf01NGCSitNJDyj38Lia1Aw61dgG1wxm0rgYw7h4xO1Xhu0Uwfg%2B1cBAQB0sxeCR0ERx1URJ0sQcQZ0KwF1yQl0aQV00RGQhDAifcoFgRbEJ4KtTjUC4iw8Vifs1ilD58xN1R2VATr9ekzwLx7NMo74mC8SWDzjFVfNTCEM6jLjuitU0NwtlsuiHCcNDVnDvD7StFdtMt%2BjvTBjq9KNjsyNPSJibjZIOsbFwQ7Ej15S3jXslTPiMDvi1TfiNTUis00l/gdAxQqRqlSDalSC0lt9ylyDdSaD%2BVgB0B0A2cHxhlsBsA8RHNlYQt7pJoWz3B7o4gXhfYVAOzMUepTBsAAB9GAg2IgbQdySnE4lAgJWafEF4qafst/D%2BT/ZgEnXAYclQPwOgBgScpYK0vhMwoRSgYAW6P4XAY3XAZc%2B6WHNgekdnILeHNHG8iUDc2Jc6QGQFTsiUZoRgB8h8bcRiICMZRzWJLOJo9DZ0z010mLDo/DFvdwr01vF0oM3wkMrvJYFQE6KHb8zFb2EgPsvCnFUVACorbkUAnuSgPwV0V8wQVaLGIii3YrKY/vLwVjPYCSTYBSPYMIeYxUkPCfZM%2BrVMxQ5rTYqkf4SpffHQAs0gtEPgKkWQRUEIcslfeUPgIpBS6E2QUg8pNJHSvSgylEkIwKcE9JKwf4NENJayqwCKKwWS%2BStEE/XgM/dUC/JfRrEEzy37R6DxIIWQIAA%3D%3D',
'/#z:OYLghAFBqd5TB8IAsQGMD2ATApgUWwEsAXTAJwBoiQIAzIgG1wDsBDAW1xAHIBGHpTqYWJAMro2zEHwAsQkSQCqAZ1wAFAB68ADIIBWMyozYtQ6AKQAmAELWblNc3QkiI2q2wBhTIwCuHCwgVpSeADJELLgAcgEARrjkIPIADpgqpG4sPv6BwZRpGa4iEVGxHAlJ8k64LlliJGzkJDkBQSE1dSINTSSlMfGJyY6Nza15HaN9kQMVQ7IAlI6YfuTo3DwA9JsA1AAqAJ4puDsHK%2BQ7WHg7KIm4lDsUO4yYbNg7pju4mpwpzAB0Fh0AEFIiQdioAI5%2BJq4CBgnYsAILHYWADsdhBO2xO3IuBIqxYiICOwAVMSOBYAMyY4HogAiPCWjF4AFZBEEeHpKJheF57PYIed1qirFSBJQSLomUsANYgVk6Yy8WSCDgKpWc7m8niCFQgJVSrlMyhwWBoLAsYTkDimdbUDzEMjkIjYIwmMwASTdlls9mWq3WvG2%2ByOJzOq0uOBOtzxDyeLzeHyJ31%2BAKBoNEEOhsPhWaRHBR6NpONx%2BMJFLJFOptIZJpZPHZlC1gh1PitFFtLBFADUiLgAO6JHYQQikJ7WcULQRGvQLJa3N5DCDMlVq4Ks5vSnm8PUGyXSpZmqBoch%2BFQkFBEKg0CBYDgpJiJaKcDbAAW2HZ4OhsPyMEiCLgToUK6RjCKIEhSNwcgKKIqgaNoxqUIYfCOLgzjFEEECeOMQSoeEMzlJURiFJkIi4SR6RkSw/REUMqGdJhPRjL4bRGIx9RTLRgxJAxUwUXxvTcXMvFLCQeK4KBOiro2HLbjqABK57ggAEp6Ck7H2g7Du%2Bfqft%2Bv7/iOY7OqK4oPD4D5Phck58NOB7GvOlCLngSQrsqPCqpQ6pWJuLY7rqjj7rOMqUPKshKg2VJyUhOozoepqIMeqAYJgVnMDetD3o%2BGUgMABl/iQlB4AAbkQ6xaQOADyxz%2BQw/6JPqEBxNucSRE0By8BKbXsOQBxVXE%2Bi1EaEr3lwohVSwjCdUheBxH4wBeFIjD6vwgh4F2wDSLN17DUQJW4Kt3LfLUfgkBsEpguh26MEQcTkB1Ph4Nu4lEOqa1LHQJjAColU1awXWCOB4iSNIMHA/BWjbihximOYH4OLdcT6pASyYCkmGra2B3kC6eAo%2B5HHuNhLDeKxeT4aTwnEahpGYQJBRUZh1P0WhGGcb0DNEywzHTGUPHsfx5N4SMQmEQLdkBms0GUAOpgkDVJCeh2CUNk2/k6jsul2PpuA/oVxnATZYp2fFjkLrgS5uXKGoeV5Pl%2BfJu5BYaCXJWgF5sOgsrnmwwD3Le2XWS%2BXC8NrgoFf%2BgFG6BqEwyowobCGhzHKc5xRtcsb3I8FyJu8nypg%2B6YggiUIwniebggWRYYhmpZ4gS5BEgWVYFjWGZ1pKElSTJ6tOzwPTezsqh%2ByclU6QjX564Z4KjkbZmoTslk5cOtn2SFTkucuMn2xuW6xc7%2Bqu45iXIGgKwkCkZ0OneaUr%2BQIdvpPkcAaEMduqhwOQWD8gQ2oUNIRhgOB6KRAa9xitqXgVUzpX3BJgOgWtn7TwNhAZe1kF7r0PBbK2tAd7rl8vvSBgUj4OTnKfc0IAzwXltOgcgmBvgpBvkHDKj8w5IP1lHN%2B448ZgUUN/aCv9FCQ0QtyeO6E9rExwsLIwBF%2BYiUokULIDM6ZZBZrxNmEieZC1yCLbmvM1GC05tIwSzQDGS3ErgSSbppIeT7gfHgSkLw7AALJezoTsfAmgUimAyCITS/YhwXHDrrDhs8TIThNhZO%2B6C15mznNg1yuC7b4MdvYvcx94lhRAAANkirwaKhDWzOw3jbKkaJ/hijFGiVkABONENS%2BB8CsFYNEHkrDrj4DoTU/c4kmmSklAZZ8QAnXQGdCgN8mg/XUKYdCYgUCYAHJyUa0STCYWmVERgcyFn%2BWYUMfKyD/yUF2Q/V8ztjnQPEPMxZ24RnAnID9Z2IyGjEE5EDPhoMBGwWUP/ERBh3RwwwAjYwd0CZowxlkLGPIcZ40OvAJYCdAwywvC89ZsyrlLJnBJQGssQFgNsRAopPBPGnVMsEmwU9Qkjn5HpBwHj56xNIaFLe1ssmKmSd5PeGtD7BTdklNAwB2AkDmgtCxAcsorOfKcngZKKUz2jtw2OXz%2BEyEEXBH50N2LiK6FhKROiZFU3FvI2mTMlHGMZookohqaYaO1bzLmWqmJcStazT2LE9UmL5rMGmYlu7WPAYUgKABxaIwI9g7HpLgeawB9gSX8dpIJ7CZ6G24QvKJ6VV4m0webZyltEnuQbLvAhXLiE8pPu7EA14mESpOaHaVibCryudIq%2BOidgy7BTuGdOVwYx3HjLnV4%2BcUw/CLrgQEJcsxl1zAiauqJa5YhxA3CsLdyRtxpB3NEjIu6WNAh9fFAadRhDCD2ZxOx1JxsCYgmlsqUHhONuZJe1aMG9M3rm7e7KHb7u5RkvpfKQAoDYCoWU6FGA%2BDjIHatrC61Xpfo2kCH8lUfJVV84RGqGIOqyB4UmDNZFetZio8iZr8M0WdeovR2i2JofZt0J1cjrWupaGa%2BjZifXbr9Xu4tgaVJeAfXic9E9oMHLCfSyJD7013tNoyl9OD81rg5UWnpLtJM2zZVFAlAVn3kKQBQ9GRVwNicgzKmDXCm3wZbYittoZU4RguN2m4vac7PAHcmL4w6/ijozKXHMFdp3IlnSWBd5Ym6VhXQEduIJO6ip3QIf1xbFZ8YTQJylc8U22TTffJ9Smc3SeU3kzyKTP0lu/UeX9Aq2BCsjQtKt%2BmpWGcE7Bnhn93lQSQ3/BCqGbWYUw2Td1oQDW0bwyagjPWiNmI6xzN1FGxvUbFv10j5GKai1MSRmQLGrEGhi/3YNobw0VejePBLOtyUv2TaZVLon0sMpKVlvNeC5OpKIekyTmmUqMEYCVDgit1BEGOLdKIlUb48AALR0BYJgQHxAVCSHINgQHJUpB%2BFwID9gXAVA8G3Mcgz9bOEbThswQHKgDgVF8EddaAQUjA7/IwQHHAcB/guvVxV9VzrkEB5ES0ahoSsFcFIQH3iVBqFWhKL%2BiHwZCPVUhNAr33ufe%2B%2BhGY/2xEYSAgAMT8N2TrxCHVAWVngbQSoMhzSaAAdVdJeDchpfV4rVmpg9R6T1xa%2Bz9mY8XL2HevUZZLp2RNoIyhlq7zKkkFvy8Wx7G9ntoH/YB4DDRgBVfvpjxLcrjNwd4RBEXqrvltcAZqqjOqsNmpw3RdRRHlGDeI7NnPmi7WMfQ9NpbFePVcxo7h0SW61s2OtwVzj3GxB7EDS72rSXb2pvOzEzNz6ElvqD3dgroesGstywUkPmX5SslkP8Pg2St/b539v%2BQDZ2kcs6d0tJT3%2BlDJSIwwOHpgDA87GV7FQEFXwaZ4kQHzKScIea6LtVWfRFGEizdF3U72LXUDxBSDoXWH5yeAuVgVdwjkExOwiXvR9wzSnAn2uzfXlCsBqQ3133wK3wAA531OUFMSEw9y10A6BY89N48assdX4n8TMjBFdhoVc1dtVeBJ1vNRAFheA28e52N%2B4vBld%2B9B8k1PdkDF5UDxMs1MkA8ZM8sZ9l9yDeUhlSpyoxUIANCgxAomCU9Gs09v8M8UNs9KNNEutsM%2BsW8FFqJS8LVy8bDzDbV5tdFa8tEZsnDFsGMesmNltzFLdgC2QbdeAI0ypewAl%2BM3djtJDxM0sx90DMsFDbsP0VDS0yFy1I8gNXsvAOAOA49g56DE8G1k8Gsv8f5kNxd/9nDOsSZutJtC8JZzU7DCMy9RsyMjFfD3D9F/DvCm9PCi8VsBC2MQDNsuMl48iB8GCkC4jR9fdLt59kiSD5NT9VDs1sDCCN8rBGlCDZAykdi9i0QqQPIl8FMKDBkKEANdNxVqta1xCSj9CyizNpYLMO005IxbMs4%2B1HMkwC5XNi5MxwRuC4QfNCw/M64AtG5m4SQQtKQ11wsN1MVWMrdgiCtgQnF9t4CQkJDh8zsZC/dFjX0WVp91Q2U0iitw9KFlIOBK1aDCi7iGCGcX8msKjWsAFqips896iFtGijVmj6ZWiHD2jujXDK8XCBimj6N%2Bj68nDVtBDRj7FHFwRnEz1MT7iPdcTvdH0Fjs0liSTghsl/gdAxQqQGlCCmlCDsk18aliDySz8St0B0BsAycJlsBsA8R%2BdFYMM1pKBlovT3AfS4gXhvYVB/SMUjk0ouxsAAB9CAvWIgbQdyDHIo6IurYqfENgJgUM8FAMiUR4xnJ8ZHXAaMlQPwOgBgRMz6Fkz5Nk35agbxekMndrX7VgTAMM7FIspJB6aqHM8M5oRgRsh8bcRiICaZfnJJbmSwgvawwY41Bw%2Bw6iYU3PavLo5c5vWcvoxjdciWeFW6D7Xs7FT2EgbMjXCUUVQc0BJCQA/cPwV0dsn0kqdGE8706LIQ%2BxQNLwbjPYCSTYBSPYMIKY4ojU4TFA7U8fJIokwPWTHyKkf4OpLfHQc0wgtEPgKkWQRUEIO0q7eUPgcpFC7Y2QQgmpbJAioikik4kIwKbCnJKwf4NEbJeiqwCKKwRC5CtEffXgQ/dUY/WfTLA/SijAnGXxIIWQIAA%3D%3D',
{ {
onBeforeLoad: win => { onBeforeLoad: win => {
stubConsoleOutput(win); stubConsoleOutput(win);

View File

@@ -0,0 +1,68 @@
// 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 {setMonacoEditorContent} from '../support/utils';
describe('Monaco Editor Utilities', () => {
beforeEach(() => {
cy.visit('/');
});
it('should set simple code content', () => {
const simpleCode = 'int main() { return 42; }';
setMonacoEditorContent(simpleCode);
// Verify the content was set (basic check)
cy.get('.monaco-editor').should('contain.text', 'main');
});
it('should set complex multi-line code content', () => {
const complexCode = `#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
for (int num : nums) {
std::cout << num << std::endl;
}
return 0;
}`;
setMonacoEditorContent(complexCode);
// Verify the content was set (basic check)
cy.get('.monaco-editor').should('contain.text', 'iostream');
cy.get('.monaco-editor').should('contain.text', 'vector');
});
it('should handle special characters and quotes', () => {
const codeWithSpecialChars = `const char* message = "Hello, \"World\"!";
int result = (x > 0) ? x : -x;`;
setMonacoEditorContent(codeWithSpecialChars);
// Verify the content was set (basic check)
cy.get('.monaco-editor').should('contain.text', 'Hello');
});
});

View File

@@ -11,3 +11,55 @@ export function assertNoConsoleOutput() {
cy.get('@consoleWarn').should('not.be.called'); cy.get('@consoleWarn').should('not.be.called');
cy.get('@consoleError').should('not.be.called'); cy.get('@consoleError').should('not.be.called');
} }
/**
* Clear all network intercepts to prevent accumulation
*/
export function clearAllIntercepts() {
// Clear any existing intercepts by visiting a clean page and resetting
cy.window().then((win: Cypress.AUTWindow) => {
// Reset any cached state
win.compilerExplorerOptions = {};
});
}
/**
* Sets content in Monaco editor using a synthetic paste event
* @param content - The code content to set
* @param editorIndex - Which editor to target (default: 0 for first editor)
*/
export function setMonacoEditorContent(content: string, editorIndex = 0) {
// Wait for Monaco editor to be visible in DOM
cy.get('.monaco-editor').should('be.visible');
// Select all and delete existing content
cy.get('.monaco-editor textarea').eq(editorIndex).focus().type('{ctrl}a{del}', {force: true});
// Trigger a paste event with our content
cy.get('.monaco-editor textarea')
.eq(editorIndex)
.then(($element: JQuery<HTMLTextAreaElement>) => {
const el = $element[0];
// Create and dispatch a paste event with our data
const pasteEvent = new ClipboardEvent('paste', {
bubbles: true,
cancelable: true,
clipboardData: new DataTransfer(),
});
// Add our text to the clipboard data
pasteEvent.clipboardData?.setData('text/plain', content);
// Dispatch the event
el.dispatchEvent(pasteEvent);
});
// Wait for compilation to complete after content change (if compiler exists)
cy.get('body').then(($body: JQuery<HTMLElement>) => {
if ($body.find('.compiler-wrapper').length > 0) {
cy.get('.compiler-wrapper').should('not.have.class', 'compiling');
}
// If no compiler wrapper exists yet, that's fine - compilation will happen when compiler is added
});
}

120
docs/ClaudeExplain.md Normal file
View File

@@ -0,0 +1,120 @@
# Claude Explain
Claude Explain uses Claude AI to provide natural language explanations of assembly code generation, helping users understand how their source code is translated into assembly and what compiler optimizations are applied.
## How It Works
1. Click the "Explain" button in the compiler toolbar to open a dedicated explanation pane
2. After compilation completes:
- Failed compilations show "Cannot explain: Compilation failed"
- Code with `no-ai` directive shows a special message
- Otherwise, users consent to sending code and compilation output to the Claude API
3. Customize explanations by selecting audience level (beginner/intermediate/expert) and explanation type (assembly/source/optimization)
4. Once consent is given (persisted for the session), Claude analyzes the code and assembly relationship
5. The markdown-formatted explanation appears with syntax highlighting
6. Responses are cached client-side (LRU, 200KB limit) and server-side to reduce API costs
7. Use the reload button to bypass caches and get fresh explanations
## Configuration
Add the API endpoint URL to `compiler-explorer.*.properties`:
```ini
explainApiEndpoint=https://api.compiler-explorer.com/explain
```
The explain button appears automatically when configured.
## Privacy Notice
- Source code and compilation output are sent to Anthropic's Claude API after explicit user consent
- Consent is remembered for the browser session (not stored in cookies/localStorage)
- Anthropic does not use the data for model training
- Code containing `no-ai` (case-insensitive) is never sent to the API
- Compiler Explorer's privacy policy covers Claude Explain usage
## Technical Implementation
**Server-side**: Single property configuration (API endpoint). Server code: https://github.com/compiler-explorer/explain
**Client-side**:
- `ExplainView` class (`static/panes/explain-view.ts`) handles UI, consent, API requests, and caching
- `explain-view-utils.ts` contains testable business logic (validation, formatting, request building)
- Uses `marked` library for markdown rendering with syntax highlighting
- LRU cache (200KB limit) shared across all explain views in the session
- Theme-aware styling with responsive layout and font scaling
**Features**:
- Loading states with animated spinner
- Error handling with helpful messages
- Audience/explanation type selectors with Bootstrap popovers
- Status bar showing model, token usage, cost estimates, and cache status
- Session-persistent consent and user preferences
- Reload button to bypass all caches
**Testing**:
- Comprehensive Cypress E2E tests covering UI interactions, consent flow, API mocking, caching behavior, and error handling
- Tests verify explain pane functionality, theme persistence, and proper handling of compilation states
## API Integration
**GET /** - Fetch available options:
```json
{
"audience": [
{"value": "beginner", "description": "Simple language, explains technical terms"},
{"value": "intermediate", "description": "Focuses on compiler behavior and choices"},
{"value": "expert", "description": "Technical terminology, advanced optimizations"}
],
"explanation": [
{"value": "assembly", "description": "Explains assembly instructions and purpose"},
{"value": "source", "description": "Maps source code constructs to assembly"},
{"value": "optimization", "description": "Explains compiler optimizations and transformations"}
]
}
```
**POST /** - Generate explanation:
```json
{
"language": "c++",
"compiler": "GCC 13.2",
"code": "Source code",
"compilationOptions": ["-O2", "-std=c++20"],
"instructionSet": "amd64",
"asm": ["Assembly output lines"],
"audience": "intermediate",
"explanation": "optimization",
"bypassCache": false
}
```
Optional fields: `audience` (default: "beginner"), `explanation` (default: "assembly"), `bypassCache` (default: false)
Response:
```json
{
"status": "success",
"explanation": "Markdown-formatted explanation",
"model": "claude-3-sonnet",
"usage": {"inputTokens": 500, "outputTokens": 300, "totalTokens": 800},
"cost": {"inputCost": 0.0015, "outputCost": 0.0045, "totalCost": 0.006},
"cached": false
}
```
## Caching
**Multi-level caching** reduces API costs and improves response times:
- **Client-side**: LRU cache, cache key from request payload hash
- **Server-side**: Shared cache across users, indicated by `cached: true` in response
- **Cache bypass**: Reload button sends `bypassCache: true` for fresh generation
- **Status display**: Shows cache state, models, token usage and cost estimates
## Limitations
- May not explain every compiler optimization or assembly pattern
- Large assemblies may be truncated before sending to API
- Requires internet connection for external API access
- One explain view per compiler at a time

View File

@@ -0,0 +1,172 @@
# Compiler Arguments Debugging Tool
## Overview
`compiler-args-app.ts` is a standalone debugging utility for testing and inspecting compiler argument parsing in Compiler Explorer. It allows you to run the argument parser for different compilers and see what arguments CE can extract and understand.
## Running the Tool
### Basic Usage
```bash
node --import tsx compiler-args-app.ts \
--parser <compiler-type> \
--exe <path-to-compiler> \
[--padding <number>] \
[--debug]
```
### Parameters
- `--parser <type>` (required): The compiler parser type to use
- `--exe <path>` (required): Path to the compiler executable
- `--padding <number>` (optional): Padding for output formatting (default: 40)
- `--debug` (optional): Enable debug output for troubleshooting
**Note:** Arguments should NOT use equals signs (=). Use spaces instead: `--parser gcc` not `--parser=gcc`
## Example Commands
### Debug GCC Argument Parsing
```bash
node --import tsx compiler-args-app.ts \
--parser gcc \
--exe /opt/compiler-explorer/gcc-14.2.0/bin/g++ \
--debug
```
### Debug Clang with Custom Padding
```bash
node --import tsx compiler-args-app.ts \
--parser clang \
--exe /opt/compiler-explorer/clang-19.1.0/bin/clang++ \
--padding 50
```
### Debug Rust Compiler
```bash
node --import tsx compiler-args-app.ts \
--parser rust \
--exe /opt/compiler-explorer/rust-1.80.0/bin/rustc
```
### Debug Go Compiler
```bash
node --import tsx compiler-args-app.ts \
--parser golang \
--exe /opt/compiler-explorer/golang-1.24.2/go/bin/go
```
### Supported Parser Types
- `gcc` - GNU Compiler Collection
- `clang` - Clang/LLVM
- `ldc` - LDC (D Language)
- `erlang` - Erlang
- `pascal` - Pascal compilers
- `ispc` - Intel SPMD Program Compiler
- `java` - Java
- `kotlin` - Kotlin
- `scala` - Scala
- `vc` - Visual C++
- `rust` - Rust
- `mrustc` - mrustc
- `num` - Nim
- `crystal` - Crystal
- `ts` - TypeScript Native
- `turboc` - Turbo C
- `toit` - Toit
- `circle` - Circle
- `ghc` - Glasgow Haskell Compiler
- `tendra` - TenDRA
- `golang` - Go
- `zig` - Zig
New parser types have to be added manually to the `compilerParsers` type list in `compiler-args-app.ts`
## Output Interpretation
The tool provides several types of information:
### 1. Available Arguments
Lists all compiler arguments that were successfully parsed, showing:
- The argument flag (e.g., `-O2`, `--std=c++20`)
- A description of what the argument does
### 2. Standard Versions (Stdvers)
Shows available language standard versions the compiler supports (e.g., C++11, C++14, C++17)
### 3. Targets
Lists available compilation targets the compiler can generate code for
### 4. Editions
Shows available editions (primarily for Rust compilers)
### 5. Compiler Capabilities
Reports on specific compiler features:
- `supportsOptOutput`: Whether optimization output is supported
- `supportsStackUsageOutput`: Whether stack usage reporting is supported
- `optPipeline`: Optimization pipeline information
- `supportsGccDump`: Whether GCC dump output is supported
### 6. Target Support Detection
The tool also reports which target specification format the compiler uses:
- `supportsTargetIs`: Uses `--target=<target>`
- `supportsTarget`: Uses `--target <target>`
- `supportsHyphenTarget`: Uses `-target <target>`
- `supportsMarch`: Uses `--march=<arch>`
## Debugging Tips
### 1. Use Debug Mode
Add `--debug` to see detailed parsing information and any errors that occur during argument extraction.
### 2. Check Parser Output
If arguments aren't being detected correctly:
- Verify the compiler executable path is correct
- Ensure the parser type matches the compiler type
- Check if the compiler requires special environment variables
### 3. Common Issues
**Empty or Missing Arguments**
- The compiler may not support the help flag format the parser expects
- Try running the compiler manually with `--help` to see its output format
**Parser Crashes**
- Enable debug mode to see the exact error
- Check that the compiler executable has execute permissions
- Ensure required libraries are available (use `ldd` to check dependencies)
**Incorrect Parser Type**
- Using wrong parser (e.g., `gcc` parser for a `clang` compiler) may work partially but miss specific features
- Always match the parser to the actual compiler type
### 4. Testing Custom Compilers
When adding support for a new compiler:
1. First run with an existing similar parser to see what works
2. Examine the raw help output to understand the format
3. Create a custom parser if needed in `lib/compilers/argument-parsers.ts`
4. Add the custom parser to the `compilerParsers` type list in `compiler-args-app.ts`
### 5. Environment Considerations
- The tool uses the current environment variables and working directory
- Some compilers may require specific environment setup (PATH, LD_LIBRARY_PATH, etc.)
- Julia compiler requires the wrapper script path to be set correctly
## Integration with CE Development
This tool is useful when:
- Adding support for new compiler versions
- Debugging why certain compiler options aren't appearing in the UI
- Understanding what arguments CE can extract from a compiler
- Testing custom argument parsers
- Verifying compiler configuration
The parsed arguments are used by CE to:
- Determine available optimization levels and flags
- Configure language standard options
- Detect supported architectures and target platforms
- Enable special compiler features based on flag availability:
- Optimization pipeline viewer (`optPipeline`) when optimization output flags are detected
- GCC tree/RTL dumps (`supportsGccDump`) when dump flags are found
- Stack usage analysis when stack output flags are present
- Intel syntax support when relevant flags are detected
- CFG (Control Flow Graph) support based on available dump options
- Set compiler properties that control UI features and compilation behavior

View File

@@ -2,7 +2,7 @@
_This is a summary of our Privacy policy, not a legal document, and might be incomplete._ _This is a summary of our Privacy policy, not a legal document, and might be incomplete._
_For the full Privacy policy, see `static/policies/privacy.html`, or visit https://godbolt.org/#privacy_ _For the full Privacy policy, see `static/generated/privacy.pug`, or visit https://godbolt.org/#privacy_
The main Compiler Explorer site (at https://godbolt.org/) has a cookie and privacy policy, and it's expected that any The main Compiler Explorer site (at https://godbolt.org/) has a cookie and privacy policy, and it's expected that any
changes to the code are in compliance with those policies. It's worth taking a look at them if you're touching any area changes to the code are in compliance with those policies. It's worth taking a look at them if you're touching any area
@@ -24,12 +24,23 @@ short links). All this makes perfect sense and would probably be done anyway, as
We anonymise IP addresses so there's no exact mapping back to an individual using an IP. Not that it's trivial to map an We anonymise IP addresses so there's no exact mapping back to an individual using an IP. Not that it's trivial to map an
IP to a user anyway. IP to a user anyway.
We shouldn't store data forever: our web logs are set to delete after a few months. We shouldn't store data forever: our web logs are set to delete after 32 days. Amazon infrastructure logs
(separate from our web logs) also contain full IP addresses and are kept for 32 days. Compilation analytics logs
are kept for up to 1 year - these contain hashed source code (not reversible), compiler options, and usage patterns
to help us improve the service. Lambda and API Gateway logs are kept for 7-14 days.
Short URLs do turn up in the web logs: from the short URL of course one can easily extract the source code embedded in Short URLs do turn up in the web logs: from the short URL of course one can easily extract the source code embedded in
that short URL. Users are notified of this in the privacy policy. The ultimate recourse for users concerned about this that short URL. Users are notified of this in the privacy policy. The ultimate recourse for users concerned about this
is to not use the main Compiler Explorer but instead run their own local service, which is relatively straightforward. is to not use the main Compiler Explorer but instead run their own local service, which is relatively straightforward.
We also integrate with third-party services with user consent: Claude Explain sends code to Anthropic for analysis, and
we use Sentry for error reporting (which keeps IP and browser info for up to 90 days - note this is controlled by Sentry's
retention settings, not our code). Users can control whether their code is stored for diagnostic purposes through a
setting that defaults to enabled but can be disabled.
Important: The actual retention periods are configured in our terraform infrastructure, not in the application code.
Always verify that the privacy policy matches the terraform configuration when making changes.
### Admins ### Admins
A very small group of people have administrator rights on the public Compiler Explorer. Those individuals can: A very small group of people have administrator rights on the public Compiler Explorer. Those individuals can:

View File

@@ -1,13 +1,13 @@
# Default settings for Ada # Default settings for Ada
compilers=&gnat:&gnatcross compilers=&gnat:&gnatcross
defaultCompiler=gnat151 defaultCompiler=gnat152
versionFlag=--version versionFlag=--version
compilerType=ada compilerType=ada
############################### ###############################
# GCC (as in GNU Compiler Collection) for x86 # 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: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:gnatsnapshot
group.gnat.intelAsm=-masm=intel group.gnat.intelAsm=-masm=intel
group.gnat.groupName=X86-64 GNAT group.gnat.groupName=X86-64 GNAT
group.gnat.baseName=x86-64 gnat group.gnat.baseName=x86-64 gnat
@@ -65,9 +65,10 @@ compiler.gnat142.exe=/opt/compiler-explorer/gcc-14.2.0/bin/gnatmake
compiler.gnat142.semver=14.2 compiler.gnat142.semver=14.2
compiler.gnat143.exe=/opt/compiler-explorer/gcc-14.3.0/bin/gnatmake compiler.gnat143.exe=/opt/compiler-explorer/gcc-14.3.0/bin/gnatmake
compiler.gnat143.semver=14.3 compiler.gnat143.semver=14.3
compiler.gnat151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gnatmake compiler.gnat151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gnatmake
compiler.gnat151.semver=15.1 compiler.gnat151.semver=15.1
compiler.gnat152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gnatmake
compiler.gnat152.semver=15.2
compiler.gnatsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gnatmake compiler.gnatsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gnatmake
compiler.gnatsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.gnatsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -75,7 +76,7 @@ compiler.gnatsnapshot.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
compiler.gnatsnapshot.semver=(trunk) compiler.gnatsnapshot.semver=(trunk)
## GNAT x86 build with "assertions" (--enable-checking=XXX) ## 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 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.groupName=GCC x86-64 (assertions) group.gnatassert.groupName=GCC x86-64 (assertions)
compiler.gnat104assert.exe=/opt/compiler-explorer/gcc-assertions-10.4.0/bin/gnatmake compiler.gnat104assert.exe=/opt/compiler-explorer/gcc-assertions-10.4.0/bin/gnatmake
@@ -116,7 +117,8 @@ compiler.gnat143assert.exe=/opt/compiler-explorer/gcc-assertions-14.3.0/bin/gnat
compiler.gnat143assert.semver=14.3 (assertions) compiler.gnat143assert.semver=14.3 (assertions)
compiler.gnat151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gnatmake compiler.gnat151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gnatmake
compiler.gnat151assert.semver=15.1 (assertions) 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)
################################ ################################
# Cross GNAT # Cross GNAT
@@ -131,7 +133,7 @@ group.gnatcross.compilerCategories=gcc
################################ ################################
# GNAT for loongarch64 # GNAT for loongarch64
group.gnatloongarch64.compilers=gnatloongarch641410:gnatloongarch641420:gnatloongarch641430:gnatloongarch641510 group.gnatloongarch64.compilers=gnatloongarch641410:gnatloongarch641420:gnatloongarch641430:gnatloongarch641510:gnatloongarch641520
group.gnatloongarch64.groupName=LOONGARCH64 GNAT group.gnatloongarch64.groupName=LOONGARCH64 GNAT
group.gnatloongarch64.baseName=loongarch64 gnat group.gnatloongarch64.baseName=loongarch64 gnat
@@ -155,6 +157,11 @@ compiler.gnatloongarch641510.semver=15.1.0
compiler.gnatloongarch641510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump compiler.gnatloongarch641510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.gnatloongarch641510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt compiler.gnatloongarch641510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
compiler.gnatloongarch641520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-gnatmake
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
################################ ################################
# GNAT for sparc-leon # GNAT for sparc-leon
group.gnatsparcleons.compilers=gnatsparcleon1310:gnatsparcleon1320:gnatsparcleon1330:gnatsparcleon1340:gnatsparcleon1410:gnatsparcleon1420:gnatsparcleon1430 group.gnatsparcleons.compilers=gnatsparcleon1310:gnatsparcleon1320:gnatsparcleon1330:gnatsparcleon1340:gnatsparcleon1410:gnatsparcleon1420:gnatsparcleon1430
@@ -198,7 +205,7 @@ compiler.gnatsparcleon1430.demangler=/opt/compiler-explorer/sparc-leon/gcc-14.3.
################################ ################################
# GNAT for sparc # GNAT for sparc
group.gnatsparcs.compilers=gnatsparc1220:gnatsparc1230:gnatsparc1240:gnatsparc1250:gnatsparc1310:gnatsparc1320:gnatsparc1330:gnatsparc1340:gnatsparc1410:gnatsparc1420:gnatsparc1430:gnatsparc1510 group.gnatsparcs.compilers=gnatsparc1220:gnatsparc1230:gnatsparc1240:gnatsparc1250:gnatsparc1310:gnatsparc1320:gnatsparc1330:gnatsparc1340:gnatsparc1410:gnatsparc1420:gnatsparc1430:gnatsparc1510:gnatsparc1520
group.gnatsparcs.groupName=SPARC GNAT group.gnatsparcs.groupName=SPARC GNAT
group.gnatsparcs.baseName=sparc gnat group.gnatsparcs.baseName=sparc gnat
@@ -262,9 +269,14 @@ compiler.gnatsparc1510.semver=15.1.0
compiler.gnatsparc1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump compiler.gnatsparc1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.gnatsparc1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt compiler.gnatsparc1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
compiler.gnatsparc1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gnatmake
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
################################ ################################
# GNAT for sparc64 # GNAT for sparc64
group.gnatsparc64s.compilers=gnatsparc641220:gnatsparc641230:gnatsparc641240:gnatsparc641250:gnatsparc641310:gnatsparc641320:gnatsparc641330:gnatsparc641340:gnatsparc641410:gnatsparc641420:gnatsparc641430:gnatsparc641510 group.gnatsparc64s.compilers=gnatsparc641220:gnatsparc641230:gnatsparc641240:gnatsparc641250:gnatsparc641310:gnatsparc641320:gnatsparc641330:gnatsparc641340:gnatsparc641410:gnatsparc641420:gnatsparc641430:gnatsparc641510:gnatsparc641520
group.gnatsparc64s.groupName=SPARC64 GNAT group.gnatsparc64s.groupName=SPARC64 GNAT
group.gnatsparc64s.baseName=sparc64 gnat group.gnatsparc64s.baseName=sparc64 gnat
@@ -328,9 +340,14 @@ compiler.gnatsparc641510.semver=15.1.0
compiler.gnatsparc641510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump compiler.gnatsparc641510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.gnatsparc641510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt compiler.gnatsparc641510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
compiler.gnatsparc641520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-gnatmake
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
################################ ################################
# GNAT for riscv64 # GNAT for riscv64
group.gnatriscv64.compilers=gnatriscv64103:gnatriscv64112:gnatriscv641230:gnatriscv641240:gnatriscv641250:gnatriscv641310:gnatriscv641320:gnatriscv641330:gnatriscv641340:gnatriscv641410:gnatriscv641420:gnatriscv641430:gnatriscv641510 group.gnatriscv64.compilers=gnatriscv64103:gnatriscv64112:gnatriscv641230:gnatriscv641240:gnatriscv641250:gnatriscv641310:gnatriscv641320:gnatriscv641330:gnatriscv641340:gnatriscv641410:gnatriscv641420:gnatriscv641430:gnatriscv641510:gnatriscv641520
group.gnatriscv64.groupName=RISCV64 GNAT group.gnatriscv64.groupName=RISCV64 GNAT
group.gnatriscv64.baseName=riscv64 gnat group.gnatriscv64.baseName=riscv64 gnat
group.gnatriscv64.instructionSet=riscv64 group.gnatriscv64.instructionSet=riscv64
@@ -400,9 +417,14 @@ compiler.gnatriscv641510.semver=15.1.0
compiler.gnatriscv641510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.gnatriscv641510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.gnatriscv641510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt compiler.gnatriscv641510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.gnatriscv641520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gnatmake
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
################################ ################################
# GNAT for s390x # GNAT for s390x
group.gnats390x.compilers=gnats390x1120:gnats390x1210:gnats390x1220:gnats390x1230:gnats390x1240:gnats390x1310:gnats390x1320:gnats390x1330:gnats390x1410:gnats390x1420:gnats390x1510:gnats390x1430:gnats390x1340:gnats390x1250 group.gnats390x.compilers=gnats390x1120:gnats390x1210:gnats390x1220:gnats390x1230:gnats390x1240:gnats390x1310:gnats390x1320:gnats390x1330:gnats390x1410:gnats390x1420:gnats390x1510:gnats390x1430:gnats390x1340:gnats390x1250:gnats390x1520
group.gnats390x.groupName=S390X GNAT group.gnats390x.groupName=S390X GNAT
group.gnats390x.baseName=S390X GNAT group.gnats390x.baseName=S390X GNAT
@@ -473,6 +495,11 @@ compiler.gnats390x1510.semver=15.1.0
compiler.gnats390x1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump compiler.gnats390x1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.gnats390x1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt compiler.gnats390x1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
compiler.gnats390x1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gnatmake
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
################################ ################################
# GNAT for ppc # GNAT for ppc
group.gnatppcs.compilers=&gnatppc:&gnatppc64:&gnatppc64le group.gnatppcs.compilers=&gnatppc:&gnatppc64:&gnatppc64le
@@ -480,7 +507,7 @@ group.gnatppcs.instructionSet=powerpc
## POWER ## POWER
group.gnatppc.groupName=POWERPC GNAT group.gnatppc.groupName=POWERPC GNAT
group.gnatppc.compilers=gnatppc1120:gnatppc1210:gnatppc1220:gnatppc1230:gnatppc1240:gnatppc1250:gnatppc1310:gnatppc1320:gnatppc1330:gnatppc1340:gnatppc1410:gnatppc1420:gnatppc1430:gnatppc1510 group.gnatppc.compilers=gnatppc1120:gnatppc1210:gnatppc1220:gnatppc1230:gnatppc1240:gnatppc1250:gnatppc1310:gnatppc1320:gnatppc1330:gnatppc1340:gnatppc1410:gnatppc1420:gnatppc1430:gnatppc1510:gnatppc1520
group.gnatppc.baseName=powerpc gnat 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 compiler.gnatppc1120.exe=/opt/compiler-explorer/powerpc/gcc-11.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gnatmake
@@ -551,10 +578,15 @@ compiler.gnatppc1510.semver=15.1.0
compiler.gnatppc1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump compiler.gnatppc1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.gnatppc1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt compiler.gnatppc1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
compiler.gnatppc1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gnatmake
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
## POWER64 ## POWER64
group.gnatppc64.groupName=POWER64 GNAT group.gnatppc64.groupName=POWER64 GNAT
group.gnatppc64.baseName=powerpc64 gnat group.gnatppc64.baseName=powerpc64 gnat
group.gnatppc64.compilers=gnatppc64trunk:gnatppc641120:gnatppc641210:gnatppc641220:gnatppc641230:gnatppc641240:gnatppc641250:gnatppc641310:gnatppc641320:gnatppc641330:gnatppc641340:gnatppc641410:gnatppc641420:gnatppc641430:gnatppc641510 group.gnatppc64.compilers=gnatppc64trunk:gnatppc641120:gnatppc641210:gnatppc641220:gnatppc641230:gnatppc641240:gnatppc641250:gnatppc641310:gnatppc641320:gnatppc641330:gnatppc641340:gnatppc641410:gnatppc641420:gnatppc641430:gnatppc641510:gnatppc641520
compiler.gnatppc641120.exe=/opt/compiler-explorer/powerpc64/gcc-11.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gnatmake 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 compiler.gnatppc641120.demangler=/opt/compiler-explorer/powerpc64/gcc-11.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
@@ -624,6 +656,11 @@ compiler.gnatppc641510.semver=15.1.0
compiler.gnatppc641510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.gnatppc641510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.gnatppc641510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.gnatppc641510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.gnatppc641520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gnatmake
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.gnatppc64trunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gnatmake compiler.gnatppc64trunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gnatmake
compiler.gnatppc64trunk.semver=trunk compiler.gnatppc64trunk.semver=trunk
compiler.gnatppc64trunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.gnatppc64trunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
@@ -632,7 +669,7 @@ compiler.gnatppc64trunk.demangler=/opt/compiler-explorer/powerpc64/gcc-trunk/pow
## POWER64LE ## POWER64LE
group.gnatppc64le.groupName=POWER64LE GNAT group.gnatppc64le.groupName=POWER64LE GNAT
group.gnatppc64le.baseName=powerpc64le gnat group.gnatppc64le.baseName=powerpc64le gnat
group.gnatppc64le.compilers=gnatppc64le1120:gnatppc64le1210:gnatppc64le1220:gnatppc64le1230:gnatppc64le1310:gnatppc64le1320:gnatppc64letrunk:gnatppc64le1410:gnatppc64le1330:gnatppc64le1240:gnatppc64le1420:gnatppc64le1510:gnatppc64le1430:gnatppc64le1340:gnatppc64le1250 group.gnatppc64le.compilers=gnatppc64le1120:gnatppc64le1210:gnatppc64le1220:gnatppc64le1230:gnatppc64le1310:gnatppc64le1320:gnatppc64letrunk:gnatppc64le1410:gnatppc64le1330:gnatppc64le1240:gnatppc64le1420:gnatppc64le1510:gnatppc64le1430:gnatppc64le1340:gnatppc64le1250:gnatppc64le1520
compiler.gnatppc64le1120.exe=/opt/compiler-explorer/powerpc64le/gcc-11.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gnatmake 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 compiler.gnatppc64le1120.demangler=/opt/compiler-explorer/powerpc64le/gcc-11.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
@@ -702,6 +739,11 @@ compiler.gnatppc64le1510.semver=15.1.0
compiler.gnatppc64le1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.gnatppc64le1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.gnatppc64le1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.gnatppc64le1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.gnatppc64le1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gnatmake
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.gnatppc64letrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gnatmake compiler.gnatppc64letrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gnatmake
compiler.gnatppc64letrunk.semver=trunk compiler.gnatppc64letrunk.semver=trunk
compiler.gnatppc64letrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.gnatppc64letrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
@@ -715,7 +757,7 @@ group.gnatmipss.compilers=&gnatmips:&gnatmips64
## MIPS ## MIPS
group.gnatmips.groupName=MIPS GNAT group.gnatmips.groupName=MIPS GNAT
group.gnatmips.baseName=mips gnat group.gnatmips.baseName=mips gnat
group.gnatmips.compilers=gnatmips1120:gnatmips1210:gnatmips1220:gnatmips1230:gnatmips1240:gnatmips1250:gnatmips1310:gnatmips1320:gnatmips1330:gnatmips1340:gnatmips1410:gnatmips1420:gnatmips1430:gnatmips1510 group.gnatmips.compilers=gnatmips1120:gnatmips1210:gnatmips1220:gnatmips1230:gnatmips1240:gnatmips1250:gnatmips1310:gnatmips1320:gnatmips1330:gnatmips1340:gnatmips1410:gnatmips1420:gnatmips1430:gnatmips1510:gnatmips1520
compiler.gnatmips1120.exe=/opt/compiler-explorer/mips/gcc-11.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gnatmake 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 compiler.gnatmips1120.demangler=/opt/compiler-explorer/mips/gcc-11.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
@@ -785,10 +827,15 @@ compiler.gnatmips1510.semver=15.1.0
compiler.gnatmips1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump compiler.gnatmips1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.gnatmips1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt compiler.gnatmips1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
compiler.gnatmips1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gnatmake
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
## MIPS64 ## MIPS64
group.gnatmips64.groupName=MIPS64 GNAT group.gnatmips64.groupName=MIPS64 GNAT
group.gnatmips64.baseName=mips64 gnat group.gnatmips64.baseName=mips64 gnat
group.gnatmips64.compilers=gnatmips641120:gnatmips641210:gnatmips641220:gnatmips641230:gnatmips641240:gnatmips641250:gnatmips641310:gnatmips641320:gnatmips641330:gnatmips641340:gnatmips641410:gnatmips641420:gnatmips641430:gnatmips641510 group.gnatmips64.compilers=gnatmips641120:gnatmips641210:gnatmips641220:gnatmips641230:gnatmips641240:gnatmips641250:gnatmips641310:gnatmips641320:gnatmips641330:gnatmips641340:gnatmips641410:gnatmips641420:gnatmips641430:gnatmips641510:gnatmips641520
compiler.gnatmips641120.exe=/opt/compiler-explorer/mips64/gcc-11.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gnatmake 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 compiler.gnatmips641120.demangler=/opt/compiler-explorer/mips64/gcc-11.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
@@ -858,9 +905,14 @@ compiler.gnatmips641510.semver=15.1.0
compiler.gnatmips641510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump compiler.gnatmips641510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.gnatmips641510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt compiler.gnatmips641510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
compiler.gnatmips641520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gnatmake
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
################################ ################################
# GNAT for arm64 # GNAT for arm64
group.gnatarm64.compilers=gnatarm641210:gnatarm641220:gnatarm641230:gnatarm641240:gnatarm641250:gnatarm641310:gnatarm641320:gnatarm641330:gnatarm641340:gnatarm641410:gnatarm641420:gnatarm641430:gnatarm641510 group.gnatarm64.compilers=gnatarm641210:gnatarm641220:gnatarm641230:gnatarm641240:gnatarm641250:gnatarm641310:gnatarm641320:gnatarm641330:gnatarm641340:gnatarm641410:gnatarm641420:gnatarm641430:gnatarm641510:gnatarm641520
group.gnatarm64.groupName=ARM64 GNAT group.gnatarm64.groupName=ARM64 GNAT
group.gnatarm64.baseName=arm64 gnat group.gnatarm64.baseName=arm64 gnat
group.gnatarm64.instructionSet=aarch64 group.gnatarm64.instructionSet=aarch64
@@ -929,9 +981,14 @@ compiler.gnatarm641510.semver=15.1.0
compiler.gnatarm641510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.gnatarm641510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.gnatarm641510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.gnatarm641510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.gnatarm641520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gnatmake
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
################################ ################################
# GNAT for arm # GNAT for arm
group.gnatarm.compilers=gnatarm103:gnatarm112:gnatarm1310:gnatarm1320:gnatarm1330:gnatarm1340:gnatarm1410:gnatarm1420:gnatarm1430:gnatarm1510 group.gnatarm.compilers=gnatarm103:gnatarm112:gnatarm1310:gnatarm1320:gnatarm1330:gnatarm1340:gnatarm1410:gnatarm1420:gnatarm1430:gnatarm1510:gnatarm1520
group.gnatarm.groupName=ARM GNAT group.gnatarm.groupName=ARM GNAT
group.gnatarm.baseName=arm gnat group.gnatarm.baseName=arm gnat
group.gnatarm.instructionSet=arm32 group.gnatarm.instructionSet=arm32
@@ -986,9 +1043,14 @@ compiler.gnatarm1510.semver=15.1.0
compiler.gnatarm1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump compiler.gnatarm1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.gnatarm1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt compiler.gnatarm1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.gnatarm1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gnatmake
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
################################ ################################
# GNAT for HPPA # GNAT for HPPA
group.gnathppa.compilers=gnathppa1420:gnathppa1430:gnathppa1510 group.gnathppa.compilers=gnathppa1420:gnathppa1430:gnathppa1510:gnathppa1520
group.gnathppa.groupName=HPPA GNAT group.gnathppa.groupName=HPPA GNAT
group.gnathppa.baseName=hppa gnat group.gnathppa.baseName=hppa gnat
group.gnathppa.isSemVer=true group.gnathppa.isSemVer=true
@@ -1010,6 +1072,11 @@ compiler.gnathppa1510.semver=15.1.0
compiler.gnathppa1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump compiler.gnathppa1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.gnathppa1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt compiler.gnathppa1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
compiler.gnathppa1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-gnatmake
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
################################# #################################
################################# #################################
# Installed libs (See c++.amazon.properties for a scheme of libs group) # Installed libs (See c++.amazon.properties for a scheme of libs group)

View File

@@ -1,8 +1,8 @@
compilers=&gcc86:&icc:&icx:&clang:&clangx86trunk:&clang-rocm:&mosclang-trunk:&rvclang:&wasmclang:&loongarch-clang:&cl:&cross:&ellcc:&zapcc:&djggp:&armclang32:&armclang64:&zigcxx:&cxx6502:&nvcxx_arm_cxx:godbolt.org@443/gpu:godbolt.org@443/winprod:&hexagon-clang:&edg:&vast:&qnx:&z80-clang:&clad-clang compilers=&gcc86:&icc:&icx:&clang:&clangx86trunk:&clang-rocm:&mosclang-trunk:&rvclang:&wasmclang:&loongarch-clang:&cross:&ellcc:&zapcc:&djggp:&armclang32:&armclang64:&zigcxx:&cxx6502:&nvcxx_arm_cxx:godbolt.org@443/gpu:godbolt.org@443/winprod:&hexagon-clang:&edg:&vast:&qnx:&z80-clang:&clad-clang
# Disabled: nvcxx_x86_cxx # 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 # 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. # to keep them in the same place.
defaultCompiler=g151 defaultCompiler=g152
# We use the llvm-trunk demangler for all c/c++ compilers, as c++filt tends to lag behind # 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 demangler=/opt/compiler-explorer/clang-trunk/bin/llvm-cxxfilt
objdumper=/opt/compiler-explorer/gcc-14.2.0/bin/objdump objdumper=/opt/compiler-explorer/gcc-14.2.0/bin/objdump
@@ -18,7 +18,7 @@ llvmDisassembler=/opt/compiler-explorer/clang-18.1.0/bin/llvm-dis
############################### ###############################
# GCC for x86 # 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:g121:g122:g123:g124:g125:g131:g132:g133:g134:g141:g142:g143:g151:gsnapshot:gcontracts-trunk:gcontract-labels-trunk:gcontracts-nonattr-trunk:gcxx-modules-trunk:gcxx-coroutines-trunk:gcc-embed-trunk:gcc-static-analysis-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: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
group.gcc86.groupName=GCC x86-64 group.gcc86.groupName=GCC x86-64
group.gcc86.instructionSet=amd64 group.gcc86.instructionSet=amd64
group.gcc86.baseName=x86-64 gcc group.gcc86.baseName=x86-64 gcc
@@ -187,6 +187,8 @@ compiler.g143.exe=/opt/compiler-explorer/gcc-14.3.0/bin/g++
compiler.g143.semver=14.3 compiler.g143.semver=14.3
compiler.g151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/g++ compiler.g151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/g++
compiler.g151.semver=15.1 compiler.g151.semver=15.1
compiler.g152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/g++
compiler.g152.semver=15.1
compiler.gsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/g++ compiler.gsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/g++
compiler.gsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.gsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -248,7 +250,7 @@ compiler.g71.needsMulti=true
compiler.g72.needsMulti=true compiler.g72.needsMulti=true
## GCC x86 build with "assertions" (--enable-checking=XXX) ## 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 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.groupName=GCC x86-64 (assertions) group.gcc86assert.groupName=GCC x86-64 (assertions)
compiler.g103assert.exe=/opt/compiler-explorer/gcc-assertions-10.3.0/bin/g++ compiler.g103assert.exe=/opt/compiler-explorer/gcc-assertions-10.3.0/bin/g++
@@ -291,6 +293,8 @@ compiler.g143assert.exe=/opt/compiler-explorer/gcc-assertions-14.3.0/bin/g++
compiler.g143assert.semver=14.3 (assertions) compiler.g143assert.semver=14.3 (assertions)
compiler.g151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/g++ compiler.g151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/g++
compiler.g151assert.semver=15.1 (assertions) 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)
################################ ################################
# Clang for x86 # Clang for x86
@@ -814,7 +818,7 @@ group.armclang32.licensePreamble=The LLVM Project is under the Apache License v2
group.armclang32.compilerCategories=clang group.armclang32.compilerCategories=clang
group.armclang32.demangler=/opt/compiler-explorer/clang-trunk/bin/llvm-cxxfilt group.armclang32.demangler=/opt/compiler-explorer/clang-trunk/bin/llvm-cxxfilt
compiler.armv7-clang2010.exe=/opt/compiler-explorer/clang-2-.1.0/bin/clang++ compiler.armv7-clang2010.exe=/opt/compiler-explorer/clang-20.1.0/bin/clang++
compiler.armv7-clang2010.semver=20.1.0 compiler.armv7-clang2010.semver=20.1.0
compiler.armv7-clang2010.options=-target arm-unknown-linux-gnueabihf --gcc-toolchain=/opt/compiler-explorer/arm/gcc-14.2.0/arm-unknown-linux-gnueabihf --sysroot=/opt/compiler-explorer/arm/gcc-14.2.0/arm-unknown-linux-gnueabihf/arm-unknown-linux-gnueabihf/sysroot compiler.armv7-clang2010.options=-target arm-unknown-linux-gnueabihf --gcc-toolchain=/opt/compiler-explorer/arm/gcc-14.2.0/arm-unknown-linux-gnueabihf --sysroot=/opt/compiler-explorer/arm/gcc-14.2.0/arm-unknown-linux-gnueabihf/arm-unknown-linux-gnueabihf/sysroot
compiler.armv7-clang1910.exe=/opt/compiler-explorer/clang-19.1.0/bin/clang++ compiler.armv7-clang1910.exe=/opt/compiler-explorer/clang-19.1.0/bin/clang++
@@ -1241,7 +1245,7 @@ compiler.hexagonclang1605.compilerCategories=clang-hexagon
################################ ################################
# Clang for clad # Clang for clad
group.clad-clang.compilers=clang1810_clad180:clang1910_clad190:clang2010_clad1100:clad_trunk group.clad-clang.compilers=clang1810_clad180:clang1910_clad190:clang2010_clad1100:clang2010_clad200:clad_trunk
group.clad-clang.intelAsm=-mllvm --x86-asm-syntax=intel group.clad-clang.intelAsm=-mllvm --x86-asm-syntax=intel
group.clad-clang.groupName=Clad Clang group.clad-clang.groupName=Clad Clang
group.clad-clang.instructionSet=amd64 group.clad-clang.instructionSet=amd64
@@ -1268,6 +1272,11 @@ compiler.clang2010_clad1100.name=clad v1.10 (clang 20.1.0)
compiler.clang2010_clad1100.options=--gcc-toolchain=/opt/compiler-explorer/gcc-13.2.0 -fplugin=/opt/compiler-explorer/clang-plugins/clad-1.10-clang-20.1.0/lib/clad.so -I/opt/compiler-explorer/clang-plugins/clad-1.10-clang-20.1.0/include compiler.clang2010_clad1100.options=--gcc-toolchain=/opt/compiler-explorer/gcc-13.2.0 -fplugin=/opt/compiler-explorer/clang-plugins/clad-1.10-clang-20.1.0/lib/clad.so -I/opt/compiler-explorer/clang-plugins/clad-1.10-clang-20.1.0/include
compiler.clang2010_clad1100.ldPath=${exePath}/../lib|${exePath}/../lib/x86_64-unknown-linux-gnu compiler.clang2010_clad1100.ldPath=${exePath}/../lib|${exePath}/../lib/x86_64-unknown-linux-gnu
compiler.clang2010_clad1100.debugPatched=true compiler.clang2010_clad1100.debugPatched=true
compiler.clang2010_clad200.exe=/opt/compiler-explorer/clang-20.1.0/bin/clang++
compiler.clang2010_clad200.name=clad v2.00 (clang 20.1.0)
compiler.clang2010_clad200.options=--gcc-toolchain=/opt/compiler-explorer/gcc-13.2.0 -fplugin=/opt/compiler-explorer/clang-plugins/clad-2.0-clang-20.1.0/lib/clad.so -I/opt/compiler-explorer/clang-plugins/clad-2.0-clang-20.1.0/include
compiler.clang2010_clad200.ldPath=${exePath}/../lib|${exePath}/../lib/x86_64-unknown-linux-gnu
compiler.clang2010_clad200.debugPatched=true
compiler.clad_trunk.alias=clang1810_clad_trunk compiler.clad_trunk.alias=clang1810_clad_trunk
compiler.clad_trunk.exe=/opt/compiler-explorer/clang-20.1.0/bin/clang++ compiler.clad_trunk.exe=/opt/compiler-explorer/clang-20.1.0/bin/clang++
compiler.clad_trunk.name=clad trunk (clang 20.1.0) compiler.clad_trunk.name=clad trunk (clang 20.1.0)
@@ -1614,7 +1623,7 @@ compiler.m68kclangtrunk.isNightly=true
# GCC for m68k # GCC for m68k
group.gccm68k.compilers=m68kg1310:m68kg1320:m68kg1410:m68kg1330:m68kg1420:m68kg1510:m68kg1430:m68kg1340 group.gccm68k.compilers=m68kg1310:m68kg1320:m68kg1410:m68kg1330:m68kg1420:m68kg1510:m68kg1430:m68kg1340:m68kg1520
group.gccm68k.supportsBinary=true group.gccm68k.supportsBinary=true
group.gccm68k.supportsExecute=false group.gccm68k.supportsExecute=false
group.gccm68k.baseName=M68K gcc group.gccm68k.baseName=M68K gcc
@@ -1661,6 +1670,11 @@ compiler.m68kg1510.semver=15.1.0
compiler.m68kg1510.objdumper=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump compiler.m68kg1510.objdumper=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump
compiler.m68kg1510.demangler=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt compiler.m68kg1510.demangler=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt
compiler.m68kg1520.exe=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/bin/m68k-unknown-elf-g++
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
############################### ###############################
# Cross for Tricore # Cross for Tricore
group.tricore.compilers=&gcctricore group.tricore.compilers=&gcctricore
@@ -1683,7 +1697,7 @@ compiler.tricoreg1130.demangler=/opt/compiler-explorer/tricore/gcc-11.3.0/tricor
group.hppa.compilers=&gcchppa group.hppa.compilers=&gcchppa
# GCC for HPPA # GCC for HPPA
group.gcchppa.compilers=hppag1420:hppag1430:hppag1510 group.gcchppa.compilers=hppag1420:hppag1430:hppag1510:hppag1520
group.gcchppa.supportsBinary=true group.gcchppa.supportsBinary=true
group.gcchppa.supportsExecute=false group.gcchppa.supportsExecute=false
group.gcchppa.baseName=HPPA gcc group.gcchppa.baseName=HPPA gcc
@@ -1705,6 +1719,11 @@ compiler.hppag1510.semver=15.1.0
compiler.hppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump compiler.hppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.hppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt compiler.hppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
compiler.hppag1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-g++
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
############################### ###############################
# Cross for BPF # Cross for BPF
group.bpf.compilers=&gccbpf:&clangbpf group.bpf.compilers=&gccbpf:&clangbpf
@@ -1800,7 +1819,7 @@ compiler.bpfgtrunk.isNightly=true
group.sparc.compilers=&gccsparc group.sparc.compilers=&gccsparc
# GCC for SPARC # GCC for SPARC
group.gccsparc.compilers=sparcg1220:sparcg1230:sparcg1240:sparcg1250:sparcg1310:sparcg1320:sparcg1330:sparcg1340:sparcg1410:sparcg1420:sparcg1430:sparcg1510 group.gccsparc.compilers=sparcg1220:sparcg1230:sparcg1240:sparcg1250:sparcg1310:sparcg1320:sparcg1330:sparcg1340:sparcg1410:sparcg1420:sparcg1430:sparcg1510:sparcg1520
group.gccsparc.baseName=SPARC gcc group.gccsparc.baseName=SPARC gcc
group.gccsparc.groupName=SPARC GCC group.gccsparc.groupName=SPARC GCC
group.gccsparc.isSemVer=true group.gccsparc.isSemVer=true
@@ -1865,12 +1884,17 @@ compiler.sparcg1510.semver=15.1.0
compiler.sparcg1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump compiler.sparcg1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.sparcg1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt compiler.sparcg1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
compiler.sparcg1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-g++
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
############################### ###############################
# Cross for SPARC64 # Cross for SPARC64
group.sparc64.compilers=&gccsparc64 group.sparc64.compilers=&gccsparc64
# GCC for SPARC64 # GCC for SPARC64
group.gccsparc64.compilers=sparc64g1220:sparc64g1230:sparc64g1310:sparc64g1320:sparc64g1410:sparc64g1330:sparc64g1240:sparc64g1420:sparc64g1510:sparc64g1430:sparc64g1340:sparc64g1250 group.gccsparc64.compilers=sparc64g1220:sparc64g1230:sparc64g1310:sparc64g1320:sparc64g1410:sparc64g1330:sparc64g1240:sparc64g1420:sparc64g1510:sparc64g1430:sparc64g1340:sparc64g1250:sparc64g1520
group.gccsparc64.baseName=SPARC64 gcc group.gccsparc64.baseName=SPARC64 gcc
group.gccsparc64.groupName=SPARC64 GCC group.gccsparc64.groupName=SPARC64 GCC
group.gccsparc64.isSemVer=true group.gccsparc64.isSemVer=true
@@ -1935,12 +1959,17 @@ compiler.sparc64g1510.semver=15.1.0
compiler.sparc64g1510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump compiler.sparc64g1510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.sparc64g1510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt compiler.sparc64g1510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
compiler.sparc64g1520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-g++
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
############################### ###############################
# Cross for SPARC-LEON # Cross for SPARC-LEON
group.sparcleon.compilers=&gccsparcleon group.sparcleon.compilers=&gccsparcleon
# GCC for SPARC-LEON # GCC for SPARC-LEON
group.gccsparcleon.compilers=sparcleong1220:sparcleong1220-1:sparcleong1230:sparcleong1240:sparcleong1250:sparcleong1310:sparcleong1320:sparcleong1330:sparcleong1340:sparcleong1410:sparcleong1420:sparcleong1430:sparcleong1510 group.gccsparcleon.compilers=sparcleong1220:sparcleong1220-1:sparcleong1230:sparcleong1240:sparcleong1250:sparcleong1310:sparcleong1320:sparcleong1330:sparcleong1340:sparcleong1410:sparcleong1420:sparcleong1430:sparcleong1510:sparcleong1520
group.gccsparcleon.baseName=SPARC LEON gcc group.gccsparcleon.baseName=SPARC LEON gcc
group.gccsparcleon.groupName=SPARC LEON GCC group.gccsparcleon.groupName=SPARC LEON GCC
group.gccsparcleon.isSemVer=true group.gccsparcleon.isSemVer=true
@@ -2007,6 +2036,11 @@ compiler.sparcleong1510.semver=15.1.0
compiler.sparcleong1510.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump compiler.sparcleong1510.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
compiler.sparcleong1510.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt compiler.sparcleong1510.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
compiler.sparcleong1520.exe=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-g++
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.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.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 compiler.sparcleong1220-1.semver=12.2.0
compiler.sparcleong1220-1.objdumper=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump compiler.sparcleong1220-1.objdumper=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
@@ -2017,7 +2051,7 @@ compiler.sparcleong1220-1.demangler=/opt/compiler-explorer/sparc-leon/gcc-12.2.0
group.c6x.compilers=&gccc6x group.c6x.compilers=&gccc6x
# GCC for TI C6x # GCC for TI C6x
group.gccc6x.compilers=c6xg1220:c6xg1230:c6xg1310:c6xg1320:c6xg1410:c6xg1330:c6xg1240:c6xg1420:c6xg1510:c6xg1430:c6xg1340:c6xg1250 group.gccc6x.compilers=c6xg1220:c6xg1230:c6xg1310:c6xg1320:c6xg1410:c6xg1330:c6xg1240:c6xg1420:c6xg1510:c6xg1430:c6xg1340:c6xg1250:c6xg1520
group.gccc6x.baseName=TI C6x gcc group.gccc6x.baseName=TI C6x gcc
group.gccc6x.groupName=TI C6x GCC group.gccc6x.groupName=TI C6x GCC
group.gccc6x.isSemVer=true group.gccc6x.isSemVer=true
@@ -2082,6 +2116,11 @@ compiler.c6xg1510.semver=15.1.0
compiler.c6xg1510.objdumper=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-objdump compiler.c6xg1510.objdumper=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-objdump
compiler.c6xg1510.demangler=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-c++filt compiler.c6xg1510.demangler=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-c++filt
compiler.c6xg1520.exe=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x-elf-g++
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
############################### ###############################
# Cross for loongarch64 # Cross for loongarch64
group.loongarch64.compilers=&gccloongarch64 group.loongarch64.compilers=&gccloongarch64
@@ -2089,7 +2128,7 @@ group.loongarch64.compilers=&gccloongarch64
# GCC for loongarch64 # GCC for loongarch64
group.gccloongarch64.baseName=loongarch64 gcc group.gccloongarch64.baseName=loongarch64 gcc
group.gccloongarch64.groupName=loongarch64 gcc group.gccloongarch64.groupName=loongarch64 gcc
group.gccloongarch64.compilers=loongarch64g1220:loongarch64g1230:loongarch64g1310:loongarch64g1320:loongarch64g1410:loongarch64g1330:loongarch64g1240:loongarch64g1420:loongarch64g1510:loongarch64g1430:loongarch64g1340:loongarch64g1250 group.gccloongarch64.compilers=loongarch64g1220:loongarch64g1230:loongarch64g1310:loongarch64g1320:loongarch64g1410:loongarch64g1330:loongarch64g1240:loongarch64g1420:loongarch64g1510:loongarch64g1430:loongarch64g1340:loongarch64g1250:loongarch64g1520
group.gccloongarch64.isSemVer=true 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++ compiler.loongarch64g1220.exe=/opt/compiler-explorer/loongarch64/gcc-12.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-g++
@@ -2152,6 +2191,11 @@ compiler.loongarch64g1510.semver=15.1.0
compiler.loongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump compiler.loongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.loongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt compiler.loongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
compiler.loongarch64g1520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-g++
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
############################### ###############################
# Cross for sh # Cross for sh
group.sh.compilers=&gccsh group.sh.compilers=&gccsh
@@ -2159,7 +2203,7 @@ group.sh.compilers=&gccsh
# GCC for sh # GCC for sh
group.gccsh.baseName=sh gcc group.gccsh.baseName=sh gcc
group.gccsh.groupName=sh gcc group.gccsh.groupName=sh gcc
group.gccsh.compilers=shg494:shg950:shg1220:shg1230:shg1240:shg1250:shg1310:shg1320:shg1330:shg1340:shg1410:shg1420:shg1430:shg1510 group.gccsh.compilers=shg494:shg950:shg1220:shg1230:shg1240:shg1250:shg1310:shg1320:shg1330:shg1340:shg1410:shg1420:shg1430:shg1510:shg1520
group.gccsh.isSemVer=true group.gccsh.isSemVer=true
compiler.shg494.exe=/opt/compiler-explorer/sh/gcc-4.9.4/sh-unknown-elf/bin/sh-unknown-elf-g++ compiler.shg494.exe=/opt/compiler-explorer/sh/gcc-4.9.4/sh-unknown-elf/bin/sh-unknown-elf-g++
@@ -2232,6 +2276,11 @@ compiler.shg1510.semver=15.1.0
compiler.shg1510.objdumper=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-objdump compiler.shg1510.objdumper=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-objdump
compiler.shg1510.demangler=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt compiler.shg1510.demangler=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt
compiler.shg1520.exe=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh-unknown-elf-g++
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
############################### ###############################
# Cross for s390x # Cross for s390x
group.s390x.compilers=&gccs390x group.s390x.compilers=&gccs390x
@@ -2239,7 +2288,7 @@ group.s390x.compilers=&gccs390x
# GCC for s390x # GCC for s390x
group.gccs390x.baseName=s390x gcc group.gccs390x.baseName=s390x gcc
group.gccs390x.groupName=s390x gcc group.gccs390x.groupName=s390x gcc
group.gccs390x.compilers=gccs390x1120:s390xg1210:s390xg1220:s390xg1230:s390xg1310:s390xg1320:s390xg1410:s390xg1330:s390xg1240:s390xg1420:s390xg1510:s390xg1430:s390xg1340:s390xg1250 group.gccs390x.compilers=gccs390x1120:s390xg1210:s390xg1220:s390xg1230:s390xg1310:s390xg1320:s390xg1410:s390xg1330:s390xg1240:s390xg1420:s390xg1510:s390xg1430:s390xg1340:s390xg1250:s390xg1520
group.gccs390x.isSemVer=true 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 group.gccs390x.objdumper=/opt/compiler-explorer/s390x/gcc-11.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
@@ -2311,6 +2360,11 @@ compiler.s390xg1510.semver=15.1.0
compiler.s390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump compiler.s390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.s390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt compiler.s390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
compiler.s390xg1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-g++
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
############################### ###############################
# Cross compilers for PPC # Cross compilers for PPC
group.ppcs.compilers=&ppc:&ppc64:&ppc64le group.ppcs.compilers=&ppc:&ppc64:&ppc64le
@@ -2318,7 +2372,7 @@ group.ppcs.isSemVer=true
group.ppcs.instructionSet=powerpc group.ppcs.instructionSet=powerpc
## POWER ## POWER
group.ppc.compilers=ppcg48:ppcg1120:ppcg1210:ppcg1220:ppcg1230:ppcg1240:ppcg1250:ppcg1310:ppcg1320:ppcg1330:ppcg1340:ppcg1410:ppcg1420:ppcg1430:ppcg1510 group.ppc.compilers=ppcg48:ppcg1120:ppcg1210:ppcg1220:ppcg1230:ppcg1240:ppcg1250:ppcg1310:ppcg1320:ppcg1330:ppcg1340:ppcg1410:ppcg1420:ppcg1430:ppcg1510:ppcg1520
group.ppc.groupName=POWER GCC group.ppc.groupName=POWER GCC
group.ppc.baseName=power gcc group.ppc.baseName=power gcc
@@ -2394,10 +2448,15 @@ compiler.ppcg1510.semver=15.1.0
compiler.ppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump compiler.ppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.ppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt compiler.ppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
compiler.ppcg1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-g++
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
## POWER64 ## POWER64
group.ppc64.groupName=POWER64 GCC group.ppc64.groupName=POWER64 GCC
group.ppc64.baseName=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 group.ppc64.compilers=ppc64g8:ppc64g9:ppc64g1120:ppc64g1210:ppc64clang:ppc64g1220:ppc64g1230:ppc64g1310:ppc64g1320:ppc64gtrunk:ppc64g1410:ppc64g1330:ppc64g1240:ppc64g1420:ppc64g1510:ppc64g1430:ppc64g1340:ppc64g1250:ppc64g1520
compiler.ppc64g8.exe=/opt/compiler-explorer/powerpc64/gcc-at12/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++ 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 compiler.ppc64g8.objdumper=/opt/compiler-explorer/powerpc64/gcc-at12/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
@@ -2477,6 +2536,11 @@ compiler.ppc64g1510.semver=15.1.0
compiler.ppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.ppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.ppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.ppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.ppc64g1520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++
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.ppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++ compiler.ppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++
compiler.ppc64gtrunk.semver=trunk compiler.ppc64gtrunk.semver=trunk
compiler.ppc64gtrunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.ppc64gtrunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
@@ -2496,7 +2560,7 @@ compiler.ppc64clang.compilerCategories=clang
## POWER64LE ## POWER64LE
group.ppc64le.groupName=POWER64LE GCC 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 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.baseName=power64le gcc 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++ compiler.ppc64leg630.exe=/opt/compiler-explorer/powerpc64le/gcc-6.3.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++
@@ -2581,6 +2645,11 @@ compiler.ppc64leg1510.semver=15.1.0
compiler.ppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.ppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.ppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.ppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.ppc64leg1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++
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.ppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++ compiler.ppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++
compiler.ppc64legtrunk.semver=trunk compiler.ppc64legtrunk.semver=trunk
compiler.ppc64legtrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.ppc64legtrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
@@ -2608,7 +2677,7 @@ group.gccarm.includeFlag=-I
# 32 bit # 32 bit
group.gcc32arm.groupName=Arm 32-bit GCC group.gcc32arm.groupName=Arm 32-bit GCC
group.gcc32arm.baseName=ARM 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: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:armgtrunk
group.gcc32arm.isSemVer=true 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.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
group.gcc32arm.instructionSet=arm32 group.gcc32arm.instructionSet=arm32
@@ -2723,6 +2792,11 @@ compiler.armg1510.semver=15.1.0
compiler.armg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump compiler.armg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.armg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt compiler.armg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.armg1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-g++
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.armug1320.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-13.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-g++ 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) compiler.armug1320.name=ARM GCC 13.2.0 (unknown-eabi)
compiler.armug1320.semver=13.2.0 compiler.armug1320.semver=13.2.0
@@ -2759,6 +2833,18 @@ compiler.armug1430.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-14.3.0/a
compiler.armug1430.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-14.3.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt compiler.armug1430.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-14.3.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
compiler.armug1430.name=ARM GCC 14.3.0 (unknown-eabi) compiler.armug1430.name=ARM GCC 14.3.0 (unknown-eabi)
compiler.armug1510.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-15.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-g++
compiler.armug1510.semver=15.1.0
compiler.armug1510.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-15.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-objdump
compiler.armug1510.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-15.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
compiler.armug1510.name=ARM GCC 15.1.0 (unknown-eabi)
compiler.armug1520.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-15.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-g++
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.armce820.exe=/opt/compiler-explorer/arm-wince/gcc-ce-8.2.0/bin/arm-mingw32ce-g++ 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) compiler.armce820.name=ARM gcc 8.2 (WinCE)
compiler.armce820.semver=8.2.0 compiler.armce820.semver=8.2.0
@@ -2825,7 +2911,7 @@ compiler.armgtrunk.isNightly=true
# 64 bit # 64 bit
group.gcc64arm.groupName=Arm 64-bit GCC 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 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.isSemVer=true 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.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump
group.gcc64arm.instructionSet=aarch64 group.gcc64arm.instructionSet=aarch64
@@ -2949,6 +3035,11 @@ compiler.arm64g1510.exe=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-
compiler.arm64g1510.semver=15.1.0 compiler.arm64g1510.semver=15.1.0
compiler.arm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.arm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.arm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.arm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.arm64g1520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-g++
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.arm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-g++ 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.semver=trunk
compiler.arm64gtrunk.isNightly=true compiler.arm64gtrunk.isNightly=true
@@ -3159,7 +3250,7 @@ compiler.cl4302161.versionFlag=-version
################################ ################################
# GCC for AVR # GCC for AVR
group.avr.compilers=avrg454:avrg464:avrg540:avrg920:avrg930:avrg1030:avrg1100:avrg1210:avrg1220:avrg1230:avrg1240:avrg1250:avrg1310:avrg1320:avrg1330:avrg1340:avrg1410:avrg1420:avrg1430:avrg1510 group.avr.compilers=avrg454:avrg464:avrg540:avrg920:avrg930:avrg1030:avrg1100:avrg1210:avrg1220:avrg1230:avrg1240:avrg1250:avrg1310:avrg1320:avrg1330:avrg1340:avrg1410:avrg1420:avrg1430:avrg1510:avrg1520
group.avr.groupName=AVR GCC group.avr.groupName=AVR GCC
group.avr.baseName=AVR gcc group.avr.baseName=AVR gcc
group.avr.isSemVer=true group.avr.isSemVer=true
@@ -3257,6 +3348,11 @@ compiler.avrg1510.semver=15.1.0
compiler.avrg1510.objdumper=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-objdump compiler.avrg1510.objdumper=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-objdump
compiler.avrg1510.demangler=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-c++filt compiler.avrg1510.demangler=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-c++filt
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
############################### ###############################
# Cross compiler for MIPS # Cross compiler for MIPS
group.mipss.compilers=&mips:&mipsel:&mips64:&mips64el:&mips-clang:&mipsel-clang:&mips64-clang:&mips64el-clang group.mipss.compilers=&mips:&mipsel:&mips64:&mips64el:&mips-clang:&mipsel-clang:&mips64-clang:&mips64el-clang
@@ -3415,7 +3511,7 @@ compiler.mips64el-clang1300.semver=13.0.0
## MIPS ## MIPS
group.mips.groupName=MIPS GCC 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 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.baseName=mips gcc 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++ compiler.mipsg494.exe=/opt/compiler-explorer/mips/gcc-4.9.4/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-g++
@@ -3510,9 +3606,14 @@ compiler.mipsg1510.semver=15.1.0
compiler.mipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump compiler.mipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.mipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt compiler.mipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
compiler.mipsg1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-g++
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
## MIPS 64 ## MIPS 64
group.mips64.groupName=MIPS64 GCC group.mips64.groupName=MIPS64 GCC
group.mips64.compilers=mips64g494:mips64g550:mips64g950:mips64g1210:mips64g1220:mips64g1230:mips64g1310:mips64g1320:mips64g1410:mips64g1330:mips64g1240:mips64g1420:mips64g1510:mips64g1430:mips64g1340:mips64g1250:mips564:mips112064 group.mips64.compilers=mips64g494:mips64g550:mips64g950:mips64g1210:mips64g1220:mips64g1230:mips64g1310:mips64g1320:mips64g1410:mips64g1330:mips64g1240:mips64g1420:mips64g1510:mips64g1430:mips64g1340:mips64g1250:mips64g1520:mips564:mips112064
group.mips64.baseName=mips64 gcc 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++ compiler.mips64g494.exe=/opt/compiler-explorer/mips64/gcc-4.9.4/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-g++
@@ -3602,9 +3703,14 @@ compiler.mips64g1510.semver=15.1.0
compiler.mips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump compiler.mips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.mips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt compiler.mips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
compiler.mips64g1520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-g++
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
## MIPS EL ## MIPS EL
group.mipsel.groupName=MIPSEL GCC 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 group.mipsel.compilers=mips5el:mipselg494:mipselg550:mipselg950:mipselg1210:mipselg1220:mipselg1230:mipselg1240:mipselg1250:mipselg1310:mipselg1320:mipselg1330:mipselg1340:mipselg1410:mipselg1420:mipselg1430:mipselg1510:mipselg1520
group.mipsel.baseName=mipsel gcc 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++ compiler.mipselg494.exe=/opt/compiler-explorer/mipsel/gcc-4.9.4/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-g++
@@ -3690,9 +3796,14 @@ compiler.mipselg1510.semver=15.1.0
compiler.mipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump compiler.mipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.mipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt compiler.mipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
compiler.mipselg1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-g++
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
## MIPS 64 EL ## MIPS 64 EL
group.mips64el.groupName=MIPS64EL GCC group.mips64el.groupName=MIPS64EL GCC
group.mips64el.compilers=mips64elg494:mips64elg550:mips64elg950:mips64elg1210:mips64elg1220:mips64elg1230:mips64elg1310:mips64elg1320:mips64elg1410:mips64elg1330:mips64elg1240:mips64elg1420:mips64elg1510:mips64elg1430:mips64elg1340:mips64elg1250:mips564el group.mips64el.compilers=mips64elg494:mips64elg550:mips64elg950:mips64elg1210:mips64elg1220:mips64elg1230:mips64elg1310:mips64elg1320:mips64elg1410:mips64elg1330:mips64elg1240:mips64elg1420:mips64elg1510:mips64elg1430:mips64elg1340:mips64elg1250:mips64elg1520:mips564el
group.mips64el.baseName=mips64 (el) gcc group.mips64el.baseName=mips64 (el) gcc
group.mips64el.compilerCategories=gcc group.mips64el.compilerCategories=gcc
@@ -3779,6 +3890,11 @@ compiler.mips64elg1510.semver=15.1.0
compiler.mips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump compiler.mips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.mips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt compiler.mips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
compiler.mips64elg1520.exe=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-g++
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
############################### ###############################
# GCC for nanoMIPS # GCC for nanoMIPS
group.nanomips.compilers=nanomips630 group.nanomips.compilers=nanomips630
@@ -3813,7 +3929,7 @@ group.rvgcc.supportsBinary=true
group.rvgcc.supportsBinaryObject=true group.rvgcc.supportsBinaryObject=true
## GCC for RISC-V 32-bits ## 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 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.groupName=RISC-V (64-bits) gcc group.rv64gcc.groupName=RISC-V (64-bits) gcc
group.rv64gcc.baseName=RISC-V (64-bits) gcc group.rv64gcc.baseName=RISC-V (64-bits) gcc
@@ -3915,6 +4031,11 @@ compiler.rv64-gcc1510.semver=15.1.0
compiler.rv64-gcc1510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.rv64-gcc1510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.rv64-gcc1510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt compiler.rv64-gcc1510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.rv64-gcc1520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-g++
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-gcctrunk.exe=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-g++ 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) compiler.rv64-gcctrunk.semver=(trunk)
compiler.rv64-gcctrunk.isNightly=true compiler.rv64-gcctrunk.isNightly=true
@@ -3922,7 +4043,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 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 ## 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 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.groupName=RISC-V (32-bits) gcc group.rv32gcc.groupName=RISC-V (32-bits) gcc
group.rv32gcc.baseName=RISC-V (32-bits) gcc group.rv32gcc.baseName=RISC-V (32-bits) gcc
@@ -4023,6 +4144,11 @@ compiler.rv32-gcc1510.semver=15.1.0
compiler.rv32-gcc1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump compiler.rv32-gcc1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.rv32-gcc1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt compiler.rv32-gcc1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.rv32-gcc1520.exe=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-g++
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-gcctrunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-g++ 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) compiler.rv32-gcctrunk.semver=(trunk)
compiler.rv32-gcctrunk.isNightly=true compiler.rv32-gcctrunk.isNightly=true
@@ -4104,69 +4230,6 @@ compiler.esp32s3g20230208.name=Xtensa ESP32-S3 gcc 12.2.0 (20230208)
compiler.esp32s3g20241119.exe=/opt/compiler-explorer/xtensa/xtensa-esp-elf-14.2.0_20241119/bin/xtensa-esp32s3-elf-g++ compiler.esp32s3g20241119.exe=/opt/compiler-explorer/xtensa/xtensa-esp-elf-14.2.0_20241119/bin/xtensa-esp32s3-elf-g++
compiler.esp32s3g20241119.name=Xtensa ESP32-S3 gcc 14.2.0 (20241119) compiler.esp32s3g20241119.name=Xtensa ESP32-S3 gcc 14.2.0 (20241119)
################################
# Windows Compilers
group.cl.compilers=&cl19:&cl19_2015_u3:&cl_new
group.cl.compilerType=wine-vc
group.cl.includeFlag=/I
group.cl.versionFlag=/?
group.cl.versionRe=^Microsoft \(R\) C/C\+\+.*$
group.cl.demangler=/opt/compiler-explorer/windows/19.10.25017/lib/native/bin/amd64/undname.exe
group.cl.demanglerType=win32
group.cl.supportsBinary=false
group.cl.objdumper=
group.cl.isSemVer=true
group.cl.compilerCategories=msvc
group.cl.instructionSet=amd64
group.cl19.groupName=WINE MSVC 2017
group.cl19.compilers=cl19_64:cl19_32:cl19_arm
group.cl19.options=/I/opt/compiler-explorer/windows/10.0.10240.0/ucrt/ /I/opt/compiler-explorer/windows/19.10.25017/lib/native/include/
compiler.cl19_64.exe=/opt/compiler-explorer/windows/19.10.25017/lib/native/bin/amd64/cl.exe
compiler.cl19_64.name=x64 msvc v19.10 (WINE)
compiler.cl19_64.semver=19.10.25017
compiler.cl19_32.exe=/opt/compiler-explorer/windows/19.10.25017/lib/native/bin/amd64_x86/cl.exe
compiler.cl19_32.name=x86 msvc v19.10 (WINE)
compiler.cl19_32.semver=19.10.25017
compiler.cl19_arm.exe=/opt/compiler-explorer/windows/19.10.25017/lib/native/bin/amd64_arm/cl.exe
compiler.cl19_arm.name=ARM msvc v19.10 (WINE)
compiler.cl19_arm.semver=19.10.25017
compiler.cl19_arm.instructionSet=arm32
group.cl19_2015_u3.groupName=WINE MSVC 2015
group.cl19_2015_u3.compilers=cl19_2015_u3_64:cl19_2015_u3_32:cl19_2015_u3_arm
group.cl19_2015_u3.options=/I/opt/compiler-explorer/windows/10.0.10240.0/ucrt/ /I/opt/compiler-explorer/windows/19.00.24210/include/
compiler.cl19_2015_u3_64.exe=/opt/compiler-explorer/windows/19.00.24210/bin/amd64/cl.exe
compiler.cl19_2015_u3_64.name=x64 msvc v19.0 (WINE)
compiler.cl19_2015_u3_64.semver=19.00.24210
compiler.cl19_2015_u3_32.exe=/opt/compiler-explorer/windows/19.00.24210/bin/amd64_x86/cl.exe
compiler.cl19_2015_u3_32.name=x86 msvc v19.0 (WINE)
compiler.cl19_2015_u3_32.semver=19.00.24210
compiler.cl19_2015_u3_arm.exe=/opt/compiler-explorer/windows/19.00.24210/bin/amd64_arm/cl.exe
compiler.cl19_2015_u3_arm.name=ARM msvc v19.0 (WINE)
compiler.cl19_2015_u3_arm.semver=19.00.24210
compiler.cl19_2015_u3_arm.instructionSet=arm32
group.cl_new.groupName=WINE MSVC 2017
group.cl_new.compilers=cl_new_64:cl_new_32:cl_new_arm32:cl_new_arm64
group.cl_new.options=/I/opt/compiler-explorer/windows/10.0.10240.0/ucrt/ /I/opt/compiler-explorer/windows/19.14.26423/include/
compiler.cl_new_64.exe=/opt/compiler-explorer/windows/19.14.26423/bin/Hostx64/x64/cl.exe
compiler.cl_new_64.name=x64 msvc v19.14 (WINE)
compiler.cl_new_64.semver=19.14.26423
compiler.cl_new_32.exe=/opt/compiler-explorer/windows/19.14.26423/bin/Hostx64/x86/cl.exe
compiler.cl_new_32.name=x86 msvc v19.14 (WINE)
compiler.cl_new_32.semver=19.14.26423
compiler.cl_new_arm32.exe=/opt/compiler-explorer/windows/19.14.26423/bin/Hostx64/arm/cl.exe
compiler.cl_new_arm32.name=ARM msvc v19.14 (WINE)
compiler.cl_new_arm32.semver=19.14.26423
compiler.cl_new_arm32.instructionSet=arm32
compiler.cl_new_arm64.exe=/opt/compiler-explorer/windows/19.14.26423/bin/Hostx64/arm64/cl.exe
compiler.cl_new_arm64.name=ARM64 msvc v19.14 (WINE)
compiler.cl_new_arm64.semver=19.14.26423
compiler.cl_new_arm64.instructionSet=aarch64
################################# #################################
# ELLCC # ELLCC
group.ellcc.compilers=ellcc0133:ellcc0134:ellcc170716 group.ellcc.compilers=ellcc0133:ellcc0134:ellcc170716
@@ -4612,7 +4675,7 @@ compiler.z180-clang-1507.options=-target z180 -g0 -nostdinc -fno-threadsafe-stat
################################# #################################
################################# #################################
# Installed libs # Installed libs
libs=abseil:array:async_simple:belleviews:beman_any_view:beman_exemplar:beman_execution:beman_iterator_interface:beman_inplace_vector:beman_net:beman_optional:beman_scope:beman_task:benchmark:benri:blaze:boost:bmpi3:bmulti:brigand:bronto:catch2:cccl:cctz:cereal:cmcstl2:cnl:cppcoro:cppitertools:cpptrace:crosscables:ctbignum:cthash:ctre:date:dataframe:dawjson:dlib:doctest:eastl:eigen:enoki:entt:etl:eve:expected_lite:fastor:flux:fmt:gcem:gemmlowp:glaze:glm:gnufs:gnulibbacktrace:gnuexp:googletest:gsl:hdf5:hedley:hfsm:highfive:highway:hotels-template-library:hpx:immer:jsoncons:jsoncpp:kiwaku:kokkos:kumi:kvasir:kyosu:lager:lagom:lexy:libassert:libbpf:libguarded:libsimdpp:libuv:llvm:llvmfs:lua:magic_enum:mfem:mimicpp:mlir:mp-coro:mp-units:namedtype:nanorange:nlohmann_json:nsimd:ofw:openssl:outcome:pegtl:pipes:ppdt:proxy:pugixml:pybind11:python:rangesv3:raberu:rapidjson:reactive_plus_plus:scnlib:seastar:seqan3:simde:simdjson:sol2:spdlog:spy:stdexec:strong_type:taojson:taskflow:tbb:thinkcell:tlexpected:toml11:tomlplusplus:trompeloeil:tts:type_safe:unifex:ureact:vcl:xercesc:xsimd:xtensor:xtl:yomm2:zug:cli11:avr-libstdcpp:curl:copperspice:sqlite:ztdcuneicode:ztdencodingtables:ztdidk:ztdstaticcontainers:ztdtext:ztdplatform:qt:quill:pcre2:widberg-defs:jwt-cpp:xieite:option:mdspan:graaf libs=abseil:array:async_simple:belleviews:beman_any_view:beman_exemplar:beman_execution:beman_iterator_interface:beman_inplace_vector:beman_net:beman_optional:beman_scope:beman_task:benchmark:benri:blaze:boost:bmpi3:bmulti:brigand:bronto:catch2:cccl:cctz:cereal:cmcstl2:cnl:cppcoro:cppitertools:cpptrace:crosscables:ctbignum:cthash:ctre:date:dataframe:dawjson:dlib:doctest:eastl:eigen:enoki:entt:etl:eve:expected_lite:fastor:flux:fmt:gcem:gemmlowp:glaze:glm:gnufs:gnulibbacktrace:gnuexp:googletest:gsl:hdf5:hedley:hfsm:highfive:highway:hotels-template-library:hpx:immer:jsoncons:jsoncpp:kiwaku:kokkos:kumi:kvasir:kyosu:lager:lagom:lexy:libassert:libbpf:libguarded:libsimdpp:libuv:llvm:llvmfs:lua:magic_enum:mfem:mimicpp:mlir:mp-coro:mp-units:namedtype:nanorange:nlohmann_json:nsimd:ofw:openssl:outcome:pegtl:pipes:ppdt:proxy:pugixml:pybind11:python:rangesv3:raberu:rapidjson:re2:reactive_plus_plus:scnlib:seastar:seqan3:simde:simdjson:sol2:spdlog:spy:stdexec:strong_type:taojson:taskflow:tbb:thinkcell:tlexpected:toml11:tomlplusplus:trompeloeil:tts:type_safe:unifex:ureact:vcl:xercesc:xsimd:xtensor:xtl:yomm2:zug:cli11:avr-libstdcpp:curl:copperspice:sqlite:ztdcuneicode:ztdencodingtables:ztdidk:ztdstaticcontainers:ztdtext:ztdplatform:qt:quill:pcre2:widberg-defs:jwt-cpp:xieite:option:mdspan:graaf
libs.abseil.name=Abseil libs.abseil.name=Abseil
libs.abseil.versions=202501270 libs.abseil.versions=202501270
@@ -6123,6 +6186,13 @@ libs.rapidjson.versions.101.path=/opt/compiler-explorer/libs/rapidjson/v1.0.1/in
libs.rapidjson.versions.100.version=v1.0.0 libs.rapidjson.versions.100.version=v1.0.0
libs.rapidjson.versions.100.path=/opt/compiler-explorer/libs/rapidjson/v1.0.0/include libs.rapidjson.versions.100.path=/opt/compiler-explorer/libs/rapidjson/v1.0.0/include
libs.re2.name=RE2
libs.re2.url=https://github.com/google/re2/
libs.re2.packagedheaders=true
libs.re2.staticliblink=re2
libs.re2.versions=20240702
libs.re2.versions.20240702.version=2024-07-02
libs.reactive_plus_plus.name=ReactivePlusPlus libs.reactive_plus_plus.name=ReactivePlusPlus
libs.reactive_plus_plus.url=https://github.com/victimsnino/ReactivePlusPlus libs.reactive_plus_plus.url=https://github.com/victimsnino/ReactivePlusPlus
libs.reactive_plus_plus.description=Functional reactive programming library for c++20 inspired by ReactiveX libs.reactive_plus_plus.description=Functional reactive programming library for c++20 inspired by ReactiveX

View File

@@ -71,7 +71,7 @@ compiler.mingw64_ucrt_clang_1406.semver=14.0.6
compiler.mingw64_ucrt_clang_1403.exe=Z:/compilers/mingw-w64-11.3.0-14.0.3-10.0.0-ucrt-r3/bin/clang++.exe compiler.mingw64_ucrt_clang_1403.exe=Z:/compilers/mingw-w64-11.3.0-14.0.3-10.0.0-ucrt-r3/bin/clang++.exe
compiler.mingw64_ucrt_clang_1403.semver=14.0.3 compiler.mingw64_ucrt_clang_1403.semver=14.0.3
group.vcpp.compilers=&vcpp_x86:&vcpp_x64:&vcpp_arm64 group.vcpp.compilers=&vcpp_x86:&vcpp_x64:&vcpp_arm64:&vcpp_arm32
group.vcpp.options=/EHsc /utf-8 /MD group.vcpp.options=/EHsc /utf-8 /MD
group.vcpp.compilerType=win32-vc group.vcpp.compilerType=win32-vc
group.vcpp.needsMulti=false group.vcpp.needsMulti=false
@@ -88,7 +88,7 @@ group.vcpp.licenseLink=https://visualstudio.microsoft.com/license-terms/vs2022-g
group.vcpp.licensePreamble=The use of this compiler is only permitted for internal evaluation purposes and is otherwise governed by the MSVC License Agreement. group.vcpp.licensePreamble=The use of this compiler is only permitted for internal evaluation purposes and is otherwise governed by the MSVC License Agreement.
group.vcpp.licenseInvasive=true group.vcpp.licenseInvasive=true
group.vcpp_x86.compilers=vcpp_v19_latest_x86:vcpp_v19_24_VS16_4_x86:vcpp_v19_25_VS16_5_x86:vcpp_v19_27_VS16_7_x86:vcpp_v19_28_VS16_8_x86:vcpp_v19_28_VS16_9_x86:vcpp_v19_29_VS16_10_x86:vcpp_v19_29_VS16_11_x86:vcpp_v19_20_VS16_0_x86:vcpp_v19_21_VS16_1_x86:vcpp_v19_22_VS16_2_x86:vcpp_v19_23_VS16_3_x86:vcpp_v19_30_VS17_0_x86:vcpp_v19_31_VS17_1_x86:vcpp_v19_33_VS17_3_x86:vcpp_v19_35_VS17_5_x86:vcpp_v19_37_VS17_7_x86:vcpp_v19_32_VS17_2_x86:vcpp_v19_34_VS17_4_x86:vcpp_v19_36_VS17_6_x86:vcpp_v19_38_VS17_8_x86:vcpp_v19_39_VS17_9_x86:vcpp_v19_40_VS17_10_x86:vcpp_v19_41_VS17_11_x86:vcpp_v19_42_VS17_12_x86:vcpp_v19_43_VS17_13_x86 group.vcpp_x86.compilers=vcpp_v19_latest_x86:cl19_2015_u3_32_exwine:cl19_32_exwine:cl_new_32_exwine:vcpp_v19_24_VS16_4_x86:vcpp_v19_25_VS16_5_x86:vcpp_v19_27_VS16_7_x86:vcpp_v19_28_VS16_8_x86:vcpp_v19_28_VS16_9_x86:vcpp_v19_29_VS16_10_x86:vcpp_v19_29_VS16_11_x86:vcpp_v19_20_VS16_0_x86:vcpp_v19_21_VS16_1_x86:vcpp_v19_22_VS16_2_x86:vcpp_v19_23_VS16_3_x86:vcpp_v19_30_VS17_0_x86:vcpp_v19_31_VS17_1_x86:vcpp_v19_33_VS17_3_x86:vcpp_v19_35_VS17_5_x86:vcpp_v19_37_VS17_7_x86:vcpp_v19_32_VS17_2_x86:vcpp_v19_34_VS17_4_x86:vcpp_v19_36_VS17_6_x86:vcpp_v19_38_VS17_8_x86:vcpp_v19_39_VS17_9_x86:vcpp_v19_40_VS17_10_x86:vcpp_v19_41_VS17_11_x86:vcpp_v19_42_VS17_12_x86:vcpp_v19_43_VS17_13_x86
group.vcpp_x86.groupName=MSVC x86 group.vcpp_x86.groupName=MSVC x86
group.vcpp_x86.isSemVer=true group.vcpp_x86.isSemVer=true
group.vcpp_x86.supportsBinary=true group.vcpp_x86.supportsBinary=true
@@ -96,20 +96,123 @@ group.vcpp_x86.supportsExecute=true
group.vcpp_x86.instructionSet=amd64 group.vcpp_x86.instructionSet=amd64
group.vcpp_x86.extraPath=Z:/compilers/debug_nonredist/x86/Microsoft.VC142.DebugCRT group.vcpp_x86.extraPath=Z:/compilers/debug_nonredist/x86/Microsoft.VC142.DebugCRT
group.vcpp_x64.compilers=vcpp_v19_latest_x64:vcpp_v19_24_VS16_4_x64:vcpp_v19_25_VS16_5_x64:vcpp_v19_27_VS16_7_x64:vcpp_v19_28_VS16_8_x64:vcpp_v19_28_VS16_9_x64:vcpp_v19_29_VS16_10_x64:vcpp_v19_29_VS16_11_x64:vcpp_v19_20_VS16_0_x64:vcpp_v19_21_VS16_1_x64:vcpp_v19_22_VS16_2_x64:vcpp_v19_23_VS16_3_x64:vcpp_v19_30_VS17_0_x64:vcpp_v19_31_VS17_1_x64:vcpp_v19_33_VS17_3_x64:vcpp_v19_35_VS17_5_x64:vcpp_v19_37_VS17_7_x64:vcpp_v19_32_VS17_2_x64:vcpp_v19_34_VS17_4_x64:vcpp_v19_36_VS17_6_x64:vcpp_v19_38_VS17_8_x64:vcpp_v19_39_VS17_9_x64:vcpp_v19_40_VS17_10_x64:vcpp_v19_41_VS17_11_x64:vcpp_v19_42_VS17_12_x64:vcpp_v19_43_VS17_13_x64 group.vcpp_x64.compilers=vcpp_v19_latest_x64:cl19_2015_u3_64_exwine:cl19_64_exwine:cl_new_64_exwine:vcpp_v19_24_VS16_4_x64:vcpp_v19_25_VS16_5_x64:vcpp_v19_27_VS16_7_x64:vcpp_v19_28_VS16_8_x64:vcpp_v19_28_VS16_9_x64:vcpp_v19_29_VS16_10_x64:vcpp_v19_29_VS16_11_x64:vcpp_v19_20_VS16_0_x64:vcpp_v19_21_VS16_1_x64:vcpp_v19_22_VS16_2_x64:vcpp_v19_23_VS16_3_x64:vcpp_v19_30_VS17_0_x64:vcpp_v19_31_VS17_1_x64:vcpp_v19_33_VS17_3_x64:vcpp_v19_35_VS17_5_x64:vcpp_v19_37_VS17_7_x64:vcpp_v19_32_VS17_2_x64:vcpp_v19_34_VS17_4_x64:vcpp_v19_36_VS17_6_x64:vcpp_v19_38_VS17_8_x64:vcpp_v19_39_VS17_9_x64:vcpp_v19_40_VS17_10_x64:vcpp_v19_41_VS17_11_x64:vcpp_v19_42_VS17_12_x64:vcpp_v19_43_VS17_13_x64
group.vcpp_x64.groupName=MSVC x64 group.vcpp_x64.groupName=MSVC x64
group.vcpp_x64.supportsBinary=true group.vcpp_x64.supportsBinary=true
group.vcpp_x64.supportsExecute=true group.vcpp_x64.supportsExecute=true
group.vcpp_x64.instructionSet=amd64 group.vcpp_x64.instructionSet=amd64
group.vcpp_x64.extraPath=Z:/compilers/debug_nonredist/x64/Microsoft.VC142.DebugCRT group.vcpp_x64.extraPath=Z:/compilers/debug_nonredist/x64/Microsoft.VC142.DebugCRT
group.vcpp_arm64.compilers=vcpp_v19_latest_arm64:vcpp_v19_28_VS16_9_arm64:vcpp_v19_29_VS16_10_arm64:vcpp_v19_29_VS16_11_arm64:vcpp_v19_25_VS16_5_arm64:vcpp_v19_27_VS16_7_arm64:vcpp_v19_24_VS16_4_arm64:vcpp_v19_28_VS16_8_arm64:vcpp_v19_20_VS16_0_arm64:vcpp_v19_21_VS16_1_arm64:vcpp_v19_22_VS16_2_arm64:vcpp_v19_23_VS16_3_arm64:vcpp_v19_30_VS17_0_arm64:vcpp_v19_31_VS17_1_arm64:vcpp_v19_33_VS17_3_arm64:vcpp_v19_35_VS17_5_arm64:vcpp_v19_37_VS17_7_arm64:vcpp_v19_32_VS17_2_arm64:vcpp_v19_34_VS17_4_arm64:vcpp_v19_36_VS17_6_arm64:vcpp_v19_38_VS17_8_arm64:vcpp_v19_39_VS17_9_arm64:vcpp_v19_40_VS17_10_arm64:vcpp_v19_41_VS17_11_arm64:vcpp_v19_42_VS17_12_arm64:vcpp_v19_43_VS17_13_arm64 group.vcpp_arm64.compilers=vcpp_v19_latest_arm64:cl_new_arm64_exwine:vcpp_v19_28_VS16_9_arm64:vcpp_v19_29_VS16_10_arm64:vcpp_v19_29_VS16_11_arm64:vcpp_v19_25_VS16_5_arm64:vcpp_v19_27_VS16_7_arm64:vcpp_v19_24_VS16_4_arm64:vcpp_v19_28_VS16_8_arm64:vcpp_v19_20_VS16_0_arm64:vcpp_v19_21_VS16_1_arm64:vcpp_v19_22_VS16_2_arm64:vcpp_v19_23_VS16_3_arm64:vcpp_v19_30_VS17_0_arm64:vcpp_v19_31_VS17_1_arm64:vcpp_v19_33_VS17_3_arm64:vcpp_v19_35_VS17_5_arm64:vcpp_v19_37_VS17_7_arm64:vcpp_v19_32_VS17_2_arm64:vcpp_v19_34_VS17_4_arm64:vcpp_v19_36_VS17_6_arm64:vcpp_v19_38_VS17_8_arm64:vcpp_v19_39_VS17_9_arm64:vcpp_v19_40_VS17_10_arm64:vcpp_v19_41_VS17_11_arm64:vcpp_v19_42_VS17_12_arm64:vcpp_v19_43_VS17_13_arm64
group.vcpp_arm64.groupName=MSVC arm64 group.vcpp_arm64.groupName=MSVC arm64
group.vcpp_arm64.supportsBinary=false group.vcpp_arm64.supportsBinary=false
group.vcpp_arm64.supportsBinaryObject=false group.vcpp_arm64.supportsBinaryObject=false
group.vcpp_arm64.supportsExecute=false group.vcpp_arm64.supportsExecute=false
group.vcpp_arm64.instructionSet=aarch64 group.vcpp_arm64.instructionSet=aarch64
################
# Converted from WINE
group.vcpp_arm32.compilers=cl19_arm_exwine:cl19_2015_u3_arm_exwine:cl_new_arm32_exwine
group.vcpp_arm32.groupName=MSVC arm32
group.vcpp_arm32.supportsBinary=false
group.vcpp_arm32.supportsBinaryObject=false
group.vcpp_arm32.supportsExecute=false
group.vcpp_arm32.instructionSet=arm32
compiler.cl19_2015_u3_32_exwine.supportsBinary=false
compiler.cl19_2015_u3_32_exwine.supportsBinaryObject=false
compiler.cl19_2015_u3_32_exwine.supportsExecute=false
compiler.cl19_2015_u3_32_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.00.24210/bin/amd64_x86/cl.exe
compiler.cl19_2015_u3_32_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/lib
compiler.cl19_2015_u3_32_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.cl19_2015_u3_32_exwine.name=x86 msvc v19.0 (ex-WINE)
compiler.cl19_2015_u3_32_exwine.semver=19.00.24210
compiler.cl19_2015_u3_32_exwine.alias=cl19_2015_u3_32
compiler.cl19_2015_u3_64_exwine.supportsBinary=false
compiler.cl19_2015_u3_64_exwine.supportsBinaryObject=false
compiler.cl19_2015_u3_64_exwine.supportsExecute=false
compiler.cl19_2015_u3_64_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.00.24210/bin/amd64/cl.exe
compiler.cl19_2015_u3_64_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/lib
compiler.cl19_2015_u3_64_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.cl19_2015_u3_64_exwine.name=x64 msvc v19.0 (ex-WINE)
compiler.cl19_2015_u3_64_exwine.semver=19.00.24210
compiler.cl19_2015_u3_64_exwine.alias=cl19_2015_u3_64
compiler.cl19_2015_u3_arm_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.00.24210/bin/amd64_arm/cl.exe
compiler.cl19_2015_u3_arm_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/lib
compiler.cl19_2015_u3_arm_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.cl19_2015_u3_arm_exwine.name=ARM msvc v19.0 (ex-WINE)
compiler.cl19_2015_u3_arm_exwine.semver=19.00.24210
compiler.cl19_2015_u3_arm_exwine.alias=cl19_2015_u3_arm
compiler.cl19_32_exwine.supportsBinary=false
compiler.cl19_32_exwine.supportsBinaryObject=false
compiler.cl19_32_exwine.supportsExecute=false
compiler.cl19_32_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/bin/amd64_x86/cl.exe
compiler.cl19_32_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/lib
compiler.cl19_32_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.cl19_32_exwine.name=x86 msvc v19.10 (ex-WINE)
compiler.cl19_32_exwine.semver=19.10.25017
compiler.cl19_32_exwine.alias=cl19_32
compiler.cl19_64_exwine.supportsBinary=false
compiler.cl19_64_exwine.supportsBinaryObject=false
compiler.cl19_64_exwine.supportsExecute=false
compiler.cl19_64_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/bin/amd64/cl.exe
compiler.cl19_64_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/lib
compiler.cl19_64_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.cl19_64_exwine.name=x64 msvc v19.10 (ex-WINE)
compiler.cl19_64_exwine.semver=19.10.25017
compiler.cl19_64_exwine.alias=cl19_64
compiler.cl19_arm_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/bin/amd64_arm/cl.exe
compiler.cl19_arm_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/lib
compiler.cl19_arm_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.cl19_arm_exwine.name=ARM msvc v19.10 (ex-WINE)
compiler.cl19_arm_exwine.semver=19.10.25017
compiler.cl19_arm_exwine.alias=cl19_arm
compiler.cl_new_32_exwine.supportsBinary=false
compiler.cl_new_32_exwine.supportsBinaryObject=false
compiler.cl_new_32_exwine.supportsExecute=false
compiler.cl_new_32_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.14.26423/bin/Hostx64/x86/cl.exe
compiler.cl_new_32_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/lib
compiler.cl_new_32_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.cl_new_32_exwine.name=x86 msvc v19.14 (ex-WINE)
compiler.cl_new_32_exwine.semver=19.14.26423
compiler.cl_new_32_exwine.alias=cl_new_32
compiler.cl_new_64_exwine.supportsBinary=false
compiler.cl_new_64_exwine.supportsBinaryObject=false
compiler.cl_new_64_exwine.supportsExecute=false
compiler.cl_new_64_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.14.26423/bin/Hostx64/x64/cl.exe
compiler.cl_new_64_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/lib
compiler.cl_new_64_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.cl_new_64_exwine.name=x64 msvc v19.14 (ex-WINE)
compiler.cl_new_64_exwine.semver=19.14.26423
compiler.cl_new_64_exwine.alias=cl_new_64
compiler.cl_new_arm32_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.14.26423/bin/Hostx64/arm/cl.exe
compiler.cl_new_arm32_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/lib
compiler.cl_new_arm32_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.cl_new_arm32_exwine.name=ARM msvc v19.14 (ex-WINE)
compiler.cl_new_arm32_exwine.semver=19.14.26423
compiler.cl_new_arm32_exwine.alias=cl_new_arm32
compiler.cl_new_arm64_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.14.26423/bin/Hostx64/arm64/cl.exe
compiler.cl_new_arm64_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/lib
compiler.cl_new_arm64_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.cl_new_arm64_exwine.name=ARM64 msvc v19.14 (ex-WINE)
compiler.cl_new_arm64_exwine.semver=19.14.26423
compiler.cl_new_arm64_exwine.alias=cl_new_arm64
# end of WINE conversion
################
################
# Normal installations
compiler.vcpp_v19_20_VS16_0_x86.exe=Z:/compilers/msvc/14.20.27508-14.20.27525.0/bin/Hostx64/x86/cl.exe compiler.vcpp_v19_20_VS16_0_x86.exe=Z:/compilers/msvc/14.20.27508-14.20.27525.0/bin/Hostx64/x86/cl.exe
compiler.vcpp_v19_20_VS16_0_x86.libPath=Z:/compilers/msvc/14.20.27508-14.20.27525.0/lib;Z:/compilers/msvc/14.20.27508-14.20.27525.0/lib/x86;Z:/compilers/msvc/14.20.27508-14.20.27525.0/atlmfc/lib/x86;Z:/compilers/msvc/14.20.27508-14.20.27525.0/ifc/x86;Z:/compilers/windows-kits-10/lib/10.0.22621.0/ucrt/x86;Z:/compilers/windows-kits-10/lib/10.0.22621.0/um/x86; compiler.vcpp_v19_20_VS16_0_x86.libPath=Z:/compilers/msvc/14.20.27508-14.20.27525.0/lib;Z:/compilers/msvc/14.20.27508-14.20.27525.0/lib/x86;Z:/compilers/msvc/14.20.27508-14.20.27525.0/atlmfc/lib/x86;Z:/compilers/msvc/14.20.27508-14.20.27525.0/ifc/x86;Z:/compilers/windows-kits-10/lib/10.0.22621.0/ucrt/x86;Z:/compilers/windows-kits-10/lib/10.0.22621.0/um/x86;
compiler.vcpp_v19_20_VS16_0_x86.includePath=Z:/compilers/msvc/14.20.27508-14.20.27525.0/include;Z:/compilers/windows-kits-10/include/10.0.22621.0/cppwinrt;Z:/compilers/windows-kits-10/include/10.0.22621.0/shared;Z:/compilers/windows-kits-10/include/10.0.22621.0/ucrt;Z:/compilers/windows-kits-10/include/10.0.22621.0/um;Z:/compilers/windows-kits-10/include/10.0.22621.0/winrt; compiler.vcpp_v19_20_VS16_0_x86.includePath=Z:/compilers/msvc/14.20.27508-14.20.27525.0/include;Z:/compilers/windows-kits-10/include/10.0.22621.0/cppwinrt;Z:/compilers/windows-kits-10/include/10.0.22621.0/shared;Z:/compilers/windows-kits-10/include/10.0.22621.0/ucrt;Z:/compilers/windows-kits-10/include/10.0.22621.0/um;Z:/compilers/windows-kits-10/include/10.0.22621.0/winrt;

View File

@@ -1,5 +1,5 @@
compilers=&cgcc86:&cclang:&nvc_x86:&armcclang32:&armcclang64:&cmosclang-trunk:&rvcclang:&wasmcclang:&ppci:&cicc:&cicx:&ccl:&ccross:&cgcc-classic:&cc65:&sdcc:&ctendra:&tinycc:&zigcc:&cproc86:&chibicc:&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:&z80-cclang:&z88dk:&compcert:godbolt.org@443/winprod:&movfuscator:&lc3:&upmem-clang:&cvast:&orcac:&c2rust
defaultCompiler=cg151 defaultCompiler=cg152
# We use the llvm-trunk demangler for all c/c++ compilers, as c++filt tends to lag behind # 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 demangler=/opt/compiler-explorer/clang-trunk/bin/llvm-cxxfilt
objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump
@@ -15,7 +15,7 @@ llvmDisassembler=/opt/compiler-explorer/clang-18.1.0/bin/llvm-dis
############################### ###############################
# GCC for x86 # 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:cg121:cg122:cg123:cg124:cg125:cg131:cg132:cg133:cg134:cg141:cg142:cg143:cg151: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:cg121:cg122:cg123:cg124:cg125:cg131:cg132:cg133:cg134:cg141:cg142:cg143:cg151:cg152:cgsnapshot:cgstatic-analysis
group.cgcc86.groupName=GCC x86-64 group.cgcc86.groupName=GCC x86-64
group.cgcc86.instructionSet=amd64 group.cgcc86.instructionSet=amd64
group.cgcc86.isSemVer=true group.cgcc86.isSemVer=true
@@ -175,6 +175,8 @@ compiler.cg143.exe=/opt/compiler-explorer/gcc-14.3.0/bin/gcc
compiler.cg143.semver=14.3 compiler.cg143.semver=14.3
compiler.cg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcc compiler.cg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcc
compiler.cg151.semver=15.1 compiler.cg151.semver=15.1
compiler.cg152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
compiler.cg152.semver=15.2
compiler.cgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc compiler.cgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc
compiler.cgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.cgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -196,7 +198,7 @@ compiler.cg71.needsMulti=true
compiler.cg72.needsMulti=true compiler.cg72.needsMulti=true
## GCC x86 build with "assertions" (--enable-checking=XXX) ## 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 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.groupName=GCC x86-64 (assertions) group.cgcc86assert.groupName=GCC x86-64 (assertions)
compiler.cg103assert.exe=/opt/compiler-explorer/gcc-assertions-10.3.0/bin/gcc compiler.cg103assert.exe=/opt/compiler-explorer/gcc-assertions-10.3.0/bin/gcc
@@ -239,6 +241,8 @@ compiler.cg143assert.exe=/opt/compiler-explorer/gcc-assertions-14.3.0/bin/gcc
compiler.cg143assert.semver=14.3 (assertions) compiler.cg143assert.semver=14.3 (assertions)
compiler.cg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcc compiler.cg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcc
compiler.cg151assert.semver=15.1 (assertions) 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)
# Classic x86 compilers (32-bit only) # Classic x86 compilers (32-bit only)
@@ -1189,7 +1193,7 @@ compiler.cbpfclang1300.exe=/opt/compiler-explorer/clang-13.0.0/bin/clang
compiler.cbpfclang1300.semver=13.0.0 compiler.cbpfclang1300.semver=13.0.0
# GCC for BPF # GCC for BPF
group.cgccbpf.compilers=cbpfg1310:cbpfg1320:cbpfg1330:cbpfg1340:cbpfg1410:cbpfg1420:cbpfg1430:cbpfg1510:cbpfgtrunk group.cgccbpf.compilers=cbpfg1310:cbpfg1320:cbpfg1330:cbpfg1340:cbpfg1410:cbpfg1420:cbpfg1430:cbpfg1510:cbpfg1520:cbpfgtrunk
group.cgccbpf.supportsBinary=true group.cgccbpf.supportsBinary=true
group.cgccbpf.supportsExecute=false group.cgccbpf.supportsExecute=false
group.cgccbpf.baseName=BPF gcc group.cgccbpf.baseName=BPF gcc
@@ -1237,6 +1241,11 @@ compiler.cbpfg1510.semver=15.1.0
compiler.cbpfg1510.objdumper=/opt/compiler-explorer/bpf/gcc-15.1.0/bpf-unknown-none/bin/bpf-unknown-objdump compiler.cbpfg1510.objdumper=/opt/compiler-explorer/bpf/gcc-15.1.0/bpf-unknown-none/bin/bpf-unknown-objdump
compiler.cbpfg1510.demangler=/opt/compiler-explorer/bpf/gcc-15.1.0/bpf-unknown-none/bin/bpf-unknown-none-c++filt compiler.cbpfg1510.demangler=/opt/compiler-explorer/bpf/gcc-15.1.0/bpf-unknown-none/bin/bpf-unknown-none-c++filt
compiler.cbpfg1520.exe=/opt/compiler-explorer/bpf/gcc-15.2.0/bpf-unknown-none/bin/bpf-unknown-gcc
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.cbpfgtrunk.exe=/opt/compiler-explorer/bpf/gcc-trunk/bpf-unknown-none/bin/bpf-unknown-gcc compiler.cbpfgtrunk.exe=/opt/compiler-explorer/bpf/gcc-trunk/bpf-unknown-none/bin/bpf-unknown-gcc
compiler.cbpfgtrunk.semver=trunk compiler.cbpfgtrunk.semver=trunk
compiler.cbpfgtrunk.isNightly=true compiler.cbpfgtrunk.isNightly=true
@@ -1265,7 +1274,7 @@ compiler.ctricoreg1130.demangler=/opt/compiler-explorer/tricore/gcc-11.3.0/trico
group.chppa.compilers=&cgcchppa group.chppa.compilers=&cgcchppa
# GCC for HPPA # GCC for HPPA
group.cgcchppa.compilers=chppag1420:chppag1430:chppag1510 group.cgcchppa.compilers=chppag1420:chppag1430:chppag1510:chppag1520
group.cgcchppa.baseName=HPPA gcc group.cgcchppa.baseName=HPPA gcc
group.cgcchppa.groupName=HPPA GCC group.cgcchppa.groupName=HPPA GCC
group.cgcchppa.isSemVer=true group.cgcchppa.isSemVer=true
@@ -1287,6 +1296,11 @@ compiler.chppag1510.semver=15.1.0
compiler.chppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump compiler.chppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.chppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt compiler.chppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
compiler.chppag1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-gcc
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
############################### ###############################
# Cross for m68k # Cross for m68k
group.cm68k.compilers=&cgccm68k:&cclangm68k group.cm68k.compilers=&cgccm68k:&cclangm68k
@@ -1309,7 +1323,7 @@ compiler.cm68kclangtrunk.semver=(trunk)
compiler.cm68kclangtrunk.isNightly=true compiler.cm68kclangtrunk.isNightly=true
# GCC for m68k # GCC for m68k
group.cgccm68k.compilers=cm68kg1310:cm68kg1320:cm68kg1410:cm68kg1330:cm68kg1420:cm68kg1510:cm68kg1430:cm68kg1340 group.cgccm68k.compilers=cm68kg1310:cm68kg1320:cm68kg1410:cm68kg1330:cm68kg1420:cm68kg1510:cm68kg1430:cm68kg1340:cm68kg1520
group.cgccm68k.supportsBinary=true group.cgccm68k.supportsBinary=true
group.cgccm68k.supportsExecute=false group.cgccm68k.supportsExecute=false
group.cgccm68k.baseName=M68K gcc group.cgccm68k.baseName=M68K gcc
@@ -1357,12 +1371,17 @@ compiler.cm68kg1510.semver=15.1.0
compiler.cm68kg1510.objdumper=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump compiler.cm68kg1510.objdumper=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump
compiler.cm68kg1510.demangler=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt compiler.cm68kg1510.demangler=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt
compiler.cm68kg1520.exe=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/bin/m68k-unknown-elf-gcc
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
############################### ###############################
# Cross for SPARC # Cross for SPARC
group.csparc.compilers=&cgccsparc group.csparc.compilers=&cgccsparc
# GCC for SPARC # GCC for SPARC
group.cgccsparc.compilers=csparcg1220:csparcg1230:csparcg1240:csparcg1250:csparcg1310:csparcg1320:csparcg1330:csparcg1340:csparcg1410:csparcg1420:csparcg1430:csparcg1510 group.cgccsparc.compilers=csparcg1220:csparcg1230:csparcg1240:csparcg1250:csparcg1310:csparcg1320:csparcg1330:csparcg1340:csparcg1410:csparcg1420:csparcg1430:csparcg1510:csparcg1520
group.cgccsparc.baseName=SPARC gcc group.cgccsparc.baseName=SPARC gcc
group.cgccsparc.groupName=SPARC GCC group.cgccsparc.groupName=SPARC GCC
group.cgccsparc.isSemVer=true group.cgccsparc.isSemVer=true
@@ -1427,12 +1446,17 @@ compiler.csparcg1510.semver=15.1.0
compiler.csparcg1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump compiler.csparcg1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.csparcg1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt compiler.csparcg1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
compiler.csparcg1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gcc
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
############################### ###############################
# Cross for SPARC64 # Cross for SPARC64
group.csparc64.compilers=&cgccsparc64 group.csparc64.compilers=&cgccsparc64
# GCC for SPARC64 # GCC for SPARC64
group.cgccsparc64.compilers=csparc64g1220:csparc64g1230:csparc64g1310:csparc64g1320:csparc64g1410:csparc64g1330:csparc64g1240:csparc64g1420:csparc64g1510:csparc64g1430:csparc64g1340:csparc64g1250 group.cgccsparc64.compilers=csparc64g1220:csparc64g1230:csparc64g1310:csparc64g1320:csparc64g1410:csparc64g1330:csparc64g1240:csparc64g1420:csparc64g1510:csparc64g1430:csparc64g1340:csparc64g1250:csparc64g1520
group.cgccsparc64.baseName=SPARC64 gcc group.cgccsparc64.baseName=SPARC64 gcc
group.cgccsparc64.groupName=SPARC64 GCC group.cgccsparc64.groupName=SPARC64 GCC
group.cgccsparc64.isSemVer=true group.cgccsparc64.isSemVer=true
@@ -1497,12 +1521,17 @@ compiler.csparc64g1510.semver=15.1.0
compiler.csparc64g1510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump compiler.csparc64g1510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.csparc64g1510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt compiler.csparc64g1510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
compiler.csparc64g1520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-gcc
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
############################### ###############################
# Cross for SPARC-LEON # Cross for SPARC-LEON
group.csparcleon.compilers=&cgccsparcleon group.csparcleon.compilers=&cgccsparcleon
# GCC for SPARC-LEON # GCC for SPARC-LEON
group.cgccsparcleon.compilers=csparcleong1220:csparcleong1220-1:csparcleong1230:csparcleong1240:csparcleong1250:csparcleong1310:csparcleong1320:csparcleong1330:csparcleong1340:csparcleong1410:csparcleong1420:csparcleong1430:csparcleong1510 group.cgccsparcleon.compilers=csparcleong1220:csparcleong1220-1:csparcleong1230:csparcleong1240:csparcleong1250:csparcleong1310:csparcleong1320:csparcleong1330:csparcleong1340:csparcleong1410:csparcleong1420:csparcleong1430:csparcleong1510:csparcleong1520
group.cgccsparcleon.baseName=SPARC LEON gcc group.cgccsparcleon.baseName=SPARC LEON gcc
group.cgccsparcleon.groupName=SPARC LEON GCC group.cgccsparcleon.groupName=SPARC LEON GCC
group.cgccsparcleon.isSemVer=true group.cgccsparcleon.isSemVer=true
@@ -1569,6 +1598,11 @@ compiler.csparcleong1510.semver=15.1.0
compiler.csparcleong1510.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump compiler.csparcleong1510.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
compiler.csparcleong1510.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt compiler.csparcleong1510.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
compiler.csparcleong1520.exe=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gcc
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.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.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 compiler.csparcleong1220-1.semver=12.2.0
compiler.csparcleong1220-1.objdumper=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump compiler.csparcleong1220-1.objdumper=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
@@ -1579,7 +1613,7 @@ compiler.csparcleong1220-1.demangler=/opt/compiler-explorer/sparc-leon/gcc-12.2.
group.cc6x.compilers=&cgccc6x group.cc6x.compilers=&cgccc6x
# GCC for TI C6x # GCC for TI C6x
group.cgccc6x.compilers=cc6xg1220:cc6xg1230:cc6xg1310:cc6xg1320:cc6xg1410:cc6xg1330:cc6xg1240:cc6xg1420:cc6xg1510:cc6xg1430:cc6xg1340:cc6xg1250 group.cgccc6x.compilers=cc6xg1220:cc6xg1230:cc6xg1310:cc6xg1320:cc6xg1410:cc6xg1330:cc6xg1240:cc6xg1420:cc6xg1510:cc6xg1430:cc6xg1340:cc6xg1250:cc6xg1520
group.cgccc6x.baseName=TI C6x gcc group.cgccc6x.baseName=TI C6x gcc
group.cgccc6x.groupName=TI C6x GCC group.cgccc6x.groupName=TI C6x GCC
group.cgccc6x.isSemVer=true group.cgccc6x.isSemVer=true
@@ -1644,12 +1678,17 @@ compiler.cc6xg1510.semver=15.1.0
compiler.cc6xg1510.objdumper=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-objdump compiler.cc6xg1510.objdumper=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-objdump
compiler.cc6xg1510.demangler=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-c++filt compiler.cc6xg1510.demangler=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-c++filt
compiler.cc6xg1520.exe=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x-elf-gcc
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
############################### ###############################
# Cross for loongarch64 # Cross for loongarch64
group.cloongarch64.compilers=&cgccloongarch64 group.cloongarch64.compilers=&cgccloongarch64
# GCC for loongarch64 # GCC for loongarch64
group.cgccloongarch64.compilers=cloongarch64g1220:cloongarch64g1230:cloongarch64g1310:cloongarch64g1320:cloongarch64g1410:cloongarch64g1330:cloongarch64g1240:cloongarch64g1420:cloongarch64g1510:cloongarch64g1430:cloongarch64g1340:cloongarch64g1250 group.cgccloongarch64.compilers=cloongarch64g1220:cloongarch64g1230:cloongarch64g1310:cloongarch64g1320:cloongarch64g1410:cloongarch64g1330:cloongarch64g1240:cloongarch64g1420:cloongarch64g1510:cloongarch64g1430:cloongarch64g1340:cloongarch64g1250:cloongarch64g1520
group.cgccloongarch64.baseName=loongarch64 gcc group.cgccloongarch64.baseName=loongarch64 gcc
group.cgccloongarch64.groupName=loongarch64 GCC group.cgccloongarch64.groupName=loongarch64 GCC
group.cgccloongarch64.isSemVer=true group.cgccloongarch64.isSemVer=true
@@ -1714,12 +1753,17 @@ compiler.cloongarch64g1510.semver=15.1.0
compiler.cloongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump compiler.cloongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.cloongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt compiler.cloongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
compiler.cloongarch64g1520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-gcc
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
############################### ###############################
# Cross for sh # Cross for sh
group.csh.compilers=&cgccsh group.csh.compilers=&cgccsh
# GCC for sh # GCC for sh
group.cgccsh.compilers=cshg494:cshg950:cshg1220:cshg1230:cshg1240:cshg1250:cshg1310:cshg1320:cshg1330:cshg1340:cshg1410:cshg1420:cshg1430:cshg1510 group.cgccsh.compilers=cshg494:cshg950:cshg1220:cshg1230:cshg1240:cshg1250:cshg1310:cshg1320:cshg1330:cshg1340:cshg1410:cshg1420:cshg1430:cshg1510:cshg1520
group.cgccsh.baseName=sh gcc group.cgccsh.baseName=sh gcc
group.cgccsh.groupName=sh GCC group.cgccsh.groupName=sh GCC
group.cgccsh.isSemVer=true group.cgccsh.isSemVer=true
@@ -1794,12 +1838,17 @@ compiler.cshg1510.semver=15.1.0
compiler.cshg1510.objdumper=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-objdump compiler.cshg1510.objdumper=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-objdump
compiler.cshg1510.demangler=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt compiler.cshg1510.demangler=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt
compiler.cshg1520.exe=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh-unknown-elf-gcc
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
############################### ###############################
# Cross for s390x # Cross for s390x
group.cs390x.compilers=&cgccs390x group.cs390x.compilers=&cgccs390x
# GCC for s390x # GCC for s390x
group.cgccs390x.compilers=cgccs390x112:cs390xg1210:cs390xg1220:cs390xg1230:cs390xg1310:cs390xg1320:cs390xg1410:cs390xg1330:cs390xg1240:cs390xg1420:cs390xg1510:cs390xg1430:cs390xg1340:cs390xg1250 group.cgccs390x.compilers=cgccs390x112:cs390xg1210:cs390xg1220:cs390xg1230:cs390xg1310:cs390xg1320:cs390xg1410:cs390xg1330:cs390xg1240:cs390xg1420:cs390xg1510:cs390xg1430:cs390xg1340:cs390xg1250:cs390xg1520
group.cgccs390x.baseName=s390x gcc group.cgccs390x.baseName=s390x gcc
group.cgccs390x.groupName=s390x GCC group.cgccs390x.groupName=s390x GCC
group.cgccs390x.isSemVer=true group.cgccs390x.isSemVer=true
@@ -1872,13 +1921,18 @@ compiler.cs390xg1510.semver=15.1.0
compiler.cs390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump compiler.cs390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.cs390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt compiler.cs390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
compiler.cs390xg1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gcc
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
############################### ###############################
# Cross compilers for PPC # Cross compilers for PPC
group.cppcs.compilers=&cppc:&cppc64:&cppc64le group.cppcs.compilers=&cppc:&cppc64:&cppc64le
group.cppcs.isSemVer=true group.cppcs.isSemVer=true
group.cppcs.instructionSet=powerpc group.cppcs.instructionSet=powerpc
group.cppc.compilers=cppcg48:cppcg1120:cppcg1210:cppcg1220:cppcg1230:cppcg1240:cppcg1250:cppcg1310:cppcg1320:cppcg1330:cppcg1340:cppcg1410:cppcg1420:cppcg1430:cppcg1510 group.cppc.compilers=cppcg48:cppcg1120:cppcg1210:cppcg1220:cppcg1230:cppcg1240:cppcg1250:cppcg1310:cppcg1320:cppcg1330:cppcg1340:cppcg1410:cppcg1420:cppcg1430:cppcg1510:cppcg1520
group.cppc.groupName=POWER group.cppc.groupName=POWER
group.cppc.baseName=power gcc group.cppc.baseName=power gcc
@@ -1954,7 +2008,12 @@ compiler.cppcg1510.semver=15.1.0
compiler.cppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump compiler.cppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.cppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt compiler.cppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.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 compiler.cppcg1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gcc
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
group.cppc64.compilers=cppc64g8:cppc64g9:cppc64g1120:cppc64g1210:cppc64clang:cppc64g1220:cppc64g1230:cppc64g1310:cppc64g1320:cppc64gtrunk:cppc64g1410:cppc64g1330:cppc64g1240:cppc64g1420:cppc64g1510:cppc64g1430:cppc64g1340:cppc64g1250:cppc64g1520
group.cppc64.groupName=POWER64 group.cppc64.groupName=POWER64
group.cppc64.baseName=POWER64 gcc group.cppc64.baseName=POWER64 gcc
@@ -2036,6 +2095,11 @@ compiler.cppc64g1510.semver=15.1.0
compiler.cppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.cppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.cppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.cppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.cppc64g1520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc
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.cppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc compiler.cppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc
compiler.cppc64gtrunk.semver=trunk compiler.cppc64gtrunk.semver=trunk
compiler.cppc64gtrunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.cppc64gtrunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
@@ -2050,7 +2114,7 @@ compiler.cppc64clang.semver=(snapshot)
compiler.cppc64clang.isNightly=true compiler.cppc64clang.isNightly=true
compiler.cppc64clang.compilerCategories=clang 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 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.groupName=POWER64LE GCC group.cppc64le.groupName=POWER64LE GCC
group.cppc64le.baseName=power64le gcc group.cppc64le.baseName=power64le gcc
@@ -2136,6 +2200,11 @@ compiler.cppc64leg1510.semver=15.1.0
compiler.cppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.cppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.cppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.cppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.cppc64leg1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc
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.cppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc compiler.cppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc
compiler.cppc64legtrunk.semver=trunk compiler.cppc64legtrunk.semver=trunk
compiler.cppc64legtrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.cppc64legtrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
@@ -2162,7 +2231,7 @@ group.cgccarm.includeFlag=-I
# 32 bit # 32 bit
group.cgcc32arm.groupName=Arm 32-bit GCC group.cgcc32arm.groupName=Arm 32-bit GCC
group.cgcc32arm.baseName=ARM 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: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:carmgtrunk
group.cgcc32arm.isSemVer=true 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.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
group.cgcc32arm.instructionSet=arm32 group.cgcc32arm.instructionSet=arm32
@@ -2264,6 +2333,11 @@ compiler.carmg1510.semver=15.1.0
compiler.carmg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump compiler.carmg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.carmg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt compiler.carmg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.carmg1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc
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.carmug1320.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-13.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-gcc 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) compiler.carmug1320.name=ARM GCC 13.2.0 (unknown-eabi)
compiler.carmug1320.semver=13.2.0 compiler.carmug1320.semver=13.2.0
@@ -2300,6 +2374,18 @@ compiler.carmug1430.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-14.3.0/
compiler.carmug1430.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-14.3.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt compiler.carmug1430.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-14.3.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
compiler.carmug1430.name=ARM GCC 14.3.0 (unknown-eabi) compiler.carmug1430.name=ARM GCC 14.3.0 (unknown-eabi)
compiler.carmug1510.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-15.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-gcc
compiler.carmug1510.semver=15.1.0
compiler.carmug1510.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-15.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-objdump
compiler.carmug1510.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-15.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
compiler.carmug1510.name=ARM GCC 15.1.0 (unknown-eabi)
compiler.carmug1520.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-15.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-gcc
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.carmce820.exe=/opt/compiler-explorer/arm-wince/gcc-ce-8.2.0/bin/arm-mingw32ce-gcc compiler.carmce820.exe=/opt/compiler-explorer/arm-wince/gcc-ce-8.2.0/bin/arm-mingw32ce-gcc
compiler.carmce820.semver=8.2.0 (WinCE) compiler.carmce820.semver=8.2.0 (WinCE)
compiler.carmce820.supportsBinary=false compiler.carmce820.supportsBinary=false
@@ -2347,7 +2433,7 @@ compiler.carmgtrunk.isNightly=true
# 64 bit # 64 bit
group.cgcc64arm.groupName=ARM64 gcc group.cgcc64arm.groupName=ARM64 gcc
group.cgcc64arm.baseName=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 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.isSemVer=true 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.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump
group.cgcc64arm.instructionSet=aarch64 group.cgcc64arm.instructionSet=aarch64
@@ -2470,6 +2556,11 @@ compiler.carm64g1510.semver=15.1.0
compiler.carm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.carm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.carm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.carm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.carm64g1520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
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.carm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc compiler.carm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
compiler.carm64gtrunk.semver=trunk compiler.carm64gtrunk.semver=trunk
compiler.carm64gtrunk.isNightly=true compiler.carm64gtrunk.isNightly=true
@@ -2644,7 +2735,7 @@ compiler.carduinomega189.objdumper=/opt/compiler-explorer/avr/arduino-1.8.9/hard
################################ ################################
# GCC for MSP # GCC for MSP
group.cmsp.compilers=cmsp430g453:cmsp430g530:cmsp430g621:cmsp430g1210:cmsp430g1220:cmsp430g1230:cmsp430g1310:cmsp430g1320:cmsp430g1410:cmsp430g1330:cmsp430g1240:cmsp430g1420:cmsp430g1510:cmsp430g1430:cmsp430g1340:cmsp430g1250 group.cmsp.compilers=cmsp430g453:cmsp430g530:cmsp430g621:cmsp430g1210:cmsp430g1220:cmsp430g1230:cmsp430g1310:cmsp430g1320:cmsp430g1410:cmsp430g1330:cmsp430g1240:cmsp430g1420:cmsp430g1510:cmsp430g1430:cmsp430g1340:cmsp430g1250:cmsp430g1520
group.cmsp.groupName=MSP GCC group.cmsp.groupName=MSP GCC
group.cmsp.baseName=MSP430 gcc group.cmsp.baseName=MSP430 gcc
group.cmsp.isSemVer=true group.cmsp.isSemVer=true
@@ -2723,6 +2814,11 @@ compiler.cmsp430g1510.semver=15.1.0
compiler.cmsp430g1510.objdumper=/opt/compiler-explorer/msp430/gcc-15.1.0/msp430-unknown-elf/bin/msp430-unknown-elf-objdump compiler.cmsp430g1510.objdumper=/opt/compiler-explorer/msp430/gcc-15.1.0/msp430-unknown-elf/bin/msp430-unknown-elf-objdump
compiler.cmsp430g1510.demangler=/opt/compiler-explorer/msp430/gcc-15.1.0/msp430-unknown-elf/bin/msp430-unknown-elf-c++filt compiler.cmsp430g1510.demangler=/opt/compiler-explorer/msp430/gcc-15.1.0/msp430-unknown-elf/bin/msp430-unknown-elf-c++filt
compiler.cmsp430g1520.exe=/opt/compiler-explorer/msp430/gcc-15.2.0/msp430-unknown-elf/bin/msp430-unknown-elf-gcc
compiler.cmsp430g1520.semver=15.2.0
compiler.cmsp430g1520.objdumper=/opt/compiler-explorer/msp430/gcc-15.2.0/msp430-unknown-elf/bin/msp430-unknown-elf-objdump
compiler.cmsp430g1520.demangler=/opt/compiler-explorer/msp430/gcc-15.2.0/msp430-unknown-elf/bin/msp430-unknown-elf-c++filt
################################ ################################
# CL430 (Texas Instruments MSP430 compiler) # CL430 (Texas Instruments MSP430 compiler)
group.ccl430.compilers=ccl4302161 group.ccl430.compilers=ccl4302161
@@ -2741,7 +2837,7 @@ compiler.ccl4302161.versionFlag=-version
################################ ################################
# GCC for AVR # GCC for AVR
group.cavr.compilers=cavrg454:cavrg464:cavrg540:cavrg920:cavrg930:cavrg1030:cavrg1100:cavrg1210:cavrg1220:cavrg1230:cavrg1240:cavrg1250:cavrg1310:cavrg1320:cavrg1330:cavrg1340:cavrg1410:cavrg1420:cavrg1430:cavrg1510 group.cavr.compilers=cavrg454:cavrg464:cavrg540:cavrg920:cavrg930:cavrg1030:cavrg1100:cavrg1210:cavrg1220:cavrg1230:cavrg1240:cavrg1250:cavrg1310:cavrg1320:cavrg1330:cavrg1340:cavrg1410:cavrg1420:cavrg1430:cavrg1510:cavrg1520
group.cavr.groupName=AVR GCC group.cavr.groupName=AVR GCC
group.cavr.baseName=AVR gcc group.cavr.baseName=AVR gcc
group.cavr.isSemVer=true group.cavr.isSemVer=true
@@ -2837,6 +2933,11 @@ compiler.cavrg1510.semver=15.1.0
compiler.cavrg1510.objdumper=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-objdump compiler.cavrg1510.objdumper=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-objdump
compiler.cavrg1510.demangler=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-c++filt compiler.cavrg1510.demangler=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-c++filt
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
############################### ###############################
# Cross compilers for MIPS # Cross compilers for MIPS
group.cmipss.compilers=&cmips:&cmipsel:&cmips64:&cmips64el:&mips-cclang:&mipsel-cclang:&mips64-cclang:&mips64el-cclang group.cmipss.compilers=&cmips:&cmipsel:&cmips64:&cmips64el:&mips-cclang:&mipsel-cclang:&mips64-cclang:&mips64el-cclang
@@ -2993,7 +3094,7 @@ compiler.mips64el-cclang1300.semver=13.0.0
# GCC for all MIPS # GCC for all MIPS
## MIPS ## MIPS
group.cmips.compilers=cmips5:cmipsg494:cmipsg550:cmips930:cmipsg950:cmips1120:cmipsg1210:cmipsg1220:cmipsg1230:cmipsg1240:cmipsg1250:cmipsg1310:cmipsg1320:cmipsg1330:cmipsg1340:cmipsg1410:cmipsg1420:cmipsg1430:cmipsg1510 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.groupName=MIPS GCC group.cmips.groupName=MIPS GCC
group.cmips.baseName=mips gcc group.cmips.baseName=mips gcc
@@ -3089,9 +3190,14 @@ compiler.cmipsg1510.semver=15.1.0
compiler.cmipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump compiler.cmipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.cmipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt compiler.cmipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
compiler.cmipsg1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gcc
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
## MIPS64 ## MIPS64
group.cmips64.groupName=MIPS64 GCC group.cmips64.groupName=MIPS64 GCC
group.cmips64.compilers=cmips64g494:cmips64g550:cmips64g950:cmips64g1210:cmips64g1220:cmips64g1230:cmips64g1310:cmips64g1320:cmips64g1410:cmips64g1330:cmips64g1240:cmips64g1420:cmips64g1510:cmips64g1430:cmips64g1340:cmips64g1250:cmips564:cmips112064 group.cmips64.compilers=cmips64g494:cmips64g550:cmips64g950:cmips64g1210:cmips64g1220:cmips64g1230:cmips64g1310:cmips64g1320:cmips64g1410:cmips64g1330:cmips64g1240:cmips64g1420:cmips64g1510:cmips64g1430:cmips64g1340:cmips64g1250:cmips64g1520:cmips564:cmips112064
group.cmips64.baseName=mips64 gcc 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 compiler.cmips64g494.exe=/opt/compiler-explorer/mips64/gcc-4.9.4/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc
@@ -3181,9 +3287,14 @@ compiler.cmips64g1510.semver=15.1.0
compiler.cmips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump compiler.cmips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.cmips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt compiler.cmips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
compiler.cmips64g1520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc
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
## MIPS EL ## MIPS EL
group.cmipsel.groupName=MIPSEL GCC 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 group.cmipsel.compilers=cmips5el:cmipselg494:cmipselg550:cmipselg950:cmipselg1210:cmipselg1220:cmipselg1230:cmipselg1240:cmipselg1250:cmipselg1310:cmipselg1320:cmipselg1330:cmipselg1340:cmipselg1410:cmipselg1420:cmipselg1430:cmipselg1510:cmipselg1520
group.cmipsel.baseName=mips (el) gcc 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 compiler.cmipselg494.exe=/opt/compiler-explorer/mipsel/gcc-4.9.4/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-gcc
@@ -3269,9 +3380,14 @@ compiler.cmipselg1510.semver=15.1.0
compiler.cmipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump compiler.cmipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.cmipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt compiler.cmipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
compiler.cmipselg1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gcc
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
## MIPS64 EL ## MIPS64 EL
group.cmips64el.groupName=MIPS64EL GCC group.cmips64el.groupName=MIPS64EL GCC
group.cmips64el.compilers=cmips64elg494:cmips64elg550:cmips64elg950:cmips64elg1210:cmips64elg1220:cmips64elg1230:cmips64elg1310:cmips64elg1320:cmips64elg1410:cmips64elg1330:cmips64elg1240:cmips64elg1420:cmips64elg1510:cmips64elg1430:cmips64elg1340:cmips64elg1250:cmips564el group.cmips64el.compilers=cmips64elg494:cmips64elg550:cmips64elg950:cmips64elg1210:cmips64elg1220:cmips64elg1230:cmips64elg1310:cmips64elg1320:cmips64elg1410:cmips64elg1330:cmips64elg1240:cmips64elg1420:cmips64elg1510:cmips64elg1430:cmips64elg1340:cmips64elg1250:cmips64elg1520:cmips564el
group.cmips64el.baseName=mips64 (el) gcc 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 compiler.cmips64elg494.exe=/opt/compiler-explorer/mips64el/gcc-4.9.4/mips64el-unknown-linux-gnu/bin/mips64el-unknown-linux-gnu-gcc
@@ -3357,6 +3473,11 @@ compiler.cmips64elg1510.semver=15.1.0
compiler.cmips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump compiler.cmips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.cmips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt compiler.cmips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
compiler.cmips64elg1520.exe=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gcc
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
############################### ###############################
# GCC for nanoMIPS # GCC for nanoMIPS
group.cnanomips.compilers=cnanomips630 group.cnanomips.compilers=cnanomips630
@@ -3392,7 +3513,7 @@ group.rvcgcc.supportsBinary=true
group.rvcgcc.supportsBinaryObject=true group.rvcgcc.supportsBinaryObject=true
## GCC for RISC-V 64-bits ## 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 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.groupName=RISC-V (64-bits) gcc group.rv64-cgccs.groupName=RISC-V (64-bits) gcc
group.rv64-cgccs.baseName=RISC-V (64-bits) gcc group.rv64-cgccs.baseName=RISC-V (64-bits) gcc
@@ -3494,6 +3615,11 @@ compiler.rv64-cgcc1510.semver=15.1.0
compiler.rv64-cgcc1510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.rv64-cgcc1510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.rv64-cgcc1510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt compiler.rv64-cgcc1510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.rv64-cgcc1520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gcc
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-cgcctrunk.exe=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gcc 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) compiler.rv64-cgcctrunk.semver=(trunk)
compiler.rv64-cgcctrunk.objdumper=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.rv64-cgcctrunk.objdumper=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
@@ -3501,7 +3627,7 @@ compiler.rv64-cgcctrunk.demangler=/opt/compiler-explorer/riscv64/gcc-trunk/riscv
compiler.rv64-cgcctrunk.isNightly=true compiler.rv64-cgcctrunk.isNightly=true
## GCC for RISC-V 32-bits ## 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 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.groupName=RISC-V (32-bits) gcc group.rv32-cgccs.groupName=RISC-V (32-bits) gcc
group.rv32-cgccs.baseName=RISC-V (32-bits) gcc group.rv32-cgccs.baseName=RISC-V (32-bits) gcc
@@ -3603,6 +3729,11 @@ compiler.rv32-cgcc1510.semver=15.1.0
compiler.rv32-cgcc1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump compiler.rv32-cgcc1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.rv32-cgcc1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt compiler.rv32-cgcc1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.rv32-cgcc1520.exe=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc
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-cgcctrunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc 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) compiler.rv32-cgcctrunk.semver=(trunk)
compiler.rv32-cgcctrunk.isNightly=true compiler.rv32-cgcctrunk.isNightly=true
@@ -3712,63 +3843,6 @@ compiler.cesp32s3g20241119.exe=/opt/compiler-explorer/xtensa/xtensa-esp-elf-14.2
compiler.cesp32s3g20241119.objdumper=/opt/compiler-explorer/xtensa/xtensa-esp-elf-14.2.0_20241119/bin/xtensa-esp32s3-elf-objdump compiler.cesp32s3g20241119.objdumper=/opt/compiler-explorer/xtensa/xtensa-esp-elf-14.2.0_20241119/bin/xtensa-esp32s3-elf-objdump
compiler.cesp32s3g20241119.name=Xtensa ESP32-S3 gcc 14.2.0 (20241119) compiler.cesp32s3g20241119.name=Xtensa ESP32-S3 gcc 14.2.0 (20241119)
################################
# Windows Compilers
group.ccl.compilers=&ccl19:&ccl19_2015_u3:&ccl_new
group.ccl.compilerType=wine-vc
group.ccl.includeFlag=/I
group.ccl.versionFlag=/?
group.ccl.versionRe=^Microsoft \(R\) C/C\+\+.*$
group.ccl.isSemVer=true
group.ccl.supportsBinary=false
group.ccl.objdumper=
group.ccl.compilerCategories=msvc
group.ccl.instructionSet=amd64
group.ccl19.groupName=WINE MSVC 2017
group.ccl19.compilers=ccl19_64:ccl19_32:ccl19_arm
group.ccl19.options=/I/opt/compiler-explorer/windows/10.0.10240.0/ucrt/ /I/opt/compiler-explorer/windows/19.10.25017/lib/native/include/ /TC
compiler.ccl19_64.exe=/opt/compiler-explorer/windows/19.10.25017/lib/native/bin/amd64/cl.exe
compiler.ccl19_64.name=x64 msvc v19.10 (WINE)
compiler.ccl19_64.semver=19.10.25017
compiler.ccl19_32.exe=/opt/compiler-explorer/windows/19.10.25017/lib/native/bin/amd64_x86/cl.exe
compiler.ccl19_32.name=x86 msvc v19.10 (WINE)
compiler.ccl19_32.semver=19.10.25017
compiler.ccl19_arm.exe=/opt/compiler-explorer/windows/19.10.25017/lib/native/bin/amd64_arm/cl.exe
compiler.ccl19_arm.name=ARM msvc v19.10 (WINE)
compiler.ccl19_arm.semver=19.10.25017
compiler.ccl19_arm.instructionSet=arm32
group.ccl19_2015_u3.groupName=WINE MSVC 2015
group.ccl19_2015_u3.compilers=ccl19_2015_u3_64:ccl19_2015_u3_32:ccl19_2015_u3_arm
group.ccl19_2015_u3.options=/I/opt/compiler-explorer/windows/10.0.10240.0/ucrt/ /I/opt/compiler-explorer/windows/19.00.24210/include/ /TC
compiler.ccl19_2015_u3_64.exe=/opt/compiler-explorer/windows/19.00.24210/bin/amd64/cl.exe
compiler.ccl19_2015_u3_64.name=x64 msvc v19.0 (WINE)
compiler.ccl19_2015_u3_64.semver=19.00.24210
compiler.ccl19_2015_u3_32.exe=/opt/compiler-explorer/windows/19.00.24210/bin/amd64_x86/cl.exe
compiler.ccl19_2015_u3_32.name=x86 msvc v19.0 (WINE)
compiler.ccl19_2015_u3_32.semver=19.00.24210
compiler.ccl19_2015_u3_arm.exe=/opt/compiler-explorer/windows/19.00.24210/bin/amd64_arm/cl.exe
compiler.ccl19_2015_u3_arm.name=ARM msvc v19.0 (WINE)
compiler.ccl19_2015_u3_arm.semver=19.00.24210
compiler.ccl19_2015_u3_arm.instructionSet=arm32
group.ccl_new.groupName=WINE MSVC 2017
group.ccl_new.compilers=ccl_new_64:ccl_new_32:ccl_new_arm32:ccl_new_arm64
group.ccl_new.options=/I/opt/compiler-explorer/windows/10.0.10240.0/ucrt/ /I/opt/compiler-explorer/windows/19.14.26423/include/ /TC
compiler.ccl_new_64.exe=/opt/compiler-explorer/windows/19.14.26423/bin/Hostx64/x64/cl.exe
compiler.ccl_new_64.name=x64 msvc v19.14 (WINE)
compiler.ccl_new_64.semver=19.14.26423
compiler.ccl_new_32.exe=/opt/compiler-explorer/windows/19.14.26423/bin/Hostx64/x86/cl.exe
compiler.ccl_new_32.name=x86 msvc v19.14 (WINE)
compiler.ccl_new_32.semver=19.14.26423
compiler.ccl_new_arm32.exe=/opt/compiler-explorer/windows/19.14.26423/bin/Hostx64/arm/cl.exe
compiler.ccl_new_arm32.name=ARM msvc v19.14 (WINE)
compiler.ccl_new_arm32.semver=19.14.26423
compiler.ccl_new_arm32.instructionSet=arm32
compiler.ccl_new_arm64.exe=/opt/compiler-explorer/windows/19.14.26423/bin/Hostx64/arm64/cl.exe
compiler.ccl_new_arm64.name=ARM64 msvc v19.14 (WINE)
compiler.ccl_new_arm64.semver=19.14.26423
compiler.ccl_new_arm64.instructionSet=aarch64
################################# #################################
# cc65 compilers # cc65 compilers

View File

@@ -49,7 +49,7 @@ compiler.cmingw64_ucrt_clang_1406.semver=14.0.6
compiler.cmingw64_ucrt_clang_1403.exe=Z:/compilers/mingw-w64-11.3.0-14.0.3-10.0.0-ucrt-r3/bin/clang.exe compiler.cmingw64_ucrt_clang_1403.exe=Z:/compilers/mingw-w64-11.3.0-14.0.3-10.0.0-ucrt-r3/bin/clang.exe
compiler.cmingw64_ucrt_clang_1403.semver=14.0.3 compiler.cmingw64_ucrt_clang_1403.semver=14.0.3
group.vc.compilers=&vc_x86:&vc_x64:&vc_arm64 group.vc.compilers=&vc_x86:&vc_x64:&vc_arm64:&vc_arm32
group.vc.options=/EHsc /utf-8 group.vc.options=/EHsc /utf-8
group.vc.compilerType=win32-vc group.vc.compilerType=win32-vc
group.vc.needsMulti=false group.vc.needsMulti=false
@@ -66,22 +66,125 @@ group.vc.licenseLink=https://visualstudio.microsoft.com/license-terms/vs2022-ga-
group.vc.licensePreamble=The use of this compiler is only permitted for internal evaluation purposes and is otherwise governed by the MSVC License Agreement. group.vc.licensePreamble=The use of this compiler is only permitted for internal evaluation purposes and is otherwise governed by the MSVC License Agreement.
group.vc.licenseInvasive=true group.vc.licenseInvasive=true
group.vc_x86.compilers=vc_v19_latest_x86:vc_v19_24_VS16_4_x86:vc_v19_25_VS16_5_x86:vc_v19_27_VS16_7_x86:vc_v19_28_VS16_8_x86:vc_v19_28_VS16_9_x86:vc_v19_29_VS16_10_x86:vc_v19_29_VS16_11_x86:vc_v19_20_VS16_0_x86:vc_v19_21_VS16_1_x86:vc_v19_22_VS16_2_x86:vc_v19_23_VS16_3_x86:vc_v19_26_VS16_6_x86:vc_v19_30_VS17_0_x86:vc_v19_31_VS17_1_x86:vc_v19_33_VS17_3_x86:vc_v19_35_VS17_5_x86:vc_v19_37_VS17_7_x86:vc_v19_32_VS17_2_x86:vc_v19_34_VS17_4_x86:vc_v19_36_VS17_6_x86:vc_v19_38_VS17_8_x86:vc_v19_39_VS17_9_x86:vc_v19_40_VS17_10_x86:vc_v19_41_VS17_11_x86:vc_v19_42_VS17_12_x86:vc_v19_43_VS17_13_x86 group.vc_x86.compilers=vc_v19_latest_x86:ccl19_2015_u3_32_exwine:ccl19_32_exwine:ccl_new_32_exwine:vc_v19_24_VS16_4_x86:vc_v19_25_VS16_5_x86:vc_v19_27_VS16_7_x86:vc_v19_28_VS16_8_x86:vc_v19_28_VS16_9_x86:vc_v19_29_VS16_10_x86:vc_v19_29_VS16_11_x86:vc_v19_20_VS16_0_x86:vc_v19_21_VS16_1_x86:vc_v19_22_VS16_2_x86:vc_v19_23_VS16_3_x86:vc_v19_26_VS16_6_x86:vc_v19_30_VS17_0_x86:vc_v19_31_VS17_1_x86:vc_v19_33_VS17_3_x86:vc_v19_35_VS17_5_x86:vc_v19_37_VS17_7_x86:vc_v19_32_VS17_2_x86:vc_v19_34_VS17_4_x86:vc_v19_36_VS17_6_x86:vc_v19_38_VS17_8_x86:vc_v19_39_VS17_9_x86:vc_v19_40_VS17_10_x86:vc_v19_41_VS17_11_x86:vc_v19_42_VS17_12_x86:vc_v19_43_VS17_13_x86
group.vc_x86.groupName=MSVC x86 group.vc_x86.groupName=MSVC x86
group.vc_x86.supportsBinary=true group.vc_x86.supportsBinary=true
group.vc_x86.supportsExecute=true group.vc_x86.supportsExecute=true
group.vc_x64.compilers=vc_v19_latest_x64:vc_v19_24_VS16_4_x64:vc_v19_25_VS16_5_x64:vc_v19_27_VS16_7_x64:vc_v19_28_VS16_8_x64:vc_v19_28_VS16_9_x64:vc_v19_29_VS16_10_x64:vc_v19_29_VS16_11_x64:vc_v19_20_VS16_0_x64:vc_v19_21_VS16_1_x64:vc_v19_22_VS16_2_x64:vc_v19_23_VS16_3_x64:vc_v19_26_VS16_6_x64:vc_v19_30_VS17_0_x64:vc_v19_31_VS17_1_x64:vc_v19_33_VS17_3_x64:vc_v19_35_VS17_5_x64:vc_v19_37_VS17_7_x64:vc_v19_32_VS17_2_x64:vc_v19_34_VS17_4_x64:vc_v19_36_VS17_6_x64:vc_v19_38_VS17_8_x64:vc_v19_39_VS17_9_x64:vc_v19_40_VS17_10_x64:vc_v19_41_VS17_11_x64:vc_v19_42_VS17_12_x64:vc_v19_43_VS17_13_x64 group.vc_x64.compilers=vc_v19_latest_x64:ccl19_2015_u3_64_exwine:ccl19_64_exwine:ccl_new_64_exwine:vc_v19_24_VS16_4_x64:vc_v19_25_VS16_5_x64:vc_v19_27_VS16_7_x64:vc_v19_28_VS16_8_x64:vc_v19_28_VS16_9_x64:vc_v19_29_VS16_10_x64:vc_v19_29_VS16_11_x64:vc_v19_20_VS16_0_x64:vc_v19_21_VS16_1_x64:vc_v19_22_VS16_2_x64:vc_v19_23_VS16_3_x64:vc_v19_26_VS16_6_x64:vc_v19_30_VS17_0_x64:vc_v19_31_VS17_1_x64:vc_v19_33_VS17_3_x64:vc_v19_35_VS17_5_x64:vc_v19_37_VS17_7_x64:vc_v19_32_VS17_2_x64:vc_v19_34_VS17_4_x64:vc_v19_36_VS17_6_x64:vc_v19_38_VS17_8_x64:vc_v19_39_VS17_9_x64:vc_v19_40_VS17_10_x64:vc_v19_41_VS17_11_x64:vc_v19_42_VS17_12_x64:vc_v19_43_VS17_13_x64
group.vc_x64.groupName=MSVC x64 group.vc_x64.groupName=MSVC x64
group.vc_x64.supportsBinary=true group.vc_x64.supportsBinary=true
group.vc_x64.supportsExecute=true group.vc_x64.supportsExecute=true
group.vc_arm64.compilers=vc_v19_latest_arm64:vc_v19_28_VS16_9_arm64:vc_v19_29_VS16_10_arm64:vc_v19_29_VS16_11_arm64:vc_v19_25_VS16_5_arm64:vc_v19_27_VS16_7_arm64:vc_v19_24_VS16_4_arm64:vc_v19_28_VS16_8_arm64:vc_v19_20_VS16_0_arm64:vc_v19_21_VS16_1_arm64:vc_v19_22_VS16_2_arm64:vc_v19_23_VS16_3_arm64:vc_v19_26_VS16_6_arm64:vc_v19_30_VS17_0_arm64:vc_v19_31_VS17_1_arm64:vc_v19_33_VS17_3_arm64:vc_v19_35_VS17_5_arm64:vc_v19_37_VS17_7_arm64:vc_v19_32_VS17_2_arm64:vc_v19_34_VS17_4_arm64:vc_v19_36_VS17_6_arm64:vc_v19_38_VS17_8_arm64:vc_v19_39_VS17_9_arm64:vc_v19_40_VS17_10_arm64:vc_v19_41_VS17_11_arm64:vc_v19_42_VS17_12_arm64:vc_v19_43_VS17_13_arm64 group.vc_arm64.compilers=vc_v19_latest_arm64:ccl_new_arm64_exwine:vc_v19_28_VS16_9_arm64:vc_v19_29_VS16_10_arm64:vc_v19_29_VS16_11_arm64:vc_v19_25_VS16_5_arm64:vc_v19_27_VS16_7_arm64:vc_v19_24_VS16_4_arm64:vc_v19_28_VS16_8_arm64:vc_v19_20_VS16_0_arm64:vc_v19_21_VS16_1_arm64:vc_v19_22_VS16_2_arm64:vc_v19_23_VS16_3_arm64:vc_v19_26_VS16_6_arm64:vc_v19_30_VS17_0_arm64:vc_v19_31_VS17_1_arm64:vc_v19_33_VS17_3_arm64:vc_v19_35_VS17_5_arm64:vc_v19_37_VS17_7_arm64:vc_v19_32_VS17_2_arm64:vc_v19_34_VS17_4_arm64:vc_v19_36_VS17_6_arm64:vc_v19_38_VS17_8_arm64:vc_v19_39_VS17_9_arm64:vc_v19_40_VS17_10_arm64:vc_v19_41_VS17_11_arm64:vc_v19_42_VS17_12_arm64:vc_v19_43_VS17_13_arm64
group.vc_arm64.groupName=MSVC arm64 group.vc_arm64.groupName=MSVC arm64
group.vc_arm64.isSemVer=true group.vc_arm64.isSemVer=true
group.vc_arm64.supportsBinary=false group.vc_arm64.supportsBinary=false
group.vc_arm64.supportsBinaryObject=false group.vc_arm64.supportsBinaryObject=false
group.vc_arm64.supportsExecute=false group.vc_arm64.supportsExecute=false
group.vc_arm64.instructionSet=aarch64
################
# Converted from WINE
group.vc_arm32.compilers=ccl19_arm_exwine:ccl19_2015_u3_arm_exwine:ccl_new_arm32_exwine
group.vc_arm32.groupName=MSVC arm32
group.vc_arm32.supportsBinary=false
group.vc_arm32.supportsBinaryObject=false
group.vc_arm32.supportsExecute=false
group.vc_arm32.instructionSet=arm32
compiler.ccl19_2015_u3_32_exwine.supportsBinary=false
compiler.ccl19_2015_u3_32_exwine.supportsBinaryObject=false
compiler.ccl19_2015_u3_32_exwine.supportsExecute=false
compiler.ccl19_2015_u3_32_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.00.24210/bin/amd64_x86/cl.exe
compiler.ccl19_2015_u3_32_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/lib
compiler.ccl19_2015_u3_32_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.ccl19_2015_u3_32_exwine.name=x86 msvc v19.0 (ex-WINE)
compiler.ccl19_2015_u3_32_exwine.semver=19.00.24210
compiler.ccl19_2015_u3_32_exwine.alias=ccl19_2015_u3_32
compiler.ccl19_2015_u3_64_exwine.supportsBinary=false
compiler.ccl19_2015_u3_64_exwine.supportsBinaryObject=false
compiler.ccl19_2015_u3_64_exwine.supportsExecute=false
compiler.ccl19_2015_u3_64_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.00.24210/bin/amd64/cl.exe
compiler.ccl19_2015_u3_64_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/lib
compiler.ccl19_2015_u3_64_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.ccl19_2015_u3_64_exwine.name=x64 msvc v19.0 (ex-WINE)
compiler.ccl19_2015_u3_64_exwine.semver=19.00.24210
compiler.ccl19_2015_u3_64_exwine.alias=ccl19_2015_u3_64
compiler.ccl19_2015_u3_arm_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.00.24210/bin/amd64_arm/cl.exe
compiler.ccl19_2015_u3_arm_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/lib
compiler.ccl19_2015_u3_arm_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.00.24210/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.ccl19_2015_u3_arm_exwine.name=ARM msvc v19.0 (ex-WINE)
compiler.ccl19_2015_u3_arm_exwine.semver=19.00.24210
compiler.ccl19_2015_u3_arm_exwine.alias=ccl19_2015_u3_arm
compiler.ccl19_32_exwine.supportsBinary=false
compiler.ccl19_32_exwine.supportsBinaryObject=false
compiler.ccl19_32_exwine.supportsExecute=false
compiler.ccl19_32_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/bin/amd64_x86/cl.exe
compiler.ccl19_32_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/lib
compiler.ccl19_32_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.ccl19_32_exwine.name=x86 msvc v19.10 (ex-WINE)
compiler.ccl19_32_exwine.semver=19.10.25017
compiler.ccl19_32_exwine.alias=ccl19_32
compiler.ccl19_64_exwine.supportsBinary=false
compiler.ccl19_64_exwine.supportsBinaryObject=false
compiler.ccl19_64_exwine.supportsExecute=false
compiler.ccl19_64_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/bin/amd64/cl.exe
compiler.ccl19_64_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/lib
compiler.ccl19_64_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.ccl19_64_exwine.name=x64 msvc v19.10 (ex-WINE)
compiler.ccl19_64_exwine.semver=19.10.25017
compiler.ccl19_64_exwine.alias=ccl19_64
compiler.ccl19_arm_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/bin/amd64_arm/cl.exe
compiler.ccl19_arm_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/lib
compiler.ccl19_arm_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.10.25017/lib/native/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.ccl19_arm_exwine.name=ARM msvc v19.10 (ex-WINE)
compiler.ccl19_arm_exwine.semver=19.10.25017
compiler.ccl19_arm_exwine.instructionSet=arm32
compiler.ccl19_arm_exwine.alias=ccl19_arm
compiler.ccl_new_32_exwine.supportsBinary=false
compiler.ccl_new_32_exwine.supportsBinaryObject=false
compiler.ccl_new_32_exwine.supportsExecute=false
compiler.ccl_new_32_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.14.26423/bin/Hostx64/x86/cl.exe
compiler.ccl_new_32_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/lib
compiler.ccl_new_32_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.ccl_new_32_exwine.name=x86 msvc v19.14 (ex-WINE)
compiler.ccl_new_32_exwine.semver=19.14.26423
compiler.ccl_new_32_exwine.alias=ccl_new_32
compiler.ccl_new_64_exwine.supportsBinary=false
compiler.ccl_new_64_exwine.supportsBinaryObject=false
compiler.ccl_new_64_exwine.supportsExecute=false
compiler.ccl_new_64_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.14.26423/bin/Hostx64/x64/cl.exe
compiler.ccl_new_64_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/lib
compiler.ccl_new_64_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.ccl_new_64_exwine.name=x64 msvc v19.14 (ex-WINE)
compiler.ccl_new_64_exwine.semver=19.14.26423
compiler.ccl_new_64_exwine.alias=ccl_new_64
compiler.ccl_new_arm32_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.14.26423/bin/Hostx64/arm/cl.exe
compiler.ccl_new_arm32_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/lib
compiler.ccl_new_arm32_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.ccl_new_arm32_exwine.name=ARM msvc v19.14 (ex-WINE)
compiler.ccl_new_arm32_exwine.semver=19.14.26423
compiler.ccl_new_arm32_exwine.instructionSet=arm32
compiler.ccl_new_arm32_exwine.alias=ccl_new_arm32
compiler.ccl_new_arm64_exwine.exe=Z:/compilers/msvc-legacy-from-wine/19.14.26423/bin/Hostx64/arm64/cl.exe
compiler.ccl_new_arm64_exwine.libPath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/lib
compiler.ccl_new_arm64_exwine.includePath=Z:/compilers/msvc-legacy-from-wine/19.14.26423/include;Z:/compilers/msvc-legacy-from-wine/10.0.10240.0/ucrt
compiler.ccl_new_arm64_exwine.name=ARM64 msvc v19.14 (ex-WINE)
compiler.ccl_new_arm64_exwine.semver=19.14.26423
compiler.ccl_new_arm64_exwine.alias=ccl_new_arm64
# end of WINE conversion
################
compiler.vc_v19_20_VS16_0_x86.exe=Z:/compilers/msvc/14.20.27508-14.20.27525.0/bin/Hostx64/x86/cl.exe compiler.vc_v19_20_VS16_0_x86.exe=Z:/compilers/msvc/14.20.27508-14.20.27525.0/bin/Hostx64/x86/cl.exe
compiler.vc_v19_20_VS16_0_x86.libPath=Z:/compilers/msvc/14.20.27508-14.20.27525.0/lib;Z:/compilers/msvc/14.20.27508-14.20.27525.0/lib/x86;Z:/compilers/msvc/14.20.27508-14.20.27525.0/atlmfc/lib/x86;Z:/compilers/msvc/14.20.27508-14.20.27525.0/ifc/x86;Z:/compilers/windows-kits-10/lib/10.0.22621.0/ucrt/x86;Z:/compilers/windows-kits-10/lib/10.0.22621.0/um/x86; compiler.vc_v19_20_VS16_0_x86.libPath=Z:/compilers/msvc/14.20.27508-14.20.27525.0/lib;Z:/compilers/msvc/14.20.27508-14.20.27525.0/lib/x86;Z:/compilers/msvc/14.20.27508-14.20.27525.0/atlmfc/lib/x86;Z:/compilers/msvc/14.20.27508-14.20.27525.0/ifc/x86;Z:/compilers/windows-kits-10/lib/10.0.22621.0/ucrt/x86;Z:/compilers/windows-kits-10/lib/10.0.22621.0/um/x86;

View File

@@ -1,10 +1,10 @@
compilers=&c3c compilers=&c3c
compilerType=c3c compilerType=c3c
defaultCompiler=c3c072 defaultCompiler=c3c074
supportsBinary=false supportsBinary=false
supportsBinaryObject=false supportsBinaryObject=false
supportsExecute=false supportsExecute=false
group.c3c.compilers=c3c04:c3c050:c3c055:c3c060:c3c061:c3c062:c3c063:c3c064:c3c065:c3c066:c3c067:c3c068:c3c070:c3c071:c3c072 group.c3c.compilers=c3c04:c3c050:c3c055:c3c060:c3c061:c3c062:c3c063:c3c064:c3c065:c3c066:c3c067:c3c068:c3c070:c3c071:c3c072:c3c073:c3c074
group.c3c.isSemVer=true group.c3c.isSemVer=true
group.c3c.baseName=c3 group.c3c.baseName=c3
@@ -53,3 +53,9 @@ compiler.c3c071.exe=/opt/compiler-explorer/c3-0.7.1/c3c
compiler.c3c072.semver=0.7.2 compiler.c3c072.semver=0.7.2
compiler.c3c072.exe=/opt/compiler-explorer/c3-0.7.2/c3c compiler.c3c072.exe=/opt/compiler-explorer/c3-0.7.2/c3c
compiler.c3c073.semver=0.7.3
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

View File

@@ -1,6 +1,6 @@
compilers=&gnucobol:&gcccobol compilers=&gnucobol:&gcccobol
defaultCompiler=gnucobol32 defaultCompiler=gnucobol32
objdumper=/opt/compiler-explorer/gcc-13.1.0/bin/objdump objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
group.gnucobol.groupName=GnuCOBOL group.gnucobol.groupName=GnuCOBOL
group.gnucobol.compilers=gnucobol32:gnucobol32rc2:gnucobol31:gnucobol22:gnucobol11 group.gnucobol.compilers=gnucobol32:gnucobol32rc2:gnucobol31:gnucobol22:gnucobol11
@@ -26,7 +26,7 @@ compiler.gnucobol11.version=1.1
group.gcccobol.compilerType=gcccobol group.gcccobol.compilerType=gcccobol
group.gcccobol.groupName=GCC group.gcccobol.groupName=GCC
group.gcccobol.compilers=&gcccobolassert:gcccobolsnapshot:gcccobol151:gcccoboltrunk group.gcccobol.compilers=&gcccobolassert:gcccobolsnapshot:gcccobol151:gcccobol152:gcccoboltrunk
group.gcccobol.unwiseOptions=-march=native group.gcccobol.unwiseOptions=-march=native
group.gcccobol.isSemVer=true group.gcccobol.isSemVer=true
group.gcccobol.baseName=GCC group.gcccobol.baseName=GCC
@@ -41,12 +41,18 @@ compiler.gcccobolsnapshot.semver=(cobol+master)
compiler.gcccobol151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcobol compiler.gcccobol151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcobol
compiler.gcccobol151.semver=15.1.0 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.gcccoboltrunk.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcobol compiler.gcccoboltrunk.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcobol
compiler.gcccoboltrunk.semver=(GCC master) compiler.gcccoboltrunk.semver=(GCC master)
## GCC (from upstream GCC, not GCCRS github) x86 build with "assertions" (--enable-checking=XXX) ## GCC (from upstream GCC, not GCCRS github) x86 build with "assertions" (--enable-checking=XXX)
group.gcccobolassert.compilers=gcccobol151assert group.gcccobolassert.compilers=gcccobol151assert:gcccobol152assert
group.gcccobolassert.groupName=x86-64 GCC (assertions) group.gcccobolassert.groupName=x86-64 GCC (assertions)
compiler.gcccobol151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcobol compiler.gcccobol151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcobol
compiler.gcccobol151assert.semver=15.1.0 (GCC assertions) 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)

View File

@@ -3,3 +3,6 @@ httpRoot=/beta
storageSolution=s3 storageSolution=s3
motdUrl=/motd/motd-beta.json motdUrl=/motd/motd-beta.json
sentryEnvironment=beta sentryEnvironment=beta
# Claude Explain API endpoint, for beta
explainApiEndpoint=https://api.compiler-explorer.com/explain

View File

@@ -1,7 +1,7 @@
compilers=&gdc:&ldc:&dmd:&gdccross compilers=&gdc:&ldc:&dmd:&gdccross
defaultCompiler=ldc1_40 defaultCompiler=ldc1_40
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: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:gdctrunk
group.gdc.groupName=GDC x86-64 group.gdc.groupName=GDC x86-64
group.gdc.includeFlag=-isystem group.gdc.includeFlag=-isystem
group.gdc.isSemVer=true group.gdc.isSemVer=true
@@ -64,6 +64,8 @@ compiler.gdc143.exe=/opt/compiler-explorer/gcc-14.3.0/bin/gdc
compiler.gdc143.semver=14.3 compiler.gdc143.semver=14.3
compiler.gdc151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gdc compiler.gdc151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gdc
compiler.gdc151.semver=15.1 compiler.gdc151.semver=15.1
compiler.gdc152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gdc
compiler.gdc152.semver=15.2
compiler.gdctrunk.exe=/opt/compiler-explorer/gcc-snapshot/bin/gdc compiler.gdctrunk.exe=/opt/compiler-explorer/gcc-snapshot/bin/gdc
compiler.gdctrunk.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump compiler.gdctrunk.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
@@ -71,7 +73,7 @@ compiler.gdctrunk.semver=(trunk)
compiler.gdctrunk.isNightly=true compiler.gdctrunk.isNightly=true
## GDC x86 build with "assertions" (--enable-checking=XXX) ## 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 group.gdcassert.compilers=gdc105assert:gdc111assert:gdc113assert:gdc114assert:gdc121assert:gdc122assert:gdc123assert:gdc124assert:gdc125assert:gdc131assert:gdc132assert:gdc133assert:gdc134assert:gdc141assert:gdc142assert:gdc143assert:gdc151assert:gdc152assert
group.gdcassert.groupName=GDC x86-64 (assertions) group.gdcassert.groupName=GDC x86-64 (assertions)
compiler.gdc105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/gdc compiler.gdc105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/gdc
@@ -108,6 +110,8 @@ compiler.gdc143assert.exe=/opt/compiler-explorer/gcc-assertions-14.3.0/bin/gdc
compiler.gdc143assert.semver=14.3 (assertions) compiler.gdc143assert.semver=14.3 (assertions)
compiler.gdc151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gdc compiler.gdc151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gdc
compiler.gdc151assert.semver=15.1 (assertions) 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)
## CROSS GDC ## CROSS GDC
group.gdccross.compilers=&gdcloongarch64:&gdcs390x:&gdcppc:&gdcppc64:&gdcppc64le:&gdcmips64:&gdcmips:&gdcmipsel:&gdcarm:&gdcarm64:&gdcriscv:&gdcriscv64:&gdchppa group.gdccross.compilers=&gdcloongarch64:&gdcs390x:&gdcppc:&gdcppc64:&gdcppc64le:&gdcmips64:&gdcmips:&gdcmipsel:&gdcarm:&gdcarm64:&gdcriscv:&gdcriscv64:&gdchppa
@@ -116,7 +120,7 @@ group.gdccross.supportsBinary=true
group.gdccross.supportsBinaryObject=true group.gdccross.supportsBinaryObject=true
### GDC for Loongarch64 ### GDC for Loongarch64
group.gdcloongarch64.compilers=gdcloongarch641410:gdcloongarch641420:gdcloongarch641430:gdcloongarch641510 group.gdcloongarch64.compilers=gdcloongarch641410:gdcloongarch641420:gdcloongarch641430:gdcloongarch641510:gdcloongarch641520
group.gdcloongarch64.groupName=GDC loongarch64 group.gdcloongarch64.groupName=GDC loongarch64
group.gdcloongarch64.includeFlag=-isystem group.gdcloongarch64.includeFlag=-isystem
group.gdcloongarch64.isSemVer=true group.gdcloongarch64.isSemVer=true
@@ -142,8 +146,13 @@ compiler.gdcloongarch641510.semver=15.1.0
compiler.gdcloongarch641510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump compiler.gdcloongarch641510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.gdcloongarch641510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt compiler.gdcloongarch641510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
compiler.gdcloongarch641520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-gdc
compiler.gdcloongarch641520.semver=15.2.0
compiler.gdcloongarch641520.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.gdcloongarch641520.demangler=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
### GDC for RISCV32 ### GDC for RISCV32
group.gdcriscv.compilers=gdcriscv32trunk:gdcriscv1220:gdcriscv1230:gdcriscv1240:gdcriscv1250:gdcriscv1310:gdcriscv1320:gdcriscv1330:gdcriscv1340:gdcriscv1410:gdcriscv1420:gdcriscv1430:gdcriscv1510 group.gdcriscv.compilers=gdcriscv32trunk:gdcriscv1220:gdcriscv1230:gdcriscv1240:gdcriscv1250:gdcriscv1310:gdcriscv1320:gdcriscv1330:gdcriscv1340:gdcriscv1410:gdcriscv1420:gdcriscv1430:gdcriscv1510:gdcriscv1520
group.gdcriscv.groupName=GDC riscv group.gdcriscv.groupName=GDC riscv
group.gdcriscv.includeFlag=-isystem group.gdcriscv.includeFlag=-isystem
group.gdcriscv.isSemVer=true group.gdcriscv.isSemVer=true
@@ -209,13 +218,18 @@ compiler.gdcriscv1510.semver=15.1.0
compiler.gdcriscv1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump compiler.gdcriscv1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.gdcriscv1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt compiler.gdcriscv1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.gdcriscv1520.exe=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gdc
compiler.gdcriscv1520.semver=15.2.0
compiler.gdcriscv1520.objdumper=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.gdcriscv1520.demangler=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.gdcriscv32trunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gdc compiler.gdcriscv32trunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gdc
compiler.gdcriscv32trunk.semver=trunk compiler.gdcriscv32trunk.semver=trunk
compiler.gdcriscv32trunk.objdumper=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump compiler.gdcriscv32trunk.objdumper=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.gdcriscv32trunk.demangler=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt compiler.gdcriscv32trunk.demangler=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
### GDC for RISCV64 ### GDC for RISCV64
group.gdcriscv64.compilers=gdcriscv64trunk:gdcriscv641220:gdcriscv641230:gdcriscv641240:gdcriscv641250:gdcriscv641310:gdcriscv641320:gdcriscv641330:gdcriscv641340:gdcriscv641410:gdcriscv641420:gdcriscv641430:gdcriscv641510 group.gdcriscv64.compilers=gdcriscv64trunk:gdcriscv641220:gdcriscv641230:gdcriscv641240:gdcriscv641250:gdcriscv641310:gdcriscv641320:gdcriscv641330:gdcriscv641340:gdcriscv641410:gdcriscv641420:gdcriscv641430:gdcriscv641510:gdcriscv641520
group.gdcriscv64.groupName=GDC riscv64 group.gdcriscv64.groupName=GDC riscv64
group.gdcriscv64.includeFlag=-isystem group.gdcriscv64.includeFlag=-isystem
group.gdcriscv64.isSemVer=true group.gdcriscv64.isSemVer=true
@@ -281,6 +295,11 @@ compiler.gdcriscv641510.semver=15.1.0
compiler.gdcriscv641510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.gdcriscv641510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.gdcriscv641510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt compiler.gdcriscv641510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.gdcriscv641520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gdc
compiler.gdcriscv641520.semver=15.2.0
compiler.gdcriscv641520.objdumper=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.gdcriscv641520.demangler=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.gdcriscv64trunk.exe=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gdc compiler.gdcriscv64trunk.exe=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gdc
compiler.gdcriscv64trunk.semver=trunk compiler.gdcriscv64trunk.semver=trunk
compiler.gdcriscv64trunk.objdumper=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.gdcriscv64trunk.objdumper=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
@@ -288,7 +307,7 @@ compiler.gdcriscv64trunk.demangler=/opt/compiler-explorer/riscv64/gcc-trunk/risc
compiler.gdcriscv64trunk.isNightly=true compiler.gdcriscv64trunk.isNightly=true
### GDC for ARM64 ### GDC for ARM64
group.gdcarm64.compilers=gdcarm641220:gdcarm641230:gdcarm641240:gdcarm641250:gdcarm641310:gdcarm641320:gdcarm641330:gdcarm641340:gdcarm641410:gdcarm641420:gdcarm641430:gdcarm641510 group.gdcarm64.compilers=gdcarm641220:gdcarm641230:gdcarm641240:gdcarm641250:gdcarm641310:gdcarm641320:gdcarm641330:gdcarm641340:gdcarm641410:gdcarm641420:gdcarm641430:gdcarm641510:gdcarm641520
group.gdcarm64.groupName=GDC arm64 group.gdcarm64.groupName=GDC arm64
group.gdcarm64.includeFlag=-isystem group.gdcarm64.includeFlag=-isystem
group.gdcarm64.isSemVer=true group.gdcarm64.isSemVer=true
@@ -354,8 +373,13 @@ compiler.gdcarm641510.semver=15.1.0
compiler.gdcarm641510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.gdcarm641510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.gdcarm641510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.gdcarm641510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.gdcarm641520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gdc
compiler.gdcarm641520.semver=15.2.0
compiler.gdcarm641520.objdumper=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.gdcarm641520.demangler=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
### GDC for ARM 32-bits ### GDC for ARM 32-bits
group.gdcarm.compilers=gdcarm1220:gdcarm1230:gdcarm1240:gdcarm1250:gdcarm1310:gdcarm1320:gdcarm1330:gdcarm1340:gdcarm1410:gdcarm1420:gdcarm1430:gdcarm1510 group.gdcarm.compilers=gdcarm1220:gdcarm1230:gdcarm1240:gdcarm1250:gdcarm1310:gdcarm1320:gdcarm1330:gdcarm1340:gdcarm1410:gdcarm1420:gdcarm1430:gdcarm1510:gdcarm1520
group.gdcarm.groupName=GDC arm group.gdcarm.groupName=GDC arm
group.gdcarm.includeFlag=-isystem group.gdcarm.includeFlag=-isystem
group.gdcarm.isSemVer=true group.gdcarm.isSemVer=true
@@ -421,8 +445,13 @@ compiler.gdcarm1510.semver=15.1.0
compiler.gdcarm1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump compiler.gdcarm1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.gdcarm1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt compiler.gdcarm1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.gdcarm1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gdc
compiler.gdcarm1520.semver=15.2.0
compiler.gdcarm1520.objdumper=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.gdcarm1520.demangler=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
### GDC for s390x ### GDC for s390x
group.gdcs390x.compilers=gdcs390x1210:gdcs390x1220:gdcs390x1230:gdcs390x1310:gdcs390x1320:gdcs390x1410:gdcs390x1330:gdcs390x1240:gdcs390x1420:gdcs390x1510:gdcs390x1430:gdcs390x1340:gdcs390x1250 group.gdcs390x.compilers=gdcs390x1210:gdcs390x1220:gdcs390x1230:gdcs390x1310:gdcs390x1320:gdcs390x1410:gdcs390x1330:gdcs390x1240:gdcs390x1420:gdcs390x1510:gdcs390x1430:gdcs390x1340:gdcs390x1250:gdcs390x1520
group.gdcs390x.groupName=GDC s390x group.gdcs390x.groupName=GDC s390x
group.gdcs390x.includeFlag=-isystem group.gdcs390x.includeFlag=-isystem
group.gdcs390x.isSemVer=true group.gdcs390x.isSemVer=true
@@ -492,8 +521,13 @@ compiler.gdcs390x1510.semver=15.1.0
compiler.gdcs390x1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump compiler.gdcs390x1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.gdcs390x1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt compiler.gdcs390x1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
compiler.gdcs390x1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gdc
compiler.gdcs390x1520.semver=15.2.0
compiler.gdcs390x1520.objdumper=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.gdcs390x1520.demangler=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
### GDC for powerpc ### GDC for powerpc
group.gdcppc.compilers=gdcppc1210:gdcppc1220:gdcppc1230:gdcppc1240:gdcppc1250:gdcppc1310:gdcppc1320:gdcppc1330:gdcppc1340:gdcppc1410:gdcppc1420:gdcppc1430:gdcppc1510 group.gdcppc.compilers=gdcppc1210:gdcppc1220:gdcppc1230:gdcppc1240:gdcppc1250:gdcppc1310:gdcppc1320:gdcppc1330:gdcppc1340:gdcppc1410:gdcppc1420:gdcppc1430:gdcppc1510:gdcppc1520
group.gdcppc.groupName=GDC powerpc group.gdcppc.groupName=GDC powerpc
group.gdcppc.includeFlag=-isystem group.gdcppc.includeFlag=-isystem
group.gdcppc.isSemVer=true group.gdcppc.isSemVer=true
@@ -564,8 +598,13 @@ compiler.gdcppc1510.semver=15.1.0
compiler.gdcppc1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump compiler.gdcppc1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.gdcppc1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt compiler.gdcppc1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
compiler.gdcppc1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gdc
compiler.gdcppc1520.semver=15.2.0
compiler.gdcppc1520.objdumper=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.gdcppc1520.demangler=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
### GDC for powerpc64 ### GDC for powerpc64
group.gdcppc64.compilers=gdcppc64trunk:gdcppc641210:gdcppc641220:gdcppc641230:gdcppc641240:gdcppc641250:gdcppc641310:gdcppc641320:gdcppc641330:gdcppc641340:gdcppc641410:gdcppc641420:gdcppc641430:gdcppc641510 group.gdcppc64.compilers=gdcppc64trunk:gdcppc641210:gdcppc641220:gdcppc641230:gdcppc641240:gdcppc641250:gdcppc641310:gdcppc641320:gdcppc641330:gdcppc641340:gdcppc641410:gdcppc641420:gdcppc641430:gdcppc641510:gdcppc641520
group.gdcppc64.groupName=GDC powerpc64 group.gdcppc64.groupName=GDC powerpc64
group.gdcppc64.includeFlag=-isystem group.gdcppc64.includeFlag=-isystem
group.gdcppc64.isSemVer=true group.gdcppc64.isSemVer=true
@@ -635,13 +674,18 @@ compiler.gdcppc641510.semver=15.1.0
compiler.gdcppc641510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.gdcppc641510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.gdcppc641510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.gdcppc641510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.gdcppc641520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gdc
compiler.gdcppc641520.semver=15.2.0
compiler.gdcppc641520.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.gdcppc641520.demangler=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.gdcppc64trunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gdc compiler.gdcppc64trunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gdc
compiler.gdcppc64trunk.semver=trunk compiler.gdcppc64trunk.semver=trunk
compiler.gdcppc64trunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.gdcppc64trunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.gdcppc64trunk.demangler=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.gdcppc64trunk.demangler=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
### GDC for powerpc64le ### GDC for powerpc64le
group.gdcppc64le.compilers=gdcppc64le1210:gdcppc64le1220:gdcppc64le1230:gdcppc64le1310:gdcppc64le1320:gdcppc64letrunk:gdcppc64le1410:gdcppc64le1330:gdcppc64le1240:gdcppc64le1420:gdcppc64le1510:gdcppc64le1430:gdcppc64le1340:gdcppc64le1250 group.gdcppc64le.compilers=gdcppc64le1210:gdcppc64le1220:gdcppc64le1230:gdcppc64le1310:gdcppc64le1320:gdcppc64letrunk:gdcppc64le1410:gdcppc64le1330:gdcppc64le1240:gdcppc64le1420:gdcppc64le1510:gdcppc64le1430:gdcppc64le1340:gdcppc64le1250:gdcppc64le1520
group.gdcppc64le.groupName=GDC powerpc64le group.gdcppc64le.groupName=GDC powerpc64le
group.gdcppc64le.includeFlag=-isystem group.gdcppc64le.includeFlag=-isystem
group.gdcppc64le.isSemVer=true group.gdcppc64le.isSemVer=true
@@ -711,13 +755,18 @@ compiler.gdcppc64le1510.semver=15.1.0
compiler.gdcppc64le1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.gdcppc64le1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.gdcppc64le1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.gdcppc64le1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.gdcppc64le1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gdc
compiler.gdcppc64le1520.semver=15.2.0
compiler.gdcppc64le1520.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.gdcppc64le1520.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.gdcppc64letrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gdc compiler.gdcppc64letrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gdc
compiler.gdcppc64letrunk.semver=trunk compiler.gdcppc64letrunk.semver=trunk
compiler.gdcppc64letrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.gdcppc64letrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.gdcppc64letrunk.demangler=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.gdcppc64letrunk.demangler=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
### GDC for mips64 ### GDC for mips64
group.gdcmips64.compilers=gdcmips641210:gdcmips641220:gdcmips641230:gdcmips641240:gdcmips641250:gdcmips641310:gdcmips641320:gdcmips641330:gdcmips641340:gdcmips641410:gdcmips641420:gdcmips641430:gdcmips641510 group.gdcmips64.compilers=gdcmips641210:gdcmips641220:gdcmips641230:gdcmips641240:gdcmips641250:gdcmips641310:gdcmips641320:gdcmips641330:gdcmips641340:gdcmips641410:gdcmips641420:gdcmips641430:gdcmips641510:gdcmips641520
group.gdcmips64.groupName=GDC mips64 group.gdcmips64.groupName=GDC mips64
group.gdcmips64.includeFlag=-isystem group.gdcmips64.includeFlag=-isystem
group.gdcmips64.isSemVer=true group.gdcmips64.isSemVer=true
@@ -787,8 +836,13 @@ compiler.gdcmips641510.semver=15.1.0
compiler.gdcmips641510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump compiler.gdcmips641510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.gdcmips641510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt compiler.gdcmips641510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
compiler.gdcmips641520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gdc
compiler.gdcmips641520.semver=15.2.0
compiler.gdcmips641520.objdumper=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.gdcmips641520.demangler=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
### GDC for mips ### GDC for mips
group.gdcmips.compilers=gdcmips1210:gdcmips1220:gdcmips1230:gdcmips1240:gdcmips1250:gdcmips1310:gdcmips1320:gdcmips1330:gdcmips1340:gdcmips1410:gdcmips1420:gdcmips1430:gdcmips1510 group.gdcmips.compilers=gdcmips1210:gdcmips1220:gdcmips1230:gdcmips1240:gdcmips1250:gdcmips1310:gdcmips1320:gdcmips1330:gdcmips1340:gdcmips1410:gdcmips1420:gdcmips1430:gdcmips1510:gdcmips1520
group.gdcmips.groupName=GDC mips group.gdcmips.groupName=GDC mips
group.gdcmips.includeFlag=-isystem group.gdcmips.includeFlag=-isystem
group.gdcmips.isSemVer=true group.gdcmips.isSemVer=true
@@ -858,8 +912,13 @@ compiler.gdcmips1510.semver=15.1.0
compiler.gdcmips1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump compiler.gdcmips1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.gdcmips1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt compiler.gdcmips1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
compiler.gdcmips1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gdc
compiler.gdcmips1520.semver=15.2.0
compiler.gdcmips1520.objdumper=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.gdcmips1520.demangler=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
### GDC for mipsel ### GDC for mipsel
group.gdcmipsel.compilers=gdcmipsel1210:gdcmipsel1220:gdcmipsel1230:gdcmipsel1240:gdcmipsel1250:gdcmipsel1310:gdcmipsel1320:gdcmipsel1330:gdcmipsel1340:gdcmipsel1410:gdcmipsel1420:gdcmipsel1430:gdcmipsel1510 group.gdcmipsel.compilers=gdcmipsel1210:gdcmipsel1220:gdcmipsel1230:gdcmipsel1240:gdcmipsel1250:gdcmipsel1310:gdcmipsel1320:gdcmipsel1330:gdcmipsel1340:gdcmipsel1410:gdcmipsel1420:gdcmipsel1430:gdcmipsel1510:gdcmipsel1520
group.gdcmipsel.groupName=GDC mipsel group.gdcmipsel.groupName=GDC mipsel
group.gdcmipsel.includeFlag=-isystem group.gdcmipsel.includeFlag=-isystem
group.gdcmipsel.isSemVer=true group.gdcmipsel.isSemVer=true
@@ -929,8 +988,13 @@ compiler.gdcmipsel1510.semver=15.1.0
compiler.gdcmipsel1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump compiler.gdcmipsel1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.gdcmipsel1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt compiler.gdcmipsel1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
compiler.gdcmipsel1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gdc
compiler.gdcmipsel1520.semver=15.2.0
compiler.gdcmipsel1520.objdumper=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.gdcmipsel1520.demangler=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
### GDC for HPPA ### GDC for HPPA
group.gdchppa.compilers=gdchppa1420:gdchppa1430:gdchppa1510 group.gdchppa.compilers=gdchppa1420:gdchppa1430:gdchppa1510:gdchppa1520
group.gdchppa.groupName=GDC hppa group.gdchppa.groupName=GDC hppa
group.gdchppa.includeFlag=-isystem group.gdchppa.includeFlag=-isystem
group.gdchppa.isSemVer=true group.gdchppa.isSemVer=true
@@ -951,6 +1015,11 @@ compiler.gdchppa1510.semver=15.1.0
compiler.gdchppa1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump compiler.gdchppa1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.gdchppa1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt compiler.gdchppa1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
compiler.gdchppa1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-gdc
compiler.gdchppa1520.semver=15.2.0
compiler.gdchppa1520.objdumper=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.gdchppa1520.demangler=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
group.ldc.compilers=ldc017:ldc100:ldc110:ldc120:ldc130:ldc140:ldc150:ldc160:ldc170:ldc180:ldc190:ldc1_10:ldc1_11:ldc1_12:ldc1_13:ldc1_14:ldc1_15:ldc1_16:ldc1_17:ldc1_18:ldc1_19:ldc1_20:ldc1_21:ldc1_22:ldc1_23:ldc1_24:ldc1_25:ldc1_26:ldc1_27:ldc1_28:ldc1_29:ldc1_30:ldc1_31:ldc1_32:ldc1_33:ldc1_34:ldc1_35:ldc1_36:ldc1_37:ldc1_38:ldc1_39:ldc1_40:ldcbeta:ldclatestci group.ldc.compilers=ldc017:ldc100:ldc110:ldc120:ldc130:ldc140:ldc150:ldc160:ldc170:ldc180:ldc190:ldc1_10:ldc1_11:ldc1_12:ldc1_13:ldc1_14:ldc1_15:ldc1_16:ldc1_17:ldc1_18:ldc1_19:ldc1_20:ldc1_21:ldc1_22:ldc1_23:ldc1_24:ldc1_25:ldc1_26:ldc1_27:ldc1_28:ldc1_29:ldc1_30:ldc1_31:ldc1_32:ldc1_33:ldc1_34:ldc1_35:ldc1_36:ldc1_37:ldc1_38:ldc1_39:ldc1_40:ldcbeta:ldclatestci
group.ldc.compilerType=ldc group.ldc.compilerType=ldc
group.ldc.isSemVer=true group.ldc.isSemVer=true

View File

@@ -1,5 +1,5 @@
sandboxType=nsjail sandboxType=nsjail
executionType=nsjail executionType=nsjail
wine=/opt/wine-stable/bin/wine64 wine=
wineServer=/opt/wine-stable/bin/wineserver wineServer=
firejail=/usr/local/firejail-0.9.70/bin/firejail firejail=

View File

@@ -2,4 +2,4 @@ sandboxType=nsjail
executionType=nsjail executionType=nsjail
wine= wine=
wineServer= wineServer=
firejail=/usr/local/firejail-0.9.70/bin/firejail firejail=

View File

@@ -1,7 +1,7 @@
compilers=&gfortran_86:&ifort:&ifx:&nvfortran_x86:&cross:&clang_llvmflang:&lfortran compilers=&gfortran_86:&ifort:&ifx:&nvfortran_x86:&cross:&clang_llvmflang:&lfortran
defaultCompiler=gfortran151 defaultCompiler=gfortran152
demangler=/opt/compiler-explorer/gcc-15.1.0/bin/c++filt demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
compilerType=fortran compilerType=fortran
buildenvsetup=ceconan-fortran buildenvsetup=ceconan-fortran
@@ -9,7 +9,7 @@ buildenvsetup.host=https://conan.compiler-explorer.com
############################### ###############################
# GCC (as in GNU Compiler Collection) for x86 # 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: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:gfortransnapshot
group.gfortran_86.groupName=GFORTRAN x86-64 group.gfortran_86.groupName=GFORTRAN x86-64
group.gfortran_86.isSemVer=true group.gfortran_86.isSemVer=true
group.gfortran_86.baseName=x86-64 gfortran group.gfortran_86.baseName=x86-64 gfortran
@@ -88,6 +88,8 @@ compiler.gfortran143.exe=/opt/compiler-explorer/gcc-14.3.0/bin/gfortran
compiler.gfortran143.semver=14.3 compiler.gfortran143.semver=14.3
compiler.gfortran151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gfortran compiler.gfortran151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gfortran
compiler.gfortran151.semver=15.1 compiler.gfortran151.semver=15.1
compiler.gfortran152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gfortran
compiler.gfortran152.semver=15.2
compiler.gfortransnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gfortran compiler.gfortransnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gfortran
compiler.gfortransnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.gfortransnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -96,7 +98,7 @@ compiler.gfortransnapshot.semver=(trunk)
compiler.gfortransnapshot.isNightly=true compiler.gfortransnapshot.isNightly=true
## GFORTRAN x86 build with "assertions" (--enable-checking=XXX) ## 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 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.groupName=GFORTRAN x86-64 (assertions) group.gfortranassert.groupName=GFORTRAN x86-64 (assertions)
group.gfortranassert.compilerCategories=gfortran group.gfortranassert.compilerCategories=gfortran
@@ -140,6 +142,8 @@ compiler.gfortran143assert.exe=/opt/compiler-explorer/gcc-assertions-14.3.0/bin/
compiler.gfortran143assert.semver=14.3 (assertions) compiler.gfortran143assert.semver=14.3 (assertions)
compiler.gfortran151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gfortran compiler.gfortran151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gfortran
compiler.gfortran151assert.semver=15.1 (assertions) 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)
############################### ###############################
# Intel Parallel Studio XE for x86 # Intel Parallel Studio XE for x86
@@ -388,7 +392,7 @@ compiler.ftricoreg1130.demangler=/opt/compiler-explorer/tricore/gcc-11.3.0/trico
############################### ###############################
# GCC for HPPA # GCC for HPPA
group.gcchppa.compilers=fhppag1420:fhppag1430:fhppag1510 group.gcchppa.compilers=fhppag1420:fhppag1430:fhppag1510:fhppag1520
group.gcchppa.groupName=HPPA gfortran group.gcchppa.groupName=HPPA gfortran
group.gcchppa.baseName=HPPA gfortran group.gcchppa.baseName=HPPA gfortran
group.gcchppa.supportsBinary=true group.gcchppa.supportsBinary=true
@@ -409,9 +413,14 @@ compiler.fhppag1510.semver=15.1.0
compiler.fhppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump compiler.fhppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.fhppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt compiler.fhppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
compiler.fhppag1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-gfortran
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
############################### ###############################
# GCC for SPARC # GCC for SPARC
group.gccsparc.compilers=fsparcg1220:fsparcg1230:fsparcg1240:fsparcg1250:fsparcg1310:fsparcg1320:fsparcg1330:fsparcg1340:fsparcg1410:fsparcg1420:fsparcg1430:fsparcg1510 group.gccsparc.compilers=fsparcg1220:fsparcg1230:fsparcg1240:fsparcg1250:fsparcg1310:fsparcg1320:fsparcg1330:fsparcg1340:fsparcg1410:fsparcg1420:fsparcg1430:fsparcg1510:fsparcg1520
group.gccsparc.groupName=SPARC gfortran group.gccsparc.groupName=SPARC gfortran
group.gccsparc.baseName=SPARC gfortran group.gccsparc.baseName=SPARC gfortran
group.gccsparc.compilerCategories=gfortran group.gccsparc.compilerCategories=gfortran
@@ -476,9 +485,14 @@ compiler.fsparcg1510.semver=15.1.0
compiler.fsparcg1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump compiler.fsparcg1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.fsparcg1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt compiler.fsparcg1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
compiler.fsparcg1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gfortran
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
############################### ###############################
# GCC for SPARC64 # GCC for SPARC64
group.gccsparc64.compilers=fsparc64g1220:fsparc64g1230:fsparc64g1310:fsparc64g1320:fsparc64g1410:fsparc64g1330:fsparc64g1240:fsparc64g1420:fsparc64g1510:fsparc64g1430:fsparc64g1340:fsparc64g1250 group.gccsparc64.compilers=fsparc64g1220:fsparc64g1230:fsparc64g1310:fsparc64g1320:fsparc64g1410:fsparc64g1330:fsparc64g1240:fsparc64g1420:fsparc64g1510:fsparc64g1430:fsparc64g1340:fsparc64g1250:fsparc64g1520
group.gccsparc64.groupName=SPARC64 gfortran group.gccsparc64.groupName=SPARC64 gfortran
group.gccsparc64.baseName=SPARC64 gfortran group.gccsparc64.baseName=SPARC64 gfortran
group.gccsparc64.compilerCategories=gfortran group.gccsparc64.compilerCategories=gfortran
@@ -543,9 +557,14 @@ compiler.fsparc64g1510.semver=15.1.0
compiler.fsparc64g1510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump compiler.fsparc64g1510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.fsparc64g1510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt compiler.fsparc64g1510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
compiler.fsparc64g1520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-gfortran
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
############################### ###############################
# GCC for SPARC LEON # GCC for SPARC LEON
group.gccsparcleon.compilers=fsparcleong1220:fsparcleong1220-1:fsparcleong1230:fsparcleong1240:fsparcleong1250:fsparcleong1310:fsparcleong1320:fsparcleong1330:fsparcleong1340:fsparcleong1410:fsparcleong1420:fsparcleong1430:fsparcleong1510 group.gccsparcleon.compilers=fsparcleong1220:fsparcleong1220-1:fsparcleong1230:fsparcleong1240:fsparcleong1250:fsparcleong1310:fsparcleong1320:fsparcleong1330:fsparcleong1340:fsparcleong1410:fsparcleong1420:fsparcleong1430:fsparcleong1510:fsparcleong1520
group.gccsparcleon.groupName=SPARC LEON gfortran group.gccsparcleon.groupName=SPARC LEON gfortran
group.gccsparcleon.baseName=SPARC LEON gfortran group.gccsparcleon.baseName=SPARC LEON gfortran
group.gccsparcleon.compilerCategories=gfortran group.gccsparcleon.compilerCategories=gfortran
@@ -617,9 +636,14 @@ compiler.fsparcleong1510.semver=15.1.0
compiler.fsparcleong1510.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump compiler.fsparcleong1510.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
compiler.fsparcleong1510.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt compiler.fsparcleong1510.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
compiler.fsparcleong1520.exe=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gfortran
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
############################### ###############################
# GCC for LOONGARCH64 # GCC for LOONGARCH64
group.gccloongarch64.compilers=floongarch64g1220:floongarch64g1230:floongarch64g1310:floongarch64g1320:floongarch64g1410:floongarch64g1330:floongarch64g1240:floongarch64g1420:floongarch64g1510:floongarch64g1430:floongarch64g1340:floongarch64g1250 group.gccloongarch64.compilers=floongarch64g1220:floongarch64g1230:floongarch64g1310:floongarch64g1320:floongarch64g1410:floongarch64g1330:floongarch64g1240:floongarch64g1420:floongarch64g1510:floongarch64g1430:floongarch64g1340:floongarch64g1250:floongarch64g1520
group.gccloongarch64.groupName=LOONGARCH64 gfortran group.gccloongarch64.groupName=LOONGARCH64 gfortran
group.gccloongarch64.baseName=LOONGARCH64 gfortran group.gccloongarch64.baseName=LOONGARCH64 gfortran
group.gccloongarch64.compilerCategories=gfortran group.gccloongarch64.compilerCategories=gfortran
@@ -684,9 +708,14 @@ compiler.floongarch64g1510.semver=15.1.0
compiler.floongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump compiler.floongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.floongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt compiler.floongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
compiler.floongarch64g1520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-gfortran
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
############################### ###############################
# GCC for RISCV64 # GCC for RISCV64
group.gccriscv64.compilers=friscv64g1140:friscv64g1220:friscv64g1230:friscv64g1310:friscv64g1320:friscv64g1410:friscv64g1330:friscv64g1240:friscv64g1420:friscv64g1510:friscv64g1430:friscv64g1340:friscv64g1250 group.gccriscv64.compilers=friscv64g1140:friscv64g1220:friscv64g1230:friscv64g1310:friscv64g1320:friscv64g1410:friscv64g1330:friscv64g1240:friscv64g1420:friscv64g1510:friscv64g1430:friscv64g1340:friscv64g1250:friscv64g1520
group.gccriscv64.groupName=RISCV64 gfortran group.gccriscv64.groupName=RISCV64 gfortran
group.gccriscv64.baseName=RISCV64 gfortran group.gccriscv64.baseName=RISCV64 gfortran
group.gccriscv64.compilerCategories=gfortran group.gccriscv64.compilerCategories=gfortran
@@ -756,9 +785,14 @@ compiler.friscv64g1510.semver=15.1.0
compiler.friscv64g1510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.friscv64g1510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.friscv64g1510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt compiler.friscv64g1510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.friscv64g1520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gfortran
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
############################### ###############################
# GCC for RISCV # GCC for RISCV
group.gccriscv.compilers=friscvg1140:friscvg1220:friscvg1230:friscvg1240:friscvg1250:friscvg1310:friscvg1320:friscvg1330:friscvg1340:friscvg1410:friscvg1420:friscvg1430:friscvg1510 group.gccriscv.compilers=friscvg1140:friscvg1220:friscvg1230:friscvg1240:friscvg1250:friscvg1310:friscvg1320:friscvg1330:friscvg1340:friscvg1410:friscvg1420:friscvg1430:friscvg1510:friscvg1520
group.gccriscv.groupName=RISCV (32bit) gfortran group.gccriscv.groupName=RISCV (32bit) gfortran
group.gccriscv.baseName=RISCV (32bit) gfortran group.gccriscv.baseName=RISCV (32bit) gfortran
group.gccriscv.compilerCategories=gfortran group.gccriscv.compilerCategories=gfortran
@@ -828,9 +862,14 @@ compiler.friscvg1510.semver=15.1.0
compiler.friscvg1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump compiler.friscvg1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.friscvg1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt compiler.friscvg1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.friscvg1520.exe=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gfortran
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
############################### ###############################
# GCC for ARM # GCC for ARM
group.gccarm.compilers=farmg640:farmg730:farmg820:farmg1050:farmg1140:farmg1210:farmg1220:farmg1230:farmg1240:farmg1250:farmg1310:farmg1320:farmg1330:farmg1340:farmg1410:farmg1420:farmg1430:farmg1510 group.gccarm.compilers=farmg640:farmg730:farmg820:farmg1050:farmg1140:farmg1210:farmg1220:farmg1230:farmg1240:farmg1250:farmg1310:farmg1320:farmg1330:farmg1340:farmg1410:farmg1420:farmg1430:farmg1510:farmg1520
group.gccarm.groupName=ARM (32bit) gfortran group.gccarm.groupName=ARM (32bit) gfortran
group.gccarm.baseName=ARM (32bit) gfortran group.gccarm.baseName=ARM (32bit) gfortran
group.gccarm.compilerCategories=gfortran group.gccarm.compilerCategories=gfortran
@@ -917,9 +956,14 @@ compiler.farmg1510.semver=15.1.0
compiler.farmg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump compiler.farmg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.farmg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt compiler.farmg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.farmg1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gfortran
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
############################### ###############################
## GCC for s390x ## GCC for s390x
group.gccs390x.compilers=fs390xg1210:fs390xg1220:fs390xg1230:fs390xg1310:fs390xg1320:fs390xg1410:fs390xg1330:fs390xg1240:fs390xg1420:fs390xg1510:fs390xg1430:fs390xg1340:fs390xg1250 group.gccs390x.compilers=fs390xg1210:fs390xg1220:fs390xg1230:fs390xg1310:fs390xg1320:fs390xg1410:fs390xg1330:fs390xg1240:fs390xg1420:fs390xg1510:fs390xg1430:fs390xg1340:fs390xg1250:fs390xg1520
group.gccs390x.groupName=s390x gfortran group.gccs390x.groupName=s390x gfortran
group.gccs390x.baseName=s390x gfortran group.gccs390x.baseName=s390x gfortran
group.gccs390x.compilerCategories=gfortran group.gccs390x.compilerCategories=gfortran
@@ -988,6 +1032,11 @@ compiler.fs390xg1510.semver=15.1.0
compiler.fs390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump compiler.fs390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.fs390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt compiler.fs390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
compiler.fs390xg1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gfortran
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
############################### ###############################
# LLVM Flang for X86 # LLVM Flang for X86
group.clang_llvmflang.compilers=flangtrunk:flangtrunk-fc group.clang_llvmflang.compilers=flangtrunk:flangtrunk-fc
@@ -1057,7 +1106,7 @@ compiler.lfortran0520.clang=/opt/compiler-explorer/clang-19.1.0/bin/clang
############################### ###############################
# GCC for ARM 64bit # 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 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.groupName=ARM (AARCH64) GCC group.gccaarch64.groupName=ARM (AARCH64) GCC
group.gccaarch64.baseName=AARCH64 gfortran group.gccaarch64.baseName=AARCH64 gfortran
group.gccaarch64.compilerCategories=gfortran group.gccaarch64.compilerCategories=gfortran
@@ -1154,6 +1203,11 @@ compiler.farm64g1510.semver=15.1.0
compiler.farm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.farm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.farm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.farm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.farm64g1520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gfortran
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
############################### ###############################
# GCC for PPCs # GCC for PPCs
group.ppcs.compilers=&ppc64:&ppc64le:&ppc group.ppcs.compilers=&ppc64:&ppc64le:&ppc
@@ -1163,7 +1217,7 @@ group.ppcs.compilerCategories=gfortran
############################### ###############################
# GCC for PPC # GCC for PPC
group.ppc.compilers=fppcg1210:fppcg1220:fppcg1230:fppcg1240:fppcg1250:fppcg1310:fppcg1320:fppcg1330:fppcg1340:fppcg1410:fppcg1420:fppcg1430:fppcg1510 group.ppc.compilers=fppcg1210:fppcg1220:fppcg1230:fppcg1240:fppcg1250:fppcg1310:fppcg1320:fppcg1330:fppcg1340:fppcg1410:fppcg1420:fppcg1430:fppcg1510:fppcg1520
group.ppc.groupName=POWER gfortran group.ppc.groupName=POWER gfortran
group.ppc.baseName=POWER gfortran group.ppc.baseName=POWER gfortran
group.ppc.compilerCategories=gfortran group.ppc.compilerCategories=gfortran
@@ -1232,9 +1286,14 @@ compiler.fppcg1510.semver=15.1.0
compiler.fppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump compiler.fppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.fppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt compiler.fppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
compiler.fppcg1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gfortran
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
############################### ###############################
# GCC for PPC64 # GCC for PPC64
group.ppc64.compilers=fppc64g8:fppc64g9:fppc64g1210:fppc64g1220:fppc64g1230:fppc64g1310:fppc64g1320:fppc64gtrunk:fppc64g1410:fppc64g1330:fppc64g1240:fppc64g1420:fppc64g1510:fppc64g1430:fppc64g1340:fppc64g1250 group.ppc64.compilers=fppc64g8:fppc64g9:fppc64g1210:fppc64g1220:fppc64g1230:fppc64g1310:fppc64g1320:fppc64gtrunk:fppc64g1410:fppc64g1330:fppc64g1240:fppc64g1420:fppc64g1510:fppc64g1430:fppc64g1340:fppc64g1250:fppc64g1520
group.ppc64.groupName=POWER64 gfortran group.ppc64.groupName=POWER64 gfortran
group.ppc64.baseName=POWER64 gfortran group.ppc64.baseName=POWER64 gfortran
group.ppc64.compilerCategories=gfortran group.ppc64.compilerCategories=gfortran
@@ -1311,6 +1370,11 @@ compiler.fppc64g1510.semver=15.1.0
compiler.fppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.fppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.fppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.fppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.fppc64g1520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gfortran
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.fppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gfortran compiler.fppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gfortran
compiler.fppc64gtrunk.semver=trunk compiler.fppc64gtrunk.semver=trunk
compiler.fppc64gtrunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.fppc64gtrunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
@@ -1318,7 +1382,7 @@ compiler.fppc64gtrunk.demangler=/opt/compiler-explorer/powerpc64/gcc-trunk/power
############################### ###############################
# GCC for PPC64LE # GCC for PPC64LE
group.ppc64le.compilers=fppc64leg8:fppc64leg9:fppc64leg1210:fppc64leg1220:fppc64leg1230:fppc64leg1310:fppc64leg1320:fppc64legtrunk:fppc64leg1410:fppc64leg1330:fppc64leg1240:fppc64leg1420:fppc64leg1510:fppc64leg1430:fppc64leg1340:fppc64leg1250 group.ppc64le.compilers=fppc64leg8:fppc64leg9:fppc64leg1210:fppc64leg1220:fppc64leg1230:fppc64leg1310:fppc64leg1320:fppc64legtrunk:fppc64leg1410:fppc64leg1330:fppc64leg1240:fppc64leg1420:fppc64leg1510:fppc64leg1430:fppc64leg1340:fppc64leg1250:fppc64leg1520
group.ppc64le.groupName=POWER64le gfortran group.ppc64le.groupName=POWER64le gfortran
group.ppc64le.baseName=POWER64le gfortran group.ppc64le.baseName=POWER64le gfortran
group.ppc64le.compilerCategories=gfortran group.ppc64le.compilerCategories=gfortran
@@ -1395,6 +1459,11 @@ compiler.fppc64leg1510.semver=15.1.0
compiler.fppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.fppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.fppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.fppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.fppc64leg1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gfortran
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.fppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gfortran compiler.fppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gfortran
compiler.fppc64legtrunk.semver=trunk compiler.fppc64legtrunk.semver=trunk
compiler.fppc64legtrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.fppc64legtrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
@@ -1439,7 +1508,7 @@ compiler.frv64gtrunk.objdumper=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-
################################ ################################
# GCC for MIPS # GCC for MIPS
group.gccmips.compilers=fmipsg494:fmipsg550:fmipsg950:fmipsg1210:fmipsg1220:fmipsg1230:fmipsg1240:fmipsg1250:fmipsg1310:fmipsg1320:fmipsg1330:fmipsg1340:fmipsg1410:fmipsg1420:fmipsg1430:fmipsg1510 group.gccmips.compilers=fmipsg494:fmipsg550:fmipsg950:fmipsg1210:fmipsg1220:fmipsg1230:fmipsg1240:fmipsg1250:fmipsg1310:fmipsg1320:fmipsg1330:fmipsg1340:fmipsg1410:fmipsg1420:fmipsg1430:fmipsg1510:fmipsg1520
group.gccmips.groupName=MIPS gfortran group.gccmips.groupName=MIPS gfortran
group.gccmips.baseName=MIPS gfortran group.gccmips.baseName=MIPS gfortran
group.gccmips.compilerCategories=gfortran group.gccmips.compilerCategories=gfortran
@@ -1523,9 +1592,14 @@ compiler.fmipsg1510.semver=15.1.0
compiler.fmipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump compiler.fmipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.fmipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt compiler.fmipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
compiler.fmipsg1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gfortran
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
################################ ################################
# GCC for MIPS64 # GCC for MIPS64
group.gccmips64.compilers=fmips64g494:fmips64g550:fmips64g950:fmips64g1210:fmips64g1220:fmips64g1230:fmips64g1310:fmips64g1320:fmips64g1410:fmips64g1330:fmips64g1240:fmips64g1420:fmips64g1510:fmips64g1430:fmips64g1340:fmips64g1250 group.gccmips64.compilers=fmips64g494:fmips64g550:fmips64g950:fmips64g1210:fmips64g1220:fmips64g1230:fmips64g1310:fmips64g1320:fmips64g1410:fmips64g1330:fmips64g1240:fmips64g1420:fmips64g1510:fmips64g1430:fmips64g1340:fmips64g1250:fmips64g1520
group.gccmips64.groupName=MIPS64 gfortran group.gccmips64.groupName=MIPS64 gfortran
group.gccmips64.baseName=MIPS64 gfortran group.gccmips64.baseName=MIPS64 gfortran
group.gccmips64.compilerCategories=gfortran group.gccmips64.compilerCategories=gfortran
@@ -1609,9 +1683,14 @@ compiler.fmips64g1510.semver=15.1.0
compiler.fmips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump compiler.fmips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.fmips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt compiler.fmips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
compiler.fmips64g1520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gfortran
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
################################ ################################
# GCC for MIPSEL # GCC for MIPSEL
group.gccmipsel.compilers=fmipselg494:fmipselg550:fmipselg950:fmipselg1210:fmipselg1220:fmipselg1230:fmipselg1240:fmipselg1250:fmipselg1310:fmipselg1320:fmipselg1330:fmipselg1340:fmipselg1410:fmipselg1420:fmipselg1430:fmipselg1510 group.gccmipsel.compilers=fmipselg494:fmipselg550:fmipselg950:fmipselg1210:fmipselg1220:fmipselg1230:fmipselg1240:fmipselg1250:fmipselg1310:fmipselg1320:fmipselg1330:fmipselg1340:fmipselg1410:fmipselg1420:fmipselg1430:fmipselg1510:fmipselg1520
group.gccmipsel.groupName=MIPSel gfortran group.gccmipsel.groupName=MIPSel gfortran
group.gccmipsel.baseName=MIPSel gfortran group.gccmipsel.baseName=MIPSel gfortran
group.gccmipsel.compilerCategories=gfortran group.gccmipsel.compilerCategories=gfortran
@@ -1695,9 +1774,14 @@ compiler.fmipselg1510.semver=15.1.0
compiler.fmipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump compiler.fmipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.fmipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt compiler.fmipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
compiler.fmipselg1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gfortran
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
################################ ################################
# GCC for MIPS64el # GCC for MIPS64el
group.gccmips64el.compilers=fmips64elg494:fmips64elg550:fmips64elg950:fmips64elg1210:fmips64elg1220:fmips64elg1230:fmips64elg1310:fmips64elg1320:fmips64elg1410:fmips64elg1330:fmips64elg1240:fmips64elg1420:fmips64elg1510:fmips64elg1430:fmips64elg1340:fmips64elg1250 group.gccmips64el.compilers=fmips64elg494:fmips64elg550:fmips64elg950:fmips64elg1210:fmips64elg1220:fmips64elg1230:fmips64elg1310:fmips64elg1320:fmips64elg1410:fmips64elg1330:fmips64elg1240:fmips64elg1420:fmips64elg1510:fmips64elg1430:fmips64elg1340:fmips64elg1250:fmips64elg1520
group.gccmips64el.groupName=MIPS64el gfortran group.gccmips64el.groupName=MIPS64el gfortran
group.gccmips64el.baseName=MIPS64el gfortran group.gccmips64el.baseName=MIPS64el gfortran
group.gccmips64el.compilerCategories=gfortran group.gccmips64el.compilerCategories=gfortran
@@ -1781,6 +1865,11 @@ compiler.fmips64elg1510.semver=15.1.0
compiler.fmips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump compiler.fmips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.fmips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt compiler.fmips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
compiler.fmips64elg1520.exe=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gfortran
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
################################# #################################
################################# #################################
# Libraries # Libraries

View File

@@ -1,7 +1,7 @@
compilers=&gimplegcc86:&gimplecross:&wyrm compilers=&gimplegcc86:&gimplecross:&wyrm
defaultCompiler=gimpleg151 defaultCompiler=gimpleg152
demangler=/opt/compiler-explorer/gcc-15.1.0/bin/c++filt demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
needsMulti=false needsMulti=false
compilerType=gimple compilerType=gimple
buildenvsetup=ceconan buildenvsetup=ceconan
@@ -12,7 +12,7 @@ externalparser.exe=/usr/local/bin/asm-parser
############################### ###############################
# GCC for x86 # 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: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:gimplegsnapshot:gimplegstatic-analysis
group.gimplegcc86.groupName=GCC x86-64 group.gimplegcc86.groupName=GCC x86-64
group.gimplegcc86.instructionSet=amd64 group.gimplegcc86.instructionSet=amd64
group.gimplegcc86.isSemVer=true group.gimplegcc86.isSemVer=true
@@ -76,6 +76,8 @@ compiler.gimpleg143.exe=/opt/compiler-explorer/gcc-14.3.0/bin/gcc
compiler.gimpleg143.semver=14.3 compiler.gimpleg143.semver=14.3
compiler.gimpleg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcc compiler.gimpleg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcc
compiler.gimpleg151.semver=15.1 compiler.gimpleg151.semver=15.1
compiler.gimpleg152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
compiler.gimpleg152.semver=15.2
compiler.gimplegsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc compiler.gimplegsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc
compiler.gimplegsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.gimplegsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -92,7 +94,7 @@ compiler.gimplegstatic-analysis.options=-fanalyzer -fdiagnostics-urls=never -fdi
compiler.gimplegstatic-analysis.notification=Experimental static analyzer; see <a href="https://gcc.gnu.org/wiki/DavidMalcolm/StaticAnalyzer" target="_blank" rel="noopener noreferrer">GCC wiki page<sup><small class="fas fa-external-link-alt opens-new-window" title="Opens in a new window"></small></sup></a> compiler.gimplegstatic-analysis.notification=Experimental static analyzer; see <a href="https://gcc.gnu.org/wiki/DavidMalcolm/StaticAnalyzer" target="_blank" rel="noopener noreferrer">GCC wiki page<sup><small class="fas fa-external-link-alt opens-new-window" title="Opens in a new window"></small></sup></a>
## GCC build with "assertions" (--enable-checking=XXX) ## 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 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.groupName=GCC x86-64 (assertions) group.gimplegcc86assert.groupName=GCC x86-64 (assertions)
compiler.gimpleg103assert.exe=/opt/compiler-explorer/gcc-assertions-10.3.0/bin/gcc compiler.gimpleg103assert.exe=/opt/compiler-explorer/gcc-assertions-10.3.0/bin/gcc
@@ -135,10 +137,12 @@ compiler.gimpleg143assert.exe=/opt/compiler-explorer/gcc-assertions-14.3.0/bin/g
compiler.gimpleg143assert.semver=14.3 (assertions) compiler.gimpleg143assert.semver=14.3 (assertions)
compiler.gimpleg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcc compiler.gimpleg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcc
compiler.gimpleg151assert.semver=15.1 (assertions) 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)
################################ ################################
# GCC for AVR # GCC for AVR
group.gimpleavr.compilers=gimpleavrg920:gimpleavrg930:gimpleavrg1030:gimpleavrg1100:gimpleavrg1210:gimpleavrg1220:gimpleavrg1230:gimpleavrg1240:gimpleavrg1250:gimpleavrg1310:gimpleavrg1320:gimpleavrg1330:gimpleavrg1340:gimpleavrg1410:gimpleavrg1420:gimpleavrg1430:gimpleavrg1510 group.gimpleavr.compilers=gimpleavrg920:gimpleavrg930:gimpleavrg1030:gimpleavrg1100:gimpleavrg1210:gimpleavrg1220:gimpleavrg1230:gimpleavrg1240:gimpleavrg1250:gimpleavrg1310:gimpleavrg1320:gimpleavrg1330:gimpleavrg1340:gimpleavrg1410:gimpleavrg1420:gimpleavrg1430:gimpleavrg1510:gimpleavrg1520
group.gimpleavr.groupName=AVR GCC group.gimpleavr.groupName=AVR GCC
group.gimpleavr.baseName=AVR gcc group.gimpleavr.baseName=AVR gcc
group.gimpleavr.isSemVer=true group.gimpleavr.isSemVer=true
@@ -223,6 +227,11 @@ compiler.gimpleavrg1510.semver=15.1.0
compiler.gimpleavrg1510.objdumper=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-objdump compiler.gimpleavrg1510.objdumper=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-objdump
compiler.gimpleavrg1510.demangler=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-c++filt compiler.gimpleavrg1510.demangler=/opt/compiler-explorer/avr/gcc-15.1.0/avr/bin/avr-c++filt
compiler.gimpleavrg1520.exe=/opt/compiler-explorer/avr/gcc-15.2.0/avr/bin/avr-gcc
compiler.gimpleavrg1520.semver=15.2.0
compiler.gimpleavrg1520.objdumper=/opt/compiler-explorer/avr/gcc-15.2.0/avr/bin/avr-objdump
compiler.gimpleavrg1520.demangler=/opt/compiler-explorer/avr/gcc-15.2.0/avr/bin/avr-c++filt
################################ ################################
# GCC for Xtensa ESP32 # GCC for Xtensa ESP32
group.gimplextensaesp32.compilers=gimpleesp32g2022r1:gimpleesp32g20230208:gimpleesp32g20241119 group.gimplextensaesp32.compilers=gimpleesp32g2022r1:gimpleesp32g20230208:gimpleesp32g20241119
@@ -359,7 +368,7 @@ group.gimplemipss.supportsExecute=false
# GCC for all MIPS # GCC for all MIPS
## MIPS ## MIPS
group.gimplemips.compilers=gimplemips930:gimplemips1120:gimplemipsg1210:gimplemipsg1220:gimplemipsg1230:gimplemipsg1240:gimplemipsg1250:gimplemipsg1310:gimplemipsg1320:gimplemipsg1330:gimplemipsg1340:gimplemipsg1410:gimplemipsg1420:gimplemipsg1430:gimplemipsg1510 group.gimplemips.compilers=gimplemips930:gimplemips1120:gimplemipsg1210:gimplemipsg1220:gimplemipsg1230:gimplemipsg1240:gimplemipsg1250:gimplemipsg1310:gimplemipsg1320:gimplemipsg1330:gimplemipsg1340:gimplemipsg1410:gimplemipsg1420:gimplemipsg1430:gimplemipsg1510:gimplemipsg1520
group.gimplemips.groupName=MIPS GCC group.gimplemips.groupName=MIPS GCC
group.gimplemips.baseName=mips gcc group.gimplemips.baseName=mips gcc
@@ -436,9 +445,14 @@ compiler.gimplemipsg1510.semver=15.1.0
compiler.gimplemipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump compiler.gimplemipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.gimplemipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt compiler.gimplemipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
compiler.gimplemipsg1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gcc
compiler.gimplemipsg1520.semver=15.2.0
compiler.gimplemipsg1520.objdumper=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.gimplemipsg1520.demangler=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
## MIPS64 ## MIPS64
group.gimplemips64.groupName=MIPS64 GCC group.gimplemips64.groupName=MIPS64 GCC
group.gimplemips64.compilers=gimplemips64g1210:gimplemips64g1220:gimplemips64g1230:gimplemips64g1240:gimplemips64g1310:gimplemips64g1320:gimplemips64g1330:gimplemips64g1410:gimplemips64g1420:gimplemips64g1510:gimplemips64g1430:gimplemips64g1340:gimplemips64g1250:gimplemips112064 group.gimplemips64.compilers=gimplemips64g1210:gimplemips64g1220:gimplemips64g1230:gimplemips64g1240:gimplemips64g1310:gimplemips64g1320:gimplemips64g1330:gimplemips64g1410:gimplemips64g1420:gimplemips64g1510:gimplemips64g1430:gimplemips64g1340:gimplemips64g1250:gimplemips64g1520:gimplemips112064
group.gimplemips64.baseName=mips64 gcc group.gimplemips64.baseName=mips64 gcc
@@ -510,9 +524,14 @@ compiler.gimplemips64g1510.semver=15.1.0
compiler.gimplemips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump compiler.gimplemips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.gimplemips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt compiler.gimplemips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
compiler.gimplemips64g1520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc
compiler.gimplemips64g1520.semver=15.2.0
compiler.gimplemips64g1520.objdumper=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.gimplemips64g1520.demangler=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
## MIPS EL ## MIPS EL
group.gimplemipsel.groupName=MIPSEL GCC group.gimplemipsel.groupName=MIPSEL GCC
group.gimplemipsel.compilers=gimplemipselg1210:gimplemipselg1220:gimplemipselg1230:gimplemipselg1240:gimplemipselg1250:gimplemipselg1310:gimplemipselg1320:gimplemipselg1330:gimplemipselg1340:gimplemipselg1410:gimplemipselg1420:gimplemipselg1430:gimplemipselg1510 group.gimplemipsel.compilers=gimplemipselg1210:gimplemipselg1220:gimplemipselg1230:gimplemipselg1240:gimplemipselg1250:gimplemipselg1310:gimplemipselg1320:gimplemipselg1330:gimplemipselg1340:gimplemipselg1410:gimplemipselg1420:gimplemipselg1430:gimplemipselg1510:gimplemipselg1520
group.gimplemipsel.baseName=mips (el) gcc group.gimplemipsel.baseName=mips (el) gcc
compiler.gimplemipselg1210.exe=/opt/compiler-explorer/mipsel/gcc-12.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gcc compiler.gimplemipselg1210.exe=/opt/compiler-explorer/mipsel/gcc-12.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gcc
@@ -579,9 +598,14 @@ compiler.gimplemipselg1510.semver=15.1.0
compiler.gimplemipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump compiler.gimplemipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.gimplemipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt compiler.gimplemipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
compiler.gimplemipselg1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gcc
compiler.gimplemipselg1520.semver=15.2.0
compiler.gimplemipselg1520.objdumper=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.gimplemipselg1520.demangler=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
## MIPS64 EL ## MIPS64 EL
group.gimplemips64el.groupName=MIPS64EL GCC group.gimplemips64el.groupName=MIPS64EL GCC
group.gimplemips64el.compilers=gimplemips64elg1210:gimplemips64elg1220:gimplemips64elg1230:gimplemips64elg1240:gimplemips64elg1310:gimplemips64elg1320:gimplemips64elg1330:gimplemips64elg1410:gimplemips64elg1420:gimplemips64elg1510:gimplemips64elg1430:gimplemips64elg1340:gimplemips64elg1250 group.gimplemips64el.compilers=gimplemips64elg1210:gimplemips64elg1220:gimplemips64elg1230:gimplemips64elg1240:gimplemips64elg1310:gimplemips64elg1320:gimplemips64elg1330:gimplemips64elg1410:gimplemips64elg1420:gimplemips64elg1510:gimplemips64elg1430:gimplemips64elg1340:gimplemips64elg1250:gimplemips64elg1520
group.gimplemips64el.baseName=mips64 (el) gcc group.gimplemips64el.baseName=mips64 (el) gcc
compiler.gimplemips64elg1210.exe=/opt/compiler-explorer/mips64el/gcc-12.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gcc compiler.gimplemips64elg1210.exe=/opt/compiler-explorer/mips64el/gcc-12.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gcc
@@ -648,6 +672,11 @@ compiler.gimplemips64elg1510.semver=15.1.0
compiler.gimplemips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump compiler.gimplemips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.gimplemips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt compiler.gimplemips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
compiler.gimplemips64elg1520.exe=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gcc
compiler.gimplemips64elg1520.semver=15.2.0
compiler.gimplemips64elg1520.objdumper=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.gimplemips64elg1520.demangler=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
############################### ###############################
# Cross Compilers # Cross Compilers
group.gimplecross.compilers=&gimpleppcs:&gimplemipss:&gimplemsp:&gimplegccarm:&gimpleavr:&gimplervgcc:&gimplextensaesp32:&gimplextensaesp32s2:&gimplextensaesp32s3:&gimplekalray:&gimples390x:&gimplesh:&gimpleloongarch64:&gimplec6x:&gimplesparc:&gimplesparc64:&gimplesparcleon:&gimplebpf:&gimplevax:&gimplem68k:&gimplehppa:&gimpletricore group.gimplecross.compilers=&gimpleppcs:&gimplemipss:&gimplemsp:&gimplegccarm:&gimpleavr:&gimplervgcc:&gimplextensaesp32:&gimplextensaesp32s2:&gimplextensaesp32s3:&gimplekalray:&gimples390x:&gimplesh:&gimpleloongarch64:&gimplec6x:&gimplesparc:&gimplesparc64:&gimplesparcleon:&gimplebpf:&gimplevax:&gimplem68k:&gimplehppa:&gimpletricore
@@ -676,7 +705,7 @@ compiler.gimpletricoreg1130.demangler=/opt/compiler-explorer/tricore/gcc-11.3.0/
############################### ###############################
# GCC for HPPA # GCC for HPPA
group.gimplehppa.compilers=gimplehppag1420:gimplehppag1430:gimplehppag1510 group.gimplehppa.compilers=gimplehppag1420:gimplehppag1430:gimplehppag1510:gimplehppag1520
group.gimplehppa.baseName=HPPA gcc group.gimplehppa.baseName=HPPA gcc
group.gimplehppa.groupName=HPPA GCC group.gimplehppa.groupName=HPPA GCC
group.gimplehppa.isSemVer=true group.gimplehppa.isSemVer=true
@@ -698,9 +727,14 @@ compiler.gimplehppag1510.semver=15.1.0
compiler.gimplehppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump compiler.gimplehppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.gimplehppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt compiler.gimplehppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
compiler.gimplehppag1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-gcc
compiler.gimplehppag1520.semver=15.2.0
compiler.gimplehppag1520.objdumper=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.gimplehppag1520.demangler=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for BPF # GCC for BPF
group.gimplebpf.compilers=gimplebpfg1310:gimplebpfg1320:gimplebpfg1330:gimplebpfg1340:gimplebpfg1410:gimplebpfg1420:gimplebpfg1430:gimplebpfg1510:gimplebpfgtrunk group.gimplebpf.compilers=gimplebpfg1310:gimplebpfg1320:gimplebpfg1330:gimplebpfg1340:gimplebpfg1410:gimplebpfg1420:gimplebpfg1430:gimplebpfg1510:gimplebpfg1520:gimplebpfgtrunk
group.gimplebpf.demangler=/opt/compiler-explorer/bpf/gcc-trunk/bpf-unknown-none/bin/bpf-unknown-none-c++filt group.gimplebpf.demangler=/opt/compiler-explorer/bpf/gcc-trunk/bpf-unknown-none/bin/bpf-unknown-none-c++filt
group.gimplebpf.baseName=BPF gcc group.gimplebpf.baseName=BPF gcc
group.gimplebpf.groupName=BPF GCC group.gimplebpf.groupName=BPF GCC
@@ -746,6 +780,11 @@ compiler.gimplebpfg1510.semver=15.1.0
compiler.gimplebpfg1510.objdumper=/opt/compiler-explorer/bpf/gcc-15.1.0/bpf-unknown-none/bin/bpf-unknown-objdump compiler.gimplebpfg1510.objdumper=/opt/compiler-explorer/bpf/gcc-15.1.0/bpf-unknown-none/bin/bpf-unknown-objdump
compiler.gimplebpfg1510.demangler=/opt/compiler-explorer/bpf/gcc-15.1.0/bpf-unknown-none/bin/bpf-unknown-none-c++filt compiler.gimplebpfg1510.demangler=/opt/compiler-explorer/bpf/gcc-15.1.0/bpf-unknown-none/bin/bpf-unknown-none-c++filt
compiler.gimplebpfg1520.exe=/opt/compiler-explorer/bpf/gcc-15.2.0/bpf-unknown-none/bin/bpf-unknown-gcc
compiler.gimplebpfg1520.semver=15.2.0
compiler.gimplebpfg1520.objdumper=/opt/compiler-explorer/bpf/gcc-15.2.0/bpf-unknown-none/bin/bpf-unknown-objdump
compiler.gimplebpfg1520.demangler=/opt/compiler-explorer/bpf/gcc-15.2.0/bpf-unknown-none/bin/bpf-unknown-none-c++filt
compiler.gimplebpfgtrunk.exe=/opt/compiler-explorer/bpf/gcc-trunk/bpf-unknown-none/bin/bpf-unknown-gcc compiler.gimplebpfgtrunk.exe=/opt/compiler-explorer/bpf/gcc-trunk/bpf-unknown-none/bin/bpf-unknown-gcc
compiler.gimplebpfgtrunk.semver=trunk compiler.gimplebpfgtrunk.semver=trunk
compiler.gimplebpfgtrunk.isNightly=true compiler.gimplebpfgtrunk.isNightly=true
@@ -759,7 +798,7 @@ group.gimplem68k.compilers=&gimplegccm68k
group.gimplem68k.demangler=/opt/compiler-explorer/m68k/gcc-13.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt group.gimplem68k.demangler=/opt/compiler-explorer/m68k/gcc-13.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt
# GCC for m68k # GCC for m68k
group.gimplegccm68k.compilers=gimplem68kg1310:gimplem68kg1320:gimplem68kg1330:gimplem68kg1410:gimplem68kg1420:gimplem68kg1510:gimplem68kg1430:gimplem68kg1340 group.gimplegccm68k.compilers=gimplem68kg1310:gimplem68kg1320:gimplem68kg1330:gimplem68kg1410:gimplem68kg1420:gimplem68kg1510:gimplem68kg1430:gimplem68kg1340:gimplem68kg1520
group.gimplegccm68k.supportsBinary=true group.gimplegccm68k.supportsBinary=true
group.gimplegccm68k.supportsExecute=false group.gimplegccm68k.supportsExecute=false
group.gimplegccm68k.baseName=M68K gcc group.gimplegccm68k.baseName=M68K gcc
@@ -807,12 +846,17 @@ compiler.gimplem68kg1510.semver=15.1.0
compiler.gimplem68kg1510.objdumper=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump compiler.gimplem68kg1510.objdumper=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump
compiler.gimplem68kg1510.demangler=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt compiler.gimplem68kg1510.demangler=/opt/compiler-explorer/m68k/gcc-15.1.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt
compiler.gimplem68kg1520.exe=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/bin/m68k-unknown-elf-gcc
compiler.gimplem68kg1520.semver=15.2.0
compiler.gimplem68kg1520.objdumper=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/bin/m68k-unknown-elf-objdump
compiler.gimplem68kg1520.demangler=/opt/compiler-explorer/m68k/gcc-15.2.0/m68k-unknown-elf/bin/m68k-unknown-elf-c++filt
############################### ###############################
# Cross for SPARC # Cross for SPARC
group.gimplesparc.compilers=&gimplegccsparc group.gimplesparc.compilers=&gimplegccsparc
# GCC for SPARC # GCC for SPARC
group.gimplegccsparc.compilers=gimplesparcg1220:gimplesparcg1230:gimplesparcg1240:gimplesparcg1250:gimplesparcg1310:gimplesparcg1320:gimplesparcg1330:gimplesparcg1340:gimplesparcg1410:gimplesparcg1420:gimplesparcg1430:gimplesparcg1510 group.gimplegccsparc.compilers=gimplesparcg1220:gimplesparcg1230:gimplesparcg1240:gimplesparcg1250:gimplesparcg1310:gimplesparcg1320:gimplesparcg1330:gimplesparcg1340:gimplesparcg1410:gimplesparcg1420:gimplesparcg1430:gimplesparcg1510:gimplesparcg1520
group.gimplegccsparc.baseName=SPARC gcc group.gimplegccsparc.baseName=SPARC gcc
group.gimplegccsparc.groupName=SPARC GCC group.gimplegccsparc.groupName=SPARC GCC
group.gimplegccsparc.isSemVer=true group.gimplegccsparc.isSemVer=true
@@ -877,12 +921,17 @@ compiler.gimplesparcg1510.semver=15.1.0
compiler.gimplesparcg1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump compiler.gimplesparcg1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.gimplesparcg1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt compiler.gimplesparcg1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
compiler.gimplesparcg1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gcc
compiler.gimplesparcg1520.semver=15.2.0
compiler.gimplesparcg1520.objdumper=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.gimplesparcg1520.demangler=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
############################### ###############################
# Cross for SPARC64 # Cross for SPARC64
group.gimplesparc64.compilers=&gimplegccsparc64 group.gimplesparc64.compilers=&gimplegccsparc64
# GCC for SPARC64 # GCC for SPARC64
group.gimplegccsparc64.compilers=gimplesparc64g1220:gimplesparc64g1230:gimplesparc64g1240:gimplesparc64g1310:gimplesparc64g1320:gimplesparc64g1330:gimplesparc64g1410:gimplesparc64g1420:gimplesparc64g1510:gimplesparc64g1430:gimplesparc64g1340:gimplesparc64g1250 group.gimplegccsparc64.compilers=gimplesparc64g1220:gimplesparc64g1230:gimplesparc64g1240:gimplesparc64g1310:gimplesparc64g1320:gimplesparc64g1330:gimplesparc64g1410:gimplesparc64g1420:gimplesparc64g1510:gimplesparc64g1430:gimplesparc64g1340:gimplesparc64g1250:gimplesparc64g1520
group.gimplegccsparc64.baseName=SPARC64 gcc group.gimplegccsparc64.baseName=SPARC64 gcc
group.gimplegccsparc64.groupName=SPARC64 GCC group.gimplegccsparc64.groupName=SPARC64 GCC
group.gimplegccsparc64.isSemVer=true group.gimplegccsparc64.isSemVer=true
@@ -947,12 +996,17 @@ compiler.gimplesparc64g1510.semver=15.1.0
compiler.gimplesparc64g1510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump compiler.gimplesparc64g1510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.gimplesparc64g1510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt compiler.gimplesparc64g1510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
compiler.gimplesparc64g1520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-gcc
compiler.gimplesparc64g1520.semver=15.2.0
compiler.gimplesparc64g1520.objdumper=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.gimplesparc64g1520.demangler=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
############################### ###############################
# Cross for SPARC-LEON # Cross for SPARC-LEON
group.gimplesparcleon.compilers=&gimplegccsparcleon group.gimplesparcleon.compilers=&gimplegccsparcleon
# GCC for SPARC-LEON # GCC for SPARC-LEON
group.gimplegccsparcleon.compilers=gimplesparcleong1220:gimplesparcleong1220-1:gimplesparcleong1230:gimplesparcleong1240:gimplesparcleong1250:gimplesparcleong1310:gimplesparcleong1320:gimplesparcleong1330:gimplesparcleong1340:gimplesparcleong1410:gimplesparcleong1420:gimplesparcleong1430:gimplesparcleong1510 group.gimplegccsparcleon.compilers=gimplesparcleong1220:gimplesparcleong1220-1:gimplesparcleong1230:gimplesparcleong1240:gimplesparcleong1250:gimplesparcleong1310:gimplesparcleong1320:gimplesparcleong1330:gimplesparcleong1340:gimplesparcleong1410:gimplesparcleong1420:gimplesparcleong1430:gimplesparcleong1510:gimplesparcleong1520
group.gimplegccsparcleon.baseName=SPARC LEON gcc group.gimplegccsparcleon.baseName=SPARC LEON gcc
group.gimplegccsparcleon.groupName=SPARC LEON GCC group.gimplegccsparcleon.groupName=SPARC LEON GCC
group.gimplegccsparcleon.isSemVer=true group.gimplegccsparcleon.isSemVer=true
@@ -1019,6 +1073,11 @@ compiler.gimplesparcleong1510.semver=15.1.0
compiler.gimplesparcleong1510.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump compiler.gimplesparcleong1510.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
compiler.gimplesparcleong1510.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt compiler.gimplesparcleong1510.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
compiler.gimplesparcleong1520.exe=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gcc
compiler.gimplesparcleong1520.semver=15.2.0
compiler.gimplesparcleong1520.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
compiler.gimplesparcleong1520.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
compiler.gimplesparcleong1220-1.exe=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gcc compiler.gimplesparcleong1220-1.exe=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gcc
compiler.gimplesparcleong1220-1.semver=12.2.0 compiler.gimplesparcleong1220-1.semver=12.2.0
compiler.gimplesparcleong1220-1.objdumper=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump compiler.gimplesparcleong1220-1.objdumper=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
@@ -1029,7 +1088,7 @@ compiler.gimplesparcleong1220-1.demangler=/opt/compiler-explorer/sparc-leon/gcc-
group.gimplec6x.compilers=&gimplegccc6x group.gimplec6x.compilers=&gimplegccc6x
# GCC for TI C6x # GCC for TI C6x
group.gimplegccc6x.compilers=gimplec6xg1220:gimplec6xg1230:gimplec6xg1240:gimplec6xg1310:gimplec6xg1320:gimplec6xg1330:gimplec6xg1410:gimplec6xg1420:gimplec6xg1510:gimplec6xg1430:gimplec6xg1340:gimplec6xg1250 group.gimplegccc6x.compilers=gimplec6xg1220:gimplec6xg1230:gimplec6xg1240:gimplec6xg1310:gimplec6xg1320:gimplec6xg1330:gimplec6xg1410:gimplec6xg1420:gimplec6xg1510:gimplec6xg1430:gimplec6xg1340:gimplec6xg1250:gimplec6xg1520
group.gimplegccc6x.baseName=TI C6x gcc group.gimplegccc6x.baseName=TI C6x gcc
group.gimplegccc6x.groupName=TI C6x GCC group.gimplegccc6x.groupName=TI C6x GCC
group.gimplegccc6x.isSemVer=true group.gimplegccc6x.isSemVer=true
@@ -1094,12 +1153,17 @@ compiler.gimplec6xg1510.semver=15.1.0
compiler.gimplec6xg1510.objdumper=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-objdump compiler.gimplec6xg1510.objdumper=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-objdump
compiler.gimplec6xg1510.demangler=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-c++filt compiler.gimplec6xg1510.demangler=/opt/compiler-explorer/c6x/gcc-15.1.0/tic6x-elf/bin/tic6x-elf-c++filt
compiler.gimplec6xg1520.exe=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x-elf-gcc
compiler.gimplec6xg1520.semver=15.2.0
compiler.gimplec6xg1520.objdumper=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x-elf-objdump
compiler.gimplec6xg1520.demangler=/opt/compiler-explorer/c6x/gcc-15.2.0/tic6x-elf/bin/tic6x-elf-c++filt
############################### ###############################
# Cross for loongarch64 # Cross for loongarch64
group.gimpleloongarch64.compilers=&gimplegccloongarch64 group.gimpleloongarch64.compilers=&gimplegccloongarch64
# GCC for loongarch64 # GCC for loongarch64
group.gimplegccloongarch64.compilers=gimpleloongarch64g1220:gimpleloongarch64g1230:gimpleloongarch64g1240:gimpleloongarch64g1310:gimpleloongarch64g1320:gimpleloongarch64g1330:gimpleloongarch64g1410:gimpleloongarch64g1420:gimpleloongarch64g1510:gimpleloongarch64g1430:gimpleloongarch64g1340:gimpleloongarch64g1250 group.gimplegccloongarch64.compilers=gimpleloongarch64g1220:gimpleloongarch64g1230:gimpleloongarch64g1240:gimpleloongarch64g1310:gimpleloongarch64g1320:gimpleloongarch64g1330:gimpleloongarch64g1410:gimpleloongarch64g1420:gimpleloongarch64g1510:gimpleloongarch64g1430:gimpleloongarch64g1340:gimpleloongarch64g1250:gimpleloongarch64g1520
group.gimplegccloongarch64.baseName=loongarch64 gcc group.gimplegccloongarch64.baseName=loongarch64 gcc
group.gimplegccloongarch64.groupName=loongarch64 GCC group.gimplegccloongarch64.groupName=loongarch64 GCC
group.gimplegccloongarch64.isSemVer=true group.gimplegccloongarch64.isSemVer=true
@@ -1164,12 +1228,17 @@ compiler.gimpleloongarch64g1510.semver=15.1.0
compiler.gimpleloongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump compiler.gimpleloongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.gimpleloongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt compiler.gimpleloongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
compiler.gimpleloongarch64g1520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-gcc
compiler.gimpleloongarch64g1520.semver=15.2.0
compiler.gimpleloongarch64g1520.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.gimpleloongarch64g1520.demangler=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
############################### ###############################
# Cross for sh # Cross for sh
group.gimplesh.compilers=&gimplegccsh group.gimplesh.compilers=&gimplegccsh
# GCC for sh # GCC for sh
group.gimplegccsh.compilers=gimpleshg950:gimpleshg1220:gimpleshg1230:gimpleshg1240:gimpleshg1250:gimpleshg1310:gimpleshg1320:gimpleshg1330:gimpleshg1340:gimpleshg1410:gimpleshg1420:gimpleshg1430:gimpleshg1510 group.gimplegccsh.compilers=gimpleshg950:gimpleshg1220:gimpleshg1230:gimpleshg1240:gimpleshg1250:gimpleshg1310:gimpleshg1320:gimpleshg1330:gimpleshg1340:gimpleshg1410:gimpleshg1420:gimpleshg1430:gimpleshg1510:gimpleshg1520
group.gimplegccsh.baseName=sh gcc group.gimplegccsh.baseName=sh gcc
group.gimplegccsh.groupName=sh GCC group.gimplegccsh.groupName=sh GCC
group.gimplegccsh.isSemVer=true group.gimplegccsh.isSemVer=true
@@ -1239,12 +1308,17 @@ compiler.gimpleshg1510.semver=15.1.0
compiler.gimpleshg1510.objdumper=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-objdump compiler.gimpleshg1510.objdumper=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-objdump
compiler.gimpleshg1510.demangler=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt compiler.gimpleshg1510.demangler=/opt/compiler-explorer/sh/gcc-15.1.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt
compiler.gimpleshg1520.exe=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh-unknown-elf-gcc
compiler.gimpleshg1520.semver=15.2.0
compiler.gimpleshg1520.objdumper=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh-unknown-elf-objdump
compiler.gimpleshg1520.demangler=/opt/compiler-explorer/sh/gcc-15.2.0/sh-unknown-elf/bin/sh-unknown-elf-c++filt
############################### ###############################
# Cross for s390x # Cross for s390x
group.gimples390x.compilers=&gimplegccs390x group.gimples390x.compilers=&gimplegccs390x
# GCC for s390x # GCC for s390x
group.gimplegccs390x.compilers=gimplegccs390x112:gimples390xg1210:gimples390xg1220:gimples390xg1230:gimples390xg1240:gimples390xg1310:gimples390xg1320:gimples390xg1330:gimples390xg1410:gimples390xg1420:gimples390xg1510:gimples390xg1430:gimples390xg1340:gimples390xg1250 group.gimplegccs390x.compilers=gimplegccs390x112:gimples390xg1210:gimples390xg1220:gimples390xg1230:gimples390xg1240:gimples390xg1310:gimples390xg1320:gimples390xg1330:gimples390xg1410:gimples390xg1420:gimples390xg1510:gimples390xg1430:gimples390xg1340:gimples390xg1250:gimples390xg1520
group.gimplegccs390x.baseName=s390x gcc group.gimplegccs390x.baseName=s390x gcc
group.gimplegccs390x.groupName=s390x GCC group.gimplegccs390x.groupName=s390x GCC
group.gimplegccs390x.isSemVer=true group.gimplegccs390x.isSemVer=true
@@ -1317,13 +1391,18 @@ compiler.gimples390xg1510.semver=15.1.0
compiler.gimples390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump compiler.gimples390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.gimples390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt compiler.gimples390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
compiler.gimples390xg1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gcc
compiler.gimples390xg1520.semver=15.2.0
compiler.gimples390xg1520.objdumper=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.gimples390xg1520.demangler=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
############################### ###############################
# Cross compilers for PPC # Cross compilers for PPC
group.gimpleppcs.compilers=&gimpleppc:&gimpleppc64:&gimpleppc64le group.gimpleppcs.compilers=&gimpleppc:&gimpleppc64:&gimpleppc64le
group.gimpleppcs.isSemVer=true group.gimpleppcs.isSemVer=true
group.gimpleppcs.instructionSet=powerpc group.gimpleppcs.instructionSet=powerpc
group.gimpleppc.compilers=gimpleppcg1120:gimpleppcg1210:gimpleppcg1220:gimpleppcg1230:gimpleppcg1240:gimpleppcg1250:gimpleppcg1310:gimpleppcg1320:gimpleppcg1330:gimpleppcg1340:gimpleppcg1410:gimpleppcg1420:gimpleppcg1430:gimpleppcg1510 group.gimpleppc.compilers=gimpleppcg1120:gimpleppcg1210:gimpleppcg1220:gimpleppcg1230:gimpleppcg1240:gimpleppcg1250:gimpleppcg1310:gimpleppcg1320:gimpleppcg1330:gimpleppcg1340:gimpleppcg1410:gimpleppcg1420:gimpleppcg1430:gimpleppcg1510:gimpleppcg1520
group.gimpleppc.groupName=POWER group.gimpleppc.groupName=POWER
group.gimpleppc.baseName=power gcc group.gimpleppc.baseName=power gcc
@@ -1395,7 +1474,12 @@ compiler.gimpleppcg1510.semver=15.1.0
compiler.gimpleppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump compiler.gimpleppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.gimpleppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt compiler.gimpleppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
group.gimpleppc64.compilers=gimpleppc64g9:gimpleppc64g1120:gimpleppc64g1210:gimpleppc64g1220:gimpleppc64g1230:gimpleppc64g1240:gimpleppc64g1310:gimpleppc64g1320:gimpleppc64g1330:gimpleppc64g1410:gimpleppc64g1420:gimpleppc64g1510:gimpleppc64g1430:gimpleppc64g1340:gimpleppc64g1250 compiler.gimpleppcg1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gcc
compiler.gimpleppcg1520.semver=15.2.0
compiler.gimpleppcg1520.objdumper=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.gimpleppcg1520.demangler=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
group.gimpleppc64.compilers=gimpleppc64g9:gimpleppc64g1120:gimpleppc64g1210:gimpleppc64g1220:gimpleppc64g1230:gimpleppc64g1240:gimpleppc64g1310:gimpleppc64g1320:gimpleppc64g1330:gimpleppc64g1410:gimpleppc64g1420:gimpleppc64g1510:gimpleppc64g1430:gimpleppc64g1340:gimpleppc64g1250:gimpleppc64g1520
group.gimpleppc64.groupName=POWER64 group.gimpleppc64.groupName=POWER64
group.gimpleppc64.baseName=POWER64 gcc group.gimpleppc64.baseName=POWER64 gcc
@@ -1472,7 +1556,12 @@ compiler.gimpleppc64g1510.semver=15.1.0
compiler.gimpleppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.gimpleppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.gimpleppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.gimpleppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
group.gimpleppc64le.compilers=gimpleppc64leg9:gimpleppc64leg1120:gimpleppc64leg1210:gimpleppc64leg1220:gimpleppc64leg1230:gimpleppc64leg1240:gimpleppc64leg1310:gimpleppc64leg1320:gimpleppc64leg1330:gimpleppc64leg1410:gimpleppc64leg1420:gimpleppc64leg1510:gimpleppc64leg1430:gimpleppc64leg1340:gimpleppc64leg1250 compiler.gimpleppc64g1520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc
compiler.gimpleppc64g1520.semver=15.2.0
compiler.gimpleppc64g1520.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.gimpleppc64g1520.demangler=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
group.gimpleppc64le.compilers=gimpleppc64leg9:gimpleppc64leg1120:gimpleppc64leg1210:gimpleppc64leg1220:gimpleppc64leg1230:gimpleppc64leg1240:gimpleppc64leg1310:gimpleppc64leg1320:gimpleppc64leg1330:gimpleppc64leg1410:gimpleppc64leg1420:gimpleppc64leg1510:gimpleppc64leg1430:gimpleppc64leg1340:gimpleppc64leg1250:gimpleppc64leg1520
group.gimpleppc64le.groupName=POWER64LE GCC group.gimpleppc64le.groupName=POWER64LE GCC
group.gimpleppc64le.baseName=power64le gcc group.gimpleppc64le.baseName=power64le gcc
@@ -1549,10 +1638,15 @@ compiler.gimpleppc64leg1510.semver=15.1.0
compiler.gimpleppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.gimpleppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.gimpleppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.gimpleppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.gimpleppc64leg1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc
compiler.gimpleppc64leg1520.semver=15.2.0
compiler.gimpleppc64leg1520.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.gimpleppc64leg1520.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
################################ ################################
# GCC for MSP # GCC for MSP
group.gimplemsp.compilers=gimplemsp430g1210:gimplemsp430g1220:gimplemsp430g1230:gimplemsp430g1240:gimplemsp430g1310:gimplemsp430g1320:gimplemsp430g1330:gimplemsp430g1410:gimplemsp430g1420:gimplemsp430g1510:gimplemsp430g1430:gimplemsp430g1340:gimplemsp430g1250 group.gimplemsp.compilers=gimplemsp430g1210:gimplemsp430g1220:gimplemsp430g1230:gimplemsp430g1240:gimplemsp430g1310:gimplemsp430g1320:gimplemsp430g1330:gimplemsp430g1410:gimplemsp430g1420:gimplemsp430g1510:gimplemsp430g1430:gimplemsp430g1340:gimplemsp430g1250:gimplemsp430g1520
group.gimplemsp.groupName=MSP GCC group.gimplemsp.groupName=MSP GCC
group.gimplemsp.baseName=MSP430 gcc group.gimplemsp.baseName=MSP430 gcc
group.gimplemsp.isSemVer=true group.gimplemsp.isSemVer=true
@@ -1622,6 +1716,11 @@ compiler.gimplemsp430g1510.semver=15.1.0
compiler.gimplemsp430g1510.objdumper=/opt/compiler-explorer/msp430/gcc-15.1.0/msp430-unknown-elf/bin/msp430-unknown-elf-objdump compiler.gimplemsp430g1510.objdumper=/opt/compiler-explorer/msp430/gcc-15.1.0/msp430-unknown-elf/bin/msp430-unknown-elf-objdump
compiler.gimplemsp430g1510.demangler=/opt/compiler-explorer/msp430/gcc-15.1.0/msp430-unknown-elf/bin/msp430-unknown-elf-c++filt compiler.gimplemsp430g1510.demangler=/opt/compiler-explorer/msp430/gcc-15.1.0/msp430-unknown-elf/bin/msp430-unknown-elf-c++filt
compiler.gimplemsp430g1520.exe=/opt/compiler-explorer/msp430/gcc-15.2.0/msp430-unknown-elf/bin/msp430-unknown-elf-gcc
compiler.gimplemsp430g1520.semver=15.2.0
compiler.gimplemsp430g1520.objdumper=/opt/compiler-explorer/msp430/gcc-15.2.0/msp430-unknown-elf/bin/msp430-unknown-elf-objdump
compiler.gimplemsp430g1520.demangler=/opt/compiler-explorer/msp430/gcc-15.2.0/msp430-unknown-elf/bin/msp430-unknown-elf-c++filt
############################### ###############################
# GCC for ARM # GCC for ARM
@@ -1635,7 +1734,7 @@ group.gimplegccarm.includeFlag=-I
# 32 bit # 32 bit
group.gimplegcc32arm.groupName=Arm 32-bit GCC group.gimplegcc32arm.groupName=Arm 32-bit GCC
group.gimplegcc32arm.baseName=ARM GCC group.gimplegcc32arm.baseName=ARM GCC
group.gimplegcc32arm.compilers=gimplearm921:gimplearm930:gimplearm1020:gimplearm1021:gimplearm1030:gimplearm1031_07:gimplearm1031_10:gimplearmg1050:gimplearm1100:gimplearm1120:gimplearm1121:gimplearm1130:gimplearmg1140:gimplearm1210:gimplearmg1220:gimplearmg1230:gimplearmg1240:gimplearmg1250:gimplearmg1310:gimplearmg1320:gimplearmug1320:gimplearmg1330:gimplearmug1330:gimplearmg1340:gimplearmug1340:gimplearmg1410:gimplearmug1410:gimplearmg1420:gimplearmug1420:gimplearmg1430:gimplearmug1430:gimplearmg1510:gimplearmgtrunk group.gimplegcc32arm.compilers=gimplearm921:gimplearm930:gimplearm1020:gimplearm1021:gimplearm1030:gimplearm1031_07:gimplearm1031_10:gimplearmg1050:gimplearm1100:gimplearm1120:gimplearm1121:gimplearm1130:gimplearmg1140:gimplearm1210:gimplearmg1220:gimplearmg1230:gimplearmg1240:gimplearmg1250:gimplearmg1310:gimplearmg1320:gimplearmug1320:gimplearmg1330:gimplearmug1330:gimplearmg1340:gimplearmug1340:gimplearmg1410:gimplearmug1410:gimplearmg1420:gimplearmug1420:gimplearmg1430:gimplearmug1430:gimplearmg1510:gimplearmug1510:gimplearmg1520:gimplearmug1520:gimplearmgtrunk
group.gimplegcc32arm.isSemVer=true group.gimplegcc32arm.isSemVer=true
group.gimplegcc32arm.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump group.gimplegcc32arm.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
group.gimplegcc32arm.instructionSet=arm32 group.gimplegcc32arm.instructionSet=arm32
@@ -1710,6 +1809,11 @@ compiler.gimplearmg1510.semver=15.1.0
compiler.gimplearmg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump compiler.gimplearmg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.gimplearmg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt compiler.gimplearmg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.gimplearmg1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc
compiler.gimplearmg1520.semver=15.2.0
compiler.gimplearmg1520.objdumper=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.gimplearmg1520.demangler=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.gimplearmug1320.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-13.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-gcc compiler.gimplearmug1320.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-13.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-gcc
compiler.gimplearmug1320.name=ARM GCC 13.2.0 (unknown-eabi) compiler.gimplearmug1320.name=ARM GCC 13.2.0 (unknown-eabi)
compiler.gimplearmug1320.semver=13.2.0 compiler.gimplearmug1320.semver=13.2.0
@@ -1746,6 +1850,18 @@ compiler.gimplearmug1430.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-14
compiler.gimplearmug1430.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-14.3.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt compiler.gimplearmug1430.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-14.3.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
compiler.gimplearmug1430.name=ARM GCC 14.3.0 (unknown-eabi) compiler.gimplearmug1430.name=ARM GCC 14.3.0 (unknown-eabi)
compiler.gimplearmug1510.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-15.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-gcc
compiler.gimplearmug1510.semver=15.1.0
compiler.gimplearmug1510.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-15.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-objdump
compiler.gimplearmug1510.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-15.1.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
compiler.gimplearmug1510.name=ARM GCC 15.1.0 (unknown-eabi)
compiler.gimplearmug1520.exe=/opt/compiler-explorer/arm/gcc-arm-unknown-15.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-gcc
compiler.gimplearmug1520.semver=15.2.0
compiler.gimplearmug1520.objdumper=/opt/compiler-explorer/arm/gcc-arm-unknown-15.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-objdump
compiler.gimplearmug1520.demangler=/opt/compiler-explorer/arm/gcc-arm-unknown-15.2.0/arm-unknown-eabi/bin/arm-unknown-eabi-c++filt
compiler.gimplearmug1520.name=ARM GCC 15.2.0 (unknown-eabi)
compiler.gimplearm921.exe=/opt/compiler-explorer/arm/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc compiler.gimplearm921.exe=/opt/compiler-explorer/arm/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc
compiler.gimplearm921.semver=9.2.1 (none) compiler.gimplearm921.semver=9.2.1 (none)
compiler.gimplearm921.supportsBinary=false compiler.gimplearm921.supportsBinary=false
@@ -1785,7 +1901,7 @@ compiler.gimplearmgtrunk.isNightly=true
# 64 bit # 64 bit
group.gimplegcc64arm.groupName=ARM64 gcc group.gimplegcc64arm.groupName=ARM64 gcc
group.gimplegcc64arm.baseName=ARM64 GCC group.gimplegcc64arm.baseName=ARM64 GCC
group.gimplegcc64arm.compilers=gimplearm64g930:gimplearm64g940:gimplearm64g950:gimplearm64g1020:gimplearm64g1030:gimplearm64g1040:gimplearm64g1100:gimplearm64g1120:gimplearm64g1130:gimplearm64g1140:gimplearm64g1210:gimplearm64gtrunk:gimplearm64g1220:gimplearm64g1230:gimplearm64g1240:gimplearm64g1310:gimplearm64g1050:gimplearm64g1320:gimplearm64g1330:gimplearm64g1410:gimplearm64g1420:gimplearm64g1510:gimplearm64g1430:gimplearm64g1340:gimplearm64g1250 group.gimplegcc64arm.compilers=gimplearm64g930:gimplearm64g940:gimplearm64g950:gimplearm64g1020:gimplearm64g1030:gimplearm64g1040:gimplearm64g1100:gimplearm64g1120:gimplearm64g1130:gimplearm64g1140:gimplearm64g1210:gimplearm64gtrunk:gimplearm64g1220:gimplearm64g1230:gimplearm64g1240:gimplearm64g1310:gimplearm64g1050:gimplearm64g1320:gimplearm64g1330:gimplearm64g1410:gimplearm64g1420:gimplearm64g1510:gimplearm64g1430:gimplearm64g1340:gimplearm64g1250:gimplearm64g1520
group.gimplegcc64arm.isSemVer=true group.gimplegcc64arm.isSemVer=true
group.gimplegcc64arm.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump group.gimplegcc64arm.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump
group.gimplegcc64arm.instructionSet=aarch64 group.gimplegcc64arm.instructionSet=aarch64
@@ -1883,6 +1999,11 @@ compiler.gimplearm64g1510.semver=15.1.0
compiler.gimplearm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.gimplearm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.gimplearm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.gimplearm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.gimplearm64g1520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
compiler.gimplearm64g1520.semver=15.2.0
compiler.gimplearm64g1520.objdumper=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.gimplearm64g1520.demangler=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.gimplearm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc compiler.gimplearm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
compiler.gimplearm64gtrunk.semver=trunk compiler.gimplearm64gtrunk.semver=trunk
compiler.gimplearm64gtrunk.isNightly=true compiler.gimplearm64gtrunk.isNightly=true
@@ -1910,7 +2031,7 @@ group.gimplervgcc.supportsBinary=true
group.gimplervgcc.supportsBinaryObject=true group.gimplervgcc.supportsBinaryObject=true
## GCC for RISC-V 64-bits ## GCC for RISC-V 64-bits
group.rv64-gimplegccs.compilers=rv64-gimplegcctrunk:rv64-gimplegcc1230:rv64-gimplegcc1240:rv64-gimplegcc1210:rv64-gimplegcc1140:rv64-gimplegcc1130:rv64-gimplegcc1220:rv64-gimplegcc1120:rv64-gimplegcc1030:rv64-gimplegcc1020:rv64-gimplegcc940:rv64-gimplegcc1310:rv64-gimplegcc1320:rv64-gimplegcc1330:rv64-gimplegcc1410:rv64-gimplegcc1420:rv64-gimplegcc1510:rv64-gimplegcc1430:rv64-gimplegcc1340:rv64-gimplegcc1250 group.rv64-gimplegccs.compilers=rv64-gimplegcctrunk:rv64-gimplegcc1230:rv64-gimplegcc1240:rv64-gimplegcc1210:rv64-gimplegcc1140:rv64-gimplegcc1130:rv64-gimplegcc1220:rv64-gimplegcc1120:rv64-gimplegcc1030:rv64-gimplegcc1020:rv64-gimplegcc940:rv64-gimplegcc1310:rv64-gimplegcc1320:rv64-gimplegcc1330:rv64-gimplegcc1410:rv64-gimplegcc1420:rv64-gimplegcc1510:rv64-gimplegcc1430:rv64-gimplegcc1340:rv64-gimplegcc1250:rv64-gimplegcc1520
group.rv64-gimplegccs.groupName=RISC-V (64-bits) gcc group.rv64-gimplegccs.groupName=RISC-V (64-bits) gcc
group.rv64-gimplegccs.baseName=RISC-V (64-bits) gcc group.rv64-gimplegccs.baseName=RISC-V (64-bits) gcc
@@ -2003,6 +2124,11 @@ compiler.rv64-gimplegcc1510.semver=15.1.0
compiler.rv64-gimplegcc1510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.rv64-gimplegcc1510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.rv64-gimplegcc1510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt compiler.rv64-gimplegcc1510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.rv64-gimplegcc1520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gcc
compiler.rv64-gimplegcc1520.semver=15.2.0
compiler.rv64-gimplegcc1520.objdumper=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.rv64-gimplegcc1520.demangler=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.rv64-gimplegcctrunk.exe=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gcc compiler.rv64-gimplegcctrunk.exe=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gcc
compiler.rv64-gimplegcctrunk.semver=(trunk) compiler.rv64-gimplegcctrunk.semver=(trunk)
compiler.rv64-gimplegcctrunk.objdumper=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.rv64-gimplegcctrunk.objdumper=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
@@ -2010,7 +2136,7 @@ compiler.rv64-gimplegcctrunk.demangler=/opt/compiler-explorer/riscv64/gcc-trunk/
compiler.rv64-gimplegcctrunk.isNightly=true compiler.rv64-gimplegcctrunk.isNightly=true
## GCC for RISC-V 32-bits ## GCC for RISC-V 32-bits
group.rv32-gimplegccs.compilers=rv32-gimplegcctrunk:rv32-gimplegcc1220:rv32-gimplegcc1210:rv32-gimplegcc1140:rv32-gimplegcc1130:rv32-gimplegcc1120:rv32-gimplegcc1030:rv32-gimplegcc1020:rv32-gimplegcc940:rv32-gimplegcc1310:rv32-gimplegcc1230:rv32-gimplegcc1240:rv32-gimplegcc1320:rv32-gimplegcc1330:rv32-gimplegcc1410:rv32-gimplegcc1420:rv32-gimplegcc1510:rv32-gimplegcc1430:rv32-gimplegcc1340:rv32-gimplegcc1250 group.rv32-gimplegccs.compilers=rv32-gimplegcctrunk:rv32-gimplegcc1220:rv32-gimplegcc1210:rv32-gimplegcc1140:rv32-gimplegcc1130:rv32-gimplegcc1120:rv32-gimplegcc1030:rv32-gimplegcc1020:rv32-gimplegcc940:rv32-gimplegcc1310:rv32-gimplegcc1230:rv32-gimplegcc1240:rv32-gimplegcc1320:rv32-gimplegcc1330:rv32-gimplegcc1410:rv32-gimplegcc1420:rv32-gimplegcc1510:rv32-gimplegcc1430:rv32-gimplegcc1340:rv32-gimplegcc1250:rv32-gimplegcc1520
group.rv32-gimplegccs.groupName=RISC-V (32-bits) gcc group.rv32-gimplegccs.groupName=RISC-V (32-bits) gcc
group.rv32-gimplegccs.baseName=RISC-V (32-bits) gcc group.rv32-gimplegccs.baseName=RISC-V (32-bits) gcc
@@ -2103,6 +2229,11 @@ compiler.rv32-gimplegcc1510.semver=15.1.0
compiler.rv32-gimplegcc1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump compiler.rv32-gimplegcc1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.rv32-gimplegcc1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt compiler.rv32-gimplegcc1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.rv32-gimplegcc1520.exe=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc
compiler.rv32-gimplegcc1520.semver=15.2.0
compiler.rv32-gimplegcc1520.objdumper=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.rv32-gimplegcc1520.demangler=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.rv32-gimplegcctrunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc compiler.rv32-gimplegcctrunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc
compiler.rv32-gimplegcctrunk.semver=(trunk) compiler.rv32-gimplegcctrunk.semver=(trunk)
compiler.rv32-gimplegcctrunk.isNightly=true compiler.rv32-gimplegcctrunk.isNightly=true

View File

@@ -2,7 +2,7 @@ compilers=&gccgo:&gl:&cross
defaultCompiler=gl1242 defaultCompiler=gl1242
objdumper=/opt/compiler-explorer/gcc-13.1.0/bin/objdump objdumper=/opt/compiler-explorer/gcc-13.1.0/bin/objdump
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 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.isSemVer=true group.gccgo.isSemVer=true
group.gccgo.baseName=x86 gccgo group.gccgo.baseName=x86 gccgo
compiler.gccgo494.exe=/opt/compiler-explorer/gcc-4.9.4/bin/gccgo compiler.gccgo494.exe=/opt/compiler-explorer/gcc-4.9.4/bin/gccgo
@@ -57,9 +57,11 @@ compiler.gccgo143.exe=/opt/compiler-explorer/gcc-14.3.0/bin/gccgo
compiler.gccgo143.semver=14.3 compiler.gccgo143.semver=14.3
compiler.gccgo151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gccgo compiler.gccgo151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gccgo
compiler.gccgo151.semver=15.1 compiler.gccgo151.semver=15.1
compiler.gccgo152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gccgo
compiler.gccgo152.semver=15.2
## GCC x86 build with "assertions" (--enable-checking=XXX) ## 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 group.gccgoassert.compilers=gccgo105assert:gccgo111assert:gccgo112assert:gccgo113assert:gccgo114assert:gccgo121assert:gccgo122assert:gccgo123assert:gccgo124assert:gccgo125assert:gccgo131assert:gccgo132assert:gccgo133assert:gccgo134assert:gccgo141assert:gccgo142assert:gccgo143assert:gccgo151assert:gccgo152assert
group.gccgoassert.groupName=x86 gccgo (assertions) group.gccgoassert.groupName=x86 gccgo (assertions)
compiler.gccgo105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/gccgo compiler.gccgo105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/gccgo
@@ -98,7 +100,8 @@ compiler.gccgo143assert.exe=/opt/compiler-explorer/gcc-assertions-14.3.0/bin/gcc
compiler.gccgo143assert.semver=14.3 (assertions) compiler.gccgo143assert.semver=14.3 (assertions)
compiler.gccgo151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gccgo compiler.gccgo151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gccgo
compiler.gccgo151assert.semver=15.1 (assertions) 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)
group.gl.compilers=&x86gl:&armgl:&mipsgl:&ppcgl:&riscvgl:&s390xgl:&wasmgl group.gl.compilers=&x86gl:&armgl:&mipsgl:&ppcgl:&riscvgl:&s390xgl:&wasmgl
group.gl.versionFlag=version group.gl.versionFlag=version
@@ -445,7 +448,7 @@ compiler.ppc64le_gl120.exe=/opt/compiler-explorer/golang-1.20/go/bin/go
compiler.ppc64le_gl120.semver=1.20 compiler.ppc64le_gl120.semver=1.20
compiler.ppc64le_gl121.exe=/opt/compiler-explorer/golang-1.21.13/go/bin/go compiler.ppc64le_gl121.exe=/opt/compiler-explorer/golang-1.21.13/go/bin/go
compiler.ppc64le_gl121.semver=1.21.13 compiler.ppc64le_gl121.semver=1.21.13
compiler.ppc64le_gl122.exe=/opt/compiler-explorer/golang-1.22.1)/go/bin/go compiler.ppc64le_gl122.exe=/opt/compiler-explorer/golang-1.22.1/go/bin/go
compiler.ppc64le_gl122.semver=1.22.12 compiler.ppc64le_gl122.semver=1.22.12
compiler.ppc64le_gl123.exe=/opt/compiler-explorer/golang-1.23.8/go/bin/go compiler.ppc64le_gl123.exe=/opt/compiler-explorer/golang-1.23.8/go/bin/go
compiler.ppc64le_gl123.semver=1.23.8 compiler.ppc64le_gl123.semver=1.23.8
@@ -600,7 +603,7 @@ group.cross.groupName=Cross Go
############################### ###############################
# GCC for sparc # GCC for sparc
group.gccgosparc.compilers=gccgosparc1220:gccgosparc1230:gccgosparc1240:gccgosparc1250:gccgosparc1310:gccgosparc1320:gccgosparc1330:gccgosparc1340:gccgosparc1410:gccgosparc1420:gccgosparc1430:gccgosparc1510 group.gccgosparc.compilers=gccgosparc1220:gccgosparc1230:gccgosparc1240:gccgosparc1250:gccgosparc1310:gccgosparc1320:gccgosparc1330:gccgosparc1340:gccgosparc1410:gccgosparc1420:gccgosparc1430:gccgosparc1510:gccgosparc1520
group.gccgosparc.groupName=SPARC GCCGO group.gccgosparc.groupName=SPARC GCCGO
group.gccgosparc.baseName=SPARC gccgo group.gccgosparc.baseName=SPARC gccgo
group.gccgosparc.isSemVer=true group.gccgosparc.isSemVer=true
@@ -665,9 +668,14 @@ compiler.gccgosparc1510.semver=15.1.0
compiler.gccgosparc1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump compiler.gccgosparc1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.gccgosparc1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt compiler.gccgosparc1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
compiler.gccgosparc1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gccgo
compiler.gccgosparc1520.semver=15.2.0
compiler.gccgosparc1520.objdumper=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.gccgosparc1520.demangler=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for sparc64 # GCC for sparc64
group.gccgosparc64.compilers=gccgosparc641220:gccgosparc641230:gccgosparc641240:gccgosparc641250:gccgosparc641310:gccgosparc641320:gccgosparc641330:gccgosparc641340:gccgosparc641410:gccgosparc641420:gccgosparc641430:gccgosparc641510 group.gccgosparc64.compilers=gccgosparc641220:gccgosparc641230:gccgosparc641240:gccgosparc641250:gccgosparc641310:gccgosparc641320:gccgosparc641330:gccgosparc641340:gccgosparc641410:gccgosparc641420:gccgosparc641430:gccgosparc641510:gccgosparc641520
group.gccgosparc64.groupName=SPARC64 GCCGO group.gccgosparc64.groupName=SPARC64 GCCGO
group.gccgosparc64.baseName=SPARC64 gccgo group.gccgosparc64.baseName=SPARC64 gccgo
group.gccgosparc64.isSemVer=true group.gccgosparc64.isSemVer=true
@@ -733,9 +741,14 @@ compiler.gccgosparc641510.semver=15.1.0
compiler.gccgosparc641510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump compiler.gccgosparc641510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.gccgosparc641510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt compiler.gccgosparc641510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
compiler.gccgosparc641520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-gccgo
compiler.gccgosparc641520.semver=15.2.0
compiler.gccgosparc641520.objdumper=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.gccgosparc641520.demangler=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
############################### ###############################
# GCC for mips64el # GCC for mips64el
group.gccgomips64el.compilers=gccgomips64el1220:gccgomips64el1230:gccgomips64el1310:gccgomips64el1320:gccgomips64el1410:gccgomips64el1330:gccgomips64el1240:gccgomips64el1420:gccgomips64el1510:gccgomips64el1430:gccgomips64el1340:gccgomips64el1250 group.gccgomips64el.compilers=gccgomips64el1220:gccgomips64el1230:gccgomips64el1310:gccgomips64el1320:gccgomips64el1410:gccgomips64el1330:gccgomips64el1240:gccgomips64el1420:gccgomips64el1510:gccgomips64el1430:gccgomips64el1340:gccgomips64el1250:gccgomips64el1520
group.gccgomips64el.groupName=MIPS64EL GCCGO group.gccgomips64el.groupName=MIPS64EL GCCGO
group.gccgomips64el.baseName=MIPS64EL gccgo group.gccgomips64el.baseName=MIPS64EL gccgo
group.gccgomips64el.isSemVer=true group.gccgomips64el.isSemVer=true
@@ -800,9 +813,14 @@ compiler.gccgomips64el1510.semver=15.1.0
compiler.gccgomips64el1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump compiler.gccgomips64el1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.gccgomips64el1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt compiler.gccgomips64el1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
compiler.gccgomips64el1520.exe=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gccgo
compiler.gccgomips64el1520.semver=15.2.0
compiler.gccgomips64el1520.objdumper=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.gccgomips64el1520.demangler=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
############################### ###############################
# GCC for mipsel # GCC for mipsel
group.gccgomipsel.compilers=gccgomipsel1220:gccgomipsel1230:gccgomipsel1240:gccgomipsel1250:gccgomipsel1310:gccgomipsel1320:gccgomipsel1330:gccgomipsel1340:gccgomipsel1410:gccgomipsel1420:gccgomipsel1430:gccgomipsel1510 group.gccgomipsel.compilers=gccgomipsel1220:gccgomipsel1230:gccgomipsel1240:gccgomipsel1250:gccgomipsel1310:gccgomipsel1320:gccgomipsel1330:gccgomipsel1340:gccgomipsel1410:gccgomipsel1420:gccgomipsel1430:gccgomipsel1510:gccgomipsel1520
group.gccgomipsel.groupName=MIPSEL GCCGO group.gccgomipsel.groupName=MIPSEL GCCGO
group.gccgomipsel.baseName=MIPSEL gccgo group.gccgomipsel.baseName=MIPSEL gccgo
group.gccgomipsel.isSemVer=true group.gccgomipsel.isSemVer=true
@@ -867,9 +885,14 @@ compiler.gccgomipsel1510.semver=15.1.0
compiler.gccgomipsel1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump compiler.gccgomipsel1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.gccgomipsel1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt compiler.gccgomipsel1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
compiler.gccgomipsel1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gccgo
compiler.gccgomipsel1520.semver=15.2.0
compiler.gccgomipsel1520.objdumper=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.gccgomipsel1520.demangler=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
############################### ###############################
# GCC for riscv64 # GCC for riscv64
group.gccgoriscv64.compilers=gccgoriscv641220:gccgoriscv641230:gccgoriscv641240:gccgoriscv641250:gccgoriscv641310:gccgoriscv641320:gccgoriscv641330:gccgoriscv641340:gccgoriscv641410:gccgoriscv641420:gccgoriscv641430:gccgoriscv641510 group.gccgoriscv64.compilers=gccgoriscv641220:gccgoriscv641230:gccgoriscv641240:gccgoriscv641250:gccgoriscv641310:gccgoriscv641320:gccgoriscv641330:gccgoriscv641340:gccgoriscv641410:gccgoriscv641420:gccgoriscv641430:gccgoriscv641510:gccgoriscv641520
group.gccgoriscv64.groupName=RISC-V 64 GCCGO group.gccgoriscv64.groupName=RISC-V 64 GCCGO
group.gccgoriscv64.baseName=RISC-V 64 gccgo group.gccgoriscv64.baseName=RISC-V 64 gccgo
group.gccgoriscv64.isSemVer=true group.gccgoriscv64.isSemVer=true
@@ -934,9 +957,14 @@ compiler.gccgoriscv641510.semver=15.1.0
compiler.gccgoriscv641510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.gccgoriscv641510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.gccgoriscv641510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt compiler.gccgoriscv641510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.gccgoriscv641520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-gccgo
compiler.gccgoriscv641520.semver=15.2.0
compiler.gccgoriscv641520.objdumper=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.gccgoriscv641520.demangler=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for s390x # GCC for s390x
group.gccgos390x.compilers=gccgos390x1220:gccgos390x1230:gccgos390x1310:gccgos390x1320:gccgos390x1410:gccgos390x1330:gccgos390x1240:gccgos390x1420:gccgos390x1510:gccgos390x1430:gccgos390x1340:gccgos390x1250 group.gccgos390x.compilers=gccgos390x1220:gccgos390x1230:gccgos390x1310:gccgos390x1320:gccgos390x1410:gccgos390x1330:gccgos390x1240:gccgos390x1420:gccgos390x1510:gccgos390x1430:gccgos390x1340:gccgos390x1250:gccgos390x1520
group.gccgos390x.groupName=S390X GCCGO group.gccgos390x.groupName=S390X GCCGO
group.gccgos390x.baseName=S390X gccgo group.gccgos390x.baseName=S390X gccgo
group.gccgos390x.isSemVer=true group.gccgos390x.isSemVer=true
@@ -1001,9 +1029,14 @@ compiler.gccgos390x1510.semver=15.1.0
compiler.gccgos390x1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump compiler.gccgos390x1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.gccgos390x1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt compiler.gccgos390x1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
compiler.gccgos390x1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gccgo
compiler.gccgos390x1520.semver=15.2.0
compiler.gccgos390x1520.objdumper=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.gccgos390x1520.demangler=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
############################### ###############################
# GCC for MIPS # GCC for MIPS
group.gccgomips.compilers=gccgomips1220:gccgomips1230:gccgomips1240:gccgomips1250:gccgomips1310:gccgomips1320:gccgomips1330:gccgomips1340:gccgomips1410:gccgomips1420:gccgomips1430:gccgomips1510 group.gccgomips.compilers=gccgomips1220:gccgomips1230:gccgomips1240:gccgomips1250:gccgomips1310:gccgomips1320:gccgomips1330:gccgomips1340:gccgomips1410:gccgomips1420:gccgomips1430:gccgomips1510:gccgomips1520
group.gccgomips.groupName=MIPS GCCGO group.gccgomips.groupName=MIPS GCCGO
group.gccgomips.baseName=MIPS gccgo group.gccgomips.baseName=MIPS gccgo
group.gccgomips.isSemVer=true group.gccgomips.isSemVer=true
@@ -1068,9 +1101,14 @@ compiler.gccgomips1510.semver=15.1.0
compiler.gccgomips1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump compiler.gccgomips1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.gccgomips1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt compiler.gccgomips1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
compiler.gccgomips1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gccgo
compiler.gccgomips1520.semver=15.2.0
compiler.gccgomips1520.objdumper=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.gccgomips1520.demangler=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for MIPS64 # GCC for MIPS64
group.gccgomips64.compilers=gccgomips641220:gccgomips641230:gccgomips641240:gccgomips641250:gccgomips641310:gccgomips641320:gccgomips641330:gccgomips641340:gccgomips641410:gccgomips641420:gccgomips641430:gccgomips641510 group.gccgomips64.compilers=gccgomips641220:gccgomips641230:gccgomips641240:gccgomips641250:gccgomips641310:gccgomips641320:gccgomips641330:gccgomips641340:gccgomips641410:gccgomips641420:gccgomips641430:gccgomips641510:gccgomips641520
group.gccgomips64.groupName=MIPS64 GCCGO group.gccgomips64.groupName=MIPS64 GCCGO
group.gccgomips64.baseName=MIPS64 gccgo group.gccgomips64.baseName=MIPS64 gccgo
group.gccgomips64.isSemVer=true group.gccgomips64.isSemVer=true
@@ -1135,9 +1173,14 @@ compiler.gccgomips641510.semver=15.1.0
compiler.gccgomips641510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump compiler.gccgomips641510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.gccgomips641510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt compiler.gccgomips641510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
compiler.gccgomips641520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gccgo
compiler.gccgomips641520.semver=15.2.0
compiler.gccgomips641520.objdumper=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.gccgomips641520.demangler=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for ARM64 # GCC for ARM64
group.gccgoarm64.compilers=gccgoarm641220:gccgoarm641230:gccgoarm641240:gccgoarm641250:gccgoarm641310:gccgoarm641320:gccgoarm641330:gccgoarm641340:gccgoarm641410:gccgoarm641420:gccgoarm641430:gccgoarm641510 group.gccgoarm64.compilers=gccgoarm641220:gccgoarm641230:gccgoarm641240:gccgoarm641250:gccgoarm641310:gccgoarm641320:gccgoarm641330:gccgoarm641340:gccgoarm641410:gccgoarm641420:gccgoarm641430:gccgoarm641510:gccgoarm641520
group.gccgoarm64.groupName=ARM64 GCCGO group.gccgoarm64.groupName=ARM64 GCCGO
group.gccgoarm64.baseName=ARM64 gccgo group.gccgoarm64.baseName=ARM64 gccgo
group.gccgoarm64.isSemVer=true group.gccgoarm64.isSemVer=true
@@ -1202,9 +1245,14 @@ compiler.gccgoarm641510.semver=15.1.0
compiler.gccgoarm641510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.gccgoarm641510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.gccgoarm641510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.gccgoarm641510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.gccgoarm641520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gccgo
compiler.gccgoarm641520.semver=15.2.0
compiler.gccgoarm641520.objdumper=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.gccgoarm641520.demangler=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for ARM # GCC for ARM
group.gccgoarm.compilers=gccgoarm1220:gccgoarm1230:gccgoarm1240:gccgoarm1250:gccgoarm1310:gccgoarm1320:gccgoarm1330:gccgoarm1340:gccgoarm1410:gccgoarm1420:gccgoarm1430:gccgoarm1510 group.gccgoarm.compilers=gccgoarm1220:gccgoarm1230:gccgoarm1240:gccgoarm1250:gccgoarm1310:gccgoarm1320:gccgoarm1330:gccgoarm1340:gccgoarm1410:gccgoarm1420:gccgoarm1430:gccgoarm1510:gccgoarm1520
group.gccgoarm.groupName=ARM GCCGO group.gccgoarm.groupName=ARM GCCGO
group.gccgoarm.baseName=ARM gccgo group.gccgoarm.baseName=ARM gccgo
group.gccgoarm.isSemVer=true group.gccgoarm.isSemVer=true
@@ -1269,9 +1317,14 @@ compiler.gccgoarm1510.semver=15.1.0
compiler.gccgoarm1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump compiler.gccgoarm1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.gccgoarm1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt compiler.gccgoarm1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.gccgoarm1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gccgo
compiler.gccgoarm1520.semver=15.2.0
compiler.gccgoarm1520.objdumper=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.gccgoarm1520.demangler=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
############################### ###############################
# GCC for PPC # GCC for PPC
group.gccgoppc.compilers=gccgoppc1220:gccgoppc1230:gccgoppc1240:gccgoppc1250:gccgoppc1310:gccgoppc1320:gccgoppc1330:gccgoppc1340:gccgoppc1410:gccgoppc1420:gccgoppc1430:gccgoppc1510 group.gccgoppc.compilers=gccgoppc1220:gccgoppc1230:gccgoppc1240:gccgoppc1250:gccgoppc1310:gccgoppc1320:gccgoppc1330:gccgoppc1340:gccgoppc1410:gccgoppc1420:gccgoppc1430:gccgoppc1510:gccgoppc1520
group.gccgoppc.groupName=POWER GCCGO group.gccgoppc.groupName=POWER GCCGO
group.gccgoppc.baseName=POWER gccgo group.gccgoppc.baseName=POWER gccgo
group.gccgoppc.isSemVer=true group.gccgoppc.isSemVer=true
@@ -1336,9 +1389,14 @@ compiler.gccgoppc1510.semver=15.1.0
compiler.gccgoppc1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump compiler.gccgoppc1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.gccgoppc1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt compiler.gccgoppc1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
compiler.gccgoppc1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gccgo
compiler.gccgoppc1520.semver=15.2.0
compiler.gccgoppc1520.objdumper=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.gccgoppc1520.demangler=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for PPC64LE # GCC for PPC64LE
group.gccgoppc64le.compilers=gccgoppc64le1220:gccgoppc64le1230:gppc64leg9:gppc64leg8:gccgoppc64le1310:gccgoppc64le1320:gccgoppc64letrunk:gccgoppc64le1410:gccgoppc64le1330:gccgoppc64le1240:gccgoppc64le1420:gccgoppc64le1510:gccgoppc64le1430:gccgoppc64le1340:gccgoppc64le1250 group.gccgoppc64le.compilers=gccgoppc64le1220:gccgoppc64le1230:gppc64leg9:gppc64leg8:gccgoppc64le1310:gccgoppc64le1320:gccgoppc64letrunk:gccgoppc64le1410:gccgoppc64le1330:gccgoppc64le1240:gccgoppc64le1420:gccgoppc64le1510:gccgoppc64le1430:gccgoppc64le1340:gccgoppc64le1250:gccgoppc64le1520
group.gccgoppc64le.groupName=POWER64LE GCCGO group.gccgoppc64le.groupName=POWER64LE GCCGO
group.gccgoppc64le.baseName=POWER64LE gccgo group.gccgoppc64le.baseName=POWER64LE gccgo
group.gccgoppc64le.isSemVer=true group.gccgoppc64le.isSemVer=true
@@ -1403,6 +1461,11 @@ compiler.gccgoppc64le1510.semver=15.1.0
compiler.gccgoppc64le1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.gccgoppc64le1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.gccgoppc64le1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.gccgoppc64le1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.gccgoppc64le1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gccgo
compiler.gccgoppc64le1520.semver=15.2.0
compiler.gccgoppc64le1520.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.gccgoppc64le1520.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.gccgoppc64letrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gccgo compiler.gccgoppc64letrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gccgo
compiler.gccgoppc64letrunk.semver=trunk compiler.gccgoppc64letrunk.semver=trunk
compiler.gccgoppc64letrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.gccgoppc64letrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
@@ -1416,7 +1479,7 @@ compiler.gppc64leg8.semver=AT12.0
############################### ###############################
# GCC for PPC64 # GCC for PPC64
group.gccgoppc64.compilers=gppc64g8:gppc64g9:gccgoppc64trunk:gccgoppc641220:gccgoppc641230:gccgoppc641240:gccgoppc641250:gccgoppc641310:gccgoppc641320:gccgoppc641330:gccgoppc641340:gccgoppc641410:gccgoppc641420:gccgoppc641430:gccgoppc641510 group.gccgoppc64.compilers=gppc64g8:gppc64g9:gccgoppc64trunk:gccgoppc641220:gccgoppc641230:gccgoppc641240:gccgoppc641250:gccgoppc641310:gccgoppc641320:gccgoppc641330:gccgoppc641340:gccgoppc641410:gccgoppc641420:gccgoppc641430:gccgoppc641510:gccgoppc641520
group.gccgoppc64.groupName=POWER64 GCCGO group.gccgoppc64.groupName=POWER64 GCCGO
group.gccgoppc64.baseName=POWER64 gccgo group.gccgoppc64.baseName=POWER64 gccgo
group.gccgoppc64.isSemVer=true group.gccgoppc64.isSemVer=true
@@ -1481,6 +1544,11 @@ compiler.gccgoppc641510.semver=15.1.0
compiler.gccgoppc641510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.gccgoppc641510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.gccgoppc641510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.gccgoppc641510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.gccgoppc641520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gccgo
compiler.gccgoppc641520.semver=15.2.0
compiler.gccgoppc641520.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.gccgoppc641520.demangler=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.gccgoppc64trunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gccgo compiler.gccgoppc64trunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gccgo
compiler.gccgoppc64trunk.semver=trunk compiler.gccgoppc64trunk.semver=trunk
compiler.gccgoppc64trunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.gccgoppc64trunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump

View File

@@ -1,6 +1,6 @@
# Default settings for modula2 # Default settings for modula2
compilers=&gm2 compilers=&gm2
defaultCompiler=gm2151 defaultCompiler=gm2152
demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
@@ -15,7 +15,7 @@ needsMulti=false
externalparser=CEAsmParser externalparser=CEAsmParser
externalparser.exe=/usr/local/bin/asm-parser externalparser.exe=/usr/local/bin/asm-parser
group.gm2.compilers=&gm2assert:gm2131:gm2132:gm2133:gm2134:gm2141:gm2142:gm2143:gm2151:gm2snapshot group.gm2.compilers=&gm2assert:gm2131:gm2132:gm2133:gm2134:gm2141:gm2142:gm2143:gm2151:gm2152:gm2snapshot
group.gm2.compilerType=gm2 group.gm2.compilerType=gm2
group.gm2.instructionSet=amd64 group.gm2.instructionSet=amd64
group.gm2.isSemVer=true group.gm2.isSemVer=true
@@ -38,12 +38,14 @@ compiler.gm2143.exe=/opt/compiler-explorer/gcc-14.3.0/bin/gm2
compiler.gm2143.semver=14.3 compiler.gm2143.semver=14.3
compiler.gm2151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gm2 compiler.gm2151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gm2
compiler.gm2151.semver=15.1 compiler.gm2151.semver=15.1
compiler.gm2152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gm2
compiler.gm2152.semver=15.2
compiler.gm2snapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gm2 compiler.gm2snapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gm2
compiler.gm2snapshot.semver=(snapshot) compiler.gm2snapshot.semver=(snapshot)
## GFORTRAN x86 build with "assertions" (--enable-checking=XXX) ## GFORTRAN x86 build with "assertions" (--enable-checking=XXX)
group.gm2assert.compilers=gm2131assert:gm2132assert:gm2133assert:gm2134assert:gm2141assert:gm2142assert:gm2143assert:gm2151assert group.gm2assert.compilers=gm2131assert:gm2132assert:gm2133assert:gm2134assert:gm2141assert:gm2142assert:gm2143assert:gm2151assert:gm2152assert
group.gm2assert.groupName=GM2 x86-64 (assertions) group.gm2assert.groupName=GM2 x86-64 (assertions)
compiler.gm2131assert.exe=/opt/compiler-explorer/gcc-assertions-13.1.0/bin/gm2 compiler.gm2131assert.exe=/opt/compiler-explorer/gcc-assertions-13.1.0/bin/gm2
@@ -62,3 +64,5 @@ compiler.gm2143assert.exe=/opt/compiler-explorer/gcc-assertions-14.3.0/bin/gm2
compiler.gm2143assert.semver=14.3 (assertions) compiler.gm2143assert.semver=14.3 (assertions)
compiler.gm2151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gm2 compiler.gm2151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gm2
compiler.gm2151assert.semver=15.1 (assertions) 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)

View File

@@ -1,7 +1,7 @@
compilers=&objcppgcc86:&objcppcross compilers=&objcppgcc86:&objcppcross
defaultCompiler=objcppg151 defaultCompiler=objcppg152
demangler=/opt/compiler-explorer/gcc-15.1.0/bin/c++filt demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
needsMulti=false needsMulti=false
buildenvsetup=ceconan buildenvsetup=ceconan
@@ -14,7 +14,7 @@ llvmDisassembler=/opt/compiler-explorer/clang-18.1.0/bin/llvm-dis
############################### ###############################
# GCC for x86 # GCC for x86
group.objcppgcc86.compilers=&objcppgcc86assert:objcppg105:objcppg114:objcppg122:objcppg123:objcppg124:objcppg125:objcppg131:objcppg132:objcppg133:objcppg134:objcppg141:objcppg142:objcppg143:objcppg151:objcppgsnapshot group.objcppgcc86.compilers=&objcppgcc86assert:objcppg105:objcppg114:objcppg122:objcppg123:objcppg124:objcppg125:objcppg131:objcppg132:objcppg133:objcppg134:objcppg141:objcppg142:objcppg143:objcppg151:objcppg152:objcppgsnapshot
group.objcppgcc86.groupName=GCC x86-64 group.objcppgcc86.groupName=GCC x86-64
group.objcppgcc86.instructionSet=amd64 group.objcppgcc86.instructionSet=amd64
group.objcppgcc86.baseName=x86-64 gcc group.objcppgcc86.baseName=x86-64 gcc
@@ -68,6 +68,9 @@ compiler.objcppg143.semver=14.3
compiler.objcppg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/g++ compiler.objcppg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/g++
compiler.objcppg151.semver=15.1 compiler.objcppg151.semver=15.1
compiler.objcppg152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/g++
compiler.objcppg152.semver=15.2
compiler.objcppgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/g++ compiler.objcppgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/g++
compiler.objcppgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.objcppgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
compiler.objcppgsnapshot.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump compiler.objcppgsnapshot.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
@@ -76,7 +79,7 @@ compiler.objcppgsnapshot.isNightly=true
## OBJC++ GCC x86 build with "assertions" (--enable-checking=XXX) ## OBJC++ GCC x86 build with "assertions" (--enable-checking=XXX)
group.objcppgcc86assert.groupName=GCC x86-64 (assertions) group.objcppgcc86assert.groupName=GCC x86-64 (assertions)
group.objcppgcc86assert.compilers=objcppg105assert:objcppg114assert:objcppg122assert:objcppg123assert:objcppg124assert:objcppg125assert:objcppg131assert:objcppg132assert:objcppg133assert:objcppg134assert:objcppg141assert:objcppg142assert:objcppg143assert:objcppg151assert group.objcppgcc86assert.compilers=objcppg105assert:objcppg114assert:objcppg122assert:objcppg123assert:objcppg124assert:objcppg125assert:objcppg131assert:objcppg132assert:objcppg133assert:objcppg134assert:objcppg141assert:objcppg142assert:objcppg143assert:objcppg151assert:objcppg152assert
compiler.objcppg105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/g++ compiler.objcppg105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/g++
compiler.objcppg105assert.semver=10.5 (assertions) compiler.objcppg105assert.semver=10.5 (assertions)
@@ -120,6 +123,9 @@ compiler.objcppg143assert.semver=14.3 (assertions)
compiler.objcppg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/g++ compiler.objcppg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/g++
compiler.objcppg151assert.semver=15.1 (assertions) 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)
group.objcppcross.compilers=&objcppgccs group.objcppcross.compilers=&objcppgccs
group.objcppgccs.compilers=&objcppgccloongarch64:&objcppgccrvs:&objcppgccarm:&objcppgccarm64:&objcppgccmips:&objcppgccmips64:&objcppgccmipsel:&objcppgccmips64el:&objcppgccpowerpc:&objcppgccpowerpc64:&objcppgccpowerpc64le:&objcppgccs390x:&objcppgcchppa group.objcppgccs.compilers=&objcppgccloongarch64:&objcppgccrvs:&objcppgccarm:&objcppgccarm64:&objcppgccmips:&objcppgccmips64:&objcppgccmipsel:&objcppgccmips64el:&objcppgccpowerpc:&objcppgccpowerpc64:&objcppgccpowerpc64le:&objcppgccs390x:&objcppgcchppa
@@ -130,7 +136,7 @@ group.objcppgccs.supportsBinaryObject=true
############################### ###############################
# GCC for HPPA # GCC for HPPA
group.objcppgcchppa.compilers=objcpphppag1420:objcpphppag1430:objcpphppag1510 group.objcppgcchppa.compilers=objcpphppag1420:objcpphppag1430:objcpphppag1510:objcpphppag1520
group.objcppgcchppa.groupName=HPPA GCC group.objcppgcchppa.groupName=HPPA GCC
group.objcppgcchppa.baseName=HPPA gcc group.objcppgcchppa.baseName=HPPA gcc
group.objcppgcchppa.isSemVer=true group.objcppgcchppa.isSemVer=true
@@ -152,9 +158,14 @@ compiler.objcpphppag1510.semver=15.1.0
compiler.objcpphppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump compiler.objcpphppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.objcpphppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt compiler.objcpphppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
compiler.objcpphppag1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-g++
compiler.objcpphppag1520.semver=15.2.0
compiler.objcpphppag1520.objdumper=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.objcpphppag1520.demangler=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for Loongarch64 # GCC for Loongarch64
group.objcppgccloongarch64.compilers=objcpploongarch64g1410:objcpploongarch64g1420:objcpploongarch64g1510:objcpploongarch64g1430 group.objcppgccloongarch64.compilers=objcpploongarch64g1410:objcpploongarch64g1420:objcpploongarch64g1510:objcpploongarch64g1430:objcpploongarch64g1520
group.objcppgccloongarch64.groupName=LOONGARCH64 GCC group.objcppgccloongarch64.groupName=LOONGARCH64 GCC
compiler.objcpploongarch64g1410.exe=/opt/compiler-explorer/loongarch64/gcc-14.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-g++ compiler.objcpploongarch64g1410.exe=/opt/compiler-explorer/loongarch64/gcc-14.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-g++
@@ -177,9 +188,14 @@ compiler.objcpploongarch64g1510.semver=15.1.0
compiler.objcpploongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump compiler.objcpploongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.objcpploongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt compiler.objcpploongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
compiler.objcpploongarch64g1520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-g++
compiler.objcpploongarch64g1520.semver=15.2.0
compiler.objcpploongarch64g1520.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.objcpploongarch64g1520.demangler=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for POWERPC64LE # GCC for POWERPC64LE
group.objcppgccpowerpc64le.compilers=objcppppc64leg1230:objcppppc64leg1310:objcppppc64leg1320:objcppppc64legtrunk:objcppppc64leg1410:objcppppc64leg1330:objcppppc64leg1240:objcppppc64leg1420:objcppppc64leg1510:objcppppc64leg1430:objcppppc64leg1340:objcppppc64leg1250 group.objcppgccpowerpc64le.compilers=objcppppc64leg1230:objcppppc64leg1310:objcppppc64leg1320:objcppppc64legtrunk:objcppppc64leg1410:objcppppc64leg1330:objcppppc64leg1240:objcppppc64leg1420:objcppppc64leg1510:objcppppc64leg1430:objcppppc64leg1340:objcppppc64leg1250:objcppppc64leg1520
group.objcppgccpowerpc64le.groupName=POWERPC64LE GCC group.objcppgccpowerpc64le.groupName=POWERPC64LE GCC
group.objcppgccpowerpc64le.baseName=POWERPC64LE GCC group.objcppgccpowerpc64le.baseName=POWERPC64LE GCC
group.objcppgccpowerpc64le.instructionSet=powerpc group.objcppgccpowerpc64le.instructionSet=powerpc
@@ -239,6 +255,11 @@ compiler.objcppppc64leg1510.semver=15.1.0
compiler.objcppppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.objcppppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.objcppppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.objcppppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.objcppppc64leg1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++
compiler.objcppppc64leg1520.semver=15.2.0
compiler.objcppppc64leg1520.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.objcppppc64leg1520.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.objcppppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++ compiler.objcppppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-g++
compiler.objcppppc64legtrunk.semver=trunk compiler.objcppppc64legtrunk.semver=trunk
compiler.objcppppc64legtrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.objcppppc64legtrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
@@ -246,7 +267,7 @@ compiler.objcppppc64legtrunk.demangler=/opt/compiler-explorer/powerpc64le/gcc-tr
############################### ###############################
# GCC for POWERPC64 # GCC for POWERPC64
group.objcppgccpowerpc64.compilers=objcppppc64g1230:objcppppc64g1310:objcppppc64g1320:objcppppc64gtrunk:objcppppc64g1410:objcppppc64g1330:objcppppc64g1240:objcppppc64g1420:objcppppc64g1510:objcppppc64g1430:objcppppc64g1340:objcppppc64g1250 group.objcppgccpowerpc64.compilers=objcppppc64g1230:objcppppc64g1310:objcppppc64g1320:objcppppc64gtrunk:objcppppc64g1410:objcppppc64g1330:objcppppc64g1240:objcppppc64g1420:objcppppc64g1510:objcppppc64g1430:objcppppc64g1340:objcppppc64g1250:objcppppc64g1520
group.objcppgccpowerpc64.groupName=POWERPC64 GCC group.objcppgccpowerpc64.groupName=POWERPC64 GCC
group.objcppgccpowerpc64.baseName=POWERPC64 GCC group.objcppgccpowerpc64.baseName=POWERPC64 GCC
group.objcppgccpowerpc64.instructionSet=powerpc group.objcppgccpowerpc64.instructionSet=powerpc
@@ -306,6 +327,11 @@ compiler.objcppppc64g1510.semver=15.1.0
compiler.objcppppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.objcppppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.objcppppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.objcppppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.objcppppc64g1520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++
compiler.objcppppc64g1520.semver=15.2.0
compiler.objcppppc64g1520.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.objcppppc64g1520.demangler=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.objcppppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++ compiler.objcppppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-g++
compiler.objcppppc64gtrunk.semver=trunk compiler.objcppppc64gtrunk.semver=trunk
compiler.objcppppc64gtrunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.objcppppc64gtrunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
@@ -313,7 +339,7 @@ compiler.objcppppc64gtrunk.demangler=/opt/compiler-explorer/powerpc64/gcc-trunk/
############################### ###############################
# GCC for POWERPC # GCC for POWERPC
group.objcppgccpowerpc.compilers=objcppppcg1230:objcppppcg1240:objcppppcg1250:objcppppcg1310:objcppppcg1320:objcppppcg1330:objcppppcg1340:objcppppcg1410:objcppppcg1420:objcppppcg1430:objcppppcg1510 group.objcppgccpowerpc.compilers=objcppppcg1230:objcppppcg1240:objcppppcg1250:objcppppcg1310:objcppppcg1320:objcppppcg1330:objcppppcg1340:objcppppcg1410:objcppppcg1420:objcppppcg1430:objcppppcg1510:objcppppcg1520
group.objcppgccpowerpc.groupName=POWERPC GCC group.objcppgccpowerpc.groupName=POWERPC GCC
group.objcppgccpowerpc.baseName=POWERPC GCC group.objcppgccpowerpc.baseName=POWERPC GCC
group.objcppgccpowerpc.instructionSet=powerpc group.objcppgccpowerpc.instructionSet=powerpc
@@ -373,9 +399,14 @@ compiler.objcppppcg1510.semver=15.1.0
compiler.objcppppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump compiler.objcppppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.objcppppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt compiler.objcppppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
compiler.objcppppcg1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-g++
compiler.objcppppcg1520.semver=15.2.0
compiler.objcppppcg1520.objdumper=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.objcppppcg1520.demangler=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for MIPSEL # GCC for MIPSEL
group.objcppgccmipsel.compilers=objcppmipselg1230:objcppmipselg1240:objcppmipselg1250:objcppmipselg1310:objcppmipselg1320:objcppmipselg1330:objcppmipselg1340:objcppmipselg1410:objcppmipselg1420:objcppmipselg1430:objcppmipselg1510 group.objcppgccmipsel.compilers=objcppmipselg1230:objcppmipselg1240:objcppmipselg1250:objcppmipselg1310:objcppmipselg1320:objcppmipselg1330:objcppmipselg1340:objcppmipselg1410:objcppmipselg1420:objcppmipselg1430:objcppmipselg1510:objcppmipselg1520
group.objcppgccmipsel.groupName=MIPS (EL) GCC group.objcppgccmipsel.groupName=MIPS (EL) GCC
group.objcppgccmipsel.baseName=MIPS (EL) GCC group.objcppgccmipsel.baseName=MIPS (EL) GCC
@@ -434,9 +465,14 @@ compiler.objcppmipselg1510.semver=15.1.0
compiler.objcppmipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump compiler.objcppmipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.objcppmipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt compiler.objcppmipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
compiler.objcppmipselg1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-g++
compiler.objcppmipselg1520.semver=15.2.0
compiler.objcppmipselg1520.objdumper=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.objcppmipselg1520.demangler=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
############################### ###############################
# GCC for MIPS64EL # GCC for MIPS64EL
group.objcppgccmips64el.compilers=objcppmips64elg1230:objcppmips64elg1310:objcppmips64elg1320:objcppmips64elg1410:objcppmips64elg1330:objcppmips64elg1240:objcppmips64elg1420:objcppmips64elg1510:objcppmips64elg1430:objcppmips64elg1340:objcppmips64elg1250 group.objcppgccmips64el.compilers=objcppmips64elg1230:objcppmips64elg1310:objcppmips64elg1320:objcppmips64elg1410:objcppmips64elg1330:objcppmips64elg1240:objcppmips64elg1420:objcppmips64elg1510:objcppmips64elg1430:objcppmips64elg1340:objcppmips64elg1250:objcppmips64elg1520
group.objcppgccmips64el.groupName=MIPS64 (EL) GCC group.objcppgccmips64el.groupName=MIPS64 (EL) GCC
group.objcppgccmips64el.baseName=MIPS64 (EL) GCC group.objcppgccmips64el.baseName=MIPS64 (EL) GCC
@@ -495,9 +531,14 @@ compiler.objcppmips64elg1510.semver=15.1.0
compiler.objcppmips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump compiler.objcppmips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.objcppmips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt compiler.objcppmips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
compiler.objcppmips64elg1520.exe=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-g++
compiler.objcppmips64elg1520.semver=15.2.0
compiler.objcppmips64elg1520.objdumper=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.objcppmips64elg1520.demangler=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
############################### ###############################
# GCC for MIPS64 # GCC for MIPS64
group.objcppgccmips64.compilers=objcppmips64g1230:objcppmips64g1310:objcppmips64g1320:objcppmips64g1410:objcppmips64g1330:objcppmips64g1240:objcppmips64g1420:objcppmips64g1510:objcppmips64g1430:objcppmips64g1340:objcppmips64g1250 group.objcppgccmips64.compilers=objcppmips64g1230:objcppmips64g1310:objcppmips64g1320:objcppmips64g1410:objcppmips64g1330:objcppmips64g1240:objcppmips64g1420:objcppmips64g1510:objcppmips64g1430:objcppmips64g1340:objcppmips64g1250:objcppmips64g1520
group.objcppgccmips64.groupName=MIPS64 GCC group.objcppgccmips64.groupName=MIPS64 GCC
group.objcppgccmips64.baseName=MIPS64 GCC group.objcppgccmips64.baseName=MIPS64 GCC
@@ -556,10 +597,15 @@ compiler.objcppmips64g1510.semver=15.1.0
compiler.objcppmips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump compiler.objcppmips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.objcppmips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt compiler.objcppmips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
compiler.objcppmips64g1520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-g++
compiler.objcppmips64g1520.semver=15.2.0
compiler.objcppmips64g1520.objdumper=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.objcppmips64g1520.demangler=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for MIPS # GCC for MIPS
group.objcppgccmips.compilers=objcppmipsg1230:objcppmipsg1240:objcppmipsg1250:objcppmipsg1310:objcppmipsg1320:objcppmipsg1330:objcppmipsg1340:objcppmipsg1410:objcppmipsg1420:objcppmipsg1430:objcppmipsg1510 group.objcppgccmips.compilers=objcppmipsg1230:objcppmipsg1240:objcppmipsg1250:objcppmipsg1310:objcppmipsg1320:objcppmipsg1330:objcppmipsg1340:objcppmipsg1410:objcppmipsg1420:objcppmipsg1430:objcppmipsg1510:objcppmipsg1520
group.objcppgccmips.groupName=MIPS GCC group.objcppgccmips.groupName=MIPS GCC
group.objcppgccmips.baseName=MIPS GCC group.objcppgccmips.baseName=MIPS GCC
@@ -618,9 +664,14 @@ compiler.objcppmipsg1510.semver=15.1.0
compiler.objcppmipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump compiler.objcppmipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.objcppmipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt compiler.objcppmipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
compiler.objcppmipsg1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-g++
compiler.objcppmipsg1520.semver=15.2.0
compiler.objcppmipsg1520.objdumper=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.objcppmipsg1520.demangler=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for s390 # GCC for s390
group.objcppgccs390x.compilers=objcpps390xg1230:objcpps390xg1310:objcpps390xg1320:objcpps390xg1410:objcpps390xg1330:objcpps390xg1240:objcpps390xg1420:objcpps390xg1510:objcpps390xg1430:objcpps390xg1340:objcpps390xg1250 group.objcppgccs390x.compilers=objcpps390xg1230:objcpps390xg1310:objcpps390xg1320:objcpps390xg1410:objcpps390xg1330:objcpps390xg1240:objcpps390xg1420:objcpps390xg1510:objcpps390xg1430:objcpps390xg1340:objcpps390xg1250:objcpps390xg1520
group.objcppgccs390x.groupName=S390X GCC group.objcppgccs390x.groupName=S390X GCC
group.objcppgccs390x.baseName=S390X GCC group.objcppgccs390x.baseName=S390X GCC
@@ -679,9 +730,14 @@ compiler.objcpps390xg1510.semver=15.1.0
compiler.objcpps390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump compiler.objcpps390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.objcpps390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt compiler.objcpps390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
compiler.objcpps390xg1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-g++
compiler.objcpps390xg1520.semver=15.2.0
compiler.objcpps390xg1520.objdumper=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.objcpps390xg1520.demangler=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
############################### ###############################
# GCC for ARM # GCC for ARM
group.objcppgccarm.compilers=objcpparmg1230:objcpparmg1240:objcpparmg1250:objcpparmg1310:objcpparmg1320:objcpparmg1330:objcpparmg1340:objcpparmg1410:objcpparmg1420:objcpparmg1430:objcpparmg1510 group.objcppgccarm.compilers=objcpparmg1230:objcpparmg1240:objcpparmg1250:objcpparmg1310:objcpparmg1320:objcpparmg1330:objcpparmg1340:objcpparmg1410:objcpparmg1420:objcpparmg1430:objcpparmg1510:objcpparmg1520
group.objcppgccarm.groupName=ARM GCC group.objcppgccarm.groupName=ARM GCC
group.objcppgccarm.baseName=ARM GCC group.objcppgccarm.baseName=ARM GCC
@@ -740,10 +796,15 @@ compiler.objcpparmg1510.semver=15.1.0
compiler.objcpparmg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump compiler.objcpparmg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.objcpparmg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt compiler.objcpparmg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.objcpparmg1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-g++
compiler.objcpparmg1520.semver=15.2.0
compiler.objcpparmg1520.objdumper=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.objcpparmg1520.demangler=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
############################### ###############################
# GCC for ARM64 # GCC for ARM64
group.objcppgccarm64.compilers=objcpparm64g1230:objcpparm64g1310:objcpparm64g1320:objcpparm64g1410:objcpparm64g1330:objcpparm64g1240:objcpparm64g1420:objcpparm64g1510:objcpparm64g1430:objcpparm64g1340:objcpparm64g1250 group.objcppgccarm64.compilers=objcpparm64g1230:objcpparm64g1310:objcpparm64g1320:objcpparm64g1410:objcpparm64g1330:objcpparm64g1240:objcpparm64g1420:objcpparm64g1510:objcpparm64g1430:objcpparm64g1340:objcpparm64g1250:objcpparm64g1520
group.objcppgccarm64.groupName=ARM64 GCC group.objcppgccarm64.groupName=ARM64 GCC
group.objcppgccarm64.baseName=ARM64 GCC group.objcppgccarm64.baseName=ARM64 GCC
@@ -802,6 +863,11 @@ compiler.objcpparm64g1510.semver=15.1.0
compiler.objcpparm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.objcpparm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.objcpparm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.objcpparm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.objcpparm64g1520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-g++
compiler.objcpparm64g1520.semver=15.2.0
compiler.objcpparm64g1520.objdumper=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.objcpparm64g1520.demangler=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for RISC-V # GCC for RISC-V
@@ -809,7 +875,7 @@ group.objcppgccrvs.compilers=&objcppgccrv32:&objcppgccrv64
group.objcppgccrvs.groupName=RISC-V GCC group.objcppgccrvs.groupName=RISC-V GCC
## Subgroup for riscv32 ## Subgroup for riscv32
group.objcppgccrv32.compilers=objcppgccrv32trunk:objcppgccrv321230:objcppgccrv321240:objcppgccrv321250:objcppgccrv321310:objcppgccrv321320:objcppgccrv321330:objcppgccrv321340:objcppgccrv321410:objcppgccrv321420:objcppgccrv321430:objcppgccrv321510 group.objcppgccrv32.compilers=objcppgccrv32trunk:objcppgccrv321230:objcppgccrv321240:objcppgccrv321250:objcppgccrv321310:objcppgccrv321320:objcppgccrv321330:objcppgccrv321340:objcppgccrv321410:objcppgccrv321420:objcppgccrv321430:objcppgccrv321510:objcppgccrv321520
group.objcppgccrv32.groupName=RISC-V 32-bits group.objcppgccrv32.groupName=RISC-V 32-bits
group.objcppgccrv32.baseName=RISC-V 32 GCC group.objcppgccrv32.baseName=RISC-V 32 GCC
@@ -868,6 +934,11 @@ compiler.objcppgccrv321510.semver=15.1.0
compiler.objcppgccrv321510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump compiler.objcppgccrv321510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.objcppgccrv321510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt compiler.objcppgccrv321510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.objcppgccrv321520.exe=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-g++
compiler.objcppgccrv321520.semver=15.2.0
compiler.objcppgccrv321520.objdumper=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.objcppgccrv321520.demangler=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.objcppgccrv32trunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-g++ compiler.objcppgccrv32trunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-g++
compiler.objcppgccrv32trunk.semver=(trunk) compiler.objcppgccrv32trunk.semver=(trunk)
compiler.objcppgccrv32trunk.demangler=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt compiler.objcppgccrv32trunk.demangler=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
@@ -875,7 +946,7 @@ compiler.objcppgccrv32trunk.objdumper=/opt/compiler-explorer/riscv32/gcc-trunk/r
compiler.objcppgccrv32trunk.isNightly=true compiler.objcppgccrv32trunk.isNightly=true
## Subgroup for riscv64 ## Subgroup for riscv64
group.objcppgccrv64.compilers=objcppgccrv64trunk:objcppgccrv641230:objcppgccrv641240:objcppgccrv641250:objcppgccrv641310:objcppgccrv641320:objcppgccrv641330:objcppgccrv641340:objcppgccrv641410:objcppgccrv641420:objcppgccrv641430:objcppgccrv641510 group.objcppgccrv64.compilers=objcppgccrv64trunk:objcppgccrv641230:objcppgccrv641240:objcppgccrv641250:objcppgccrv641310:objcppgccrv641320:objcppgccrv641330:objcppgccrv641340:objcppgccrv641410:objcppgccrv641420:objcppgccrv641430:objcppgccrv641510:objcppgccrv641520
group.objcppgccrv64.groupName=RISC-V 64-bits group.objcppgccrv64.groupName=RISC-V 64-bits
group.objcppgccrv64.baseName=RISC-V 64 GCC group.objcppgccrv64.baseName=RISC-V 64 GCC
@@ -934,6 +1005,11 @@ compiler.objcppgccrv641510.semver=15.1.0
compiler.objcppgccrv641510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump compiler.objcppgccrv641510.objdumper=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.objcppgccrv641510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt compiler.objcppgccrv641510.demangler=/opt/compiler-explorer/riscv64/gcc-15.1.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.objcppgccrv641520.exe=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-g++
compiler.objcppgccrv641520.semver=15.2.0
compiler.objcppgccrv641520.objdumper=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-objdump
compiler.objcppgccrv641520.demangler=/opt/compiler-explorer/riscv64/gcc-15.2.0/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt
compiler.objcppgccrv64trunk.exe=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-g++ compiler.objcppgccrv64trunk.exe=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-g++
compiler.objcppgccrv64trunk.semver=(trunk) compiler.objcppgccrv64trunk.semver=(trunk)
compiler.objcppgccrv64trunk.demangler=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt compiler.objcppgccrv64trunk.demangler=/opt/compiler-explorer/riscv64/gcc-trunk/riscv64-unknown-linux-gnu/bin/riscv64-unknown-linux-gnu-c++filt

View File

@@ -1,7 +1,7 @@
compilers=&objcgcc86:&objccross compilers=&objcgcc86:&objccross
defaultCompiler=objcg151 defaultCompiler=objcg152
demangler=/opt/compiler-explorer/gcc-15.1.0/bin/c++filt demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
needsMulti=false needsMulti=false
externalparser=CEAsmParser externalparser=CEAsmParser
@@ -9,7 +9,7 @@ externalparser.exe=/usr/local/bin/asm-parser
############################### ###############################
# GCC for x86 # GCC for x86
group.objcgcc86.compilers=&objcgcc86assert:objcg346:objcg404:objcg650:objcg105:objcg114:objcg122:objcg123:objcg124:objcg125:objcg131:objcg132:objcg133:objcg134:objcg141:objcg142:objcg143:objcg151:objcgsnapshot 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.groupName=GCC x86-64 group.objcgcc86.groupName=GCC x86-64
group.objcgcc86.instructionSet=amd64 group.objcgcc86.instructionSet=amd64
group.objcgcc86.isSemVer=true group.objcgcc86.isSemVer=true
@@ -70,6 +70,9 @@ compiler.objcg143.semver=14.3
compiler.objcg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcc compiler.objcg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcc
compiler.objcg151.semver=15.1 compiler.objcg151.semver=15.1
compiler.objcg152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
compiler.objcg152.semver=15.2
compiler.objcgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc compiler.objcgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc
compiler.objcgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt compiler.objcgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
compiler.objcgsnapshot.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump compiler.objcgsnapshot.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
@@ -77,7 +80,7 @@ compiler.objcgsnapshot.semver=(trunk)
compiler.objcgsnapshot.isNightly=true compiler.objcgsnapshot.isNightly=true
## OBJC GCC x86 build with "assertions" (--enable-checking=XXX) ## 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 group.objcgcc86assert.compilers=objcg105assert:objcg114assert:objcg122assert:objcg123assert:objcg124assert:objcg125assert:objcg131assert:objcg132assert:objcg133assert:objcg134assert:objcg141assert:objcg142assert:objcg143assert:objcg151assert:objcg152assert
group.objcgcc86assert.groupName=GCC x86-64 (assertions) group.objcgcc86assert.groupName=GCC x86-64 (assertions)
compiler.objcg105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/gcc compiler.objcg105assert.exe=/opt/compiler-explorer/gcc-assertions-10.5.0/bin/gcc
@@ -122,6 +125,9 @@ compiler.objcg143assert.semver=14.3 (assertions)
compiler.objcg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcc compiler.objcg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcc
compiler.objcg151assert.semver=15.1 (assertions) 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)
############################### ###############################
# Cross Compilers # Cross Compilers
group.objccross.compilers=&objcppcs:&objcmipss:&objcgccarm:&objcrv:&objcs390x:&objcloongarch64:&objcsparc:&objcsparc64:&objcsparcleon:&objcvax:&objchppa group.objccross.compilers=&objcppcs:&objcmipss:&objcgccarm:&objcrv:&objcs390x:&objcloongarch64:&objcsparc:&objcsparc64:&objcsparcleon:&objcvax:&objchppa
@@ -137,7 +143,7 @@ group.objccross.licensePreamble=Copyright (c) 2007 Free Software Foundation, Inc
group.objcsparc.compilers=&objcgccsparc group.objcsparc.compilers=&objcgccsparc
# GCC for SPARC # GCC for SPARC
group.objcgccsparc.compilers=objcsparcg1220:objcsparcg1230:objcsparcg1240:objcsparcg1250:objcsparcg1310:objcsparcg1320:objcsparcg1330:objcsparcg1340:objcsparcg1410:objcsparcg1420:objcsparcg1430:objcsparcg1510 group.objcgccsparc.compilers=objcsparcg1220:objcsparcg1230:objcsparcg1240:objcsparcg1250:objcsparcg1310:objcsparcg1320:objcsparcg1330:objcsparcg1340:objcsparcg1410:objcsparcg1420:objcsparcg1430:objcsparcg1510:objcsparcg1520
group.objcgccsparc.supportsBinary=true group.objcgccsparc.supportsBinary=true
group.objcgccsparc.supportsExecute=false group.objcgccsparc.supportsExecute=false
group.objcgccsparc.baseName=SPARC gcc group.objcgccsparc.baseName=SPARC gcc
@@ -204,12 +210,17 @@ compiler.objcsparcg1510.semver=15.1.0
compiler.objcsparcg1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump compiler.objcsparcg1510.objdumper=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.objcsparcg1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt compiler.objcsparcg1510.demangler=/opt/compiler-explorer/sparc/gcc-15.1.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
compiler.objcsparcg1520.exe=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gcc
compiler.objcsparcg1520.semver=15.2.0
compiler.objcsparcg1520.objdumper=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-objdump
compiler.objcsparcg1520.demangler=/opt/compiler-explorer/sparc/gcc-15.2.0/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-c++filt
############################### ###############################
# Cross for SPARC64 # Cross for SPARC64
group.objcsparc64.compilers=&objcgccsparc64 group.objcsparc64.compilers=&objcgccsparc64
# GCC for SPARC64 # GCC for SPARC64
group.objcgccsparc64.compilers=objcsparc64g1220:objcsparc64g1230:objcsparc64g1310:objcsparc64g1320:objcsparc64g1410:objcsparc64g1330:objcsparc64g1240:objcsparc64g1420:objcsparc64g1510:objcsparc64g1430:objcsparc64g1340:objcsparc64g1250 group.objcgccsparc64.compilers=objcsparc64g1220:objcsparc64g1230:objcsparc64g1310:objcsparc64g1320:objcsparc64g1410:objcsparc64g1330:objcsparc64g1240:objcsparc64g1420:objcsparc64g1510:objcsparc64g1430:objcsparc64g1340:objcsparc64g1250:objcsparc64g1520
group.objcgccsparc64.supportsBinary=true group.objcgccsparc64.supportsBinary=true
group.objcgccsparc64.supportsExecute=false group.objcgccsparc64.supportsExecute=false
group.objcgccsparc64.baseName=SPARC64 gcc group.objcgccsparc64.baseName=SPARC64 gcc
@@ -276,12 +287,17 @@ compiler.objcsparc64g1510.semver=15.1.0
compiler.objcsparc64g1510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump compiler.objcsparc64g1510.objdumper=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.objcsparc64g1510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt compiler.objcsparc64g1510.demangler=/opt/compiler-explorer/sparc64/gcc-15.1.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
compiler.objcsparc64g1520.exe=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-gcc
compiler.objcsparc64g1520.semver=15.2.0
compiler.objcsparc64g1520.objdumper=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-objdump
compiler.objcsparc64g1520.demangler=/opt/compiler-explorer/sparc64/gcc-15.2.0/sparc64-multilib-linux-gnu/bin/sparc64-multilib-linux-gnu-c++filt
############################### ###############################
# Cross for SPARC-LEON # Cross for SPARC-LEON
group.objcsparcleon.compilers=&objcgccsparcleon group.objcsparcleon.compilers=&objcgccsparcleon
# GCC for SPARC-LEON # GCC for SPARC-LEON
group.objcgccsparcleon.compilers=objcsparcleong1220:objcsparcleong1220-1:objcsparcleong1230:objcsparcleong1240:objcsparcleong1250:objcsparcleong1310:objcsparcleong1320:objcsparcleong1330:objcsparcleong1340:objcsparcleong1410:objcsparcleong1420:objcsparcleong1430:objcsparcleong1510 group.objcgccsparcleon.compilers=objcsparcleong1220:objcsparcleong1220-1:objcsparcleong1230:objcsparcleong1240:objcsparcleong1250:objcsparcleong1310:objcsparcleong1320:objcsparcleong1330:objcsparcleong1340:objcsparcleong1410:objcsparcleong1420:objcsparcleong1430:objcsparcleong1510:objcsparcleong1520
group.objcgccsparcleon.supportsBinary=true group.objcgccsparcleon.supportsBinary=true
group.objcgccsparcleon.supportsExecute=false group.objcgccsparcleon.supportsExecute=false
group.objcgccsparcleon.baseName=SPARC LEON gcc group.objcgccsparcleon.baseName=SPARC LEON gcc
@@ -350,6 +366,11 @@ compiler.objcsparcleong1510.semver=15.1.0
compiler.objcsparcleong1510.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump compiler.objcsparcleong1510.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
compiler.objcsparcleong1510.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt compiler.objcsparcleong1510.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.1.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
compiler.objcsparcleong1520.exe=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gcc
compiler.objcsparcleong1520.semver=15.2.0
compiler.objcsparcleong1520.objdumper=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
compiler.objcsparcleong1520.demangler=/opt/compiler-explorer/sparc-leon/gcc-15.2.0/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-c++filt
compiler.objcsparcleong1220-1.exe=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gcc compiler.objcsparcleong1220-1.exe=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-gcc
compiler.objcsparcleong1220-1.semver=12.2.0 compiler.objcsparcleong1220-1.semver=12.2.0
compiler.objcsparcleong1220-1.objdumper=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump compiler.objcsparcleong1220-1.objdumper=/opt/compiler-explorer/sparc-leon/gcc-12.2.0-1/sparc-leon-linux-uclibc/bin/sparc-leon-linux-uclibc-objdump
@@ -360,7 +381,7 @@ compiler.objcsparcleong1220-1.demangler=/opt/compiler-explorer/sparc-leon/gcc-12
group.objcloongarch64.compilers=&objcgccloongarch64 group.objcloongarch64.compilers=&objcgccloongarch64
# GCC for loongarch64 # GCC for loongarch64
group.objcgccloongarch64.compilers=objcloongarch64g1220:objcloongarch64g1230:objcloongarch64g1310:objcloongarch64g1320:objcloongarch64g1410:objcloongarch64g1330:objcloongarch64g1240:objcloongarch64g1420:objcloongarch64g1510:objcloongarch64g1430:objcloongarch64g1340:objcloongarch64g1250 group.objcgccloongarch64.compilers=objcloongarch64g1220:objcloongarch64g1230:objcloongarch64g1310:objcloongarch64g1320:objcloongarch64g1410:objcloongarch64g1330:objcloongarch64g1240:objcloongarch64g1420:objcloongarch64g1510:objcloongarch64g1430:objcloongarch64g1340:objcloongarch64g1250:objcloongarch64g1520
group.objcgccloongarch64.supportsBinary=true group.objcgccloongarch64.supportsBinary=true
group.objcgccloongarch64.supportsExecute=false group.objcgccloongarch64.supportsExecute=false
group.objcgccloongarch64.baseName=loongarch64 gcc group.objcgccloongarch64.baseName=loongarch64 gcc
@@ -427,13 +448,18 @@ compiler.objcloongarch64g1510.semver=15.1.0
compiler.objcloongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump compiler.objcloongarch64g1510.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.objcloongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt compiler.objcloongarch64g1510.demangler=/opt/compiler-explorer/loongarch64/gcc-15.1.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
compiler.objcloongarch64g1520.exe=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-gcc
compiler.objcloongarch64g1520.semver=15.2.0
compiler.objcloongarch64g1520.objdumper=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-objdump
compiler.objcloongarch64g1520.demangler=/opt/compiler-explorer/loongarch64/gcc-15.2.0/loongarch64-unknown-linux-gnu/bin/loongarch64-unknown-linux-gnu-c++filt
############################### ###############################
# Cross for s390x # Cross for s390x
group.objcs390x.compilers=&objcgccs390x group.objcs390x.compilers=&objcgccs390x
# GCC for s390x # GCC for s390x
group.objcgccs390x.compilers=objcs390xg1220:objcs390xg1230:objcs390xg1310:objcs390xg1320:objcs390xg1410:objcs390xg1330:objcs390xg1240:objcs390xg1420:objcs390xg1510:objcs390xg1430:objcs390xg1340:objcs390xg1250 group.objcgccs390x.compilers=objcs390xg1220:objcs390xg1230:objcs390xg1310:objcs390xg1320:objcs390xg1410:objcs390xg1330:objcs390xg1240:objcs390xg1420:objcs390xg1510:objcs390xg1430:objcs390xg1340:objcs390xg1250:objcs390xg1520
group.objcgccs390x.supportsBinary=true group.objcgccs390x.supportsBinary=true
group.objcgccs390x.supportsExecute=false group.objcgccs390x.supportsExecute=false
group.objcgccs390x.baseName=s390x gcc group.objcgccs390x.baseName=s390x gcc
@@ -500,6 +526,11 @@ compiler.objcs390xg1510.semver=15.1.0
compiler.objcs390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump compiler.objcs390xg1510.objdumper=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.objcs390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt compiler.objcs390xg1510.demangler=/opt/compiler-explorer/s390x/gcc-15.1.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
compiler.objcs390xg1520.exe=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-gcc
compiler.objcs390xg1520.semver=15.2.0
compiler.objcs390xg1520.objdumper=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-objdump
compiler.objcs390xg1520.demangler=/opt/compiler-explorer/s390x/gcc-15.2.0/s390x-ibm-linux-gnu/bin/s390x-ibm-linux-gnu-c++filt
############################### ###############################
# Cross compilers for PPC # Cross compilers for PPC
group.objcppcs.compilers=&objcppc:&objcppc64:&objcppc64le group.objcppcs.compilers=&objcppc:&objcppc64:&objcppc64le
@@ -508,7 +539,7 @@ group.objcppcs.supportsBinary=true
group.objcppcs.supportsExecute=false group.objcppcs.supportsExecute=false
group.objcppcs.instructionSet=powerpc group.objcppcs.instructionSet=powerpc
group.objcppc.compilers=objcppcg1220:objcppcg1230:objcppcg1240:objcppcg1250:objcppcg1310:objcppcg1320:objcppcg1330:objcppcg1340:objcppcg1410:objcppcg1420:objcppcg1430:objcppcg1510 group.objcppc.compilers=objcppcg1220:objcppcg1230:objcppcg1240:objcppcg1250:objcppcg1310:objcppcg1320:objcppcg1330:objcppcg1340:objcppcg1410:objcppcg1420:objcppcg1430:objcppcg1510:objcppcg1520
group.objcppc.groupName=POWER group.objcppc.groupName=POWER
group.objcppc.baseName=POWER GCC group.objcppc.baseName=POWER GCC
@@ -572,7 +603,12 @@ compiler.objcppcg1510.semver=15.1.0
compiler.objcppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump compiler.objcppcg1510.objdumper=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.objcppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt compiler.objcppcg1510.demangler=/opt/compiler-explorer/powerpc/gcc-15.1.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
group.objcppc64.compilers=objcppc64g1220:objcppc64g1230:objcppc64g1310:objcppc64g1320:objcppc64gtrunk:objcppc64g1410:objcppc64g1330:objcppc64g1240:objcppc64g1420:objcppc64g1510:objcppc64g1430:objcppc64g1340:objcppc64g1250 compiler.objcppcg1520.exe=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gcc
compiler.objcppcg1520.semver=15.2.0
compiler.objcppcg1520.objdumper=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-objdump
compiler.objcppcg1520.demangler=/opt/compiler-explorer/powerpc/gcc-15.2.0/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-c++filt
group.objcppc64.compilers=objcppc64g1220:objcppc64g1230:objcppc64g1310:objcppc64g1320:objcppc64gtrunk:objcppc64g1410:objcppc64g1330:objcppc64g1240:objcppc64g1420:objcppc64g1510:objcppc64g1430:objcppc64g1340:objcppc64g1250:objcppc64g1520
group.objcppc64.groupName=POWER64 group.objcppc64.groupName=POWER64
group.objcppc64.baseName=POWER64 GCC group.objcppc64.baseName=POWER64 GCC
@@ -636,12 +672,17 @@ compiler.objcppc64g1510.semver=15.1.0
compiler.objcppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.objcppc64g1510.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.objcppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.objcppc64g1510.demangler=/opt/compiler-explorer/powerpc64/gcc-15.1.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.objcppc64g1520.exe=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc
compiler.objcppc64g1520.semver=15.2.0
compiler.objcppc64g1520.objdumper=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.objcppc64g1520.demangler=/opt/compiler-explorer/powerpc64/gcc-15.2.0/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
compiler.objcppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc compiler.objcppc64gtrunk.exe=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-gcc
compiler.objcppc64gtrunk.semver=trunk compiler.objcppc64gtrunk.semver=trunk
compiler.objcppc64gtrunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump compiler.objcppc64gtrunk.objdumper=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-objdump
compiler.objcppc64gtrunk.demangler=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt compiler.objcppc64gtrunk.demangler=/opt/compiler-explorer/powerpc64/gcc-trunk/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-c++filt
group.objcppc64le.compilers=objcppc64leg1220:objcppc64leg1230:objcppc64leg1310:objcppc64leg1320:objcppc64legtrunk:objcppc64leg1410:objcppc64leg1330:objcppc64leg1240:objcppc64leg1420:objcppc64leg1510:objcppc64leg1430:objcppc64leg1340:objcppc64leg1250 group.objcppc64le.compilers=objcppc64leg1220:objcppc64leg1230:objcppc64leg1310:objcppc64leg1320:objcppc64legtrunk:objcppc64leg1410:objcppc64leg1330:objcppc64leg1240:objcppc64leg1420:objcppc64leg1510:objcppc64leg1430:objcppc64leg1340:objcppc64leg1250:objcppc64leg1520
group.objcppc64le.groupName=POWER64LE group.objcppc64le.groupName=POWER64LE
group.objcppc64le.baseName=POWER64LE GCC group.objcppc64le.baseName=POWER64LE GCC
@@ -705,6 +746,11 @@ compiler.objcppc64leg1510.semver=15.1.0
compiler.objcppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.objcppc64leg1510.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.objcppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt compiler.objcppc64leg1510.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.1.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.objcppc64leg1520.exe=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc
compiler.objcppc64leg1520.semver=15.2.0
compiler.objcppc64leg1520.objdumper=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
compiler.objcppc64leg1520.demangler=/opt/compiler-explorer/powerpc64le/gcc-15.2.0/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-c++filt
compiler.objcppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc compiler.objcppc64legtrunk.exe=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-gcc
compiler.objcppc64legtrunk.semver=trunk compiler.objcppc64legtrunk.semver=trunk
compiler.objcppc64legtrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump compiler.objcppc64legtrunk.objdumper=/opt/compiler-explorer/powerpc64le/gcc-trunk/powerpc64le-unknown-linux-gnu/bin/powerpc64le-unknown-linux-gnu-objdump
@@ -721,7 +767,7 @@ group.objcgccarm.includeFlag=-I
# 32 bit # 32 bit
group.objcgcc32arm.groupName=Arm 32-bit GCC group.objcgcc32arm.groupName=Arm 32-bit GCC
group.objcgcc32arm.compilers=objcarmg1220:objcarmg1230:objcarmg1240:objcarmg1250:objcarmg1310:objcarmg1320:objcarmg1330:objcarmg1340:objcarmg1410:objcarmg1420:objcarmg1430:objcarmg1510:objcarmgtrunk group.objcgcc32arm.compilers=objcarmg1220:objcarmg1230:objcarmg1240:objcarmg1250:objcarmg1310:objcarmg1320:objcarmg1330:objcarmg1340:objcarmg1410:objcarmg1420:objcarmg1430:objcarmg1510:objcarmg1520:objcarmgtrunk
group.objcgcc32arm.isSemVer=true group.objcgcc32arm.isSemVer=true
group.objcgcc32arm.instructionSet=arm32 group.objcgcc32arm.instructionSet=arm32
group.objcgcc32arm.baseName=ARM gcc group.objcgcc32arm.baseName=ARM gcc
@@ -786,6 +832,11 @@ compiler.objcarmg1510.semver=15.1.0
compiler.objcarmg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump compiler.objcarmg1510.objdumper=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.objcarmg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt compiler.objcarmg1510.demangler=/opt/compiler-explorer/arm/gcc-15.1.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.objcarmg1520.exe=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc
compiler.objcarmg1520.semver=15.2.0
compiler.objcarmg1520.objdumper=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
compiler.objcarmg1520.demangler=/opt/compiler-explorer/arm/gcc-15.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.objcarmgtrunk.exe=/opt/compiler-explorer/arm/gcc-trunk/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc compiler.objcarmgtrunk.exe=/opt/compiler-explorer/arm/gcc-trunk/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-gcc
compiler.objcarmgtrunk.demangler=/opt/compiler-explorer/arm/gcc-trunk/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt compiler.objcarmgtrunk.demangler=/opt/compiler-explorer/arm/gcc-trunk/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-c++filt
compiler.objcarmgtrunk.name=ARM gcc trunk (linux) compiler.objcarmgtrunk.name=ARM gcc trunk (linux)
@@ -795,7 +846,7 @@ compiler.objcarmgtrunk.isNightly=true
# 64 bit # 64 bit
group.objcgcc64arm.groupName=Arm 64-bit GCC group.objcgcc64arm.groupName=Arm 64-bit GCC
group.objcgcc64arm.baseName=ARM64 GCC group.objcgcc64arm.baseName=ARM64 GCC
group.objcgcc64arm.compilers=objcarm64gtrunk:objcarm64g1220:objcarm64g1230:objcarm64g1310:objcarm64g1320:objcarm64g1410:objcarm64g1330:objcarm64g1240:objcarm64g1420:objcarm64g1510:objcarm64g1430:objcarm64g1340:objcarm64g1250 group.objcgcc64arm.compilers=objcarm64gtrunk:objcarm64g1220:objcarm64g1230:objcarm64g1310:objcarm64g1320:objcarm64g1410:objcarm64g1330:objcarm64g1240:objcarm64g1420:objcarm64g1510:objcarm64g1430:objcarm64g1340:objcarm64g1250:objcarm64g1520
group.objcgcc64arm.isSemVer=true group.objcgcc64arm.isSemVer=true
group.objcgcc64arm.instructionSet=aarch64 group.objcgcc64arm.instructionSet=aarch64
@@ -859,6 +910,11 @@ compiler.objcarm64g1510.semver=15.1.0
compiler.objcarm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.objcarm64g1510.objdumper=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.objcarm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.objcarm64g1510.demangler=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.objcarm64g1520.exe=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
compiler.objcarm64g1520.semver=15.2.0
compiler.objcarm64g1520.objdumper=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.objcarm64g1520.demangler=/opt/compiler-explorer/arm64/gcc-15.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
compiler.objcarm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc compiler.objcarm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
compiler.objcarm64gtrunk.objdumper=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump compiler.objcarm64gtrunk.objdumper=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-objdump
compiler.objcarm64gtrunk.demangler=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt compiler.objcarm64gtrunk.demangler=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-c++filt
@@ -874,7 +930,7 @@ group.objcmipss.supportsBinary=true
group.objcmipss.supportsExecute=false group.objcmipss.supportsExecute=false
## MIPS ## MIPS
group.objcmips.compilers=objcmipsg1220:objcmipsg1230:objcmipsg1240:objcmipsg1250:objcmipsg1310:objcmipsg1320:objcmipsg1330:objcmipsg1340:objcmipsg1410:objcmipsg1420:objcmipsg1430:objcmipsg1510 group.objcmips.compilers=objcmipsg1220:objcmipsg1230:objcmipsg1240:objcmipsg1250:objcmipsg1310:objcmipsg1320:objcmipsg1330:objcmipsg1340:objcmipsg1410:objcmipsg1420:objcmipsg1430:objcmipsg1510:objcmipsg1520
group.objcmips.groupName=MIPS GCC group.objcmips.groupName=MIPS GCC
group.objcmips.baseName=mips gcc group.objcmips.baseName=mips gcc
@@ -938,9 +994,14 @@ compiler.objcmipsg1510.semver=15.1.0
compiler.objcmipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump compiler.objcmipsg1510.objdumper=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.objcmipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt compiler.objcmipsg1510.demangler=/opt/compiler-explorer/mips/gcc-15.1.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
compiler.objcmipsg1520.exe=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-gcc
compiler.objcmipsg1520.semver=15.2.0
compiler.objcmipsg1520.objdumper=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-objdump
compiler.objcmipsg1520.demangler=/opt/compiler-explorer/mips/gcc-15.2.0/mips-unknown-linux-gnu/bin/mips-unknown-linux-gnu-c++filt
## MIPS64 ## MIPS64
group.objcmips64.groupName=MIPS64 GCC group.objcmips64.groupName=MIPS64 GCC
group.objcmips64.compilers=objcmips64g1220:objcmips64g1230:objcmips64g1310:objcmips64g1320:objcmips64g1410:objcmips64g1330:objcmips64g1240:objcmips64g1420:objcmips64g1510:objcmips64g1430:objcmips64g1340:objcmips64g1250 group.objcmips64.compilers=objcmips64g1220:objcmips64g1230:objcmips64g1310:objcmips64g1320:objcmips64g1410:objcmips64g1330:objcmips64g1240:objcmips64g1420:objcmips64g1510:objcmips64g1430:objcmips64g1340:objcmips64g1250:objcmips64g1520
group.objcmips64.baseName=MIPS64 gcc group.objcmips64.baseName=MIPS64 gcc
compiler.objcmips64g1220.exe=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc compiler.objcmips64g1220.exe=/opt/compiler-explorer/mips64/gcc-12.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc
@@ -1003,9 +1064,14 @@ compiler.objcmips64g1510.semver=15.1.0
compiler.objcmips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump compiler.objcmips64g1510.objdumper=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.objcmips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt compiler.objcmips64g1510.demangler=/opt/compiler-explorer/mips64/gcc-15.1.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
compiler.objcmips64g1520.exe=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-gcc
compiler.objcmips64g1520.semver=15.2.0
compiler.objcmips64g1520.objdumper=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-objdump
compiler.objcmips64g1520.demangler=/opt/compiler-explorer/mips64/gcc-15.2.0/mips64-unknown-linux-gnu/bin/mips64-unknown-linux-gnu-c++filt
## MIPS EL ## MIPS EL
group.objcmipsel.groupName=MIPSEL GCC group.objcmipsel.groupName=MIPSEL GCC
group.objcmipsel.compilers=objcmipselg1220:objcmipselg1230:objcmipselg1240:objcmipselg1250:objcmipselg1310:objcmipselg1320:objcmipselg1330:objcmipselg1340:objcmipselg1410:objcmipselg1420:objcmipselg1430:objcmipselg1510 group.objcmipsel.compilers=objcmipselg1220:objcmipselg1230:objcmipselg1240:objcmipselg1250:objcmipselg1310:objcmipselg1320:objcmipselg1330:objcmipselg1340:objcmipselg1410:objcmipselg1420:objcmipselg1430:objcmipselg1510:objcmipselg1520
group.objcmipsel.baseName=mips (el) gcc group.objcmipsel.baseName=mips (el) gcc
compiler.objcmipselg1220.exe=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gcc compiler.objcmipselg1220.exe=/opt/compiler-explorer/mipsel/gcc-12.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gcc
@@ -1068,9 +1134,14 @@ compiler.objcmipselg1510.semver=15.1.0
compiler.objcmipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump compiler.objcmipselg1510.objdumper=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.objcmipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt compiler.objcmipselg1510.demangler=/opt/compiler-explorer/mipsel/gcc-15.1.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
compiler.objcmipselg1520.exe=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-gcc
compiler.objcmipselg1520.semver=15.2.0
compiler.objcmipselg1520.objdumper=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-objdump
compiler.objcmipselg1520.demangler=/opt/compiler-explorer/mipsel/gcc-15.2.0/mipsel-multilib-linux-gnu/bin/mipsel-multilib-linux-gnu-c++filt
## MIPS64 EL ## MIPS64 EL
group.objcmips64el.groupName=MIPS64EL GCC group.objcmips64el.groupName=MIPS64EL GCC
group.objcmips64el.compilers=objcmips64elg1220:objcmips64elg1230:objcmips64elg1310:objcmips64elg1320:objcmips64elg1410:objcmips64elg1330:objcmips64elg1240:objcmips64elg1420:objcmips64elg1510:objcmips64elg1430:objcmips64elg1340:objcmips64elg1250 group.objcmips64el.compilers=objcmips64elg1220:objcmips64elg1230:objcmips64elg1310:objcmips64elg1320:objcmips64elg1410:objcmips64elg1330:objcmips64elg1240:objcmips64elg1420:objcmips64elg1510:objcmips64elg1430:objcmips64elg1340:objcmips64elg1250:objcmips64elg1520
group.objcmips64el.baseName=mips64 (el) gcc group.objcmips64el.baseName=mips64 (el) gcc
compiler.objcmips64elg1220.exe=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gcc compiler.objcmips64elg1220.exe=/opt/compiler-explorer/mips64el/gcc-12.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gcc
@@ -1133,6 +1204,11 @@ compiler.objcmips64elg1510.semver=15.1.0
compiler.objcmips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump compiler.objcmips64elg1510.objdumper=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.objcmips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt compiler.objcmips64elg1510.demangler=/opt/compiler-explorer/mips64el/gcc-15.1.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
compiler.objcmips64elg1520.exe=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-gcc
compiler.objcmips64elg1520.semver=15.2.0
compiler.objcmips64elg1520.objdumper=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-objdump
compiler.objcmips64elg1520.demangler=/opt/compiler-explorer/mips64el/gcc-15.2.0/mips64el-multilib-linux-uclibc/bin/mips64el-multilib-linux-uclibc-c++filt
############################### ###############################
# GCC for RISC-V # GCC for RISC-V
@@ -1146,7 +1222,7 @@ group.objcrv.supportsBinaryObject=true
## Subgroup for riscv32 ## Subgroup for riscv32
group.objcrv32.groupName=RISC-V 32-bits group.objcrv32.groupName=RISC-V 32-bits
group.objcrv32.baseName=RISC-V 32 GCC group.objcrv32.baseName=RISC-V 32 GCC
group.objcrv32.compilers=objcrv32gtrunk:objcrv32g1220:objcrv32g1230:objcrv32g1310:objcrv32g1320:objcrv32g1410:objcrv32g1330:objcrv32g1240:objcrv32g1420:objcrv32g1510:objcrv32g1430:objcrv32g1340:objcrv32g1250 group.objcrv32.compilers=objcrv32gtrunk:objcrv32g1220:objcrv32g1230:objcrv32g1310:objcrv32g1320:objcrv32g1410:objcrv32g1330:objcrv32g1240:objcrv32g1420:objcrv32g1510:objcrv32g1430:objcrv32g1340:objcrv32g1250:objcrv32g1520
compiler.objcrv32g1220.exe=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc compiler.objcrv32g1220.exe=/opt/compiler-explorer/riscv32/gcc-12.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc
compiler.objcrv32g1220.semver=12.2.0 compiler.objcrv32g1220.semver=12.2.0
@@ -1208,6 +1284,11 @@ compiler.objcrv32g1510.semver=15.1.0
compiler.objcrv32g1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump compiler.objcrv32g1510.objdumper=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.objcrv32g1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt compiler.objcrv32g1510.demangler=/opt/compiler-explorer/riscv32/gcc-15.1.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.objcrv32g1520.exe=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc
compiler.objcrv32g1520.semver=15.2.0
compiler.objcrv32g1520.objdumper=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-objdump
compiler.objcrv32g1520.demangler=/opt/compiler-explorer/riscv32/gcc-15.2.0/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
compiler.objcrv32gtrunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc compiler.objcrv32gtrunk.exe=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-gcc
compiler.objcrv32gtrunk.semver=(trunk) compiler.objcrv32gtrunk.semver=(trunk)
compiler.objcrv32gtrunk.demangler=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt compiler.objcrv32gtrunk.demangler=/opt/compiler-explorer/riscv32/gcc-trunk/riscv32-unknown-linux-gnu/bin/riscv32-unknown-linux-gnu-c++filt
@@ -1232,7 +1313,7 @@ compiler.objcrv64gtrunk.isNightly=true
############################### ###############################
# GCC for HPPA # GCC for HPPA
group.objchppa.compilers=objchppag1420:objchppag1430:objchppag1510 group.objchppa.compilers=objchppag1420:objchppag1430:objchppag1510:objchppag1520
group.objchppa.groupName=HPPA GCC group.objchppa.groupName=HPPA GCC
group.objchppa.baseName=hppa gcc group.objchppa.baseName=hppa gcc
group.objchppa.isSemVer=true group.objchppa.isSemVer=true
@@ -1255,6 +1336,11 @@ compiler.objchppag1510.semver=15.1.0
compiler.objchppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump compiler.objchppag1510.objdumper=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.objchppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt compiler.objchppag1510.demangler=/opt/compiler-explorer/hppa/gcc-15.1.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
compiler.objchppag1520.exe=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-gcc
compiler.objchppag1520.semver=15.2.0
compiler.objchppag1520.objdumper=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-objdump
compiler.objchppag1520.demangler=/opt/compiler-explorer/hppa/gcc-15.2.0/hppa-unknown-linux-gnu/bin/hppa-unknown-linux-gnu-c++filt
############################### ###############################
# GCC for VAX # GCC for VAX
# #

View File

@@ -1,4 +1,4 @@
compilers=&python3:&pypy:&pythran compilers=&python3:&pypy:&pythran:&codon
defaultCompiler=python313 defaultCompiler=python313
group.python3.compilers=python35:python36:python37:python38:python39:python310:python311:python312:python313 group.python3.compilers=python35:python36:python37:python38:python39:python310:python311:python312:python313
@@ -58,3 +58,20 @@ group.pythran.baseName=Pythran
compiler.pythran015.exe=/opt/compiler-explorer/pythran/pythran-0.15/bin/pythran compiler.pythran015.exe=/opt/compiler-explorer/pythran/pythran-0.15/bin/pythran
compiler.pythran015.semver=0.15 compiler.pythran015.semver=0.15
compiler.pythran015.cpp_compiler_root=/opt/compiler-explorer/gcc-13.2.0/ compiler.pythran015.cpp_compiler_root=/opt/compiler-explorer/gcc-13.2.0/
## Codon
group.codon.compilers=codon0192
group.codon.interpreted=false
group.codon.compilerType=codon
group.codon.licenseLink=https://raw.githubusercontent.com/exaloop/codon/refs/heads/develop/LICENSE
group.codon.licenseName=Apache License 2.0
group.codon.supportsBinary=false
group.codon.supportsBinaryObject=false
group.codon.supportsExecute=false
group.codon.objdumper=/opt/compiler-explorer/gcc-13.2.0/bin/objdump
group.codon.isSemVer=true
group.codon.baseName=Codon
compiler.codon0192.exe=/opt/compiler-explorer/codon-0.19.2/bin/codon
compiler.codon0192.semver=0.19.2

View File

@@ -1,14 +1,14 @@
compilers=&rust:&rustgcc:&mrustc:&rustccggcc compilers=&rust:&rustgcc:&mrustc:&rustccggcc
objdumper=/opt/compiler-explorer/gcc-14.1.0/bin/objdump objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
linker=/opt/compiler-explorer/gcc-14.1.0/bin/gcc 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 aarch64linker=/opt/compiler-explorer/arm64/gcc-14.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
defaultCompiler=r1880 defaultCompiler=r1890
demangler=/opt/compiler-explorer/demanglers/rust/bin/rustfilt demangler=/opt/compiler-explorer/demanglers/rust/bin/rustfilt
buildenvsetup=ceconan-rust buildenvsetup=ceconan-rust
buildenvsetup.host=https://conan.compiler-explorer.com buildenvsetup.host=https://conan.compiler-explorer.com
group.rust.compilers=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=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.compilerType=rust
group.rust.isSemVer=true group.rust.isSemVer=true
group.rust.unwiseOptions=-Ctarget-cpu=native|target-cpu=native group.rust.unwiseOptions=-Ctarget-cpu=native|target-cpu=native
@@ -21,6 +21,9 @@ group.rust.supportsBinaryObject=true
group.rust.supportsClippy=true group.rust.supportsClippy=true
# Rust 1.83+ needs `libPath` for execution with dynamically linked standard library # Rust 1.83+ needs `libPath` for execution with dynamically linked standard library
# see https://github.com/compiler-explorer/compiler-explorer/pull/7367 # see https://github.com/compiler-explorer/compiler-explorer/pull/7367
compiler.r1890.exe=/opt/compiler-explorer/rust-1.89.0/bin/rustc
compiler.r1890.semver=1.89.0
compiler.r1890.libPath=${exePath}/../lib/rustlib/x86_64-unknown-linux-gnu/lib
compiler.r1880.exe=/opt/compiler-explorer/rust-1.88.0/bin/rustc compiler.r1880.exe=/opt/compiler-explorer/rust-1.88.0/bin/rustc
compiler.r1880.semver=1.88.0 compiler.r1880.semver=1.88.0
compiler.r1880.libPath=${exePath}/../lib/rustlib/x86_64-unknown-linux-gnu/lib compiler.r1880.libPath=${exePath}/../lib/rustlib/x86_64-unknown-linux-gnu/lib
@@ -233,7 +236,7 @@ group.rustgcc.options=-frust-incomplete-and-experimental-compiler-do-not-use
group.rustgcc.notification=Rust GCC Frontend - Very early snapshot group.rustgcc.notification=Rust GCC Frontend - Very early snapshot
# native compiler # native compiler
group.gcc86.compilers=&gccrsassert:gccrs-snapshot:gccrs-g141:gccrs-g142:gccrs-g143:gccrs-g151:gcc-snapshot group.gcc86.compilers=&gccrsassert:gccrs-snapshot:gccrs-g141:gccrs-g142:gccrs-g143:gccrs-g151:gccrs-g152:gcc-snapshot
group.gcc86.groupName=x86-64 GCCRS group.gcc86.groupName=x86-64 GCCRS
group.gcc86.baseName=x86-64 GCCRS group.gcc86.baseName=x86-64 GCCRS
group.gcc86.unwiseOptions=-march=native group.gcc86.unwiseOptions=-march=native
@@ -250,6 +253,9 @@ compiler.gccrs-g143.semver=14.3 (GCC)
compiler.gccrs-g151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gccrs compiler.gccrs-g151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gccrs
compiler.gccrs-g151.semver=15.1 (GCC) 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.gcc-snapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gccrs compiler.gcc-snapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gccrs
compiler.gcc-snapshot.semver=(GCC master) compiler.gcc-snapshot.semver=(GCC master)
compiler.gcc-snapshot.isNightly=true compiler.gcc-snapshot.isNightly=true
@@ -259,7 +265,7 @@ compiler.gccrs-snapshot.semver=(GCCRS master)
compiler.gccrs-snapshot.isNightly=true compiler.gccrs-snapshot.isNightly=true
## GCC (from upstream GCC, not GCCRS github) x86 build with "assertions" (--enable-checking=XXX) ## 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 group.gccrsassert.compilers=gccrs-g141assert:gccrs-g142assert:gccrs-g143assert:gccrs-g151assert:gccrs-g152assert
group.gccrsassert.groupName=x86-64 GCC (assertions) group.gccrsassert.groupName=x86-64 GCC (assertions)
compiler.gccrs-g141assert.exe=/opt/compiler-explorer/gcc-assertions-14.1.0/bin/gccrs compiler.gccrs-g141assert.exe=/opt/compiler-explorer/gcc-assertions-14.1.0/bin/gccrs
@@ -274,6 +280,9 @@ compiler.gccrs-g143assert.semver=14.3 (GCC assertions)
compiler.gccrs-g151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gccrs compiler.gccrs-g151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gccrs
compiler.gccrs-g151assert.semver=15.1 (GCC assertions) 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)
# cross compilers # cross compilers
group.gcccross.compilers=&rustgccbpf group.gcccross.compilers=&rustgccbpf
group.gcccross.supportsExecute=false group.gcccross.supportsExecute=false

View File

@@ -1,7 +1,7 @@
compilers=&spice compilers=&spice
defaultCompiler=spice02202 defaultCompiler=spice02203
group.spice.compilers=spice01902:spice01903:spice01904:spice01905:spice01906:spice02000:spice02001:spice02002:spice02003:spice02004:spice02005:spice02006:spice02100:spice02101:spice02200:spice02201:spice02202 group.spice.compilers=spice01902:spice01903:spice01904:spice01905:spice01906:spice02000:spice02001:spice02002:spice02003:spice02004:spice02005:spice02006:spice02100:spice02101:spice02200:spice02201:spice02202:spice02203
group.spice.demangler=/opt/compiler-explorer/gcc-14.2.0/bin/c++filt group.spice.demangler=/opt/compiler-explorer/gcc-14.2.0/bin/c++filt
group.spice.objdumper=/opt/compiler-explorer/gcc-14.2.0/bin/objdump group.spice.objdumper=/opt/compiler-explorer/gcc-14.2.0/bin/objdump
group.spice.isSemVer=true group.spice.isSemVer=true
@@ -49,6 +49,8 @@ compiler.spice02201.exe=/opt/compiler-explorer/spice-0.22.1/spice
compiler.spice02201.semver=0.22.1 compiler.spice02201.semver=0.22.1
compiler.spice02202.exe=/opt/compiler-explorer/spice-0.22.2/spice compiler.spice02202.exe=/opt/compiler-explorer/spice-0.22.2/spice
compiler.spice02202.semver=0.22.2 compiler.spice02202.semver=0.22.2
compiler.spice02203.exe=/opt/compiler-explorer/spice-0.22.3/spice
compiler.spice02203.semver=0.22.3
################################# #################################
################################# #################################

View File

@@ -1,5 +1,5 @@
compilers=&triton_nvidia:&triton_amd compilers=&triton_nvidia:&triton_amd
defaultCompiler=triton_nvidia_331 defaultCompiler=triton_nvidia_340
compilerType=triton compilerType=triton
interpreted=true interpreted=true
supportsBinary=false supportsBinary=false
@@ -7,10 +7,13 @@ supportsExecute=false
isSemVer=true isSemVer=true
notification=Experimental Triton support on Compiler Explorer. For tutorials, bugs reports, and feature requests, please visit <a href="https://github.com/ShawnZhong/compiler-explorer-triton">here</a>. notification=Experimental Triton support on Compiler Explorer. For tutorials, bugs reports, and feature requests, please visit <a href="https://github.com/ShawnZhong/compiler-explorer-triton">here</a>.
group.triton_nvidia.compilers=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_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.groupName=Triton (Nvidia)
group.triton_nvidia.options=--backend cuda --arch 90 --warp_size 32 group.triton_nvidia.options=--backend cuda --arch 90 --warp_size 32
compiler.triton_nvidia_340.name=Triton 3.4.0 (Nvidia)
compiler.triton_nvidia_340.exe=/opt/compiler-explorer/triton/v3.4.0/bin/python3
compiler.triton_nvidia_331.name=Triton 3.3.1 (Nvidia) compiler.triton_nvidia_331.name=Triton 3.3.1 (Nvidia)
compiler.triton_nvidia_331.exe=/opt/compiler-explorer/triton/v3.3.1/bin/python3 compiler.triton_nvidia_331.exe=/opt/compiler-explorer/triton/v3.3.1/bin/python3
@@ -32,10 +35,13 @@ 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.name=Triton 2.3.0 (Nvidia)
compiler.triton_nvidia_230.exe=/opt/compiler-explorer/triton/v2.3.0/bin/python3 compiler.triton_nvidia_230.exe=/opt/compiler-explorer/triton/v2.3.0/bin/python3
group.triton_amd.compilers=triton_amd_331:triton_amd_330:triton_amd_320:triton_amd_310:triton_amd_300 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.groupName=Triton (AMD) group.triton_amd.groupName=Triton (AMD)
group.triton_amd.options=--backend hip --arch gfx942 --warp_size 32 group.triton_amd.options=--backend hip --arch gfx942 --warp_size 32
compiler.triton_amd_340.name=Triton 3.4.0 (AMD)
compiler.triton_amd_340.exe=/opt/compiler-explorer/triton/v3.4.0/bin/python3
compiler.triton_amd_331.name=Triton 3.3.1 (AMD) compiler.triton_amd_331.name=Triton 3.3.1 (AMD)
compiler.triton_amd_331.exe=/opt/compiler-explorer/triton/v3.3.1/bin/python3 compiler.triton_amd_331.exe=/opt/compiler-explorer/triton/v3.3.1/bin/python3

View File

@@ -1,5 +1,5 @@
compilers=&triton_nvidia:&triton_amd compilers=&triton_nvidia:&triton_amd
defaultCompiler=triton_nvidia_331 defaultCompiler=triton_nvidia_340
compilerType=triton compilerType=triton
interpreted=true interpreted=true
supportsBinary=false supportsBinary=false
@@ -7,10 +7,13 @@ supportsExecute=false
isSemVer=true isSemVer=true
notification=Experimental Triton support on Compiler Explorer. For tutorials, bugs reports, and feature requests, please visit <a href="https://github.com/ShawnZhong/compiler-explorer-triton">here</a>. notification=Experimental Triton support on Compiler Explorer. For tutorials, bugs reports, and feature requests, please visit <a href="https://github.com/ShawnZhong/compiler-explorer-triton">here</a>.
group.triton_nvidia.compilers=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_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.groupName=Triton (Nvidia)
group.triton_nvidia.options=--backend cuda --arch 90 --warp_size 32 group.triton_nvidia.options=--backend cuda --arch 90 --warp_size 32
compiler.triton_nvidia_340.name=Triton 3.4.0 (Nvidia)
compiler.triton_nvidia_340.exe=/opt/compiler-explorer/triton/v3.4.0/bin/python3
compiler.triton_nvidia_331.name=Triton 3.3.1 (Nvidia) compiler.triton_nvidia_331.name=Triton 3.3.1 (Nvidia)
compiler.triton_nvidia_331.exe=/opt/compiler-explorer/triton/v3.3.1/bin/python3 compiler.triton_nvidia_331.exe=/opt/compiler-explorer/triton/v3.3.1/bin/python3
@@ -32,10 +35,13 @@ 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.name=Triton 2.3.0 (Nvidia)
compiler.triton_nvidia_230.exe=/opt/compiler-explorer/triton/v2.3.0/bin/python3 compiler.triton_nvidia_230.exe=/opt/compiler-explorer/triton/v2.3.0/bin/python3
group.triton_amd.compilers=triton_amd_331:triton_amd_330:triton_amd_320:triton_amd_310:triton_amd_300 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.groupName=Triton (AMD) group.triton_amd.groupName=Triton (AMD)
group.triton_amd.options=--backend hip --arch gfx942 --warp_size 32 group.triton_amd.options=--backend hip --arch gfx942 --warp_size 32
compiler.triton_amd_340.name=Triton 3.4.0 (AMD)
compiler.triton_amd_340.exe=/opt/compiler-explorer/triton/v3.4.0/bin/python3
compiler.triton_amd_331.name=Triton 3.3.1 (AMD) compiler.triton_amd_331.name=Triton 3.3.1 (AMD)
compiler.triton_amd_331.exe=/opt/compiler-explorer/triton/v3.3.1/bin/python3 compiler.triton_amd_331.exe=/opt/compiler-explorer/triton/v3.3.1/bin/python3

View File

@@ -73,7 +73,7 @@ def main():
(soup.find('a', class_='reference internal', href='#special-registers').parent.find_all('a'), (soup.find('a', class_='reference internal', href='#special-registers').parent.find_all('a'),
'Special Registers: ')]: 'Special Registers: ')]:
for link in links: for link in links:
if anchor_text_sep in link.string: if link.string and anchor_text_sep in link.string:
topic, instructions0 = link.string.split(anchor_text_sep) topic, instructions0 = link.string.split(anchor_text_sep)
instructions: list[str] = instructions0.replace(' / ', ', ').split(', ') instructions: list[str] = instructions0.replace(' / ', ', ').split(', ')
href: str = link.get('href') href: str = link.get('href')
@@ -100,19 +100,23 @@ def main():
raise AssertionError raise AssertionError
article.p.decompose() # remove the instruction name article.p.decompose() # remove the instruction name
return Doc(title.rstrip(''), txt, str(article)) return Doc(title.rstrip(''), txt, str(article))
symbol_to_doc: list[tuple[str, str, str, list[tuple[str, str]]]] = [] symbol_to_doc: list[tuple[str, str, str, list[tuple[str, str]]]] = []
for symbol, fullname_fragments in symbol_to_fullname_frag: for symbol, fullname_fragments in symbol_to_fullname_frag:
docs = [get_doc(fragment) for _, fragment in fullname_fragments] docs = [get_doc(fragment) for _, fragment in fullname_fragments]
symbol_to_doc.append((symbol, *combine_docs(docs, fullname_fragments), fullname_fragments)) symbol_to_doc.append((symbol, *combine_docs(docs, fullname_fragments), fullname_fragments))
# get SASS docs # get SASS docs
tables = pd.read_html('https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html', match='Opcode') tables = pd.read_html('https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html', match='Opcode')
sass_docs = sorted(dict(pd.concat(tables).dropna().itertuples(index=False)).items()) sass_docs = sorted(
(opcode, description)
for (opcode, description) in pd.concat(tables).dropna().drop_duplicates(["Opcode"], keep="last").itertuples(index=False)
if opcode != description
)
with open( args.outputfolder + '/asm-docs-ptx.ts', 'w') as f: with open( args.outputfolder + '/asm-docs-ptx.ts', 'w') as f:
f.write(""" f.write("""
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;
@@ -133,7 +137,7 @@ def main():
""") """)
with open(args.outputfolder + '/asm-docs-sass.ts', 'w') as f: with open(args.outputfolder + '/asm-docs-sass.ts', 'w') as f:
f.write(""" f.write("""
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;
@@ -141,15 +145,16 @@ def main():
""".lstrip()) """.lstrip())
# SASS # SASS
for name, description in sass_docs: for name, description in sass_docs:
url = f"https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-reference"
f.write(f' case "{name}":\n') f.write(f' case "{name}":\n')
f.write(' return {}'.format(json.dumps({ f.write(' return {}'.format(json.dumps({
"tooltip": description, "tooltip": description,
"html": description + "html": description +
f'<br><br>For more information, visit <a href="https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#id14" target="_blank" rel="noopener noreferrer">' f'<br><br>For more information, visit <a href="{url}" target="_blank" rel="noopener noreferrer">'
'CUDA Binary Utilities' + 'CUDA Binary Utilities' +
' documentation <sup><small class="fas fa-external-link-alt opens-new-window"' + ' documentation <sup><small class="fas fa-external-link-alt opens-new-window"' +
' title="Opens in a new window"></small></sup></a>.', ' title="Opens in a new window"></small></sup></a>.',
"url": "https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#id14" "url": url
}, indent=16, separators=(',', ': '), sort_keys=True))[:-1] + ' };\n\n') }, indent=16, separators=(',', ': '), sort_keys=True))[:-1] + ' };\n\n')
f.write(""" f.write("""
@@ -158,4 +163,4 @@ def main():
""") """)
if __name__ == '__main__': if __name__ == '__main__':
main() main()

View File

@@ -1,3 +0,0 @@
{
"type": "commonjs"
}

View File

@@ -0,0 +1,156 @@
# 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 subprocess
import tempfile
from dataclasses import dataclass
from pathlib import Path
from typing import Tuple
import pytest
@dataclass(frozen=True)
class Config:
version_tuple: Tuple[int, int, int]
backend: str
opt_pipeline: bool
@property
def python_path(self) -> Path:
version = f"v{'.'.join(str(v) for v in self.version_tuple)}"
return Path(f"/opt/compiler-explorer/triton/{version}/bin/python3")
CONFIGS = [
Config(version_tuple=version_tuple, backend=backend, opt_pipeline=opt_pipeline)
for backend in ["cuda", "hip"]
for opt_pipeline in [True, False]
for version_tuple in [
(3, 4, 0),
(3, 3, 1),
(3, 3, 0),
(3, 2, 0),
(3, 1, 0),
(3, 0, 0),
(2, 3, 1),
(2, 3, 0),
]
if (
not any(
[
# AMD support added in 3.0.0
(backend == "hip" and version_tuple < (3, 0, 0)),
# Opt pipeline support added in 3.3.0
(opt_pipeline and version_tuple < (3, 3, 0)),
]
)
)
]
# Simple Triton example code for testing
KERNEL_NAME = "store_kernel"
EXAMPLE_CODE = """
import torch
import triton
import triton.language as tl
@triton.jit
def store_kernel(ptr, val):
tl.store(ptr, val)
x = torch.empty(1)
store_kernel[(1,)](x, 1)
"""
@pytest.mark.parametrize("config", CONFIGS)
def test_triton_wrapper(config: Config):
if not config.python_path.exists():
pytest.skip(f"Python interpreter not found: {config.python_path}")
# Create temporary files for testing
with tempfile.TemporaryDirectory() as temp_dir:
temp_dir_path = Path(temp_dir)
# Create example input file
input_file = temp_dir_path / "example.py"
with open(input_file, "w") as f:
f.write(EXAMPLE_CODE)
# Output files
output_file = temp_dir_path / "output.s"
opt_pipeline_file = temp_dir_path / "opt_pipeline.txt"
# Run triton_wrapper.py
script_path = Path(__file__).parent / "triton_wrapper.py"
cmd = [
str(config.python_path),
str(script_path),
str(input_file),
"--output_file",
str(output_file),
"--backend",
config.backend,
]
if config.opt_pipeline:
cmd.append("--opt_pipeline")
cmd.append(str(opt_pipeline_file))
try:
subprocess.run(cmd, check=True, timeout=60)
if config.opt_pipeline:
# Check that the opt pipeline file was created
assert opt_pipeline_file.exists(), f"Opt pipeline file not created"
assert (
KERNEL_NAME in opt_pipeline_file.read_text()
), f"Opt pipeline file does not contain kernel name: {KERNEL_NAME}"
else:
# Check that the output file was created
assert output_file.exists(), f"Output file not created"
# Check that the output file has content
output_content = output_file.read_text()
assert output_content, f"Output file is empty"
# Check for auxiliary files
files = list(temp_dir_path.iterdir())
exts = [".ttir", ".ttgir", ".llir", ".json"]
if config.backend == "hip":
exts.append(".amdgcn")
elif config.backend == "cuda":
exts.append(".ptx")
for ext in exts:
file = next((f for f in files if f.suffix == ext), None)
assert file is not None, f"Missing file with extension {ext}"
assert (
KERNEL_NAME in file.read_text()
), f"File does not contain kernel name: {KERNEL_NAME}"
except subprocess.CalledProcessError:
pytest.fail(f"Error running triton_wrapper.py")
except subprocess.TimeoutExpired:
pytest.fail(f"Timeout running triton_wrapper.py")

View File

@@ -1,6 +1,29 @@
# 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 argparse import argparse
import importlib.util import importlib.util
import inspect
import json import json
import os import os
from pathlib import Path from pathlib import Path
@@ -123,8 +146,8 @@ def setup_triton(
2. Even if Triton adds such support, older versions of Triton (e.g., v2.3.x) still 2. Even if Triton adds such support, older versions of Triton (e.g., v2.3.x) still
requirs such patching to work. requirs such patching to work.
This function is a collection of hacks. It has been tested to work with Triton 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. 2.3.0, 2.3.1, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.3.1, 3.4.0.
""" """
os.environ["TRITON_ALWAYS_COMPILE"] = "1" os.environ["TRITON_ALWAYS_COMPILE"] = "1"
@@ -181,6 +204,19 @@ def setup_triton(
except ImportError: except ImportError:
pass pass
# Triton used to depends on the ld.lld binary, and search for the following paths:
# - TRITON_HIP_LLD_PATH (see https://github.com/triton-lang/triton/pull/3917)
# - third_party/amd/backend/llvm/bin/ld.lld (see https://github.com/triton-lang/triton/pull/3662)
# - /opt/rocm/llvm/bin/ld.lld
# - /usr/bin/ld.lld (see https://github.com/triton-lang/triton/pull/3197)
# However, none of them are available in the production environment, which causes
# Exception: ROCm linker /opt/rocm/llvm/bin/ld.lld not found. Set 'TRITON_HIP_LLD_PATH' to its path.
# Since the linker is only used to generate the binary .hsaco file (from the .amdgcn assembly),
# we don't really need it. We can just mock it to be a no-op.
# Note: Triton no longer depends on the ld.lld binary after v3.4.0 (exclusive) with commit:
# https://github.com/triton-lang/triton/pull/7548
os.environ["TRITON_HIP_LLD_PATH"] = "/bin/true"
def main( def main(
input_file: Path, input_file: Path,

View File

@@ -1,10 +0,0 @@
@echo off
rem gotten from something like:
rem call "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
rem set
rem get out the include/lib/libpath/path
set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;C:\Program Files (x86)\Windows Kits\8.1\include\winrt;
set LIB=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64;
set LIBPATH=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;References\CommonConfiguration\Neutral;\Microsoft.VCLibs\14.0\References\CommonConfiguration\neutral;
set Path=C:\Program Files (x86)\MSBuild\14.0\bin\amd64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64;C:\Program Files (x86)\Windows Kits\8.1\bin\x64;C:\Program Files (x86)\Windows Kits\8.1\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Amazon\cfn-bootstrap\;C:\ProgramData\chocolatey\bin;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Users\Administrator\AppData\Roaming\npm
cl /nologo %*

View File

@@ -1,10 +0,0 @@
@echo off
rem gotten from something like:
rem call "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
rem set
rem get out the include/lib/libpath/path
set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;C:\Program Files (x86)\Windows Kits\8.1\include\winrt;
set LIB=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB;C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x86;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86;
set LIBPATH=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB;References\CommonConfiguration\Neutral;\Microsoft.VCLibs\14.0\References\CommonConfiguration\neutral;
set Path=C:\Program Files (x86)\MSBuild\14.0\bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN;C:\Program Files (x86)\Windows Kits\8.1\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Amazon\cfn-bootstrap\;C:\ProgramData\chocolatey\bin;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Users\Administrator\AppData\Roaming\npm
cl /nologo %*

View File

@@ -1,7 +1,7 @@
const {execSync} = require('child_process'); import {execSync} from 'child_process';
const {getHashDigest} = require('loader-utils'); import {getHashDigest} from 'loader-utils';
const pug = require('pug'); import pug from 'pug';
const path = require('path'); import path from 'path';
// If you edit either cookies.pug or privacy.pug be aware this will trigger a popup on the users' next visit. // If you edit either cookies.pug or privacy.pug be aware this will trigger a popup on the users' next visit.
// Knowing the last versions here helps us be aware when this happens. If you get an error here and you _haven't_ // Knowing the last versions here helps us be aware when this happens. If you get an error here and you _haven't_
@@ -9,7 +9,7 @@ const path = require('path');
// just update the hash here. // just update the hash here.
const expectedHashes = { const expectedHashes = {
cookies: '08712179739d3679', cookies: '08712179739d3679',
privacy: 'c0dad1f48a56b761', privacy: '074dd09a246ad6fe',
}; };
function _execGit(command) { function _execGit(command) {
@@ -20,7 +20,7 @@ function _execGit(command) {
return gitResult.toString(); return gitResult.toString();
} }
module.exports = function (content) { export default function (content) {
const filePath = this.resourcePath; const filePath = this.resourcePath;
const filename = path.basename(filePath, '.pug'); const filename = path.basename(filePath, '.pug');
const options = this.getOptions(); const options = this.getOptions();

View File

@@ -0,0 +1,56 @@
/**
* Simple webpack loader to replace @import statements for golden-layout with actual CSS content
* This runs before sass-loader to replace the imports with raw CSS content
*/
import fs from 'fs';
import path from 'path';
import {fileURLToPath} from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const GOLDEN_LAYOUT_PREFIX = '~golden-layout/';
export default function replaceGoldenLayoutImports(source) {
// Only process if it contains golden-layout imports
if (!source.includes('@import') || !source.includes('golden-layout')) {
return source;
}
// Find all golden-layout @import statements and replace them
const importRegex = /@import\s+['"]([^'"]+)['"];?\s*/g;
return source.replace(importRegex, (match, importPath) => {
if (importPath.startsWith(GOLDEN_LAYOUT_PREFIX)) {
return replaceGoldenLayoutImport(importPath);
}
// Return other imports unchanged
return match;
});
};
function replaceGoldenLayoutImport(importPath) {
const goldenLayoutPath = importPath.substring(GOLDEN_LAYOUT_PREFIX.length);
const cssContent = readGoldenLayoutCSS(goldenLayoutPath);
const fileName = goldenLayoutPath.split('/').pop();
const themeName = fileName.replace(/^goldenlayout-/, '').replace(/\.css$/, '');
return `/* Golden Layout ${themeName} - Inlined */\n${cssContent}\n/* End Golden Layout ${themeName} */`;
}
function readGoldenLayoutCSS(relativePath) {
// Use import.meta.resolve to find the golden-layout package location robustly
const packageJsonPath = import.meta.resolve('golden-layout/package.json');
const packageDir = path.dirname(fileURLToPath(packageJsonPath));
// Ensure .css extension if not present
const finalPath = relativePath.endsWith('.css') ? relativePath : `${relativePath}.css`;
const cssPath = path.join(packageDir, finalPath);
if (!fs.existsSync(cssPath)) {
throw new Error(`Golden Layout CSS file not found: ${cssPath}`);
}
return fs.readFileSync(cssPath, 'utf8');
}

File diff suppressed because it is too large Load Diff

View File

@@ -217,6 +217,7 @@ export class BaseCompiler {
labelNames: [], labelNames: [],
}); });
protected executionEnvironmentClass: any; protected executionEnvironmentClass: any;
protected readonly argParser: BaseParser;
constructor(compilerInfo: PreliminaryCompilerInfo & {disabledFilters?: string[]}, env: CompilationEnvironment) { constructor(compilerInfo: PreliminaryCompilerInfo & {disabledFilters?: string[]}, env: CompilationEnvironment) {
// Information about our compiler // Information about our compiler
@@ -306,6 +307,7 @@ export class BaseCompiler {
} }
this.packager = new Packager(); this.packager = new Packager();
this.argParser = new (this.getArgumentParserClass())(this);
} }
copyAndFilterLibraries(allLibraries: Record<string, OptionsHandlerLibrary>, filter: string[]) { copyAndFilterLibraries(allLibraries: Record<string, OptionsHandlerLibrary>, filter: string[]) {
@@ -715,6 +717,9 @@ export class BaseCompiler {
if (gccDumpOptions.dumpFlags.address !== false) { if (gccDumpOptions.dumpFlags.address !== false) {
flags += '-address'; flags += '-address';
} }
if (gccDumpOptions.dumpFlags.alias !== false) {
flags += '-alias';
}
if (gccDumpOptions.dumpFlags.slim !== false) { if (gccDumpOptions.dumpFlags.slim !== false) {
flags += '-slim'; flags += '-slim';
} }
@@ -3595,8 +3600,7 @@ but nothing was dumped. Possible causes are:
async getTargetsAsOverrideValues(): Promise<CompilerOverrideOption[]> { async getTargetsAsOverrideValues(): Promise<CompilerOverrideOption[]> {
if (!this.buildenvsetup || !this.buildenvsetup.getCompilerArch()) { if (!this.buildenvsetup || !this.buildenvsetup.getCompilerArch()) {
const parserCls = this.getArgumentParserClass(); const targets = await this.argParser.getPossibleTargets();
const targets = await parserCls.getPossibleTargets(this);
return targets.map(target => { return targets.map(target => {
return { return {
@@ -3609,8 +3613,7 @@ but nothing was dumped. Possible causes are:
} }
async getPossibleStdversAsOverrideValues(): Promise<CompilerOverrideOption[]> { async getPossibleStdversAsOverrideValues(): Promise<CompilerOverrideOption[]> {
const parser = this.getArgumentParserClass(); return await this.argParser.getPossibleStdvers();
return await parser.getPossibleStdvers(this);
} }
async populatePossibleRuntimeTools() { async populatePossibleRuntimeTools() {
@@ -3791,7 +3794,7 @@ but nothing was dumped. Possible causes are:
} }
return this; return this;
} }
const initResult = await this.getArgumentParserClass().parse(this); const initResult = await this.argParser.parse();
this.possibleArguments.possibleArguments = {}; this.possibleArguments.possibleArguments = {};
await this.populatePossibleOverrides(); await this.populatePossibleOverrides();

View File

@@ -40,11 +40,17 @@ export class PythonCFGParser extends BaseCFGParser {
return x.startsWith('Disassembly of'); return x.startsWith('Disassembly of');
} }
override isBasicBlockEnd(inst: string, prevInst: string) { private isJmpTarget(inst: string) {
if (inst.includes('>>')) if (inst.includes('>>'))
// jmp target // for python <= 3.12
return true; return true;
// for python 3.13: 'label' lines look like ` 8 L4: LOAD_GLOBAL 1 (print + NULL)`
return inst.match(/^\s*\d+\s*L\d+:/);
}
override isBasicBlockEnd(inst: string, prevInst: string) {
// Probably applicable to non-python CFGs too: // Probably applicable to non-python CFGs too:
if (this.isJmpTarget(inst)) return true;
return this.instructionSetInfo.getInstructionType(prevInst) !== InstructionType.notRetInst; return this.instructionSetInfo.getInstructionType(prevInst) !== InstructionType.notRetInst;
} }

View File

@@ -562,7 +562,9 @@ export class CompilerFinder {
} }
} }
if (error) { if (error) {
assert(false); logger.error(
'Note there are orphaned compiler properties, please fix them unless you are doing this on purpose',
);
} }
} }

View File

@@ -50,6 +50,7 @@ export {CleanCompiler} from './clean.js';
export {CLSPVCompiler} from './clspv.js'; export {CLSPVCompiler} from './clspv.js';
export {CMakeScriptCompiler} from './cmakescript.js'; export {CMakeScriptCompiler} from './cmakescript.js';
export {CoccinelleCCompiler, CoccinelleCPlusPlusCompiler} from './coccinelle.js'; export {CoccinelleCCompiler, CoccinelleCPlusPlusCompiler} from './coccinelle.js';
export {CodonCompiler} from './codon.js';
export {CompCertCompiler} from './compcert.js'; export {CompCertCompiler} from './compcert.js';
export {CppFrontCompiler} from './cppfront.js'; export {CppFrontCompiler} from './cppfront.js';
export {CprocCompiler} from './cproc.js'; export {CprocCompiler} from './cproc.js';

File diff suppressed because it is too large Load Diff

View File

@@ -133,10 +133,6 @@ export class CoccinelleCCompiler extends BaseCompiler {
return super.getIrOutputFilename(inputFilename, filters); return super.getIrOutputFilename(inputFilename, filters);
} }
override getArgumentParserClass() {
return super.getArgumentParserClass();
}
override isCfgCompiler() { override isCfgCompiler() {
return false; return false;
} }

55
lib/compilers/codon.ts Normal file
View File

@@ -0,0 +1,55 @@
// 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 type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import type {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {BaseCompiler} from '../base-compiler.js';
export class CodonCompiler extends BaseCompiler {
static get key() {
return 'codon';
}
override optionsForFilter(
filters: ParseFiltersAndOutputOptions,
outputFilename: string,
userOptions?: string[],
): string[] {
filters.binary = !(userOptions?.includes('-llvm') || userOptions?.includes('--llvm'));
return ['build', '-o', this.filename(outputFilename)];
}
override getSharedLibraryPathsAsArguments(
libraries: SelectedLibraryVersion[],
libDownloadPath: string | undefined,
toolchainPath: string | undefined,
dirPath: string,
): string[] {
return [];
}
override getCompilerResultLanguageId(filters?: ParseFiltersAndOutputOptions): string | undefined {
return filters?.binary ? 'asm' : 'llvm-ir';
}
}

View File

@@ -27,6 +27,7 @@ import path from 'node:path';
import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js'; import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces.js';
import {BaseCompiler} from '../base-compiler.js'; import {BaseCompiler} from '../base-compiler.js';
import {changeExtension} from '../utils.js'; import {changeExtension} from '../utils.js';
import {MojoParser} from './argument-parsers.js';
export class MojoCompiler extends BaseCompiler { export class MojoCompiler extends BaseCompiler {
static get key() { static get key() {
@@ -95,4 +96,8 @@ export class MojoCompiler extends BaseCompiler {
const irText = await fs.readFile(llPath, 'utf8'); const irText = await fs.readFile(llPath, 'utf8');
return {asm: irText.split('\n').map(text => ({text}))}; return {asm: irText.split('\n').map(text => ({text}))};
} }
override getArgumentParserClass() {
return MojoParser;
}
} }

View File

@@ -117,7 +117,7 @@ export class RustCompiler extends BaseCompiler {
} }
override async populatePossibleOverrides() { override async populatePossibleOverrides() {
const possibleEditions = await RustParser.getPossibleEditions(this); const possibleEditions = await this.argParser.getPossibleEditions();
if (possibleEditions.length > 0) { if (possibleEditions.length > 0) {
let defaultEdition: undefined | string; let defaultEdition: undefined | string;
if (!this.compiler.semver || this.isNightly()) { if (!this.compiler.semver || this.isNightly()) {

View File

@@ -26,7 +26,7 @@ export class TableGenCompiler extends BaseCompiler {
} }
override async populatePossibleOverrides() { override async populatePossibleOverrides() {
const possibleActions = await TableGenParser.getPossibleActions(this); const possibleActions = await this.argParser.getPossibleActions();
if (possibleActions.length > 0) { if (possibleActions.length > 0) {
this.compiler.possibleOverrides?.push({ this.compiler.possibleOverrides?.push({
name: CompilerOverrideType.action, name: CompilerOverrideType.action,

View File

@@ -493,7 +493,7 @@ const definitions: Record<LanguageKey, LanguageDefinition> = {
monaco: 'hylo', monaco: 'hylo',
extensions: ['.hylo'], extensions: ['.hylo'],
alias: [], alias: [],
logoFilename: 'hylo.svg', logoFilename: 'hylo.png',
logoFilenameDark: null, logoFilenameDark: null,
formatter: null, formatter: null,
previewFilter: null, previewFilter: null,
@@ -607,7 +607,7 @@ const definitions: Record<LanguageKey, LanguageDefinition> = {
monaco: 'nim', monaco: 'nim',
extensions: ['.nim'], extensions: ['.nim'],
alias: [], alias: [],
logoFilename: 'nim.svg', logoFilename: 'nim.png',
logoFilenameDark: null, logoFilenameDark: null,
formatter: null, formatter: null,
previewFilter: null, previewFilter: null,

View File

@@ -120,6 +120,7 @@ export type ClientOptionsType = {
}; };
motdUrl: string; motdUrl: string;
pageloadUrl: string; pageloadUrl: string;
explainApiEndpoint: string;
}; };
/*** /***
@@ -220,6 +221,7 @@ export class ClientOptionsHandler implements ClientOptionsSource {
}, },
}, },
motdUrl: ceProps('motdUrl', ''), motdUrl: ceProps('motdUrl', ''),
explainApiEndpoint: ceProps('explainApiEndpoint', ''),
pageloadUrl: ceProps('pageloadUrl', ''), pageloadUrl: ceProps('pageloadUrl', ''),
}; };
// Will be immediately replaced with actual values // Will be immediately replaced with actual values

View File

@@ -333,7 +333,7 @@ export class AsmParser extends AsmRegex implements IAsmParser {
// Opcode expression here matches LLVM-style opcodes of the form `%blah = opcode` // Opcode expression here matches LLVM-style opcodes of the form `%blah = opcode`
this.hasOpcodeRe = /^\s*(%[$.A-Z_a-z][\w$.]*\s*=\s*)?[A-Za-z]/; this.hasOpcodeRe = /^\s*(%[$.A-Z_a-z][\w$.]*\s*=\s*)?[A-Za-z]/;
this.instructionRe = /^\s*[A-Za-z]+/; this.instructionRe = /^\s*[A-Za-z]+/;
this.identifierFindRe = /([$.@A-Z_a-z]\w*)(?:@\w+)*/g; this.identifierFindRe = /([$.@A-Z_a-z"]\w*"?)(?:@\w+)*/g;
this.hasNvccOpcodeRe = /^\s*[@A-Za-z|]/; this.hasNvccOpcodeRe = /^\s*[@A-Za-z|]/;
this.definesFunction = /^\s*\.(type.*,\s*[#%@]function|proc\s+[.A-Z_a-z][\w$.]*:.*)$/; this.definesFunction = /^\s*\.(type.*,\s*[#%@]function|proc\s+[.A-Z_a-z][\w$.]*:.*)$/;
this.definesGlobal = /^\s*\.(?:globa?l|GLB|export)\s*([.A-Z_a-z][\w$.]*|"[.A-Z_a-z][\w$.]*")/; this.definesGlobal = /^\s*\.(?:globa?l|GLB|export)\s*([.A-Z_a-z][\w$.]*|"[.A-Z_a-z][\w$.]*")/;

29
package-lock.json generated
View File

@@ -43,6 +43,7 @@
"lodash.clonedeep": "^4.5.0", "lodash.clonedeep": "^4.5.0",
"lru-cache": "^11.1.0", "lru-cache": "^11.1.0",
"lz-string": "^1.5.0", "lz-string": "^1.5.0",
"marked": "^15.0.12",
"monaco-editor": "^0.49.0", "monaco-editor": "^0.49.0",
"monaco-vim": "^0.4.2", "monaco-vim": "^0.4.2",
"morgan": "^1.10.1", "morgan": "^1.10.1",
@@ -6162,9 +6163,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001727", "version": "1.0.30001731",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz",
"integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", "integrity": "sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@@ -6178,7 +6179,8 @@
"type": "github", "type": "github",
"url": "https://github.com/sponsors/ai" "url": "https://github.com/sponsors/ai"
} }
] ],
"license": "CC-BY-4.0"
}, },
"node_modules/caseless": { "node_modules/caseless": {
"version": "0.12.0", "version": "0.12.0",
@@ -10267,6 +10269,18 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/marked": {
"version": "15.0.12",
"resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz",
"integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==",
"license": "MIT",
"bin": {
"marked": "bin/marked.js"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/math-intrinsics": { "node_modules/math-intrinsics": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
@@ -13838,10 +13852,11 @@
"dev": true "dev": true
}, },
"node_modules/tmp": { "node_modules/tmp": {
"version": "0.2.3", "version": "0.2.4",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.4.tgz",
"integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "integrity": "sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==",
"dev": true, "dev": true,
"license": "MIT",
"engines": { "engines": {
"node": ">=14.14" "node": ">=14.14"
} }

View File

@@ -52,6 +52,7 @@
"lodash.clonedeep": "^4.5.0", "lodash.clonedeep": "^4.5.0",
"lru-cache": "^11.1.0", "lru-cache": "^11.1.0",
"lz-string": "^1.5.0", "lz-string": "^1.5.0",
"marked": "^15.0.12",
"monaco-editor": "^0.49.0", "monaco-editor": "^0.49.0",
"monaco-vim": "^0.4.2", "monaco-vim": "^0.4.2",
"morgan": "^1.10.1", "morgan": "^1.10.1",

44
public/logos/README.md Normal file
View File

@@ -0,0 +1,44 @@
# Logo Optimization Guidelines
This directory contains logos for programming languages displayed in Compiler Explorer. To maintain fast loading times and reasonable bundle sizes, logos should be optimized before adding them.
## Size Guidelines
- **Target size**: Keep individual logos under 20KB when possible
- **Maximum dimensions**: 256×256 pixels (preserving aspect ratio)
- **File formats**: SVG preferred for simple graphics, PNG for complex images
## Optimization Tools & Commands
### PNG Images
```bash
# Resize and optimize (preserves aspect ratio)
convert input.png -resize 256x256> -quality 85 output.png
# Alternative with pngquant for better compression
pngquant --quality=65-80 --output output.png input.png
```
### SVG Images
```bash
# Optimize with SVGO (install with: npm install -g svgo)
npx svgo input.svg --output output.svg
# For SVGs with embedded raster data, convert to PNG instead
convert input.svg -resize 256x256 -quality 85 output.png
```
## Common Issues
- **Embedded Base64 data in SVGs**: These are usually very large (300KB+). Convert to PNG instead.
- **Oversized PNGs**: Images over 1000px wide/tall should be resized to 256×256 or smaller.
- **16-bit PNGs**: Convert to 8-bit with `convert input.png -depth 8 output.png`
## Recent Optimizations
Examples of successful optimizations:
- `hylo.svg` (321KB) → `hylo.png` (27KB) - 92% reduction
- `nim.svg` (126KB) → `nim.png` (13KB) - 90% reduction
- `scala.png` (79KB) → optimized (14KB) - 82% reduction
Always test that optimized logos look good at small icon sizes (16-32px) in the UI.

0
public/logos/clean.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

0
public/logos/cpp.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

0
public/logos/dotnet.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
public/logos/erlang.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
public/logos/fsharp.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 692 B

After

Width:  |  Height:  |  Size: 692 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

BIN
public/logos/hylo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 320 KiB

0
public/logos/ispc.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
public/logos/nim.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 126 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 27 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 35 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 14 KiB

0
public/logos/solidity.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

0
public/logos/ts.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -209,3 +209,8 @@ class ArgumentParser {
export function splitArguments(str = ''): string[] { export function splitArguments(str = ''): string[] {
return new ArgumentParser(str).exec(); return new ArgumentParser(str).exec();
} }
export function capitaliseFirst(str: string): string {
if (str.length === 0) return str;
return str.charAt(0).toUpperCase() + str.slice(1);
}

View File

@@ -76,6 +76,7 @@ export const GNAT_DEBUG_VIEW_COMPONENT_NAME = 'gnatdebug' as const;
export const RUST_MACRO_EXP_VIEW_COMPONENT_NAME = 'rustmacroexp' as const; export const RUST_MACRO_EXP_VIEW_COMPONENT_NAME = 'rustmacroexp' as const;
export const RUST_HIR_VIEW_COMPONENT_NAME = 'rusthir' as const; export const RUST_HIR_VIEW_COMPONENT_NAME = 'rusthir' as const;
export const DEVICE_VIEW_COMPONENT_NAME = 'device' as const; export const DEVICE_VIEW_COMPONENT_NAME = 'device' as const;
export const EXPLAIN_VIEW_COMPONENT_NAME = 'explain' as const;
export type StateWithLanguage = {lang: string}; export type StateWithLanguage = {lang: string};
// TODO(#7808): Normalize state types to reduce duplication (see #4490) // TODO(#7808): Normalize state types to reduce duplication (see #4490)
@@ -338,6 +339,13 @@ export type PopulatedDeviceViewState = StateWithId & {
treeid: number; treeid: number;
}; };
export type EmptyExplainViewState = EmptyState;
export type PopulatedExplainViewState = StateWithId & {
compilerName: string;
editorid: number;
treeid: number;
};
/** /**
* Mapping of component names to their expected state types. This provides compile-time type safety for component * Mapping of component names to their expected state types. This provides compile-time type safety for component
* states. Components can have either empty (default) or populated states. * states. Components can have either empty (default) or populated states.
@@ -372,6 +380,7 @@ export interface ComponentStateMap {
[RUST_MACRO_EXP_VIEW_COMPONENT_NAME]: EmptyRustMacroExpViewState | PopulatedRustMacroExpViewState; [RUST_MACRO_EXP_VIEW_COMPONENT_NAME]: EmptyRustMacroExpViewState | PopulatedRustMacroExpViewState;
[RUST_HIR_VIEW_COMPONENT_NAME]: EmptyRustHirViewState | PopulatedRustHirViewState; [RUST_HIR_VIEW_COMPONENT_NAME]: EmptyRustHirViewState | PopulatedRustHirViewState;
[DEVICE_VIEW_COMPONENT_NAME]: EmptyDeviceViewState | PopulatedDeviceViewState; [DEVICE_VIEW_COMPONENT_NAME]: EmptyDeviceViewState | PopulatedDeviceViewState;
[EXPLAIN_VIEW_COMPONENT_NAME]: EmptyExplainViewState | PopulatedExplainViewState;
} }
/** /**

View File

@@ -41,6 +41,7 @@ import {
DragSourceFactory, DragSourceFactory,
EDITOR_COMPONENT_NAME, EDITOR_COMPONENT_NAME,
EXECUTOR_COMPONENT_NAME, EXECUTOR_COMPONENT_NAME,
EXPLAIN_VIEW_COMPONENT_NAME,
FLAGS_VIEW_COMPONENT_NAME, FLAGS_VIEW_COMPONENT_NAME,
GCC_DUMP_VIEW_COMPONENT_NAME, GCC_DUMP_VIEW_COMPONENT_NAME,
GNAT_DEBUG_TREE_VIEW_COMPONENT_NAME, GNAT_DEBUG_TREE_VIEW_COMPONENT_NAME,
@@ -939,6 +940,26 @@ export function getDeviceViewWith(
}; };
} }
/** Get an empty explain view component. */
export function getExplainView(): ComponentConfig<typeof EXPLAIN_VIEW_COMPONENT_NAME> {
return createComponentConfig(EXPLAIN_VIEW_COMPONENT_NAME, {});
}
/** Get an explain view with the given configuration. */
export function getExplainViewWith(
id: number,
compilerName: string,
editorid: number,
treeid: number,
): ComponentConfig<typeof EXPLAIN_VIEW_COMPONENT_NAME> {
return createComponentConfig(EXPLAIN_VIEW_COMPONENT_NAME, {
id,
compilerName,
editorid,
treeid,
});
}
/** /**
* Helper function to create a typed component configuration * Helper function to create a typed component configuration
*/ */

View File

@@ -72,6 +72,8 @@ export type EventMap = {
copyShortLinkToClip: () => void; copyShortLinkToClip: () => void;
deviceViewClosed: (compilerId: number) => void; deviceViewClosed: (compilerId: number) => void;
deviceViewOpened: (compilerId: number) => void; deviceViewOpened: (compilerId: number) => void;
explainViewClosed: (compilerId: number) => void;
explainViewOpened: (compilerId: number) => void;
displaySharingPopover: () => void; displaySharingPopover: () => void;
editorChange: (editorId: number, source: string, langId: string, compilerId?: number) => void; editorChange: (editorId: number, source: string, langId: string, compilerId?: number) => void;
editorClose: (editorId: number) => void; editorClose: (editorId: number) => void;

View File

@@ -17,12 +17,35 @@ html(lang="en")
| Thanks for your interest in what Compiler Explorer does with your data. Data protection is really | Thanks for your interest in what Compiler Explorer does with your data. Data protection is really
| important to the Compiler Explorer team, and we want to be very clear about what we do with your data. | important to the Compiler Explorer team, and we want to be very clear about what we do with your data.
h3 The short version
ul
li We compile your code then delete it from our servers.
li Short shared links store your code indefinitely if you choose to create them.
li We keep some logs to help run the service.
li We only share data with third parties with your explicit consent.
h3 How long we keep things
ul
li Your source code is usually deleted within minutes, or up to 1 week if we need it for debugging (unless you opt out).
li
| Short shared links are kept indefinitely. In exceptional circumstances (such as accidental exposure of sensitive information),
| we may be able to delete links. Contact
a(href="mailto:privacy@compiler-explorer.com") privacy@compiler-explorer.com
| to discuss.
li Web logs contain semi-anonymised IP addresses for up to 32 days.
li Amazon logs contain full IP addresses for up to 32 days.
li Compilation analytics (which compilers and settings are used) are kept for up to 1 year to help us improve the service.
li Error reports hold IP and browser info for up to 90 days.
li Cached compilation results are stored in memory and on disk, but can't be traced back to your original code.
h3 Who we are h3 Who we are
p p
| Compiler Explorer was created by and is primarily administrated by | Compiler Explorer was created by and is primarily administrated by
| |
a(href="mailto:matt@godbolt.org") Matt Godbolt a(href="https://xania.org" target="_blank" rel="noreferrer noopener") Matt Godbolt
| , along with a number of volunteers (including, but not limited to those listed in our " | , along with a number of volunteers (including, but not limited to those listed in our "
a(href="https://github.com/compiler-explorer/compiler-explorer/blob/main/AUTHORS.md" a(href="https://github.com/compiler-explorer/compiler-explorer/blob/main/AUTHORS.md"
target="_blank" rel="noreferrer noopener") Authors target="_blank" rel="noreferrer noopener") Authors
@@ -35,36 +58,42 @@ html(lang="en")
| |
| if you wish to help. | if you wish to help.
h3 Your data h3 What happens when you compile code
p p
| In order to process compilation and execution requests, your browser sends the source code you typed in the editor | When you compile, your browser sends your source code and compiler settings to our servers. We write your code
| window along with your chosen compiler and options to the Compiler Explorer servers. There, the source code is | to a temporary file, run the compiler on it, and send the results back to your browser.
| written to disk and your chosen compiler is invoked on it. If your request was to have your code executed, the
| resulting executable is run. The outputs from compilation and execution are processed and sent back to your web
| browser, where they're shown. Shortly after this process completes, your source code is deleted from disk. If, in
| processing your query, an issue with Compiler Explorer is found, your code may be kept for up to a week in order to
| help debug and diagnose the problem. Only the Compiler Explorer team will have access to your code, and only for the
| purposes of debugging the site: we will never share your code with anyone.
p p
| The source code and options are also subject to a one-way hash, which is used to cache the results to speed up | Your code is deleted within minutes. As soon as compilation finishes, we clean up the temporary files.
| subsequent compilations of the same code. The cache is in-memory and on-disk. It's impossible to reconstruct the
| source code from the hash, but the resulting assembly code or binary output (the compilation result) is stored as
| plain text. There's no way to enumerate the in-memory cache contents. In exceptional cases, administrator members of
| the Compiler Explorer team may be able to enumerate the disk caches and retrieve the compilation output, but with no
| way to trace it back to the source code.
p p
| In short: your source code is stored in plaintext for the minimum time feasible to be able to process your request. | Exception for debugging: If something goes wrong with Compiler Explorer itself (not your code, but our
| After that, it is discarded and is inaccessible. In very rare cases your code may be kept for a little longer (at | system), we might keep your code for up to a week to help us fix the problem. This only happens if you have the
| most a week) to help debug issues in Compiler Explorer. | "Allow my source code to be temporarily stored for diagnostic purposes" setting enabled (which it is by default).
| You can disable this in Settings if you prefer. Only the Compiler Explorer team can access this, and we'll never
| share your code with anyone else.
h4 Short links h3 How we speed things up (caching)
p
| To make repeated compilations faster, we cache the results.
p
| We create a unique fingerprint from your code and settings using a secure hash. We cannot reconstruct
| your original code from this fingerprint. However, we do store the compilation results (the assembly or executable
| output) as plain text, linked to that fingerprint.
p
| Part of this cache lives in memory and disappears when we restart our servers. Part of it is stored on shared disk. In
| exceptional cases, the small team of trusted Compiler Explorer administrators might be able to see these cached compilation
| results, but there's no way for us to trace them back to the original source code.
h3 Shared links
p p
| If you choose to share your code using the "Share" dropdown, then the user interface state including the source code | If you choose to share your code using the "Share" dropdown, then the user interface state including the source code
| is stored. For a "Full" link, this information is encoded into the URL as a URL hash (e.g. | is stored. For a "Full" link, this information is encoded into the URL after the # symbol (e.g.
| #[code https://godbolt.org/#ui_state_and_code]). For short URLs, the interface state is stored on | #[code https://godbolt.org/#ui_state_and_code]). For short URLs, the interface state is stored on
| Compiler Explorer's servers, and a shortened name uniquely | Compiler Explorer's servers, and a shortened name uniquely
| referring to this data is returned. The shortened name comes from a secure hash of the state, and without | referring to this data is returned. The shortened name comes from a secure hash of the state, and without
@@ -73,38 +102,42 @@ html(lang="en")
| Links of this form look like #[code https://godbolt.org/z/SHORTNAME]. | Links of this form look like #[code https://godbolt.org/z/SHORTNAME].
p p
| Prior to storing data itself, Compiler Explorer used an external URL shortening service ( | Before September 2018, Compiler Explorer used Google's goo.gl service for short links.
a(href="https://goo.gl/" target="_blank") goo.gl | We switched to our own system in 2018, but when Google shut down goo.gl in 2025, we migrated any remaining old
| ) and the resulting short URL was rewritten as #[code https://godbolt.org/g/SHORTURLPART]. | links to ensure they keep working.
| The storage for the user experience state in this case remains with the short URL provider,
| not Compiler Explorer.
h4 Application, web and error logs h3 Application, web and error logs
p p
| Compiler Explorer keeps application logs, which contain semi-anonymised IP addresses, but no other personally | Web access logs contain semi-anonymised IP addresses (we remove parts of the IP address to make them less identifying) but
| identifying information. When a long URL is clicked, the hash part of the URL is not sent to the server, so the user | no other personal information.
| state (including the source code) is NOT exposed in the web log. If a user clicks a short URL, then the short form | When you visit a long Compiler Explorer URL (the ones with #[code #] in them), your code
| #[em is] exposed in the web log (as #[code https://godbolt.org/g/SHORTURLPART]) and from this the source code can be | stays in your browser and isn't logged. If you visit a short URL we created (like #[code godbolt.org/z/abc123]),
| retrieved. As such, if you create a short URL of your code, your source | then we can potentially retrieve your code from our logs.
| code and other user state can in principle be retrieved from the web log of Compiler Explorer.
p p
| Compiler Explorer keeps a separate compile request log for Analytics purposes without identifying information. | Compilation logs are separate analytics logs that record which compilers and settings people use.
| This log only contains the settings which were used - minus code and options that may contain sensitive data. | These analytics help us understand usage patterns and plan improvements. We store a fingerprint (hash) of your
| source code along with compiler options, filters, and libraries used, but we can't reverse this to see your
| actual code. These analytics are kept for up to 1 year. We may share aggregate statistics about compiler usage publicly,
| but these never include individual usage patterns or any way to identify specific users.
p p
| Compiler Explorer uses Amazon's web serving, load balancing and edge caching systems. In order to debug and diagnose | Amazon infrastructure logs: We use Amazon's servers to run Compiler Explorer. Their logs (which help us
| Compiler Explorer, to help track down and block Denial of Service attacks, and to gather statistics about Compiler | debug issues and block attacks) contain full IP addresses and are kept for up to 32 days, then permanently
| Explorer's performance and usage, the logs from these systems are archived. These logs contain the full IP addresses | deleted.
| of requests. They are kept for no more than one month, after which they are permanently deleted.
p p
| If your web browser experiences an error, we use a third party reporting system ( | For error reporting: If something goes wrong in your browser, we use
|
a(href="https://sentry.io/" target="_blank") Sentry a(href="https://sentry.io/" target="_blank") Sentry
| ). This keeps information, including your IP address and web browser user agent, for no more than 90 days. |
| to help us fix it. This keeps your IP address and browser information for up to 90 days.
h4 Executing your code p
| If we need to share data with new third-party services in the future, we'll update this privacy policy accordingly.
h3 Executing your code
p p
| For certain configurations, we may support executing the results of your compilation on the Compiler Explorer | For certain configurations, we may support executing the results of your compilation on the Compiler Explorer
@@ -112,37 +145,57 @@ html(lang="en")
| both the Compiler Explorer site and other concurrently-processed requests from information leakage due to rogue | both the Compiler Explorer site and other concurrently-processed requests from information leakage due to rogue
| executions. | executions.
h4 Cookies h3 Claude Explain
p
| The "Claude Explain" view sends your code and data to Anthropic, the makers of Claude. We always ask for consent
| before sending your code, and Anthropic does not use anything we send them for training. For the purposes of
| Anthropic's own Privacy Policy, we use them as a "data processor", and so our own privacy policy applies to the
| data.
h3 Cookies
p p
| Compiler Explorer uses small pieces of information stored on your computer: Cookies and Browser Local | Compiler Explorer uses small pieces of information stored on your computer: Cookies and Browser Local
| Storage (and Session Storage). Local storage is used to remember the user's settings, source code and user interface configuration, so | Storage (and Session Storage). Local storage remembers your settings, source code and user interface configuration
| that it's available when the user visits the Compiler Explorer site again. This information is not transmitted to | so it's available when you visit again. This information is not transmitted to
| Compiler Explorer, except as described above in order to fulfil the user's requests. There is a | Compiler Explorer, except as described above in order to fulfil your requests. There is a
| |
a(href="#cookies" rel="noreferrer noopener") separate document a(href="#cookies" rel="noreferrer noopener") separate document
| |
| covering more on this. | covering more on this.
h3 Your choices h3 Your rights and choices
p p
| Compiler Explorer is an open source project. If you are concerned about any of the data protection measures outlined | You decide if and when to create shared links. In case of an emergency you can request
| above, or about what happens to your source code, you are encouraged to run your own local instance of Compiler | deletion by contacting us.
| Explorer. Instructions on how to do this are on the
p
| For Claude Explain, we always ask for your explicit consent before sending any code to Anthropic.
p
| Compiler Explorer is open source. If you prefer complete control over your data,
| you can run your own instance. Instructions are on our
| |
a(href="https://github.com/compiler-explorer/compiler-explorer" a(href="https://github.com/compiler-explorer/compiler-explorer"
target="_blank" rel="noreferrer noopener") GitHub project page target="_blank" rel="noreferrer noopener") GitHub project page
| . | .
p
| If you have questions about your data or want to request deletion of a shared link, contact us at
|
a(href="mailto:privacy@compiler-explorer.com") privacy@compiler-explorer.com
| .
h3 Compiler Explorer and the GDPR h3 Compiler Explorer and the GDPR
p p
| The Compiler Explorer team believes the Compiler Explorer site is compliant with the EU's General Data Protection | We comply with the EU's General Data Protection Regulation (GDPR) because we don't store personal information
| Regulation (GDPR). Specifically, we store no personally identifying information, we anonymise the little data that | long-term. IP addresses are semi-anonymised and deleted within one month, and your source code is processed
| we do have and we do not permanently store any user data. | temporarily and then deleted.
h4 Name and Address of the controller h4 Name and contact details of the controller
p p
| The Controller for the purposes of the General Data Protection Regulation (GDPR), other data protection laws | The Controller for the purposes of the General Data Protection Regulation (GDPR), other data protection laws
@@ -151,9 +204,6 @@ html(lang="en")
div div
| Matt Godbolt | Matt Godbolt
br br
| 2626 Orrington Ave | Compiler Explorer LLC
br br
| Evanston IL 60201 USA a(href="mailto:privacy@compiler-explorer.com") privacy@compiler-explorer.com
br
| +1 312 792-7931<br>
a(href="mailto:matt@godbolt.org") matt@godbolt.org

View File

@@ -36,6 +36,7 @@ import {
DIFF_VIEW_COMPONENT_NAME, DIFF_VIEW_COMPONENT_NAME,
EDITOR_COMPONENT_NAME, EDITOR_COMPONENT_NAME,
EXECUTOR_COMPONENT_NAME, EXECUTOR_COMPONENT_NAME,
EXPLAIN_VIEW_COMPONENT_NAME,
FLAGS_VIEW_COMPONENT_NAME, FLAGS_VIEW_COMPONENT_NAME,
GCC_DUMP_VIEW_COMPONENT_NAME, GCC_DUMP_VIEW_COMPONENT_NAME,
GNAT_DEBUG_TREE_VIEW_COMPONENT_NAME, GNAT_DEBUG_TREE_VIEW_COMPONENT_NAME,
@@ -70,6 +71,7 @@ import {DeviceAsm as DeviceView} from './panes/device-view.js';
import {Diff} from './panes/diff.js'; import {Diff} from './panes/diff.js';
import {Editor} from './panes/editor.js'; import {Editor} from './panes/editor.js';
import {Executor} from './panes/executor.js'; import {Executor} from './panes/executor.js';
import {ExplainView} from './panes/explain-view.js';
import {Flags as FlagsView} from './panes/flags-view.js'; import {Flags as FlagsView} from './panes/flags-view.js';
import {GccDump as GCCDumpView} from './panes/gccdump-view.js'; import {GccDump as GCCDumpView} from './panes/gccdump-view.js';
import {GnatDebug as GnatDebugView} from './panes/gnatdebug-view.js'; import {GnatDebug as GnatDebugView} from './panes/gnatdebug-view.js';
@@ -165,6 +167,7 @@ export class Hub {
layout.registerComponent(CONFORMANCE_VIEW_COMPONENT_NAME, (c: GLC, s: any) => layout.registerComponent(CONFORMANCE_VIEW_COMPONENT_NAME, (c: GLC, s: any) =>
this.conformanceViewFactory(c, s), this.conformanceViewFactory(c, s),
); );
layout.registerComponent(EXPLAIN_VIEW_COMPONENT_NAME, (c: GLC, s: any) => this.explainViewFactory(c, s));
layout.eventHub.on( layout.eventHub.on(
'editorOpen', 'editorOpen',
@@ -581,4 +584,8 @@ export class Hub {
): ConformanceView { ): ConformanceView {
return new ConformanceView(this, container, state); return new ConformanceView(this, container, state);
} }
public explainViewFactory(container: GoldenLayout.Container, state: any): ExplainView {
return new ExplainView(this, container, state);
}
} }

View File

@@ -84,4 +84,5 @@ export type Options = {
supportsExecute: boolean; supportsExecute: boolean;
supportsLibraryCodeFilter: boolean; supportsLibraryCodeFilter: boolean;
cvCompilerCountMax: number; cvCompilerCountMax: number;
explainApiEndpoint: string;
}; };

View File

@@ -189,11 +189,13 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
private gnatDebugButton: JQuery<HTMLButtonElement>; private gnatDebugButton: JQuery<HTMLButtonElement>;
private rustMirButton: JQuery<HTMLButtonElement>; private rustMirButton: JQuery<HTMLButtonElement>;
private rustMacroExpButton: JQuery<HTMLButtonElement>; private rustMacroExpButton: JQuery<HTMLButtonElement>;
private rustHirButton: JQuery<HTMLButtonElement>;
private haskellCoreButton: JQuery<HTMLButtonElement>; private haskellCoreButton: JQuery<HTMLButtonElement>;
private haskellStgButton: JQuery<HTMLButtonElement>; private haskellStgButton: JQuery<HTMLButtonElement>;
private haskellCmmButton: JQuery<HTMLButtonElement>; private haskellCmmButton: JQuery<HTMLButtonElement>;
private gccDumpButton: JQuery<HTMLButtonElement>; private gccDumpButton: JQuery<HTMLButtonElement>;
private cfgButton: JQuery<HTMLButtonElement>; private cfgButton: JQuery<HTMLButtonElement>;
private explainButton: JQuery<HTMLButtonElement>;
private executorButton: JQuery<HTMLButtonElement>; private executorButton: JQuery<HTMLButtonElement>;
private libsButton: JQuery<HTMLButtonElement>; private libsButton: JQuery<HTMLButtonElement>;
private compileInfoLabel: JQuery<HTMLElement>; private compileInfoLabel: JQuery<HTMLElement>;
@@ -236,7 +238,6 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
private bottomBar: JQuery<HTMLElement>; private bottomBar: JQuery<HTMLElement>;
private statusLabel: JQuery<HTMLElement>; private statusLabel: JQuery<HTMLElement>;
private statusIcon: JQuery<HTMLElement>; private statusIcon: JQuery<HTMLElement>;
private rustHirButton: JQuery<HTMLButtonElement>;
private libsWidget: LibsWidget | null; private libsWidget: LibsWidget | null;
private isLabelCtxKey: monaco.editor.IContextKey<boolean>; private isLabelCtxKey: monaco.editor.IContextKey<boolean>;
private revealJumpStackHasElementsCtxKey: monaco.editor.IContextKey<boolean>; private revealJumpStackHasElementsCtxKey: monaco.editor.IContextKey<boolean>;
@@ -658,6 +659,15 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
return Components.getCfgViewWith(this.id, this.sourceEditorId ?? 0, this.sourceTreeId ?? 0); return Components.getCfgViewWith(this.id, this.sourceEditorId ?? 0, this.sourceTreeId ?? 0);
}; };
const createExplainView = () => {
return Components.getExplainViewWith(
this.id,
this.getCompilerName(),
this.sourceEditorId ?? 0,
this.sourceTreeId ?? 0,
);
};
const createExecutor = () => { const createExecutor = () => {
const currentState = this.getCurrentState(); const currentState = this.getCurrentState();
const editorId = currentState.source; const editorId = currentState.source;
@@ -934,6 +944,18 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
insertPoint.addChild(createCfgView()); insertPoint.addChild(createCfgView());
}); });
createDragSource(this.container.layoutManager, this.explainButton, () => createExplainView()).on(
'dragStart',
hidePaneAdder,
);
this.explainButton.on('click', () => {
const insertPoint =
this.hub.findParentRowOrColumn(this.container.parent) ||
this.container.layoutManager.root.contentItems[0];
insertPoint.addChild(createExplainView());
});
createDragSource(this.container.layoutManager, this.executorButton, () => createExecutor()).on( createDragSource(this.container.layoutManager, this.executorButton, () => createExecutor()).on(
'dragStart', 'dragStart',
hidePaneAdder, hidePaneAdder,
@@ -947,6 +969,11 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
}); });
this.initToolButtons(); this.initToolButtons();
// Hide Claude Explain button if no API endpoint is configured
if (!options.explainApiEndpoint) {
this.explainButton.hide();
}
} }
undefer(): void { undefer(): void {
@@ -2173,6 +2200,7 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
this.dumpFlags = { this.dumpFlags = {
gimpleFe: dumpOpts.gimpleFeOption, gimpleFe: dumpOpts.gimpleFeOption,
address: dumpOpts.addressOption, address: dumpOpts.addressOption,
alias: dumpOpts.aliasOption,
slim: dumpOpts.slimOption, slim: dumpOpts.slimOption,
raw: dumpOpts.rawOption, raw: dumpOpts.rawOption,
details: dumpOpts.detailsOption, details: dumpOpts.detailsOption,
@@ -2272,6 +2300,19 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
} }
} }
onExplainViewOpened(id: number): void {
if (this.id === id) {
this.explainButton.prop('disabled', true);
this.compile();
}
}
onExplainViewClosed(id: number): void {
if (this.id === id) {
this.explainButton.prop('disabled', false);
}
}
initFilterButtons(): void { initFilterButtons(): void {
this.filterBinaryObjectButton = this.domRoot.find("[data-bind='binaryObject']"); this.filterBinaryObjectButton = this.domRoot.find("[data-bind='binaryObject']");
this.filterBinaryObjectTitle = this.filterBinaryObjectButton.prop('title'); this.filterBinaryObjectTitle = this.filterBinaryObjectButton.prop('title');
@@ -2335,6 +2376,7 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
this.haskellCmmButton = this.domRoot.find('.btn.view-haskellCmm'); this.haskellCmmButton = this.domRoot.find('.btn.view-haskellCmm');
this.gccDumpButton = this.domRoot.find('.btn.view-gccdump'); this.gccDumpButton = this.domRoot.find('.btn.view-gccdump');
this.cfgButton = this.domRoot.find('.btn.view-cfg'); this.cfgButton = this.domRoot.find('.btn.view-cfg');
this.explainButton = this.domRoot.find('.btn.view-explain');
this.executorButton = this.domRoot.find('.create-executor'); this.executorButton = this.domRoot.find('.create-executor');
this.libsButton = this.domRoot.find('.btn.show-libs'); this.libsButton = this.domRoot.find('.btn.show-libs');
@@ -2827,6 +2869,8 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
this.eventHub.on('cfgViewOpened', this.onCfgViewOpened, this); this.eventHub.on('cfgViewOpened', this.onCfgViewOpened, this);
this.eventHub.on('cfgViewClosed', this.onCfgViewClosed, this); this.eventHub.on('cfgViewClosed', this.onCfgViewClosed, this);
this.eventHub.on('explainViewOpened', this.onExplainViewOpened, this);
this.eventHub.on('explainViewClosed', this.onExplainViewClosed, this);
this.eventHub.on('requestCompiler', id => { this.eventHub.on('requestCompiler', id => {
if (id === this.id) { if (id === this.id) {
this.sendCompiler(); this.sendCompiler();

View File

@@ -0,0 +1,225 @@
// 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 {marked} from 'marked';
import {capitaliseFirst} from '../../shared/common-utils.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {AvailableOptions, ClaudeExplainResponse, ExplainRequest} from './explain-view.interfaces.js';
// Anything to do with the explain view that doesn't need any direct UI access, so we can test it easily.
// Includes validation, request building, caching, formatting, and other pure functions.
export interface ExplainContext {
lastResult: CompilationResult | null;
compiler: CompilerInfo | null;
selectedAudience: string;
selectedExplanation: string;
explainApiEndpoint: string;
consentGiven: boolean;
availableOptions: AvailableOptions | null;
}
export enum ValidationErrorCode {
MISSING_REQUIRED_DATA = 'MISSING_REQUIRED_DATA',
OPTIONS_NOT_AVAILABLE = 'OPTIONS_NOT_AVAILABLE',
API_ENDPOINT_NOT_CONFIGURED = 'API_ENDPOINT_NOT_CONFIGURED',
NO_AI_DIRECTIVE_FOUND = 'NO_AI_DIRECTIVE_FOUND',
}
export type ValidationResult = {success: true} | {success: false; errorCode: ValidationErrorCode; message: string};
/**
* Validates that all preconditions are met for fetching an explanation.
* Returns a result object indicating success or failure with error message.
*/
export function validateExplainPreconditions(context: ExplainContext): ValidationResult {
if (!context.lastResult || !context.consentGiven || !context.compiler) {
return {
success: false,
errorCode: ValidationErrorCode.MISSING_REQUIRED_DATA,
message: 'Missing required data: compilation result, consent, or compiler info',
};
}
if (context.availableOptions === null) {
return {
success: false,
errorCode: ValidationErrorCode.OPTIONS_NOT_AVAILABLE,
message: 'Explain options not available',
};
}
if (!context.explainApiEndpoint) {
return {
success: false,
errorCode: ValidationErrorCode.API_ENDPOINT_NOT_CONFIGURED,
message: 'Claude Explain API endpoint not configured',
};
}
if (context.lastResult.source && checkForNoAiDirective(context.lastResult.source)) {
return {
success: false,
errorCode: ValidationErrorCode.NO_AI_DIRECTIVE_FOUND,
message: 'no-ai directive found in source code',
};
}
return {success: true};
}
/**
* Builds the request payload for the explain API.
* Handles defaults for optional fields and constructs a complete ExplainRequest.
*/
export function buildExplainRequest(context: ExplainContext, bypassCache: boolean): ExplainRequest {
if (!context.compiler || !context.lastResult) {
throw new Error('Missing compiler or compilation result');
}
return {
language: context.compiler.lang,
compiler: context.compiler.name,
code: context.lastResult.source ?? '',
compilationOptions: context.lastResult.compilationOptions ?? [],
instructionSet: context.lastResult.instructionSet ?? 'amd64',
asm: Array.isArray(context.lastResult.asm) ? context.lastResult.asm : [],
audience: context.selectedAudience,
explanation: context.selectedExplanation,
...(bypassCache && {bypassCache: true}),
};
}
/**
* Checks if the source code contains a no-ai directive (case-insensitive).
* Returns true if the directive is found, false otherwise.
*/
export function checkForNoAiDirective(sourceCode: string): boolean {
return /no-ai/i.test(sourceCode);
}
/**
* Generates a consistent cache key from the request payload.
* Uses JSON serialization of normalized payload fields.
*/
export function generateCacheKey(payload: ExplainRequest): string {
return JSON.stringify({
language: payload.language,
compiler: payload.compiler,
code: payload.code,
compilationOptions: payload.compilationOptions ?? [],
instructionSet: payload.instructionSet,
asm: payload.asm,
audience: payload.audience,
explanation: payload.explanation,
});
}
/**
* Formats markdown text to HTML using marked with consistent options.
* Returns the HTML string ready for display.
*/
export function formatMarkdown(markdown: string): string {
const markedOptions = {
gfm: true, // GitHub Flavored Markdown
breaks: true, // Convert line breaks to <br>
};
// marked.parse() is synchronous and returns a string, but TypeScript types suggest it could be Promise<string>
// The cast is safe because we're using the default synchronous implementation
return marked.parse(markdown, markedOptions) as string;
}
/**
* Formats statistics text from Claude API response data.
* Returns an array of formatted stats strings.
*/
export function formatStatsText(
data: ClaudeExplainResponse,
clientCacheHit: boolean,
serverCacheHit: boolean,
): string[] {
if (!data.usage) return [];
const stats: string[] = [clientCacheHit ? 'Cached (client)' : serverCacheHit ? 'Cached (server)' : 'Fresh'];
if (data.model) {
stats.push(`Model: ${data.model}`);
}
if (data.usage.totalTokens) {
stats.push(`Tokens: ${data.usage.totalTokens}`);
}
if (data.cost?.totalCost !== undefined) {
stats.push(`Cost: $${data.cost.totalCost.toFixed(6)}`);
}
return stats;
}
/**
* Creates HTML content for popover tooltips from an array of options.
* Each option becomes a formatted div with bold value and description.
*/
export function createPopoverContent(optionsList: Array<{value: string; description: string}>): string {
return optionsList
.map(
option =>
`<div class='mb-2'><strong>${capitaliseFirst(option.value)}:</strong> ${option.description}</div>`,
)
.join('');
}
/**
* Formats an error for display, handling both Error objects and other types.
* Returns a user-friendly error message string.
*/
export function formatErrorMessage(error: unknown): string {
let errorMessage: string;
if (error instanceof Error) {
errorMessage = error.message;
} else if (typeof error === 'string') {
errorMessage = error;
} else if (typeof error === 'object' && error !== null) {
// Try to extract useful information from object errors
const errorObj = error as Record<string, unknown>;
if ('message' in errorObj && typeof errorObj.message === 'string') {
errorMessage = errorObj.message;
} else if ('error' in errorObj && typeof errorObj.error === 'string') {
errorMessage = errorObj.error;
} else {
// Fall back to JSON.stringify for better debugging
try {
errorMessage = JSON.stringify(error);
} catch {
errorMessage = String(error);
}
}
} else {
errorMessage = String(error);
}
return `Error: ${errorMessage}`;
}

View File

@@ -0,0 +1,71 @@
// 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 {ParsedAsmResultLine} from '../../types/asmresult/asmresult.interfaces.js';
import {PaneState} from './pane.interfaces.js';
export interface ExplainViewState extends PaneState {
audience?: string;
explanation?: string;
}
export interface ExplanationOption {
value: string;
description: string;
}
export interface AvailableOptions {
audience: ExplanationOption[];
explanation: ExplanationOption[];
}
export interface ExplainRequest {
language: string;
compiler: string;
code: string;
compilationOptions: string[];
instructionSet: string;
asm: ParsedAsmResultLine[];
audience?: string;
explanation?: string;
bypassCache?: boolean;
}
export interface ClaudeExplainResponse {
status: 'success' | 'error';
explanation: string;
message?: string;
model?: string;
usage?: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
};
cost?: {
inputCost: number;
outputCost: number;
totalCost: number;
};
cached: boolean;
}

View File

@@ -0,0 +1,550 @@
// 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 {Container} from 'golden-layout';
import $ from 'jquery';
import {LRUCache} from 'lru-cache';
import {capitaliseFirst} from '../../shared/common-utils.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {initPopover} from '../bootstrap-utils.js';
import {Hub} from '../hub.js';
import {options} from '../options.js';
import {SentryCapture} from '../sentry.js';
import * as utils from '../utils.js';
import {FontScale} from '../widgets/fontscale.js';
import {AvailableOptions, ClaudeExplainResponse, ExplainRequest, ExplainViewState} from './explain-view.interfaces.js';
import {
buildExplainRequest,
checkForNoAiDirective,
createPopoverContent,
ExplainContext,
formatErrorMessage,
formatMarkdown,
formatStatsText,
generateCacheKey,
ValidationErrorCode,
validateExplainPreconditions,
} from './explain-view-utils.js';
import {Pane} from './pane.js';
enum StatusIconState {
Loading = 'loading',
Success = 'success',
Error = 'error',
Hidden = 'hidden',
}
const defaultAudienceType = 'beginner';
const defaultExplanationType = 'assembly';
const statusIconConfigs = {
[StatusIconState.Loading]: {
classes: 'status-icon fas fa-spinner fa-spin',
color: '',
ariaLabel: 'Generating explanation...',
},
[StatusIconState.Success]: {
classes: 'status-icon fas fa-check-circle',
color: '#4CAF50',
ariaLabel: 'Explanation generated successfully',
},
[StatusIconState.Error]: {
classes: 'status-icon fas fa-times-circle',
color: '#FF6645',
ariaLabel: 'Error generating explanation',
},
[StatusIconState.Hidden]: {
classes: 'status-icon fas d-none',
color: '',
ariaLabel: '',
},
} as const;
export class ExplainView extends Pane<ExplainViewState> {
private lastResult: CompilationResult | null = null;
private compiler: CompilerInfo | null = null;
private readonly statusIcon: JQuery;
private readonly consentElement: JQuery;
private readonly noAiElement: JQuery;
private readonly contentElement: JQuery;
private readonly bottomBarElement: JQuery;
private readonly statsElement: JQuery;
private readonly audienceSelect: JQuery;
private readonly explanationSelect: JQuery;
private readonly audienceInfoButton: JQuery;
private readonly explanationInfoButton: JQuery;
private readonly explainApiEndpoint: string;
private readonly fontScale: FontScale;
// Use a static variable to persist consent across all instances during the session
private static consentGiven = false;
// Static cache for available options (shared across all instances)
private static availableOptions: AvailableOptions | null = null;
private static optionsFetchPromise: Promise<AvailableOptions> | null = null;
// Static explanation cache shared across all instances (200KB limit)
private static cache: LRUCache<string, ClaudeExplainResponse> | null = null;
// Instance variables for selected options
private selectedAudience: string;
private selectedExplanation: string;
private isInitializing = true;
// Store compilation results that arrive before initialization completes
private pendingCompilationResult: CompilationResult | null = null;
constructor(hub: Hub, container: Container, state: ExplainViewState) {
super(hub, container, state);
this.explainApiEndpoint = options.explainApiEndpoint ?? '';
// Initialize static cache if not already done
if (!ExplainView.cache) {
ExplainView.cache = new LRUCache({
maxSize: 200 * 1024,
sizeCalculation: n => JSON.stringify(n).length,
});
}
this.statusIcon = this.domRoot.find('.status-icon');
this.consentElement = this.domRoot.find('.explain-consent');
this.noAiElement = this.domRoot.find('.explain-no-ai');
this.contentElement = this.domRoot.find('.explain-content');
this.bottomBarElement = this.domRoot.find('.explain-bottom-bar');
this.statsElement = this.domRoot.find('.explain-stats');
this.audienceSelect = this.domRoot.find('.explain-audience');
this.explanationSelect = this.domRoot.find('.explain-type');
this.audienceInfoButton = this.domRoot.find('.explain-audience-info');
this.explanationInfoButton = this.domRoot.find('.explain-type-info');
this.fontScale = new FontScale(this.domRoot, state, '.explain-content');
this.fontScale.on('change', this.updateState.bind(this));
this.attachEventListeners();
void this.initializeOptions();
this.contentElement.text('Waiting for compilation...');
this.isAwaitingInitialResults = true;
this.eventHub.emit('explainViewOpened', this.compilerInfo.compilerId);
}
private handleConsentClick(): void {
ExplainView.consentGiven = true;
this.consentElement.addClass('d-none');
void this.fetchExplanation();
}
private handleReloadClick(): void {
void this.fetchExplanation(true);
}
private handleAudienceChange(): void {
this.selectedAudience = this.audienceSelect.val() as string;
this.updateState();
this.refreshExplanationIfReady();
}
private handleExplanationChange(): void {
this.selectedExplanation = this.explanationSelect.val() as string;
this.updateState();
this.refreshExplanationIfReady();
}
private refreshExplanationIfReady(): void {
if (ExplainView.consentGiven && this.lastResult) {
void this.fetchExplanation();
}
}
private attachEventListeners(): void {
this.consentElement.find('.consent-btn').on('click', this.handleConsentClick.bind(this));
this.bottomBarElement.find('.explain-reload').on('click', this.handleReloadClick.bind(this));
this.audienceSelect.on('change', this.handleAudienceChange.bind(this));
this.explanationSelect.on('change', this.handleExplanationChange.bind(this));
}
override getInitialHTML(): string {
return $('#explain').html();
}
private async initializeOptions(): Promise<void> {
try {
this.populateSelectOptions(await this.fetchAvailableOptions());
this.isInitializing = false;
// Process any compilation results that arrived while we were initializing.
if (this.pendingCompilationResult) {
this.handleCompilationResult(this.pendingCompilationResult);
this.pendingCompilationResult = null;
}
} catch (error) {
this.isInitializing = false;
console.error('Failed to initialize options:', error);
this.showExplainUnavailable();
// Even if initialization failed, clear any pending results
this.pendingCompilationResult = null;
}
}
private showExplainUnavailable(): void {
const emptyOptions = [{value: '', description: 'Service unavailable'}];
this.populateSelect(this.audienceSelect, emptyOptions);
this.populateSelect(this.explanationSelect, emptyOptions);
this.audienceSelect.prop('disabled', true);
this.explanationSelect.prop('disabled', true);
this.contentElement.html(
'<div class="alert alert-warning">Claude Explain is currently unavailable due to a service error. Please try again later.</div>',
);
}
private populateSelect(selectElement: JQuery, optionsList: Array<{value: string; description: string}>): void {
selectElement.empty();
optionsList.forEach(option => {
const optionElement = $('<option></option>')
.attr('value', option.value)
.text(capitaliseFirst(option.value))
.attr('title', option.description);
selectElement.append(optionElement);
});
}
private populateSelectOptions(options: AvailableOptions): void {
this.populateSelect(this.audienceSelect, options.audience);
this.populateSelect(this.explanationSelect, options.explanation);
this.updatePopoverContent(options);
if (this.isInitializing) {
// During initialisation: trust saved state completely, no validation
this.audienceSelect.val(this.selectedAudience);
this.explanationSelect.val(this.selectedExplanation);
} else {
// After initialisation: validate user changes normally
const validAudienceValue = options.audience.some(opt => opt.value === this.selectedAudience)
? this.selectedAudience
: defaultAudienceType;
const validExplanationValue = options.explanation.some(opt => opt.value === this.selectedExplanation)
? this.selectedExplanation
: defaultExplanationType;
this.selectedAudience = validAudienceValue;
this.selectedExplanation = validExplanationValue;
this.audienceSelect.val(validAudienceValue);
this.explanationSelect.val(validExplanationValue);
}
}
private updatePopoverContent(options: AvailableOptions): void {
const audienceContent = createPopoverContent(options.audience);
const explanationContent = createPopoverContent(options.explanation);
initPopover(this.audienceInfoButton, {
content: audienceContent,
html: true,
placement: 'bottom',
trigger: 'focus',
});
initPopover(this.explanationInfoButton, {
content: explanationContent,
html: true,
placement: 'bottom',
trigger: 'focus',
});
}
private async fetchAvailableOptions(): Promise<AvailableOptions> {
// If we already have options cached, return them
if (ExplainView.availableOptions) return ExplainView.availableOptions;
// If we're already fetching, wait for that promise
if (ExplainView.optionsFetchPromise) return ExplainView.optionsFetchPromise;
// Else, go fetch the options
ExplainView.optionsFetchPromise = (async () => {
try {
const response = await fetch(this.explainApiEndpoint, {
method: 'GET',
headers: {'Content-Type': 'application/json'},
});
if (!response.ok) {
throw new Error(`Failed to fetch options: ${response.status} ${response.statusText}`);
}
const options = (await response.json()) as AvailableOptions;
ExplainView.availableOptions = options;
return options;
} finally {
ExplainView.optionsFetchPromise = null;
}
})();
return ExplainView.optionsFetchPromise;
}
override initializeStateDependentProperties(state: ExplainViewState): void {
this.selectedAudience = state.audience ?? defaultAudienceType;
this.selectedExplanation = state.explanation ?? defaultExplanationType;
}
override getCurrentState(): ExplainViewState {
const state = super.getCurrentState() as ExplainViewState;
state.audience = this.selectedAudience;
state.explanation = this.selectedExplanation;
return state;
}
override onCompiler(
compilerId: number,
compiler: CompilerInfo | null,
_compilerOptions: string,
editorId: number,
treeId: number,
): void {
if (this.compilerInfo.compilerId !== compilerId) return;
this.compilerInfo.compilerName = compiler ? compiler.name : '';
this.compilerInfo.editorId = editorId;
this.compilerInfo.treeId = treeId;
this.compiler = compiler;
this.updateTitle();
}
private hideSpecialUIElements(): void {
this.consentElement.addClass('d-none');
this.noAiElement.addClass('d-none');
}
private handleCompilationResult(result: CompilationResult): void {
if (this.isInitializing) {
// Store for processing after initialization completes
this.pendingCompilationResult = result;
return;
}
if (result.code !== 0) {
this.contentElement.text('Cannot explain: Compilation failed');
return;
}
if (result.source && checkForNoAiDirective(result.source)) {
this.showNoAiDirective();
return;
}
if (ExplainView.consentGiven) {
void this.fetchExplanation();
} else {
this.showConsentUI();
}
}
private showNoAiDirective(): void {
this.noAiElement.removeClass('d-none');
this.contentElement.text('');
}
private showConsentUI(): void {
this.consentElement.removeClass('d-none');
this.contentElement.text('Claude needs your consent to explain this code.');
}
override onCompileResult(id: number, compiler: CompilerInfo, result: CompilationResult): void {
if (id !== this.compilerInfo.compilerId) return;
this.compiler = compiler;
this.lastResult = result;
this.isAwaitingInitialResults = false;
this.hideSpecialUIElements();
this.handleCompilationResult(result);
}
private setStatusIcon(state: StatusIconState): void {
const config = statusIconConfigs[state];
this.statusIcon
.removeClass()
.addClass(config.classes)
.css('color', config.color)
.attr('aria-label', config.ariaLabel);
}
private showLoading(): void {
this.setStatusIcon(StatusIconState.Loading);
this.contentElement.text('Generating explanation...');
}
private hideLoading(): void {
this.setStatusIcon(StatusIconState.Hidden);
}
private showSuccess(): void {
this.setStatusIcon(StatusIconState.Success);
}
private showError(): void {
this.setStatusIcon(StatusIconState.Error);
}
private showBottomBar(): void {
this.bottomBarElement.removeClass('d-none');
}
private updateStatsInBottomBar(
data: ClaudeExplainResponse,
clientCacheHit: boolean,
serverCacheHit: boolean,
): void {
const stats = formatStatsText(data, clientCacheHit, serverCacheHit);
if (stats.length > 0) {
this.statsElement.text(stats.join(' | '));
}
}
private displayCachedResult(cachedResult: ClaudeExplainResponse): void {
this.hideLoading();
this.showSuccess();
this.renderMarkdown(cachedResult.explanation);
this.showBottomBar();
if (cachedResult.usage) {
this.updateStatsInBottomBar(cachedResult, true, false);
}
}
private async fetchFromAPI(payload: ExplainRequest): Promise<ClaudeExplainResponse> {
const response = await window.fetch(this.explainApiEndpoint, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(payload),
});
if (!response.ok) {
throw new Error(`Server returned ${response.status} ${response.statusText}`);
}
return response.json() as Promise<ClaudeExplainResponse>;
}
private getExplainContext(): ExplainContext {
return {
lastResult: this.lastResult,
compiler: this.compiler,
selectedAudience: this.selectedAudience,
selectedExplanation: this.selectedExplanation,
explainApiEndpoint: this.explainApiEndpoint,
consentGiven: ExplainView.consentGiven,
availableOptions: ExplainView.availableOptions,
};
}
private processExplanationResponse(data: ClaudeExplainResponse, cacheKey: string): void {
this.hideLoading();
if (data.status === 'error') {
this.showError();
this.contentElement.text(`Error: ${data.message || 'Unknown error'}`);
return;
}
this.showSuccess();
ExplainView.cache!.set(cacheKey, data);
this.renderMarkdown(data.explanation);
this.showBottomBar();
if (data.usage) {
this.updateStatsInBottomBar(data, false, data.cached);
}
}
private async fetchExplanation(bypassCache = false): Promise<void> {
const context = this.getExplainContext();
const validationResult = validateExplainPreconditions(context);
if (!validationResult.success) {
switch (validationResult.errorCode) {
case ValidationErrorCode.NO_AI_DIRECTIVE_FOUND:
this.hideLoading();
this.noAiElement.removeClass('d-none');
this.contentElement.text('');
break;
case ValidationErrorCode.MISSING_REQUIRED_DATA:
// Silent return - this is expected during normal UI flow (before compilation, before consent, etc.)
break;
default:
// Show all other validation errors to help with debugging
this.contentElement.text(`Error: ${validationResult.message}`);
break;
}
return;
}
this.contentElement.empty();
this.showLoading();
try {
const payload = buildExplainRequest(context, bypassCache);
const cacheKey = generateCacheKey(payload);
// Check cache first unless bypassing
if (!bypassCache) {
const cachedResult = ExplainView.cache!.get(cacheKey);
if (cachedResult) {
this.displayCachedResult(cachedResult);
return;
}
}
const data = await this.fetchFromAPI(payload);
this.processExplanationResponse(data, cacheKey);
} catch (error) {
this.handleFetchError(error);
}
}
private handleFetchError(error: unknown): void {
this.hideLoading();
this.showError();
this.contentElement.text(formatErrorMessage(error));
SentryCapture(error);
}
private renderMarkdown(markdown: string): void {
this.contentElement.html(formatMarkdown(markdown));
}
override resize(): void {
utils.updateAndCalcTopBarHeight(this.domRoot, this.topBar, this.hideable);
}
override getDefaultPaneName(): string {
return 'Claude Explain';
}
override close(): void {
this.eventHub.emit('explainViewClosed', this.compilerInfo.compilerId);
this.eventHub.unsubscribe();
}
}

View File

@@ -47,6 +47,7 @@ export type GccDumpFiltersState = {
gimpleFeOption: boolean; gimpleFeOption: boolean;
addressOption: boolean; addressOption: boolean;
aliasOption: boolean;
blocksOption: boolean; blocksOption: boolean;
linenoOption: boolean; linenoOption: boolean;
detailsOption: boolean; detailsOption: boolean;

View File

@@ -53,6 +53,8 @@ export class GccDump extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Gcc
optionGimpleFeTitle: string; optionGimpleFeTitle: string;
optionAddressButton: JQuery<HTMLElement>; optionAddressButton: JQuery<HTMLElement>;
optionAddressTitle: string; optionAddressTitle: string;
optionAliasButton: JQuery<HTMLElement>;
optionAliasTitle: string;
optionSlimButton: JQuery<HTMLElement>; optionSlimButton: JQuery<HTMLElement>;
optionSlimTitle: string; optionSlimTitle: string;
optionRawButton: JQuery<HTMLElement>; optionRawButton: JQuery<HTMLElement>;
@@ -190,6 +192,9 @@ export class GccDump extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Gcc
this.optionAddressButton = this.domRoot.find("[data-bind='addressOption']"); this.optionAddressButton = this.domRoot.find("[data-bind='addressOption']");
this.optionAddressTitle = this.optionAddressButton.prop('title'); this.optionAddressTitle = this.optionAddressButton.prop('title');
this.optionAliasButton = this.domRoot.find("[data-bind='aliasOption']");
this.optionAliasTitle = this.optionAliasButton.prop('title');
this.optionSlimButton = this.domRoot.find("[data-bind='slimOption']"); this.optionSlimButton = this.domRoot.find("[data-bind='slimOption']");
this.optionSlimTitle = this.optionSlimButton.prop('title'); this.optionSlimTitle = this.optionSlimButton.prop('title');
@@ -270,6 +275,7 @@ export class GccDump extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Gcc
formatButtonTitle(this.dumpIpaButton, this.dumpIpaTitle); formatButtonTitle(this.dumpIpaButton, this.dumpIpaTitle);
formatButtonTitle(this.optionGimpleFeButton, this.optionGimpleFeTitle); formatButtonTitle(this.optionGimpleFeButton, this.optionGimpleFeTitle);
formatButtonTitle(this.optionAddressButton, this.optionAddressTitle); formatButtonTitle(this.optionAddressButton, this.optionAddressTitle);
formatButtonTitle(this.optionAliasButton, this.optionAliasTitle);
formatButtonTitle(this.optionSlimButton, this.optionSlimTitle); formatButtonTitle(this.optionSlimButton, this.optionSlimTitle);
formatButtonTitle(this.optionRawButton, this.optionRawTitle); formatButtonTitle(this.optionRawButton, this.optionRawTitle);
formatButtonTitle(this.optionDetailsButton, this.optionDetailsTitle); formatButtonTitle(this.optionDetailsButton, this.optionDetailsTitle);

View File

@@ -1,3 +1,9 @@
@use 'themes/default-theme';
@use 'themes/dark-theme';
@use 'themes/pink-theme';
@use 'themes/one-dark-theme';
@use 'markdown.scss';
@import '~@fortawesome/fontawesome-free/css/all.min.css'; @import '~@fortawesome/fontawesome-free/css/all.min.css';
// SCSS function to generate TomSelect dropdown arrow SVG with custom color // SCSS function to generate TomSelect dropdown arrow SVG with custom color
@@ -35,6 +41,38 @@ body {
overflow: hidden; overflow: hidden;
} }
// Styles for Claude Explain component
.explain-container {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.explain-box {
padding: 15px;
background-color: #f8f9fa;
border: 1px solid #ddd;
border-radius: 4px;
margin: 15px;
margin-right: auto;
margin-left: auto;
max-width: 50em;
}
.explain-bottom-bar {
min-height: 2.5rem;
}
.ai-disclaimer {
display: flex;
align-items: center;
user-select: none;
}
.navbar-godbolt { .navbar-godbolt {
padding: 0; padding: 0;
} }
@@ -1154,14 +1192,14 @@ span.badge.rounded-pill {
} }
html[data-theme='default'] { html[data-theme='default'] {
@import 'themes/default-theme'; @import '~golden-layout/src/css/goldenlayout-light-theme';
.theme-light-only { .theme-light-only {
display: inline; display: inline;
} }
} }
html[data-theme='dark'] { html[data-theme='dark'] {
@import 'themes/dark-theme'; @import '~golden-layout/src/css/goldenlayout-dark-theme';
background-color: #333 !important; background-color: #333 !important;
.theme-dark-only { .theme-dark-only {
display: inline; display: inline;
@@ -1169,16 +1207,14 @@ html[data-theme='dark'] {
} }
html[data-theme='pink'] { html[data-theme='pink'] {
@import 'themes/pink-theme'; background-color: var(--lighter) !important;
background-color: $lighter !important;
.theme-light-only { .theme-light-only {
display: inline; display: inline;
} }
} }
html[data-theme='one-dark'] { html[data-theme='one-dark'] {
@import 'themes/one-dark-theme'; background-color: var(--light) !important;
background-color: $light !important;
.theme-dark-only { .theme-dark-only {
display: inline; display: inline;
} }

205
static/styles/markdown.scss Normal file
View File

@@ -0,0 +1,205 @@
// Shared markdown rendering styles
// Used by components that render markdown content (e.g., explain view)
.markdown-content {
padding: 1rem;
font-size: 1rem;
line-height: 1.5;
&.wrap {
white-space: pre-wrap;
word-break: break-word;
}
// Headers
h1, h2, h3, h4, h5, h6 {
margin-top: 1.5rem;
margin-bottom: 1rem;
font-weight: 600;
line-height: 1.25;
}
h1 {
font-size: 2rem;
border-bottom: 1px solid #eaecef;
padding-bottom: 0.3rem;
}
h2 {
font-size: 1.5rem;
border-bottom: 1px solid #eaecef;
padding-bottom: 0.3rem;
}
h3 {
font-size: 1.25rem;
}
h4 {
font-size: 1rem;
}
// Code blocks
pre {
background-color: #f6f8fa;
padding: 0.75rem;
border-radius: 4px;
margin: 1rem 0;
overflow-x: auto;
border: 1px solid #e1e4e8;
}
code {
font-family: 'SF Mono', 'Courier New', Consolas, 'Liberation Mono', monospace;
background-color: rgba(27, 31, 35, 0.05);
padding: 0.125rem 0.25rem;
border-radius: 3px;
font-size: 0.875em;
}
pre code {
padding: 0;
background-color: transparent;
border-radius: 0;
font-size: 0.9rem;
}
// Tables
table {
border-collapse: collapse;
margin: 1rem 0;
width: 100%;
overflow: auto;
th, td {
border: 1px solid #ddd;
padding: 0.5rem 0.75rem;
}
th {
font-weight: 600;
background-color: #f6f8fa;
}
tr:nth-child(2n) {
background-color: #f6f8fa;
}
}
// Images
img {
max-width: 100%;
height: auto;
display: block;
margin: 1rem auto;
}
// Blockquotes
blockquote {
border-left: 0.25rem solid #dfe2e5;
padding: 0 1rem;
color: #6a737d;
margin: 1rem 0;
> p:first-child {
margin-top: 0;
}
> p:last-child {
margin-bottom: 0;
}
}
// Lists
ul, ol {
padding-left: 2rem;
margin-top: 0.75rem;
margin-bottom: 0.75rem;
}
li {
margin: 0.25rem 0;
> p {
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
+ li {
margin-top: 0.25rem;
}
}
// Paragraphs
p {
margin: 0.75rem 0;
}
// Horizontal rule
hr {
height: 0.25em;
margin: 1.5rem 0;
padding: 0;
background-color: #e1e4e8;
border: 0;
}
// Links
a {
color: #0366d6;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
// Theme adjustments based on CE's dark mode
[data-theme="dark"] & {
color: #c9d1d9;
h1, h2 {
border-bottom-color: #30363d;
}
pre, code {
background-color: #161b22;
border-color: #30363d;
}
code {
background-color: rgba(240, 246, 252, 0.15);
}
pre code {
background-color: transparent;
}
table {
th, td {
border-color: #30363d;
}
th {
background-color: #161b22;
}
tr:nth-child(2n) {
background-color: #161b22;
}
}
blockquote {
border-left-color: #30363d;
color: #8b949e;
}
hr {
background-color: #30363d;
}
a {
color: #58a6ff;
}
}
}

View File

@@ -23,6 +23,8 @@ $color10: #e06c75; // Appears 2 time
// ".lm_dragging" is applied to BODY tag during Drag and is also directly applied to the root of the object being dragged // ".lm_dragging" is applied to BODY tag during Drag and is also directly applied to the root of the object being dragged
html[data-theme='one-dark'] {
// Entire GoldenLayout Container, if a background is set, it is visible as color of "pane header" and "splitters" (if these latest has opacity very low) // Entire GoldenLayout Container, if a background is set, it is visible as color of "pane header" and "splitters" (if these latest has opacity very low)
.lm_goldenlayout { .lm_goldenlayout {
background: $color0; background: $color0;
@@ -245,3 +247,5 @@ $color10: #e06c75; // Appears 2 time
} }
} }
} }
} // End html[data-theme='one-dark']

View File

@@ -22,6 +22,8 @@ $color10: #ffffff; // Appears 2 time
// ".lm_dragging" is applied to BODY tag during Drag and is also directly applied to the root of the object being dragged // ".lm_dragging" is applied to BODY tag during Drag and is also directly applied to the root of the object being dragged
html[data-theme='pink'] {
// Entire GoldenLayout Container, if a background is set, it is visible as color of "pane header" and "splitters" (if these latest has opacity very low) // Entire GoldenLayout Container, if a background is set, it is visible as color of "pane header" and "splitters" (if these latest has opacity very low)
.lm_goldenlayout { .lm_goldenlayout {
background: $color0; background: $color0;
@@ -227,3 +229,5 @@ $color10: #ffffff; // Appears 2 time
} }
} }
} }
} // End html[data-theme='pink']

View File

@@ -1,6 +1,7 @@
@use 'sass:color'; @use 'sass:color';
@use 'ansi-dark'; @use 'ansi-dark';
@import '~golden-layout/src/css/goldenlayout-dark-theme';
html[data-theme='dark'] {
::-webkit-scrollbar { ::-webkit-scrollbar {
background: color.scale(#1e1e1e, $lightness: 10%); background: color.scale(#1e1e1e, $lightness: 10%);
@@ -725,3 +726,21 @@ textarea.form-control {
filter: invert(100%); filter: invert(100%);
} }
} }
.explain-box {
background-color: #333;
border-color: #555;
color: #eee;
}
.explain-bottom-bar {
background-color: #2d2d2d !important;
color: #eee;
}
.ai-disclaimer.bg-warning {
background-color: #664d03 !important;
color: #ffda6a !important;
}
} // End html[data-theme='dark']

Some files were not shown because too many files have changed in this diff Show More