Merge branch 'main' into claude/modernize-ajax-and-sentry-filtering
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
613
cypress/e2e/claude-explain.cy.ts
Normal 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');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -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);
|
||||
|
||||
68
cypress/e2e/monaco-test.cy.ts
Normal 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');
|
||||
});
|
||||
});
|
||||
@@ -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
@@ -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
|
||||
172
docs/Compiler-Args-Debugging.md
Normal 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
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=
|
||||
|
||||
@@ -2,4 +2,4 @@ sandboxType=nsjail
|
||||
executionType=nsjail
|
||||
wine=
|
||||
wineServer=
|
||||
firejail=/usr/local/firejail-0.9.70/bin/firejail
|
||||
firejail=
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
#
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
#################################
|
||||
#################################
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"type": "commonjs"
|
||||
}
|
||||
156
etc/scripts/test_triton_wrapper.py
Normal 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")
|
||||
@@ -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,
|
||||
|
||||
@@ -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 %*
|
||||
@@ -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 %*
|
||||
@@ -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();
|
||||
56
etc/webpack/replace-golden-layout-imports.js
Normal 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');
|
||||
}
|
||||
1297
lib/asm-docs/generated/asm-docs-sass.ts
generated
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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
@@ -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';
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 8.6 KiB |
0
public/logos/cpp.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
0
public/logos/dotnet.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
0
public/logos/erlang.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
0
public/logos/fsharp.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 692 B |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 9.2 KiB |
BIN
public/logos/hylo.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 320 KiB |
0
public/logos/ispc.png
Executable file → Normal file
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
public/logos/nim.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 14 KiB |
0
public/logos/solidity.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 9.2 KiB |
0
public/logos/ts.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,4 +84,5 @@ export type Options = {
|
||||
supportsExecute: boolean;
|
||||
supportsLibraryCodeFilter: boolean;
|
||||
cvCompilerCountMax: number;
|
||||
explainApiEndpoint: string;
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
|
||||
225
static/panes/explain-view-utils.ts
Normal 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}`;
|
||||
}
|
||||
71
static/panes/explain-view.interfaces.ts
Normal 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;
|
||||
}
|
||||
550
static/panes/explain-view.ts
Normal 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();
|
||||
}
|
||||
}
|
||||
@@ -47,6 +47,7 @@ export type GccDumpFiltersState = {
|
||||
|
||||
gimpleFeOption: boolean;
|
||||
addressOption: boolean;
|
||||
aliasOption: boolean;
|
||||
blocksOption: boolean;
|
||||
linenoOption: boolean;
|
||||
detailsOption: boolean;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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']
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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']
|
||||
|
||||