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
trim_trailing_whitespace = true
[*.{yml,yaml}]
[*.{yml,yaml,pug,json,css,sh}]
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 {executeDirect} from './lib/exec.js';
import {logger} from './lib/logger.js';
import {BaseParser} from './lib/compilers/argument-parsers.js';
const program = new Command();
program
@@ -40,7 +41,21 @@ program
.requiredOption('--parser <type>', 'Compiler parser type')
.requiredOption('--exe <path>', 'Path to compiler executable')
.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();
const opts = program.opts();
@@ -90,6 +105,13 @@ class CompilerArgsApp {
execCompilerCached: async (command: string, args: string[]) => {
return executeDirect(command, args, {}, fn => fn);
},
getDefaultExecOptions: () => {
return {
env: process.env,
cwd: process.cwd(),
timeout: 10000,
};
}
};
if (this.parserName === 'juliawrapper') {
@@ -99,22 +121,22 @@ class CompilerArgsApp {
async getPossibleStdvers() {
const parser = this.getParser();
return await parser.getPossibleStdvers(this.compiler);
return await parser.getPossibleStdvers();
}
async getPossibleTargets() {
const parser = this.getParser();
return await parser.getPossibleTargets(this.compiler);
return await parser.getPossibleTargets();
}
async getPossibleEditions() {
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]) {
return compilerParsers[this.parserName as keyof typeof compilerParsers];
return new (compilerParsers[this.parserName as keyof typeof compilerParsers])(this.compiler);
}
console.error('Unknown parser type');
process.exit(1);
@@ -122,7 +144,7 @@ class CompilerArgsApp {
async doTheParsing() {
const parser = this.getParser();
await parser.parse(this.compiler);
await parser.parse();
const options = this.compiler.possibleArguments.possibleArguments;
if (parser.hasSupportStartsWith(options, '--target=')) {
console.log('supportsTargetIs');
@@ -150,6 +172,11 @@ class CompilerArgsApp {
console.log(await this.getPossibleTargets());
console.log('Editions:');
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';
export default defineConfig({
viewportWidth: 1000,
viewportHeight: 700,
viewportWidth: 1280,
viewportHeight: 1024,
e2e: {
baseUrl: 'http://127.0.0.1:10240/',
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'},
debug: {name: 'Debug', selector: 'view-gnatdebug'},
cfg: {name: 'CFG', selector: 'view-cfg'},
explain: {name: 'Claude Explain', selector: 'view-explain'},
};
describe('Individual pane testing', () => {
@@ -68,6 +69,7 @@ describe('Individual pane testing', () => {
addPaneOpenTest(PANE_DATA_MAP.tree);
addPaneOpenTest(PANE_DATA_MAP.debug);
addPaneOpenTest(PANE_DATA_MAP.stackusage);
addPaneOpenTest(PANE_DATA_MAP.explain);
// TODO: Bring back once #3899 lands
// addPaneOpenTest(PaneDataMap.cfg);
@@ -92,8 +94,7 @@ describe('Known good state test', () => {
cy.visit(
// 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.
'/#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',
'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',
{
onBeforeLoad: 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('@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._
_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
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
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
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.
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
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
compilers=&gnat:&gnatcross
defaultCompiler=gnat151
defaultCompiler=gnat152
versionFlag=--version
compilerType=ada
###############################
# GCC (as in GNU Compiler Collection) for x86
group.gnat.compilers=&gnatassert:gnat82:gnat95:gnat102:gnat104:gnat105:gnat111:gnat112:gnat113:gnat114:gnat121:gnat122:gnat123:gnat124:gnat125:gnat131:gnat132:gnat133:gnat134:gnat141:gnat142:gnat143:gnat151: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.groupName=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.gnat143.exe=/opt/compiler-explorer/gcc-14.3.0/bin/gnatmake
compiler.gnat143.semver=14.3
compiler.gnat151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gnatmake
compiler.gnat151.semver=15.1
compiler.gnat152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gnatmake
compiler.gnat152.semver=15.2
compiler.gnatsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gnatmake
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)
## 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)
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.gnat151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gnatmake
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
@@ -131,7 +133,7 @@ group.gnatcross.compilerCategories=gcc
################################
# 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.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.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
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
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.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.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
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.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.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
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.baseName=riscv64 gnat
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.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
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.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.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
group.gnatppcs.compilers=&gnatppc:&gnatppc64:&gnatppc64le
@@ -480,7 +507,7 @@ group.gnatppcs.instructionSet=powerpc
## POWER
group.gnatppc.groupName=POWERPC GNAT
group.gnatppc.compilers=gnatppc1120:gnatppc1210:gnatppc1220:gnatppc1230:gnatppc1240:gnatppc1250:gnatppc1310:gnatppc1320:gnatppc1330:gnatppc1340:gnatppc1410:gnatppc1420:gnatppc1430:gnatppc1510
group.gnatppc.compilers=gnatppc1120:gnatppc1210:gnatppc1220:gnatppc1230:gnatppc1240:gnatppc1250:gnatppc1310:gnatppc1320:gnatppc1330:gnatppc1340:gnatppc1410:gnatppc1420:gnatppc1430:gnatppc1510:gnatppc1520
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
@@ -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.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
group.gnatppc64.groupName=POWER64 GNAT
group.gnatppc64.baseName=powerpc64 gnat
group.gnatppc64.compilers=gnatppc64trunk:gnatppc641120:gnatppc641210:gnatppc641220:gnatppc641230:gnatppc641240:gnatppc641250:gnatppc641310:gnatppc641320:gnatppc641330:gnatppc641340:gnatppc641410:gnatppc641420:gnatppc641430:gnatppc641510
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.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.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.semver=trunk
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
group.gnatppc64le.groupName=POWER64LE GNAT
group.gnatppc64le.baseName=powerpc64le gnat
group.gnatppc64le.compilers=gnatppc64le1120:gnatppc64le1210:gnatppc64le1220:gnatppc64le1230:gnatppc64le1310:gnatppc64le1320:gnatppc64letrunk:gnatppc64le1410:gnatppc64le1330:gnatppc64le1240:gnatppc64le1420:gnatppc64le1510:gnatppc64le1430:gnatppc64le1340:gnatppc64le1250
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.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.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.semver=trunk
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
group.gnatmips.groupName=MIPS GNAT
group.gnatmips.baseName=mips gnat
group.gnatmips.compilers=gnatmips1120:gnatmips1210:gnatmips1220:gnatmips1230:gnatmips1240:gnatmips1250:gnatmips1310:gnatmips1320:gnatmips1330:gnatmips1340:gnatmips1410:gnatmips1420:gnatmips1430:gnatmips1510
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.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.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
group.gnatmips64.groupName=MIPS64 GNAT
group.gnatmips64.baseName=mips64 gnat
group.gnatmips64.compilers=gnatmips641120:gnatmips641210:gnatmips641220:gnatmips641230:gnatmips641240:gnatmips641250:gnatmips641310:gnatmips641320:gnatmips641330:gnatmips641340:gnatmips641410:gnatmips641420:gnatmips641430:gnatmips641510
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.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.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
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.baseName=arm64 gnat
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.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
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.baseName=arm gnat
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.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
group.gnathppa.compilers=gnathppa1420:gnathppa1430:gnathppa1510
group.gnathppa.compilers=gnathppa1420:gnathppa1430:gnathppa1510:gnathppa1520
group.gnathppa.groupName=HPPA GNAT
group.gnathppa.baseName=hppa gnat
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.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)

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
# The disabled groups are actually used in the c++.gpu.properties. One day these might exist on both servers, so I want
# to keep them in the same place.
defaultCompiler=g151
defaultCompiler=g152
# We use the llvm-trunk demangler for all c/c++ compilers, as c++filt tends to lag behind
demangler=/opt/compiler-explorer/clang-trunk/bin/llvm-cxxfilt
objdumper=/opt/compiler-explorer/gcc-14.2.0/bin/objdump
@@ -18,7 +18,7 @@ llvmDisassembler=/opt/compiler-explorer/clang-18.1.0/bin/llvm-dis
###############################
# GCC for x86
group.gcc86.compilers=&gcc86assert:g346:g404:g412:g447:g453:g464:g471:g472:g473:g474:g481:g482:g483:g484:g485:g490:g491:g492:g493:g494:g510:g520:g530:g540:g550:g6:g62:g63:g64:g65:g71:g72:g73:g74:g75:g81:g82:g83:g84:g85:g91:g92:g93:g94:g95:g101:g102:g103:g104:g105:g111:g112:g113:g114: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.instructionSet=amd64
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.g151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/g++
compiler.g151.semver=15.1
compiler.g152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/g++
compiler.g152.semver=15.1
compiler.gsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/g++
compiler.gsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -248,7 +250,7 @@ compiler.g71.needsMulti=true
compiler.g72.needsMulti=true
## GCC x86 build with "assertions" (--enable-checking=XXX)
group.gcc86assert.compilers=g103assert:g104assert:g105assert:g111assert:g112assert:g113assert:g114assert:g121assert:g122assert:g123assert:g124assert:g125assert:g131assert:g132assert:g133assert:g134assert:g141assert:g142assert:g143assert:g151assert
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)
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.g151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/g++
compiler.g151assert.semver=15.1 (assertions)
compiler.g152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/g++
compiler.g152assert.semver=15.2 (assertions)
################################
# 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.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.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++
@@ -1241,7 +1245,7 @@ compiler.hexagonclang1605.compilerCategories=clang-hexagon
################################
# 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.groupName=Clad Clang
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.ldPath=${exePath}/../lib|${exePath}/../lib/x86_64-unknown-linux-gnu
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.exe=/opt/compiler-explorer/clang-20.1.0/bin/clang++
compiler.clad_trunk.name=clad trunk (clang 20.1.0)
@@ -1614,7 +1623,7 @@ compiler.m68kclangtrunk.isNightly=true
# 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.supportsExecute=false
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.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
group.tricore.compilers=&gcctricore
@@ -1683,7 +1697,7 @@ compiler.tricoreg1130.demangler=/opt/compiler-explorer/tricore/gcc-11.3.0/tricor
group.hppa.compilers=&gcchppa
# GCC for HPPA
group.gcchppa.compilers=hppag1420:hppag1430:hppag1510
group.gcchppa.compilers=hppag1420:hppag1430:hppag1510:hppag1520
group.gcchppa.supportsBinary=true
group.gcchppa.supportsExecute=false
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.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
group.bpf.compilers=&gccbpf:&clangbpf
@@ -1800,7 +1819,7 @@ compiler.bpfgtrunk.isNightly=true
group.sparc.compilers=&gccsparc
# GCC for SPARC
group.gccsparc.compilers=sparcg1220:sparcg1230:sparcg1240:sparcg1250:sparcg1310:sparcg1320:sparcg1330:sparcg1340:sparcg1410:sparcg1420:sparcg1430:sparcg1510
group.gccsparc.compilers=sparcg1220:sparcg1230:sparcg1240:sparcg1250:sparcg1310:sparcg1320:sparcg1330:sparcg1340:sparcg1410:sparcg1420:sparcg1430:sparcg1510:sparcg1520
group.gccsparc.baseName=SPARC gcc
group.gccsparc.groupName=SPARC GCC
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.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
group.sparc64.compilers=&gccsparc64
# 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.groupName=SPARC64 GCC
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.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
group.sparcleon.compilers=&gccsparcleon
# GCC for SPARC-LEON
group.gccsparcleon.compilers=sparcleong1220:sparcleong1220-1:sparcleong1230:sparcleong1240:sparcleong1250:sparcleong1310:sparcleong1320:sparcleong1330:sparcleong1340:sparcleong1410:sparcleong1420:sparcleong1430:sparcleong1510
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.groupName=SPARC LEON GCC
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.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.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
@@ -2017,7 +2051,7 @@ compiler.sparcleong1220-1.demangler=/opt/compiler-explorer/sparc-leon/gcc-12.2.0
group.c6x.compilers=&gccc6x
# GCC for TI C6x
group.gccc6x.compilers=c6xg1220:c6xg1230:c6xg1310:c6xg1320:c6xg1410:c6xg1330:c6xg1240:c6xg1420:c6xg1510:c6xg1430:c6xg1340:c6xg1250
group.gccc6x.compilers=c6xg1220:c6xg1230:c6xg1310:c6xg1320:c6xg1410:c6xg1330:c6xg1240:c6xg1420:c6xg1510:c6xg1430:c6xg1340:c6xg1250:c6xg1520
group.gccc6x.baseName=TI C6x gcc
group.gccc6x.groupName=TI C6x GCC
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.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
group.loongarch64.compilers=&gccloongarch64
@@ -2089,7 +2128,7 @@ group.loongarch64.compilers=&gccloongarch64
# GCC for loongarch64
group.gccloongarch64.baseName=loongarch64 gcc
group.gccloongarch64.groupName=loongarch64 gcc
group.gccloongarch64.compilers=loongarch64g1220:loongarch64g1230:loongarch64g1310:loongarch64g1320:loongarch64g1410:loongarch64g1330:loongarch64g1240:loongarch64g1420:loongarch64g1510:loongarch64g1430:loongarch64g1340:loongarch64g1250
group.gccloongarch64.compilers=loongarch64g1220:loongarch64g1230:loongarch64g1310:loongarch64g1320:loongarch64g1410:loongarch64g1330:loongarch64g1240:loongarch64g1420:loongarch64g1510:loongarch64g1430:loongarch64g1340:loongarch64g1250:loongarch64g1520
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++
@@ -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.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
group.sh.compilers=&gccsh
@@ -2159,7 +2203,7 @@ group.sh.compilers=&gccsh
# GCC for sh
group.gccsh.baseName=sh gcc
group.gccsh.groupName=sh gcc
group.gccsh.compilers=shg494:shg950:shg1220:shg1230:shg1240:shg1250:shg1310:shg1320:shg1330:shg1340:shg1410:shg1420:shg1430:shg1510
group.gccsh.compilers=shg494:shg950:shg1220:shg1230:shg1240:shg1250:shg1310:shg1320:shg1330:shg1340:shg1410:shg1420:shg1430:shg1510:shg1520
group.gccsh.isSemVer=true
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.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
group.s390x.compilers=&gccs390x
@@ -2239,7 +2288,7 @@ group.s390x.compilers=&gccs390x
# GCC for s390x
group.gccs390x.baseName=s390x gcc
group.gccs390x.groupName=s390x gcc
group.gccs390x.compilers=gccs390x1120:s390xg1210:s390xg1220:s390xg1230:s390xg1310:s390xg1320:s390xg1410:s390xg1330:s390xg1240:s390xg1420:s390xg1510:s390xg1430:s390xg1340:s390xg1250
group.gccs390x.compilers=gccs390x1120:s390xg1210:s390xg1220:s390xg1230:s390xg1310:s390xg1320:s390xg1410:s390xg1330:s390xg1240:s390xg1420:s390xg1510:s390xg1430:s390xg1340:s390xg1250:s390xg1520
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
@@ -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.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
group.ppcs.compilers=&ppc:&ppc64:&ppc64le
@@ -2318,7 +2372,7 @@ group.ppcs.isSemVer=true
group.ppcs.instructionSet=powerpc
## POWER
group.ppc.compilers=ppcg48:ppcg1120:ppcg1210:ppcg1220:ppcg1230:ppcg1240:ppcg1250:ppcg1310:ppcg1320:ppcg1330:ppcg1340:ppcg1410:ppcg1420:ppcg1430:ppcg1510
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.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.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
group.ppc64.groupName=POWER64 GCC
group.ppc64.baseName=power64 gcc
group.ppc64.compilers=ppc64g8:ppc64g9:ppc64g1120:ppc64g1210:ppc64clang:ppc64g1220:ppc64g1230:ppc64g1310:ppc64g1320:ppc64gtrunk:ppc64g1410:ppc64g1330:ppc64g1240:ppc64g1420:ppc64g1510:ppc64g1430:ppc64g1340:ppc64g1250
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.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.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.semver=trunk
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
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
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.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.semver=trunk
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
group.gcc32arm.groupName=Arm 32-bit GCC
group.gcc32arm.baseName=ARM GCC
group.gcc32arm.compilers=armhfg54:armg454:armg464:arm541:armg630:armg640:arm710:armg730:armg750:armg820:armce820:arm831:armg850:arm921:arm930:arm940:arm950:arm1020:arm1021:arm1030:arm1031_07:arm1031_10:arm1040:armg1050:arm1100:arm1120:arm1121:arm1130:armg1140:arm1210:armg1220:armg1230:armg1240:armg1250:armg1310:armg1320:armug1320:armg1330:armug1330:armg1340:armug1340:armg1410:armug1410:armg1420:armug1420:armg1430:armug1430:armg1510: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.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
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.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.name=ARM GCC 13.2.0 (unknown-eabi)
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.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.name=ARM gcc 8.2 (WinCE)
compiler.armce820.semver=8.2.0
@@ -2825,7 +2911,7 @@ compiler.armgtrunk.isNightly=true
# 64 bit
group.gcc64arm.groupName=Arm 64-bit GCC
group.gcc64arm.compilers=aarchg54:arm64g494:arm64g550:arm64g630:arm64g640:arm64g730:arm64g750:arm64g820:arm64g850:arm64g930:arm64g940:arm64g950:arm64g1020:arm64g1030:arm64g1040:arm64g1100:arm64g1120:arm64g1130:arm64g1140:arm64g1210:arm64gtrunk:arm64g1220:arm64g1230:arm64g1310:arm64g1050:arm64g1320:arm64g1410:arm64g1330:arm64g1240:arm64g1420:arm64g1510:arm64g1430:arm64g1340:arm64g1250
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.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump
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.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.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.semver=trunk
compiler.arm64gtrunk.isNightly=true
@@ -3159,7 +3250,7 @@ compiler.cl4302161.versionFlag=-version
################################
# 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.baseName=AVR gcc
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.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
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
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
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.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
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
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.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
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
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.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
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.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.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
group.nanomips.compilers=nanomips630
@@ -3813,7 +3929,7 @@ group.rvgcc.supportsBinary=true
group.rvgcc.supportsBinaryObject=true
## GCC for RISC-V 32-bits
group.rv64gcc.compilers=rv64-gcctrunk:rv64-gcc1230:rv64-gcc1220:rv64-gcc1210:rv64-gcc1140:rv64-gcc1130:rv64-gcc1120:rv64-gcc1030:rv64-gcc1020:rv64-gcc940:rv64-gcc850:rv64-gcc820:rv64-gcc1310:rv64-gcc1320:rv64-gcc1410:rv64-gcc1330:rv64-gcc1240:rv64-gcc1420:rv64-gcc1510:rv64-gcc1430:rv64-gcc1340:rv64-gcc1250
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.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.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.semver=(trunk)
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
## 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.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.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.semver=(trunk)
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.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
group.ellcc.compilers=ellcc0133:ellcc0134:ellcc170716
@@ -4612,7 +4675,7 @@ compiler.z180-clang-1507.options=-target z180 -g0 -nostdinc -fno-threadsafe-stat
#################################
#################################
# 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.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.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.url=https://github.com/victimsnino/ReactivePlusPlus
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.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.compilerType=win32-vc
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.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.isSemVer=true
group.vcpp_x86.supportsBinary=true
@@ -96,20 +96,123 @@ group.vcpp_x86.supportsExecute=true
group.vcpp_x86.instructionSet=amd64
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.supportsBinary=true
group.vcpp_x64.supportsExecute=true
group.vcpp_x64.instructionSet=amd64
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.supportsBinary=false
group.vcpp_arm64.supportsBinaryObject=false
group.vcpp_arm64.supportsExecute=false
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.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;

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
defaultCompiler=cg151
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=cg152
# We use the llvm-trunk demangler for all c/c++ compilers, as c++filt tends to lag behind
demangler=/opt/compiler-explorer/clang-trunk/bin/llvm-cxxfilt
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
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.instructionSet=amd64
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.cg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcc
compiler.cg151.semver=15.1
compiler.cg152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
compiler.cg152.semver=15.2
compiler.cgsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc
compiler.cgsnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -196,7 +198,7 @@ compiler.cg71.needsMulti=true
compiler.cg72.needsMulti=true
## GCC x86 build with "assertions" (--enable-checking=XXX)
group.cgcc86assert.compilers=cg103assert:cg104assert:cg105assert:cg111assert:cg112assert:cg113assert:cg114assert:cg121assert:cg122assert:cg123assert:cg124assert:cg125assert:cg131assert:cg132assert:cg133assert:cg134assert:cg141assert:cg142assert:cg143assert:cg151assert
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)
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.cg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcc
compiler.cg151assert.semver=15.1 (assertions)
compiler.cg152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gcc
compiler.cg152assert.semver=15.2 (assertions)
# 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
# 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.supportsExecute=false
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.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.semver=trunk
compiler.cbpfgtrunk.isNightly=true
@@ -1265,7 +1274,7 @@ compiler.ctricoreg1130.demangler=/opt/compiler-explorer/tricore/gcc-11.3.0/trico
group.chppa.compilers=&cgcchppa
# GCC for HPPA
group.cgcchppa.compilers=chppag1420:chppag1430:chppag1510
group.cgcchppa.compilers=chppag1420:chppag1430:chppag1510:chppag1520
group.cgcchppa.baseName=HPPA gcc
group.cgcchppa.groupName=HPPA GCC
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.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
group.cm68k.compilers=&cgccm68k:&cclangm68k
@@ -1309,7 +1323,7 @@ compiler.cm68kclangtrunk.semver=(trunk)
compiler.cm68kclangtrunk.isNightly=true
# 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.supportsExecute=false
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.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
group.csparc.compilers=&cgccsparc
# 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.groupName=SPARC GCC
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.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
group.csparc64.compilers=&cgccsparc64
# 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.groupName=SPARC64 GCC
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.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
group.csparcleon.compilers=&cgccsparcleon
# GCC for SPARC-LEON
group.cgccsparcleon.compilers=csparcleong1220:csparcleong1220-1:csparcleong1230:csparcleong1240:csparcleong1250:csparcleong1310:csparcleong1320:csparcleong1330:csparcleong1340:csparcleong1410:csparcleong1420:csparcleong1430:csparcleong1510
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.groupName=SPARC LEON GCC
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.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.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
@@ -1579,7 +1613,7 @@ compiler.csparcleong1220-1.demangler=/opt/compiler-explorer/sparc-leon/gcc-12.2.
group.cc6x.compilers=&cgccc6x
# GCC for TI C6x
group.cgccc6x.compilers=cc6xg1220:cc6xg1230:cc6xg1310:cc6xg1320:cc6xg1410:cc6xg1330:cc6xg1240:cc6xg1420:cc6xg1510:cc6xg1430:cc6xg1340:cc6xg1250
group.cgccc6x.compilers=cc6xg1220:cc6xg1230:cc6xg1310:cc6xg1320:cc6xg1410:cc6xg1330:cc6xg1240:cc6xg1420:cc6xg1510:cc6xg1430:cc6xg1340:cc6xg1250:cc6xg1520
group.cgccc6x.baseName=TI C6x gcc
group.cgccc6x.groupName=TI C6x GCC
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.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
group.cloongarch64.compilers=&cgccloongarch64
# 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.groupName=loongarch64 GCC
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.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
group.csh.compilers=&cgccsh
# 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.groupName=sh GCC
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.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
group.cs390x.compilers=&cgccs390x
# 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.groupName=s390x GCC
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.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
group.cppcs.compilers=&cppc:&cppc64:&cppc64le
group.cppcs.isSemVer=true
group.cppcs.instructionSet=powerpc
group.cppc.compilers=cppcg48:cppcg1120:cppcg1210:cppcg1220:cppcg1230:cppcg1240:cppcg1250:cppcg1310:cppcg1320:cppcg1330:cppcg1340:cppcg1410:cppcg1420:cppcg1430:cppcg1510
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.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.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.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.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.semver=trunk
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.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.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.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.semver=trunk
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
group.cgcc32arm.groupName=Arm 32-bit GCC
group.cgcc32arm.baseName=ARM GCC
group.cgcc32arm.compilers=carmhfg54:carmg454:carmg464:carm541:carmg630:carmg640:carm710:carmg730:carmg750:carmg820:carmce820:carm831:carmg850:carm921:carm930:carm1020:carm1021:carm1030:carm1031_07:carm1031_10:carmg1050:carm1100:carm1120:carm1121:carm1130:carmg1140:carm1210:carmg1220:carmg1230:carmg1240:carmg1250:carmg1310:carmg1320:carmug1320:carmg1330:carmug1330:carmg1340:carmug1340:carmg1410:carmug1410:carmg1420:carmug1420:carmg1430:carmug1430:carmg1510: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.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
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.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.name=ARM GCC 13.2.0 (unknown-eabi)
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.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.semver=8.2.0 (WinCE)
compiler.carmce820.supportsBinary=false
@@ -2347,7 +2433,7 @@ compiler.carmgtrunk.isNightly=true
# 64 bit
group.cgcc64arm.groupName=ARM64 gcc
group.cgcc64arm.baseName=ARM64 GCC
group.cgcc64arm.compilers=caarchg54:carm64g494:carm64g550:carm64g630:carm64g640:carm64g730:carm64g750:carm64g820:carm64g850:carm64g930:carm64g940:carm64g950:carm64g1020:carm64g1030:carm64g1040:carm64g1100:carm64g1120:carm64g1130:carm64g1140:carm64g1210:carm64gtrunk:carm64g1220:carm64g1230:carm64g1310:carm64g1050:carm64g1320:carm64g1410:carm64g1330:carm64g1240:carm64g1420:carm64g1510:carm64g1430:carm64g1340:carm64g1250
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.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump
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.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.semver=trunk
compiler.carm64gtrunk.isNightly=true
@@ -2644,7 +2735,7 @@ compiler.carduinomega189.objdumper=/opt/compiler-explorer/avr/arduino-1.8.9/hard
################################
# 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.baseName=MSP430 gcc
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.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)
group.ccl430.compilers=ccl4302161
@@ -2741,7 +2837,7 @@ compiler.ccl4302161.versionFlag=-version
################################
# 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.baseName=AVR gcc
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.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
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
## 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.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.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
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
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.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
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
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.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
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
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.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
group.cnanomips.compilers=cnanomips630
@@ -3392,7 +3513,7 @@ group.rvcgcc.supportsBinary=true
group.rvcgcc.supportsBinaryObject=true
## GCC for RISC-V 64-bits
group.rv64-cgccs.compilers=rv64-cgcctrunk:rv64-cgcc1230:rv64-cgcc1210:rv64-cgcc1140:rv64-cgcc1130:rv64-cgcc1220:rv64-cgcc1120:rv64-cgcc1030:rv64-cgcc1020:rv64-cgcc940:rv64-cgcc850:rv64-cgcc820:rv64-cgcc1310:rv64-cgcc1320:rv64-cgcc1410:rv64-cgcc1330:rv64-cgcc1240:rv64-cgcc1420:rv64-cgcc1510:rv64-cgcc1430:rv64-cgcc1340:rv64-cgcc1250
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.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.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.semver=(trunk)
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
## 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.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.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.semver=(trunk)
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.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

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.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.compilerType=win32-vc
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.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.supportsBinary=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.supportsBinary=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.isSemVer=true
group.vc_arm64.supportsBinary=false
group.vc_arm64.supportsBinaryObject=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.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
compilerType=c3c
defaultCompiler=c3c072
defaultCompiler=c3c074
supportsBinary=false
supportsBinaryObject=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.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.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
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.compilers=gnucobol32:gnucobol32rc2:gnucobol31:gnucobol22:gnucobol11
@@ -26,7 +26,7 @@ compiler.gnucobol11.version=1.1
group.gcccobol.compilerType=gcccobol
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.isSemVer=true
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.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.semver=(GCC master)
## 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)
compiler.gcccobol151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcobol
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
motdUrl=/motd/motd-beta.json
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
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.includeFlag=-isystem
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.gdc151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gdc
compiler.gdc151.semver=15.1
compiler.gdc152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gdc
compiler.gdc152.semver=15.2
compiler.gdctrunk.exe=/opt/compiler-explorer/gcc-snapshot/bin/gdc
compiler.gdctrunk.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
@@ -71,7 +73,7 @@ compiler.gdctrunk.semver=(trunk)
compiler.gdctrunk.isNightly=true
## GDC x86 build with "assertions" (--enable-checking=XXX)
group.gdcassert.compilers=gdc105assert:gdc111assert:gdc113assert:gdc114assert:gdc121assert:gdc122assert:gdc123assert:gdc124assert:gdc125assert:gdc131assert:gdc132assert:gdc133assert:gdc134assert:gdc141assert:gdc142assert:gdc143assert:gdc151assert
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)
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.gdc151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gdc
compiler.gdc151assert.semver=15.1 (assertions)
compiler.gdc152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gdc
compiler.gdc152assert.semver=15.2 (assertions)
## CROSS GDC
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
### 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.includeFlag=-isystem
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.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
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.includeFlag=-isystem
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.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.semver=trunk
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
### 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.includeFlag=-isystem
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.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.semver=trunk
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
### 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.includeFlag=-isystem
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.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
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.includeFlag=-isystem
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.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
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.includeFlag=-isystem
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.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
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.includeFlag=-isystem
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.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
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.includeFlag=-isystem
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.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.semver=trunk
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
### 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.includeFlag=-isystem
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.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.semver=trunk
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
### 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.includeFlag=-isystem
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.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
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.includeFlag=-isystem
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.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
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.includeFlag=-isystem
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.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
group.gdchppa.compilers=gdchppa1420:gdchppa1430:gdchppa1510
group.gdchppa.compilers=gdchppa1420:gdchppa1430:gdchppa1510:gdchppa1520
group.gdchppa.groupName=GDC hppa
group.gdchppa.includeFlag=-isystem
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.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.compilerType=ldc
group.ldc.isSemVer=true

View File

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

View File

@@ -2,4 +2,4 @@ sandboxType=nsjail
executionType=nsjail
wine=
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
defaultCompiler=gfortran151
demangler=/opt/compiler-explorer/gcc-15.1.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump
defaultCompiler=gfortran152
demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
compilerType=fortran
buildenvsetup=ceconan-fortran
@@ -9,7 +9,7 @@ buildenvsetup.host=https://conan.compiler-explorer.com
###############################
# GCC (as in GNU Compiler Collection) for x86
group.gfortran_86.compilers=&gfortranassert:gfortran494:gfortran550:gfortran63:gfortran71:gfortran72:gfortran73:gfortran81:gfortran82:gfortran83:gfortran84:gfortran85:gfortran91:gfortran92:gfortran93:gfortran94:gfortran101:gfortran102:gfortran103:gfortran104:gfortran105:gfortran111:gfortran112:gfortran113:gfortran114:gfortran121:gfortran122:gfortran123:gfortran124:gfortran125:gfortran131:gfortran132:gfortran133:gfortran134:gfortran141:gfortran142:gfortran143:gfortran151: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.isSemVer=true
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.gfortran151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gfortran
compiler.gfortran151.semver=15.1
compiler.gfortran152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gfortran
compiler.gfortran152.semver=15.2
compiler.gfortransnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gfortran
compiler.gfortransnapshot.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
@@ -96,7 +98,7 @@ compiler.gfortransnapshot.semver=(trunk)
compiler.gfortransnapshot.isNightly=true
## GFORTRAN x86 build with "assertions" (--enable-checking=XXX)
group.gfortranassert.compilers=gfortran103assert:gfortran104assert:gfortran105assert:gfortran111assert:gfortran112assert:gfortran113assert:gfortran114assert:gfortran121assert:gfortran122assert:gfortran123assert:gfortran124assert:gfortran125assert:gfortran131assert:gfortran132assert:gfortran133assert:gfortran134assert:gfortran141assert:gfortran142assert:gfortran143assert:gfortran151assert
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.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.gfortran151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gfortran
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
@@ -388,7 +392,7 @@ compiler.ftricoreg1130.demangler=/opt/compiler-explorer/tricore/gcc-11.3.0/trico
###############################
# GCC for HPPA
group.gcchppa.compilers=fhppag1420:fhppag1430:fhppag1510
group.gcchppa.compilers=fhppag1420:fhppag1430:fhppag1510:fhppag1520
group.gcchppa.groupName=HPPA gfortran
group.gcchppa.baseName=HPPA gfortran
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.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
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.baseName=SPARC 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.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
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.baseName=SPARC64 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.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
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.baseName=SPARC LEON 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.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
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.baseName=LOONGARCH64 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.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
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.baseName=RISCV64 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.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
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.baseName=RISCV (32bit) 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.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
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.baseName=ARM (32bit) 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.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
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.baseName=s390x 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.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
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
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.baseName=AARCH64 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.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
group.ppcs.compilers=&ppc64:&ppc64le:&ppc
@@ -1163,7 +1217,7 @@ group.ppcs.compilerCategories=gfortran
###############################
# 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.baseName=POWER 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.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
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.baseName=POWER64 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.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.semver=trunk
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
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.baseName=POWER64le 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.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.semver=trunk
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
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.baseName=MIPS 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.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
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.baseName=MIPS64 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.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
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.baseName=MIPSel 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.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
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.baseName=MIPS64el 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.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

View File

@@ -1,7 +1,7 @@
compilers=&gimplegcc86:&gimplecross:&wyrm
defaultCompiler=gimpleg151
demangler=/opt/compiler-explorer/gcc-15.1.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump
defaultCompiler=gimpleg152
demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
needsMulti=false
compilerType=gimple
buildenvsetup=ceconan
@@ -12,7 +12,7 @@ externalparser.exe=/usr/local/bin/asm-parser
###############################
# GCC for x86
group.gimplegcc86.compilers=&gimplegcc86assert:gimpleg91:gimpleg92:gimpleg93:gimpleg94:gimpleg95:gimpleg101:gimpleg102:gimpleg103:gimpleg104:gimpleg105:gimpleg111:gimpleg112:gimpleg113:gimpleg114:gimpleg121:gimpleg122:gimpleg123:gimpleg124:gimpleg125:gimpleg131:gimpleg132:gimpleg133:gimpleg134:gimpleg141:gimpleg142:gimpleg143:gimpleg151: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.instructionSet=amd64
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.gimpleg151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gcc
compiler.gimpleg151.semver=15.1
compiler.gimpleg152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
compiler.gimpleg152.semver=15.2
compiler.gimplegsnapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gcc
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>
## 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)
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.gimpleg151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gcc
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
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.baseName=AVR gcc
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.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
group.gimplextensaesp32.compilers=gimpleesp32g2022r1:gimpleesp32g20230208:gimpleesp32g20241119
@@ -359,7 +368,7 @@ group.gimplemipss.supportsExecute=false
# GCC for all 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.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.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
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
@@ -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.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
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
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.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
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
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.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
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
group.gimplehppa.compilers=gimplehppag1420:gimplehppag1430:gimplehppag1510
group.gimplehppa.compilers=gimplehppag1420:gimplehppag1430:gimplehppag1510:gimplehppag1520
group.gimplehppa.baseName=HPPA gcc
group.gimplehppa.groupName=HPPA GCC
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.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
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.baseName=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.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.semver=trunk
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
# 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.supportsExecute=false
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.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
group.gimplesparc.compilers=&gimplegccsparc
# 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.groupName=SPARC GCC
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.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
group.gimplesparc64.compilers=&gimplegccsparc64
# 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.groupName=SPARC64 GCC
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.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
group.gimplesparcleon.compilers=&gimplegccsparcleon
# 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.groupName=SPARC LEON GCC
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.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.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
@@ -1029,7 +1088,7 @@ compiler.gimplesparcleong1220-1.demangler=/opt/compiler-explorer/sparc-leon/gcc-
group.gimplec6x.compilers=&gimplegccc6x
# 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.groupName=TI C6x GCC
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.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
group.gimpleloongarch64.compilers=&gimplegccloongarch64
# 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.groupName=loongarch64 GCC
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.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
group.gimplesh.compilers=&gimplegccsh
# 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.groupName=sh GCC
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.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
group.gimples390x.compilers=&gimplegccs390x
# 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.groupName=s390x GCC
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.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
group.gimpleppcs.compilers=&gimpleppc:&gimpleppc64:&gimpleppc64le
group.gimpleppcs.isSemVer=true
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.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.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.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.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.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.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
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.baseName=MSP430 gcc
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.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
@@ -1635,7 +1734,7 @@ group.gimplegccarm.includeFlag=-I
# 32 bit
group.gimplegcc32arm.groupName=Arm 32-bit 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.objdumper=/opt/compiler-explorer/arm/gcc-10.2.0/arm-unknown-linux-gnueabihf/bin/arm-unknown-linux-gnueabihf-objdump
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.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.name=ARM GCC 13.2.0 (unknown-eabi)
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.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.semver=9.2.1 (none)
compiler.gimplearm921.supportsBinary=false
@@ -1785,7 +1901,7 @@ compiler.gimplearmgtrunk.isNightly=true
# 64 bit
group.gimplegcc64arm.groupName=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.objdumper=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump
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.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.semver=trunk
compiler.gimplearm64gtrunk.isNightly=true
@@ -1910,7 +2031,7 @@ group.gimplervgcc.supportsBinary=true
group.gimplervgcc.supportsBinaryObject=true
## 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.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.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.semver=(trunk)
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
## 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.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.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.semver=(trunk)
compiler.rv32-gimplegcctrunk.isNightly=true

View File

@@ -2,7 +2,7 @@ compilers=&gccgo:&gl:&cross
defaultCompiler=gl1242
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.baseName=x86 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.gccgo151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gccgo
compiler.gccgo151.semver=15.1
compiler.gccgo152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gccgo
compiler.gccgo152.semver=15.2
## 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)
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.gccgo151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gccgo
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.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_gl121.exe=/opt/compiler-explorer/golang-1.21.13/go/bin/go
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_gl123.exe=/opt/compiler-explorer/golang-1.23.8/go/bin/go
compiler.ppc64le_gl123.semver=1.23.8
@@ -600,7 +603,7 @@ group.cross.groupName=Cross Go
###############################
# 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.baseName=SPARC gccgo
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.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
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.baseName=SPARC64 gccgo
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.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
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.baseName=MIPS64EL gccgo
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.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
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.baseName=MIPSEL gccgo
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.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
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.baseName=RISC-V 64 gccgo
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.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
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.baseName=S390X gccgo
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.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
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.baseName=MIPS gccgo
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.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
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.baseName=MIPS64 gccgo
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.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
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.baseName=ARM64 gccgo
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.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
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.baseName=ARM gccgo
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.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
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.baseName=POWER gccgo
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.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
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.baseName=POWER64LE gccgo
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.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.semver=trunk
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
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.baseName=POWER64 gccgo
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.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.semver=trunk
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
compilers=&gm2
defaultCompiler=gm2151
defaultCompiler=gm2152
demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
@@ -15,7 +15,7 @@ needsMulti=false
externalparser=CEAsmParser
externalparser.exe=/usr/local/bin/asm-parser
group.gm2.compilers=&gm2assert:gm2131:gm2132:gm2133:gm2134:gm2141:gm2142:gm2143:gm2151:gm2snapshot
group.gm2.compilers=&gm2assert:gm2131:gm2132:gm2133:gm2134:gm2141:gm2142:gm2143:gm2151:gm2152:gm2snapshot
group.gm2.compilerType=gm2
group.gm2.instructionSet=amd64
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.gm2151.exe=/opt/compiler-explorer/gcc-15.1.0/bin/gm2
compiler.gm2151.semver=15.1
compiler.gm2152.exe=/opt/compiler-explorer/gcc-15.2.0/bin/gm2
compiler.gm2152.semver=15.2
compiler.gm2snapshot.exe=/opt/compiler-explorer/gcc-snapshot/bin/gm2
compiler.gm2snapshot.semver=(snapshot)
## GFORTRAN x86 build with "assertions" (--enable-checking=XXX)
group.gm2assert.compilers=gm2131assert:gm2132assert:gm2133assert:gm2134assert:gm2141assert:gm2142assert:gm2143assert:gm2151assert
group.gm2assert.compilers=gm2131assert:gm2132assert:gm2133assert:gm2134assert:gm2141assert:gm2142assert:gm2143assert:gm2151assert:gm2152assert
group.gm2assert.groupName=GM2 x86-64 (assertions)
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.gm2151assert.exe=/opt/compiler-explorer/gcc-assertions-15.1.0/bin/gm2
compiler.gm2151assert.semver=15.1 (assertions)
compiler.gm2152assert.exe=/opt/compiler-explorer/gcc-assertions-15.2.0/bin/gm2
compiler.gm2152assert.semver=15.2 (assertions)

View File

@@ -1,7 +1,7 @@
compilers=&objcppgcc86:&objcppcross
defaultCompiler=objcppg151
demangler=/opt/compiler-explorer/gcc-15.1.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump
defaultCompiler=objcppg152
demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
needsMulti=false
buildenvsetup=ceconan
@@ -14,7 +14,7 @@ llvmDisassembler=/opt/compiler-explorer/clang-18.1.0/bin/llvm-dis
###############################
# GCC for x86
group.objcppgcc86.compilers=&objcppgcc86assert:objcppg105:objcppg114:objcppg122:objcppg123:objcppg124:objcppg125:objcppg131:objcppg132:objcppg133:objcppg134:objcppg141:objcppg142:objcppg143:objcppg151: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.instructionSet=amd64
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.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.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
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)
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.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.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.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
group.objcppgcchppa.compilers=objcpphppag1420:objcpphppag1430:objcpphppag1510
group.objcppgcchppa.compilers=objcpphppag1420:objcpphppag1430:objcpphppag1510:objcpphppag1520
group.objcppgcchppa.groupName=HPPA GCC
group.objcppgcchppa.baseName=HPPA gcc
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.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
group.objcppgccloongarch64.compilers=objcpploongarch64g1410:objcpploongarch64g1420:objcpploongarch64g1510:objcpploongarch64g1430
group.objcppgccloongarch64.compilers=objcpploongarch64g1410:objcpploongarch64g1420:objcpploongarch64g1510:objcpploongarch64g1430:objcpploongarch64g1520
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++
@@ -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.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
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.baseName=POWERPC64LE GCC
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.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.semver=trunk
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
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.baseName=POWERPC64 GCC
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.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.semver=trunk
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
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.baseName=POWERPC GCC
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.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
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.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.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
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.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.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
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.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.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
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.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.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
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.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.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
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.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.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
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.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.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
@@ -809,7 +875,7 @@ group.objcppgccrvs.compilers=&objcppgccrv32:&objcppgccrv64
group.objcppgccrvs.groupName=RISC-V GCC
## 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.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.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.semver=(trunk)
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
## 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.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.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.semver=(trunk)
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
defaultCompiler=objcg151
demangler=/opt/compiler-explorer/gcc-15.1.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.1.0/bin/objdump
defaultCompiler=objcg152
demangler=/opt/compiler-explorer/gcc-15.2.0/bin/c++filt
objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
needsMulti=false
externalparser=CEAsmParser
@@ -9,7 +9,7 @@ externalparser.exe=/usr/local/bin/asm-parser
###############################
# GCC for x86
group.objcgcc86.compilers=&objcgcc86assert:objcg346:objcg404:objcg650:objcg105:objcg114:objcg122:objcg123:objcg124:objcg125:objcg131:objcg132:objcg133:objcg134:objcg141:objcg142:objcg143:objcg151: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.instructionSet=amd64
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.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.demangler=/opt/compiler-explorer/gcc-snapshot/bin/c++filt
compiler.objcgsnapshot.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump
@@ -77,7 +80,7 @@ compiler.objcgsnapshot.semver=(trunk)
compiler.objcgsnapshot.isNightly=true
## OBJC GCC x86 build with "assertions" (--enable-checking=XXX)
group.objcgcc86assert.compilers=objcg105assert:objcg114assert:objcg122assert:objcg123assert:objcg124assert:objcg125assert:objcg131assert:objcg132assert:objcg133assert:objcg134assert:objcg141assert:objcg142assert:objcg143assert:objcg151assert
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)
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.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
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
# 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.supportsExecute=false
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.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
group.objcsparc64.compilers=&objcgccsparc64
# 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.supportsExecute=false
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.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
group.objcsparcleon.compilers=&objcgccsparcleon
# 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.supportsExecute=false
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.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.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
@@ -360,7 +381,7 @@ compiler.objcsparcleong1220-1.demangler=/opt/compiler-explorer/sparc-leon/gcc-12
group.objcloongarch64.compilers=&objcgccloongarch64
# 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.supportsExecute=false
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.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
group.objcs390x.compilers=&objcgccs390x
# 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.supportsExecute=false
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.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
group.objcppcs.compilers=&objcppc:&objcppc64:&objcppc64le
@@ -508,7 +539,7 @@ group.objcppcs.supportsBinary=true
group.objcppcs.supportsExecute=false
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.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.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.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.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.semver=trunk
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
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.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.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.semver=trunk
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
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.instructionSet=arm32
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.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.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)
@@ -795,7 +846,7 @@ compiler.objcarmgtrunk.isNightly=true
# 64 bit
group.objcgcc64arm.groupName=Arm 64-bit 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.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.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.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
@@ -874,7 +930,7 @@ group.objcmipss.supportsBinary=true
group.objcmipss.supportsExecute=false
## 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.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.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
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
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.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
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
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.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
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
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.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
@@ -1146,7 +1222,7 @@ group.objcrv.supportsBinaryObject=true
## Subgroup for riscv32
group.objcrv32.groupName=RISC-V 32-bits
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.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.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.semver=(trunk)
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
group.objchppa.compilers=objchppag1420:objchppag1430:objchppag1510
group.objchppa.compilers=objchppag1420:objchppag1430:objchppag1510:objchppag1520
group.objchppa.groupName=HPPA GCC
group.objchppa.baseName=hppa gcc
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.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
#

View File

@@ -1,4 +1,4 @@
compilers=&python3:&pypy:&pythran
compilers=&python3:&pypy:&pythran:&codon
defaultCompiler=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.semver=0.15
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
objdumper=/opt/compiler-explorer/gcc-14.1.0/bin/objdump
linker=/opt/compiler-explorer/gcc-14.1.0/bin/gcc
objdumper=/opt/compiler-explorer/gcc-15.2.0/bin/objdump
linker=/opt/compiler-explorer/gcc-15.2.0/bin/gcc
aarch64linker=/opt/compiler-explorer/arm64/gcc-14.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc
defaultCompiler=r1880
defaultCompiler=r1890
demangler=/opt/compiler-explorer/demanglers/rust/bin/rustfilt
buildenvsetup=ceconan-rust
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.isSemVer=true
group.rust.unwiseOptions=-Ctarget-cpu=native|target-cpu=native
@@ -21,6 +21,9 @@ group.rust.supportsBinaryObject=true
group.rust.supportsClippy=true
# Rust 1.83+ needs `libPath` for execution with dynamically linked standard library
# see https://github.com/compiler-explorer/compiler-explorer/pull/7367
compiler.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.semver=1.88.0
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
# 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.baseName=x86-64 GCCRS
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.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.semver=(GCC master)
compiler.gcc-snapshot.isNightly=true
@@ -259,7 +265,7 @@ compiler.gccrs-snapshot.semver=(GCCRS master)
compiler.gccrs-snapshot.isNightly=true
## GCC (from upstream GCC, not GCCRS github) x86 build with "assertions" (--enable-checking=XXX)
group.gccrsassert.compilers=gccrs-g141assert:gccrs-g142assert:gccrs-g143assert:gccrs-g151assert
group.gccrsassert.compilers=gccrs-g141assert:gccrs-g142assert:gccrs-g143assert:gccrs-g151assert:gccrs-g152assert
group.gccrsassert.groupName=x86-64 GCC (assertions)
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.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
group.gcccross.compilers=&rustgccbpf
group.gcccross.supportsExecute=false

View File

@@ -1,7 +1,7 @@
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.objdumper=/opt/compiler-explorer/gcc-14.2.0/bin/objdump
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.spice02202.exe=/opt/compiler-explorer/spice-0.22.2/spice
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
defaultCompiler=triton_nvidia_331
defaultCompiler=triton_nvidia_340
compilerType=triton
interpreted=true
supportsBinary=false
@@ -7,10 +7,13 @@ supportsExecute=false
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>.
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.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.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.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.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.exe=/opt/compiler-explorer/triton/v3.3.1/bin/python3

View File

@@ -1,5 +1,5 @@
compilers=&triton_nvidia:&triton_amd
defaultCompiler=triton_nvidia_331
defaultCompiler=triton_nvidia_340
compilerType=triton
interpreted=true
supportsBinary=false
@@ -7,10 +7,13 @@ supportsExecute=false
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>.
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.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.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.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.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.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'),
'Special Registers: ')]:
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)
instructions: list[str] = instructions0.replace(' / ', ', ').split(', ')
href: str = link.get('href')
@@ -100,19 +100,23 @@ def main():
raise AssertionError
article.p.decompose() # remove the instruction name
return Doc(title.rstrip(''), txt, str(article))
symbol_to_doc: list[tuple[str, str, str, list[tuple[str, str]]]] = []
for symbol, fullname_fragments in symbol_to_fullname_frag:
docs = [get_doc(fragment) for _, fragment in fullname_fragments]
symbol_to_doc.append((symbol, *combine_docs(docs, fullname_fragments), fullname_fragments))
# get SASS docs
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:
f.write("""
import {AssemblyInstructionInfo} from '../base.js';
import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return;
@@ -133,7 +137,7 @@ def main():
""")
with open(args.outputfolder + '/asm-docs-sass.ts', 'w') as f:
f.write("""
import {AssemblyInstructionInfo} from '../base.js';
import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return;
@@ -141,15 +145,16 @@ def main():
""".lstrip())
# SASS
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(' return {}'.format(json.dumps({
"tooltip": 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' +
' documentation <sup><small class="fas fa-external-link-alt opens-new-window"' +
' 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')
f.write("""
@@ -158,4 +163,4 @@ def 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 importlib.util
import inspect
import json
import os
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
requirs such patching to work.
This function is a collection of hacks. It has been tested to work with Triton
2.3.0, 2.3.1, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.3.1.
This function is a collection of hacks. It has been tested to work with Triton versions:
2.3.0, 2.3.1, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.3.1, 3.4.0.
"""
os.environ["TRITON_ALWAYS_COMPILE"] = "1"
@@ -181,6 +204,19 @@ def setup_triton(
except ImportError:
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(
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');
const {getHashDigest} = require('loader-utils');
const pug = require('pug');
const path = require('path');
import {execSync} from 'child_process';
import {getHashDigest} from 'loader-utils';
import pug from 'pug';
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.
// 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.
const expectedHashes = {
cookies: '08712179739d3679',
privacy: 'c0dad1f48a56b761',
privacy: '074dd09a246ad6fe',
};
function _execGit(command) {
@@ -20,7 +20,7 @@ function _execGit(command) {
return gitResult.toString();
}
module.exports = function (content) {
export default function (content) {
const filePath = this.resourcePath;
const filename = path.basename(filePath, '.pug');
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: [],
});
protected executionEnvironmentClass: any;
protected readonly argParser: BaseParser;
constructor(compilerInfo: PreliminaryCompilerInfo & {disabledFilters?: string[]}, env: CompilationEnvironment) {
// Information about our compiler
@@ -306,6 +307,7 @@ export class BaseCompiler {
}
this.packager = new Packager();
this.argParser = new (this.getArgumentParserClass())(this);
}
copyAndFilterLibraries(allLibraries: Record<string, OptionsHandlerLibrary>, filter: string[]) {
@@ -715,6 +717,9 @@ export class BaseCompiler {
if (gccDumpOptions.dumpFlags.address !== false) {
flags += '-address';
}
if (gccDumpOptions.dumpFlags.alias !== false) {
flags += '-alias';
}
if (gccDumpOptions.dumpFlags.slim !== false) {
flags += '-slim';
}
@@ -3595,8 +3600,7 @@ but nothing was dumped. Possible causes are:
async getTargetsAsOverrideValues(): Promise<CompilerOverrideOption[]> {
if (!this.buildenvsetup || !this.buildenvsetup.getCompilerArch()) {
const parserCls = this.getArgumentParserClass();
const targets = await parserCls.getPossibleTargets(this);
const targets = await this.argParser.getPossibleTargets();
return targets.map(target => {
return {
@@ -3609,8 +3613,7 @@ but nothing was dumped. Possible causes are:
}
async getPossibleStdversAsOverrideValues(): Promise<CompilerOverrideOption[]> {
const parser = this.getArgumentParserClass();
return await parser.getPossibleStdvers(this);
return await this.argParser.getPossibleStdvers();
}
async populatePossibleRuntimeTools() {
@@ -3791,7 +3794,7 @@ but nothing was dumped. Possible causes are:
}
return this;
}
const initResult = await this.getArgumentParserClass().parse(this);
const initResult = await this.argParser.parse();
this.possibleArguments.possibleArguments = {};
await this.populatePossibleOverrides();

View File

@@ -40,11 +40,17 @@ export class PythonCFGParser extends BaseCFGParser {
return x.startsWith('Disassembly of');
}
override isBasicBlockEnd(inst: string, prevInst: string) {
private isJmpTarget(inst: string) {
if (inst.includes('>>'))
// jmp target
// for python <= 3.12
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:
if (this.isJmpTarget(inst)) return true;
return this.instructionSetInfo.getInstructionType(prevInst) !== InstructionType.notRetInst;
}

View File

@@ -562,7 +562,9 @@ export class CompilerFinder {
}
}
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 {CMakeScriptCompiler} from './cmakescript.js';
export {CoccinelleCCompiler, CoccinelleCPlusPlusCompiler} from './coccinelle.js';
export {CodonCompiler} from './codon.js';
export {CompCertCompiler} from './compcert.js';
export {CppFrontCompiler} from './cppfront.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);
}
override getArgumentParserClass() {
return super.getArgumentParserClass();
}
override isCfgCompiler() {
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 {BaseCompiler} from '../base-compiler.js';
import {changeExtension} from '../utils.js';
import {MojoParser} from './argument-parsers.js';
export class MojoCompiler extends BaseCompiler {
static get key() {
@@ -95,4 +96,8 @@ export class MojoCompiler extends BaseCompiler {
const irText = await fs.readFile(llPath, 'utf8');
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() {
const possibleEditions = await RustParser.getPossibleEditions(this);
const possibleEditions = await this.argParser.getPossibleEditions();
if (possibleEditions.length > 0) {
let defaultEdition: undefined | string;
if (!this.compiler.semver || this.isNightly()) {

View File

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

View File

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

View File

@@ -120,6 +120,7 @@ export type ClientOptionsType = {
};
motdUrl: string;
pageloadUrl: string;
explainApiEndpoint: string;
};
/***
@@ -220,6 +221,7 @@ export class ClientOptionsHandler implements ClientOptionsSource {
},
},
motdUrl: ceProps('motdUrl', ''),
explainApiEndpoint: ceProps('explainApiEndpoint', ''),
pageloadUrl: ceProps('pageloadUrl', ''),
};
// 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`
this.hasOpcodeRe = /^\s*(%[$.A-Z_a-z][\w$.]*\s*=\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.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$.]*")/;

29
package-lock.json generated
View File

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

View File

@@ -52,6 +52,7 @@
"lodash.clonedeep": "^4.5.0",
"lru-cache": "^11.1.0",
"lz-string": "^1.5.0",
"marked": "^15.0.12",
"monaco-editor": "^0.49.0",
"monaco-vim": "^0.4.2",
"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[] {
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_HIR_VIEW_COMPONENT_NAME = 'rusthir' 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};
// TODO(#7808): Normalize state types to reduce duplication (see #4490)
@@ -338,6 +339,13 @@ export type PopulatedDeviceViewState = StateWithId & {
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
* 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_HIR_VIEW_COMPONENT_NAME]: EmptyRustHirViewState | PopulatedRustHirViewState;
[DEVICE_VIEW_COMPONENT_NAME]: EmptyDeviceViewState | PopulatedDeviceViewState;
[EXPLAIN_VIEW_COMPONENT_NAME]: EmptyExplainViewState | PopulatedExplainViewState;
}
/**

View File

@@ -41,6 +41,7 @@ import {
DragSourceFactory,
EDITOR_COMPONENT_NAME,
EXECUTOR_COMPONENT_NAME,
EXPLAIN_VIEW_COMPONENT_NAME,
FLAGS_VIEW_COMPONENT_NAME,
GCC_DUMP_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
*/

View File

@@ -72,6 +72,8 @@ export type EventMap = {
copyShortLinkToClip: () => void;
deviceViewClosed: (compilerId: number) => void;
deviceViewOpened: (compilerId: number) => void;
explainViewClosed: (compilerId: number) => void;
explainViewOpened: (compilerId: number) => void;
displaySharingPopover: () => void;
editorChange: (editorId: number, source: string, langId: string, compilerId?: 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
| 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
p
| 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 "
a(href="https://github.com/compiler-explorer/compiler-explorer/blob/main/AUTHORS.md"
target="_blank" rel="noreferrer noopener") Authors
@@ -35,36 +58,42 @@ html(lang="en")
|
| if you wish to help.
h3 Your data
h3 What happens when you compile code
p
| In order to process compilation and execution requests, your browser sends the source code you typed in the editor
| window along with your chosen compiler and options to the Compiler Explorer servers. There, the source code is
| 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.
| When you compile, your browser sends your source code and compiler settings to our servers. We write your code
| to a temporary file, run the compiler on it, and send the results back to your browser.
p
| The source code and options are also subject to a one-way hash, which is used to cache the results to speed up
| 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.
| Your code is deleted within minutes. As soon as compilation finishes, we clean up the temporary files.
p
| In short: your source code is stored in plaintext for the minimum time feasible to be able to process your request.
| After that, it is discarded and is inaccessible. In very rare cases your code may be kept for a little longer (at
| most a week) to help debug issues in Compiler Explorer.
| Exception for debugging: If something goes wrong with Compiler Explorer itself (not your code, but our
| system), we might keep your code for up to a week to help us fix the problem. This only happens if you have the
| "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
| 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
| 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
@@ -73,38 +102,42 @@ html(lang="en")
| Links of this form look like #[code https://godbolt.org/z/SHORTNAME].
p
| Prior to storing data itself, Compiler Explorer used an external URL shortening service (
a(href="https://goo.gl/" target="_blank") goo.gl
| ) and the resulting short URL was rewritten as #[code https://godbolt.org/g/SHORTURLPART].
| The storage for the user experience state in this case remains with the short URL provider,
| not Compiler Explorer.
| Before September 2018, Compiler Explorer used Google's goo.gl service for short links.
| We switched to our own system in 2018, but when Google shut down goo.gl in 2025, we migrated any remaining old
| links to ensure they keep working.
h4 Application, web and error logs
h3 Application, web and error logs
p
| Compiler Explorer keeps application logs, which contain semi-anonymised IP addresses, but no other personally
| identifying information. When a long URL is clicked, the hash part of the URL is not sent to the server, so the user
| state (including the source code) is NOT exposed in the web log. If a user clicks a short URL, then the short form
| #[em is] exposed in the web log (as #[code https://godbolt.org/g/SHORTURLPART]) and from this the source code can be
| retrieved. As such, if you create a short URL of your code, your source
| code and other user state can in principle be retrieved from the web log of Compiler Explorer.
| Web access logs contain semi-anonymised IP addresses (we remove parts of the IP address to make them less identifying) but
| no other personal information.
| When you visit a long Compiler Explorer URL (the ones with #[code #] in them), your code
| stays in your browser and isn't logged. If you visit a short URL we created (like #[code godbolt.org/z/abc123]),
| then we can potentially retrieve your code from our logs.
p
| Compiler Explorer keeps a separate compile request log for Analytics purposes without identifying information.
| This log only contains the settings which were used - minus code and options that may contain sensitive data.
| Compilation logs are separate analytics logs that record which compilers and settings people use.
| 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
| Compiler Explorer uses Amazon's web serving, load balancing and edge caching systems. In order to debug and diagnose
| Compiler Explorer, to help track down and block Denial of Service attacks, and to gather statistics about Compiler
| Explorer's performance and usage, the logs from these systems are archived. These logs contain the full IP addresses
| of requests. They are kept for no more than one month, after which they are permanently deleted.
| Amazon infrastructure logs: We use Amazon's servers to run Compiler Explorer. Their logs (which help us
| debug issues and block attacks) contain full IP addresses and are kept for up to 32 days, then permanently
| deleted.
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
| ). 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
| 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
| 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
| 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
| that it's available when the user visits the Compiler Explorer site again. This information is not transmitted to
| Compiler Explorer, except as described above in order to fulfil the user's requests. There is a
| Storage (and Session Storage). Local storage remembers your settings, source code and user interface configuration
| so it's available when you visit again. This information is not transmitted to
| Compiler Explorer, except as described above in order to fulfil your requests. There is a
|
a(href="#cookies" rel="noreferrer noopener") separate document
|
| covering more on this.
h3 Your choices
h3 Your rights and choices
p
| Compiler Explorer is an open source project. If you are concerned about any of the data protection measures outlined
| above, or about what happens to your source code, you are encouraged to run your own local instance of Compiler
| Explorer. Instructions on how to do this are on the
| You decide if and when to create shared links. In case of an emergency you can request
| deletion by contacting us.
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"
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
p
| The Compiler Explorer team believes the Compiler Explorer site is compliant with the EU's General Data Protection
| Regulation (GDPR). Specifically, we store no personally identifying information, we anonymise the little data that
| we do have and we do not permanently store any user data.
| We comply with the EU's General Data Protection Regulation (GDPR) because we don't store personal information
| long-term. IP addresses are semi-anonymised and deleted within one month, and your source code is processed
| temporarily and then deleted.
h4 Name and Address of the controller
h4 Name and contact details of the controller
p
| The Controller for the purposes of the General Data Protection Regulation (GDPR), other data protection laws
@@ -151,9 +204,6 @@ html(lang="en")
div
| Matt Godbolt
br
| 2626 Orrington Ave
| Compiler Explorer LLC
br
| Evanston IL 60201 USA
br
| +1 312 792-7931<br>
a(href="mailto:matt@godbolt.org") matt@godbolt.org
a(href="mailto:privacy@compiler-explorer.com") privacy@compiler-explorer.com

View File

@@ -36,6 +36,7 @@ import {
DIFF_VIEW_COMPONENT_NAME,
EDITOR_COMPONENT_NAME,
EXECUTOR_COMPONENT_NAME,
EXPLAIN_VIEW_COMPONENT_NAME,
FLAGS_VIEW_COMPONENT_NAME,
GCC_DUMP_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 {Editor} from './panes/editor.js';
import {Executor} from './panes/executor.js';
import {ExplainView} from './panes/explain-view.js';
import {Flags as FlagsView} from './panes/flags-view.js';
import {GccDump as GCCDumpView} from './panes/gccdump-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) =>
this.conformanceViewFactory(c, s),
);
layout.registerComponent(EXPLAIN_VIEW_COMPONENT_NAME, (c: GLC, s: any) => this.explainViewFactory(c, s));
layout.eventHub.on(
'editorOpen',
@@ -581,4 +584,8 @@ export class Hub {
): ConformanceView {
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;
supportsLibraryCodeFilter: boolean;
cvCompilerCountMax: number;
explainApiEndpoint: string;
};

View File

@@ -189,11 +189,13 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
private gnatDebugButton: JQuery<HTMLButtonElement>;
private rustMirButton: JQuery<HTMLButtonElement>;
private rustMacroExpButton: JQuery<HTMLButtonElement>;
private rustHirButton: JQuery<HTMLButtonElement>;
private haskellCoreButton: JQuery<HTMLButtonElement>;
private haskellStgButton: JQuery<HTMLButtonElement>;
private haskellCmmButton: JQuery<HTMLButtonElement>;
private gccDumpButton: JQuery<HTMLButtonElement>;
private cfgButton: JQuery<HTMLButtonElement>;
private explainButton: JQuery<HTMLButtonElement>;
private executorButton: JQuery<HTMLButtonElement>;
private libsButton: JQuery<HTMLButtonElement>;
private compileInfoLabel: JQuery<HTMLElement>;
@@ -236,7 +238,6 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
private bottomBar: JQuery<HTMLElement>;
private statusLabel: JQuery<HTMLElement>;
private statusIcon: JQuery<HTMLElement>;
private rustHirButton: JQuery<HTMLButtonElement>;
private libsWidget: LibsWidget | null;
private isLabelCtxKey: 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);
};
const createExplainView = () => {
return Components.getExplainViewWith(
this.id,
this.getCompilerName(),
this.sourceEditorId ?? 0,
this.sourceTreeId ?? 0,
);
};
const createExecutor = () => {
const currentState = this.getCurrentState();
const editorId = currentState.source;
@@ -934,6 +944,18 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
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(
'dragStart',
hidePaneAdder,
@@ -947,6 +969,11 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
});
this.initToolButtons();
// Hide Claude Explain button if no API endpoint is configured
if (!options.explainApiEndpoint) {
this.explainButton.hide();
}
}
undefer(): void {
@@ -2173,6 +2200,7 @@ export class Compiler extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Co
this.dumpFlags = {
gimpleFe: dumpOpts.gimpleFeOption,
address: dumpOpts.addressOption,
alias: dumpOpts.aliasOption,
slim: dumpOpts.slimOption,
raw: dumpOpts.rawOption,
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 {
this.filterBinaryObjectButton = this.domRoot.find("[data-bind='binaryObject']");
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.gccDumpButton = this.domRoot.find('.btn.view-gccdump');
this.cfgButton = this.domRoot.find('.btn.view-cfg');
this.explainButton = this.domRoot.find('.btn.view-explain');
this.executorButton = this.domRoot.find('.create-executor');
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('cfgViewClosed', this.onCfgViewClosed, this);
this.eventHub.on('explainViewOpened', this.onExplainViewOpened, this);
this.eventHub.on('explainViewClosed', this.onExplainViewClosed, this);
this.eventHub.on('requestCompiler', id => {
if (id === this.id) {
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;
addressOption: boolean;
aliasOption: boolean;
blocksOption: boolean;
linenoOption: boolean;
detailsOption: boolean;

View File

@@ -53,6 +53,8 @@ export class GccDump extends MonacoPane<monaco.editor.IStandaloneCodeEditor, Gcc
optionGimpleFeTitle: string;
optionAddressButton: JQuery<HTMLElement>;
optionAddressTitle: string;
optionAliasButton: JQuery<HTMLElement>;
optionAliasTitle: string;
optionSlimButton: JQuery<HTMLElement>;
optionSlimTitle: string;
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.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.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.optionGimpleFeButton, this.optionGimpleFeTitle);
formatButtonTitle(this.optionAddressButton, this.optionAddressTitle);
formatButtonTitle(this.optionAliasButton, this.optionAliasTitle);
formatButtonTitle(this.optionSlimButton, this.optionSlimTitle);
formatButtonTitle(this.optionRawButton, this.optionRawTitle);
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';
// SCSS function to generate TomSelect dropdown arrow SVG with custom color
@@ -35,6 +41,38 @@ body {
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 {
padding: 0;
}
@@ -1154,14 +1192,14 @@ span.badge.rounded-pill {
}
html[data-theme='default'] {
@import 'themes/default-theme';
@import '~golden-layout/src/css/goldenlayout-light-theme';
.theme-light-only {
display: inline;
}
}
html[data-theme='dark'] {
@import 'themes/dark-theme';
@import '~golden-layout/src/css/goldenlayout-dark-theme';
background-color: #333 !important;
.theme-dark-only {
display: inline;
@@ -1169,16 +1207,14 @@ html[data-theme='dark'] {
}
html[data-theme='pink'] {
@import 'themes/pink-theme';
background-color: $lighter !important;
background-color: var(--lighter) !important;
.theme-light-only {
display: inline;
}
}
html[data-theme='one-dark'] {
@import 'themes/one-dark-theme';
background-color: $light !important;
background-color: var(--light) !important;
.theme-dark-only {
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
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)
.lm_goldenlayout {
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
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)
.lm_goldenlayout {
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 'ansi-dark';
@import '~golden-layout/src/css/goldenlayout-dark-theme';
html[data-theme='dark'] {
::-webkit-scrollbar {
background: color.scale(#1e1e1e, $lightness: 10%);
@@ -725,3 +726,21 @@ textarea.form-control {
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