Rephrase frontend imports (#7824)

- Removes `rootDirs` so all imports will be relative in the frontend
- Updates (and unifies) imports to be `../types/...` etc instead of
relying on "types" being in the rootDir for the frontend.
- Fixes one type that was being picked up from `lib` in the frontend.
- Adds a precommit hook to check in future

Paves the way to writing _unit_ tests for the frontend for the subset of
the frontend code we can import from `node` (which might be a lot of
it!)
This commit is contained in:
Matt Godbolt
2025-06-18 09:04:23 -05:00
committed by GitHub
parent 2bbeb0eeed
commit 9e9e035b28
76 changed files with 190 additions and 111 deletions

View File

@@ -1,3 +1,4 @@
make prereqs make prereqs
npx lint-staged --verbose npx lint-staged --verbose
node ./etc/scripts/check-frontend-imports.js
python3 ./etc/scripts/util/propscheck.py python3 ./etc/scripts/util/propscheck.py

View File

@@ -60,6 +60,13 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
- Use British English spellings for things like "initialise" and "colour", but only in new code. It's a preference not a hard requirement - Use British English spellings for things like "initialise" and "colour", but only in new code. It's a preference not a hard requirement
- Use modern Typescript features like optional chaining when updating existing code or adding new code - Use modern Typescript features like optional chaining when updating existing code or adding new code
## Architecture Guidelines
- **Frontend/Backend Separation**: Frontend code (`static/`) MUST NOT import from backend code (`lib/`)
- Frontend should use API calls to communicate with backend
- Shared types should be imported from `types/` directory instead
- This separation is enforced by pre-commit hooks (`npm run check-frontend-imports`)
- Violations will cause build failures and prevent commits
## Testing Guidelines ## Testing Guidelines
- Use Vitest for unit tests (compatible with Jest syntax) - Use Vitest for unit tests (compatible with Jest syntax)
- Tests are in the `/test` directory, typically named like the source files they test - Tests are in the `/test` directory, typically named like the source files they test

View File

@@ -70,8 +70,12 @@ test-min: $(NODE_MODULES) ## Runs the minimal tests
.PHONY: check .PHONY: check
check: $(NODE_MODULES) lint test ## Runs all checks required before committing (fixing trivial things automatically) check: $(NODE_MODULES) lint test ## Runs all checks required before committing (fixing trivial things automatically)
.PHONY: check-frontend-imports
check-frontend-imports: node-installed ## Check that frontend doesn't import from backend
@$(NODE) ./etc/scripts/check-frontend-imports.js
.PHONY: pre-commit .PHONY: pre-commit
pre-commit: $(NODE_MODULES) test-min lint pre-commit: $(NODE_MODULES) test-min lint check-frontend-imports
.PHONY: clean .PHONY: clean
clean: ## Cleans up everything clean: ## Cleans up everything

View File

@@ -0,0 +1,29 @@
#!/usr/bin/env node
// Check that frontend (static/) code doesn't import from backend (lib/)
import {execSync} from 'child_process';
try {
const violations = execSync(
'git grep -n "from [\'\\\"]\\.\\./.*lib/" -- "static/*.ts" "static/**/*.ts"',
{encoding: 'utf8'}
).trim();
if (violations) {
console.error('❌ Error: Frontend code cannot import from backend (lib/) directory!');
console.error('');
console.error('Found violations:');
console.error(violations);
console.error('');
console.error('Frontend code should use API calls or import from types/ instead of directly importing backend code.');
process.exit(1);
}
} catch (e) {
// git grep returns non-zero when no matches found, which is what we want
if (e.status !== 1) {
console.error('Error running git grep:', e.message);
process.exit(1);
}
}
process.exit(0);

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-amd64.js'; import {getAsmOpcode} from './generated/asm-docs-amd64.js';
export class Amd64DocumentationProvider extends BaseAssemblyDocumentationProvider { export class Amd64DocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode as getAsmOpcode64} from './generated/asm-docs-aarch64.js'; import {getAsmOpcode as getAsmOpcode64} from './generated/asm-docs-aarch64.js';
import {getAsmOpcode as getAsmOpcode32} from './generated/asm-docs-arm32.js'; import {getAsmOpcode as getAsmOpcode32} from './generated/asm-docs-arm32.js';

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-avr.js'; import {getAsmOpcode} from './generated/asm-docs-avr.js';
export class AvrDocumentationProvider extends BaseAssemblyDocumentationProvider { export class AvrDocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -22,7 +22,7 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
export type AssemblyInstructionInfo = Record<'tooltip' | 'html' | 'url', string>; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
/** /**
* Base class for all assembly documentation generators. * Base class for all assembly documentation generators.

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-evm.js'; import {getAsmOpcode} from './generated/asm-docs-evm.js';
export class EvmDocumentationProvider extends BaseAssemblyDocumentationProvider { export class EvmDocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import { AssemblyInstructionInfo } from "../base.js"; import type { AssemblyInstructionInfo } from "../../../types/assembly-docs.interfaces.js";
// Based on the IBM documentation of assembly instructions for AIX 7.3 (https://www.ibm.com/docs/en/aix/7.3?topic=reference-instruction-set). // Based on the IBM documentation of assembly instructions for AIX 7.3 (https://www.ibm.com/docs/en/aix/7.3?topic=reference-instruction-set).
// //

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -1,4 +1,4 @@
import {AssemblyInstructionInfo} from '../base.js'; import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js';
export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined {
if (!opcode) return; if (!opcode) return;

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-java.js'; import {getAsmOpcode} from './generated/asm-docs-java.js';
export class JavaDocumentationProvider extends BaseAssemblyDocumentationProvider { export class JavaDocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-llvm.js'; import {getAsmOpcode} from './generated/asm-docs-llvm.js';
export class LLVMDocumentationProvider extends BaseAssemblyDocumentationProvider { export class LLVMDocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-6502.js'; import {getAsmOpcode} from './generated/asm-docs-6502.js';
export class Mos6502DocumentationProvider extends BaseAssemblyDocumentationProvider { export class Mos6502DocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-power.js'; import {getAsmOpcode} from './generated/asm-docs-power.js';
export class PowerDocumentationProvider extends BaseAssemblyDocumentationProvider { export class PowerDocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-ptx.js'; import {getAsmOpcode} from './generated/asm-docs-ptx.js';
export class PTXDocumentationProvider extends BaseAssemblyDocumentationProvider { export class PTXDocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-python.js'; import {getAsmOpcode} from './generated/asm-docs-python.js';
export class PythonDocumentationProvider extends BaseAssemblyDocumentationProvider { export class PythonDocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-riscv64.js'; import {getAsmOpcode} from './generated/asm-docs-riscv64.js';
export class Riscv64DocumentationProvider extends BaseAssemblyDocumentationProvider { export class Riscv64DocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-sass.js'; import {getAsmOpcode} from './generated/asm-docs-sass.js';
export class SASSDocumentationProvider extends BaseAssemblyDocumentationProvider { export class SASSDocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -22,7 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import {BaseAssemblyDocumentationProvider} from './base.js';
import {getAsmOpcode} from './generated/asm-docs-65c816.js'; import {getAsmOpcode} from './generated/asm-docs-65c816.js';
export class WDC65c816DocumentationProvider extends BaseAssemblyDocumentationProvider { export class WDC65c816DocumentationProvider extends BaseAssemblyDocumentationProvider {

View File

@@ -146,7 +146,8 @@
"test": "vitest run", "test": "vitest run",
"test:watch": "vitest", "test:watch": "vitest",
"test-min": "vitest run --exclude test/filter-tests.ts", "test-min": "vitest run --exclude test/filter-tests.ts",
"check": "npm run ts-check && npm run lint-check && npm run test-min -- --reporter dot", "check": "npm run ts-check && npm run lint-check && npm run check-frontend-imports && npm run test-min -- --reporter dot",
"check-frontend-imports": "node ./etc/scripts/check-frontend-imports.js",
"dev": "cross-env NODE_ENV=DEV node --no-warnings=ExperimentalWarning --import=tsx app.ts", "dev": "cross-env NODE_ENV=DEV node --no-warnings=ExperimentalWarning --import=tsx app.ts",
"debugger": "cross-env NODE_ENV=DEV node --import=tsx --inspect-brk app.ts", "debugger": "cross-env NODE_ENV=DEV node --import=tsx --inspect-brk app.ts",
"debug": "cross-env NODE_ENV=DEV node --no-warnings=ExperimentalWarning --import=tsx app.ts --debug", "debug": "cross-env NODE_ENV=DEV node --no-warnings=ExperimentalWarning --import=tsx app.ts --debug",

View File

@@ -22,8 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import type {ConfiguredOverrides} from './compilation/compiler-overrides.interfaces.js'; import type {ConfiguredOverrides} from '../types/compilation/compiler-overrides.interfaces.js';
import type {ConfiguredRuntimeTools} from './execution/execution.interfaces.js'; import type {ConfiguredRuntimeTools} from '../types/execution/execution.interfaces.js';
import type {CompilerState} from './panes/compiler.interfaces.js'; import type {CompilerState} from './panes/compiler.interfaces.js';
import type {ExecutorState} from './panes/executor.interfaces.js'; import type {ExecutorState} from './panes/executor.interfaces.js';

View File

@@ -22,9 +22,9 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import type {ConfiguredOverrides} from './compilation/compiler-overrides.interfaces.js'; import type {ConfiguredOverrides} from '../types/compilation/compiler-overrides.interfaces.js';
import {ConfiguredRuntimeTools} from '../types/execution/execution.interfaces.js';
import type {ICompilerShared} from './compiler-shared.interfaces.js'; import type {ICompilerShared} from './compiler-shared.interfaces.js';
import {ConfiguredRuntimeTools} from './execution/execution.interfaces.js';
import type {CompilerState} from './panes/compiler.interfaces.js'; import type {CompilerState} from './panes/compiler.interfaces.js';
import type {ExecutorState} from './panes/executor.interfaces.js'; import type {ExecutorState} from './panes/executor.interfaces.js';
import {CompilerOverridesWidget} from './widgets/compiler-overrides.js'; import {CompilerOverridesWidget} from './widgets/compiler-overrides.js';

View File

@@ -22,9 +22,9 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {ConfiguredOverrides} from '../types/compilation/compiler-overrides.interfaces.js';
import {ConfiguredRuntimeTools} from '../types/execution/execution.interfaces.js';
import {CompilerOutputOptions} from '../types/features/filters.interfaces.js'; import {CompilerOutputOptions} from '../types/features/filters.interfaces.js';
import {ConfiguredOverrides} from './compilation/compiler-overrides.interfaces.js';
import {ConfiguredRuntimeTools} from './execution/execution.interfaces.js';
import {CfgState} from './panes/cfg-view.interfaces.js'; import {CfgState} from './panes/cfg-view.interfaces.js';
import {ClangirState} from './panes/clangir-view.interfaces.js'; import {ClangirState} from './panes/clangir-view.interfaces.js';
import {GccDumpViewState} from './panes/gccdump-view.interfaces.js'; import {GccDumpViewState} from './panes/gccdump-view.interfaces.js';

View File

@@ -25,7 +25,9 @@
import {ParseFiltersAndOutputOptions} from '../types/features/filters.interfaces.js'; import {ParseFiltersAndOutputOptions} from '../types/features/filters.interfaces.js';
import {GccDumpViewState} from './panes/gccdump-view.interfaces.js'; import {GccDumpViewState} from './panes/gccdump-view.interfaces.js';
import {ConfiguredOverrides} from './compilation/compiler-overrides.interfaces.js'; import {ConfiguredOverrides} from '../types/compilation/compiler-overrides.interfaces.js';
import {ConfiguredRuntimeTools} from '../types/execution/execution.interfaces.js';
import {LanguageKey} from '../types/languages.interfaces.js';
import { import {
AST_VIEW_COMPONENT_NAME, AST_VIEW_COMPONENT_NAME,
CFG_VIEW_COMPONENT_NAME, CFG_VIEW_COMPONENT_NAME,
@@ -111,8 +113,6 @@ import {
TREE_COMPONENT_NAME, TREE_COMPONENT_NAME,
ToolViewState, ToolViewState,
} from './components.interfaces.js'; } from './components.interfaces.js';
import {ConfiguredRuntimeTools} from './execution/execution.interfaces.js';
import {LanguageKey} from './languages.interfaces.js';
/** Get an empty compiler component. */ /** Get an empty compiler component. */
export function getCompiler(editorId: number, lang: string): ComponentConfig<EmptyCompilerState> { export function getCompiler(editorId: number, lang: string): ComponentConfig<EmptyCompilerState> {

View File

@@ -22,13 +22,13 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {ClangirBackendOptions} from '../types/compilation/clangir.interfaces.js';
import {CompilationResult} from '../types/compilation/compilation.interfaces.js'; import {CompilationResult} from '../types/compilation/compilation.interfaces.js';
import {LLVMIrBackendOptions} from '../types/compilation/ir.interfaces.js';
import {OptPipelineBackendOptions} from '../types/compilation/opt-pipeline-output.interfaces.js';
import {CompilerInfo} from '../types/compiler.interfaces.js'; import {CompilerInfo} from '../types/compiler.interfaces.js';
import {Language, LanguageKey} from '../types/languages.interfaces.js'; import {Language, LanguageKey} from '../types/languages.interfaces.js';
import {MessageWithLocation} from '../types/resultline/resultline.interfaces.js'; import {MessageWithLocation} from '../types/resultline/resultline.interfaces.js';
import {ClangirBackendOptions} from './compilation/clangir.interfaces.js';
import {LLVMIrBackendOptions} from './compilation/ir.interfaces.js';
import {OptPipelineBackendOptions} from './compilation/opt-pipeline-output.interfaces.js';
import {NewToolSettings, ToolState} from './components.interfaces.js'; import {NewToolSettings, ToolState} from './components.interfaces.js';
import {Motd} from './motd.interfaces.js'; import {Motd} from './motd.interfaces.js';
import {GccDumpFiltersState, GccDumpViewSelectedPass} from './panes/gccdump-view.interfaces.js'; import {GccDumpFiltersState, GccDumpViewSelectedPass} from './panes/gccdump-view.interfaces.js';

View File

@@ -26,6 +26,7 @@ import GoldenLayout, {ContentItem} from 'golden-layout';
type GLC = GoldenLayout.Container; type GLC = GoldenLayout.Container;
import _ from 'underscore'; import _ from 'underscore';
import {LanguageKey} from '../types/languages.interfaces.js';
import {CompilerService} from './compiler-service.js'; import {CompilerService} from './compiler-service.js';
import { import {
AST_VIEW_COMPONENT_NAME, AST_VIEW_COMPONENT_NAME,
@@ -61,7 +62,6 @@ import {
import {EventHub} from './event-hub.js'; import {EventHub} from './event-hub.js';
import {EventMap} from './event-map.js'; import {EventMap} from './event-map.js';
import {IdentifierSet} from './identifier-set.js'; import {IdentifierSet} from './identifier-set.js';
import {LanguageKey} from './languages.interfaces.js';
import {Ast as AstView} from './panes/ast-view.js'; import {Ast as AstView} from './panes/ast-view.js';
import {Cfg as CfgView} from './panes/cfg-view.js'; import {Cfg as CfgView} from './panes/cfg-view.js';
import {Clangir as ClangirView} from './panes/clangir-view.js'; import {Clangir as ClangirView} from './panes/clangir-view.js';

View File

@@ -23,7 +23,7 @@
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {getRemoteId} from '../shared/remote-utils.js'; import {getRemoteId} from '../shared/remote-utils.js';
import {Remote} from './compiler.interfaces.js'; import {Remote} from '../types/compiler.interfaces.js';
import {LanguageLibs, Library} from './options.interfaces.js'; import {LanguageLibs, Library} from './options.interfaces.js';
import {options} from './options.js'; import {options} from './options.js';

View File

@@ -23,8 +23,8 @@
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import _ from 'underscore'; import _ from 'underscore';
import {ResultLine} from '../types/resultline/resultline.interfaces.js';
import {MultifileService} from './multifile-service.js'; import {MultifileService} from './multifile-service.js';
import {ResultLine} from './resultline/resultline.interfaces.js';
interface ColouredSourcelineInfo { interface ColouredSourcelineInfo {
sourceLine: number; sourceLine: number;

View File

@@ -62,8 +62,8 @@ import {ComponentConfig, EmptyCompilerState, StateWithId, StateWithLanguage} fro
import {CompilerExplorerOptions} from './global.js'; import {CompilerExplorerOptions} from './global.js';
import * as utils from '../shared/common-utils.js'; import * as utils from '../shared/common-utils.js';
import {ParseFiltersAndOutputOptions} from '../types/features/filters.interfaces.js';
import * as BootstrapUtils from './bootstrap-utils.js'; import * as BootstrapUtils from './bootstrap-utils.js';
import {ParseFiltersAndOutputOptions} from './features/filters.interfaces.js';
import {localStorage, sessionThenLocalStorage} from './local.js'; import {localStorage, sessionThenLocalStorage} from './local.js';
import {Printerinator} from './print-view.js'; import {Printerinator} from './print-view.js';
import {setupRealDark, takeUsersOutOfRealDark} from './real-dark.js'; import {setupRealDark, takeUsersOutOfRealDark} from './real-dark.js';

View File

@@ -27,9 +27,9 @@ import JSZip from 'jszip';
import path from 'path-browserify'; import path from 'path-browserify';
import _ from 'underscore'; import _ from 'underscore';
import {FiledataPair} from '../types/compilation/compilation.interfaces.js'; import {FiledataPair} from '../types/compilation/compilation.interfaces.js';
import {LanguageKey} from '../types/languages.interfaces.js';
import {unwrap} from './assert.js'; import {unwrap} from './assert.js';
import {Hub} from './hub.js'; import {Hub} from './hub.js';
import {LanguageKey} from './languages.interfaces.js';
import * as options from './options.js'; import * as options from './options.js';
import {Alert} from './widgets/alert.js'; import {Alert} from './widgets/alert.js';

View File

@@ -33,11 +33,11 @@ import {AstState} from './ast-view.interfaces.js';
import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {ResultLine} from '../../types/resultline/resultline.interfaces.js';
import {unwrap} from '../assert.js'; import {unwrap} from '../assert.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {ResultLine} from '../resultline/resultline.interfaces.js';
type DecorationEntry = { type DecorationEntry = {
linkedCode: any[]; linkedCode: any[];

View File

@@ -43,9 +43,9 @@ import {
CFGResult, CFGResult,
CfgDescriptor, CfgDescriptor,
} from '../../types/compilation/cfg.interfaces.js'; } from '../../types/compilation/cfg.interfaces.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {assert, unwrap} from '../assert.js'; import {assert, unwrap} from '../assert.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {GraphLayoutCore} from '../graph-layout-core.js'; import {GraphLayoutCore} from '../graph-layout-core.js';
import * as MonacoConfig from '../monaco-config.js'; import * as MonacoConfig from '../monaco-config.js';

View File

@@ -32,8 +32,8 @@ import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {ClangirBackendOptions} from '../../types/compilation/clangir.interfaces.js'; import {ClangirBackendOptions} from '../../types/compilation/clangir.interfaces.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';
import {Toggles} from '../widgets/toggles.js'; import {Toggles} from '../widgets/toggles.js';

View File

@@ -22,8 +22,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import type {ConfiguredOverrides} from '../compilation/compiler-overrides.interfaces.js'; import type {ConfiguredOverrides} from '../../types/compilation/compiler-overrides.interfaces.js';
import {ConfiguredRuntimeTools} from '../execution/execution.interfaces.js'; import {ConfiguredRuntimeTools} from '../../types/execution/execution.interfaces.js';
import {WidgetState} from '../widgets/libs-widget.interfaces.js'; import {WidgetState} from '../widgets/libs-widget.interfaces.js';
import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js';

View File

@@ -29,7 +29,7 @@ import {LRUCache} from 'lru-cache';
import * as monaco from 'monaco-editor'; import * as monaco from 'monaco-editor';
import {editor} from 'monaco-editor'; import {editor} from 'monaco-editor';
import _ from 'underscore'; import _ from 'underscore';
import {AssemblyInstructionInfo} from '../../lib/asm-docs/base.js'; import {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js';
import { import {
ActiveTool, ActiveTool,
BypassCache, BypassCache,
@@ -39,13 +39,13 @@ import {
FiledataPair, FiledataPair,
GccDumpFlags, GccDumpFlags,
} from '../../types/compilation/compilation.interfaces.js'; } from '../../types/compilation/compilation.interfaces.js';
import {OptPipelineBackendOptions} from '../../types/compilation/opt-pipeline-output.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {ResultLine} from '../../types/resultline/resultline.interfaces.js'; import {ResultLine} from '../../types/resultline/resultline.interfaces.js';
import {getAssemblyDocumentation} from '../api/api.js'; import {getAssemblyDocumentation} from '../api/api.js';
import * as BootstrapUtils from '../bootstrap-utils.js'; import * as BootstrapUtils from '../bootstrap-utils.js';
import * as codeLensHandler from '../codelens-handler.js'; import * as codeLensHandler from '../codelens-handler.js';
import * as colour from '../colour.js'; import * as colour from '../colour.js';
import {OptPipelineBackendOptions} from '../compilation/opt-pipeline-output.interfaces.js';
import {CompilationStatus} from '../compiler-service.interfaces.js'; import {CompilationStatus} from '../compiler-service.interfaces.js';
import {CompilerService} from '../compiler-service.js'; import {CompilerService} from '../compiler-service.js';
import {ComponentConfig, NewToolSettings, ToolViewState} from '../components.interfaces.js'; import {ComponentConfig, NewToolSettings, ToolViewState} from '../components.interfaces.js';
@@ -71,16 +71,16 @@ import {PPOptions} from './pp-view.interfaces.js';
import IEditorMouseEvent = editor.IEditorMouseEvent; import IEditorMouseEvent = editor.IEditorMouseEvent;
import fileSaver from 'file-saver'; import fileSaver from 'file-saver';
import {escapeHTML, splitArguments} from '../../shared/common-utils.js'; import {escapeHTML, splitArguments} from '../../shared/common-utils.js';
import {ClangirBackendOptions} from '../../types/compilation/clangir.interfaces.js';
import {LLVMIrBackendOptions} from '../../types/compilation/ir.interfaces.js';
import {CompilerOutputOptions} from '../../types/features/filters.interfaces.js'; import {CompilerOutputOptions} from '../../types/features/filters.interfaces.js';
import {InstructionSet} from '../../types/instructionsets.js';
import {LanguageKey} from '../../types/languages.interfaces.js';
import {Artifact, ArtifactType, Tool} from '../../types/tool.interfaces.js'; import {Artifact, ArtifactType, Tool} from '../../types/tool.interfaces.js';
import {assert, unwrap, unwrapString} from '../assert.js'; import {assert, unwrap, unwrapString} from '../assert.js';
import {ClangirBackendOptions} from '../compilation/clangir.interfaces.js';
import {LLVMIrBackendOptions} from '../compilation/ir.interfaces.js';
import {ICompilerShared} from '../compiler-shared.interfaces.js'; import {ICompilerShared} from '../compiler-shared.interfaces.js';
import {CompilerShared} from '../compiler-shared.js'; import {CompilerShared} from '../compiler-shared.js';
import {SourceAndFiles} from '../download-service.js'; import {SourceAndFiles} from '../download-service.js';
import {InstructionSet} from '../instructionsets.js';
import {LanguageKey} from '../languages.interfaces.js';
import {SentryCapture} from '../sentry.js'; import {SentryCapture} from '../sentry.js';
import {CompilerVersionInfo, setCompilerVersionPopoverForPane} from '../widgets/compiler-version-info.js'; import {CompilerVersionInfo, setCompilerVersionPopoverForPane} from '../widgets/compiler-version-info.js';

View File

@@ -28,6 +28,7 @@ import _ from 'underscore';
import {escapeHTML, unique} from '../../shared/common-utils.js'; import {escapeHTML, unique} from '../../shared/common-utils.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js';
import {unwrapString} from '../assert.js'; import {unwrapString} from '../assert.js';
import * as BootstrapUtils from '../bootstrap-utils.js'; import * as BootstrapUtils from '../bootstrap-utils.js';
import {CompilationStatus} from '../compiler-service.interfaces.js'; import {CompilationStatus} from '../compiler-service.interfaces.js';
@@ -36,7 +37,6 @@ import * as Components from '../components.js';
import {SourceAndFiles} from '../download-service.js'; import {SourceAndFiles} from '../download-service.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import * as LibUtils from '../lib-utils.js'; import * as LibUtils from '../lib-utils.js';
import {SelectedLibraryVersion} from '../libraries/libraries.interfaces.js';
import {Library, LibraryVersion} from '../options.interfaces.js'; import {Library, LibraryVersion} from '../options.interfaces.js';
import {options} from '../options.js'; import {options} from '../options.js';
import * as utils from '../utils.js'; import * as utils from '../utils.js';

View File

@@ -29,11 +29,11 @@ import TomSelect from 'tom-select';
import _ from 'underscore'; import _ from 'underscore';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {InstructionSet} from '../../types/instructionsets.js';
import {ResultLine} from '../../types/resultline/resultline.interfaces.js'; import {ResultLine} from '../../types/resultline/resultline.interfaces.js';
import {assert} from '../assert.js'; import {assert} from '../assert.js';
import * as colour from '../colour.js'; import * as colour from '../colour.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {InstructionSet} from '../instructionsets.js';
import * as monacoConfig from '../monaco-config.js'; import * as monacoConfig from '../monaco-config.js';
import * as utils from '../utils.js'; import * as utils from '../utils.js';
import {Alert} from '../widgets/alert.js'; import {Alert} from '../widgets/alert.js';

View File

@@ -29,8 +29,8 @@ import TomSelect from 'tom-select';
import {Container} from 'golden-layout'; import {Container} from 'golden-layout';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {ResultLine} from '../../types/resultline/resultline.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {ResultLine} from '../resultline/resultline.interfaces.js';
import {DiffState, DiffType} from './diff.interfaces.js'; import {DiffState, DiffType} from './diff.interfaces.js';
import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';

View File

@@ -26,8 +26,8 @@ import {Container} from 'golden-layout';
import $ from 'jquery'; import $ from 'jquery';
import * as monaco from 'monaco-editor'; import * as monaco from 'monaco-editor';
import _ from 'underscore'; import _ from 'underscore';
import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import * as monacoConfig from '../monaco-config.js'; import * as monacoConfig from '../monaco-config.js';
import {Settings, SiteSettings} from '../settings.js'; import {Settings, SiteSettings} from '../settings.js';

View File

@@ -39,9 +39,9 @@ import {MonacoPane} from './pane.js';
import {GccDumpFiltersState, GccDumpViewSelectedPass, GccDumpViewState} from './gccdump-view.interfaces.js'; import {GccDumpFiltersState, GccDumpViewSelectedPass, GccDumpViewState} from './gccdump-view.interfaces.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {assert, unwrap} from '../assert.js'; import {assert, unwrap} from '../assert.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js';
export class GccDump extends MonacoPane<monaco.editor.IStandaloneCodeEditor, GccDumpViewState> { export class GccDump extends MonacoPane<monaco.editor.IStandaloneCodeEditor, GccDumpViewState> {
selectize: TomSelect; selectize: TomSelect;

View File

@@ -31,9 +31,9 @@ import {GnatDebugState} from './gnatdebug-view.interfaces.js';
import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {unwrap} from '../assert.js'; import {unwrap} from '../assert.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';

View File

@@ -31,9 +31,9 @@ import {GnatDebugTreeState} from './gnatdebugtree-view.interfaces.js';
import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {unwrap} from '../assert.js'; import {unwrap} from '../assert.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';

View File

@@ -31,8 +31,8 @@ import {HaskellCmmState} from './haskellcmm-view.interfaces.js';
import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';

View File

@@ -31,8 +31,8 @@ import {HaskellCoreState} from './haskellcore-view.interfaces.js';
import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';

View File

@@ -31,8 +31,8 @@ import {HaskellStgState} from './haskellstg-view.interfaces.js';
import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';

View File

@@ -42,9 +42,9 @@ import * as Components from '../components.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {Toggles} from '../widgets/toggles.js'; import {Toggles} from '../widgets/toggles.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {LLVMIrBackendOptions} from '../../types/compilation/ir.interfaces.js'; import {LLVMIrBackendOptions} from '../../types/compilation/ir.interfaces.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {SentryCapture} from '../sentry.js'; import {SentryCapture} from '../sentry.js';
import {Alert} from '../widgets/alert.js'; import {Alert} from '../widgets/alert.js';
import {Compiler} from './compiler.js'; import {Compiler} from './compiler.js';

View File

@@ -40,14 +40,14 @@ import * as utils from '../utils.js';
import {Toggles} from '../widgets/toggles.js'; import {Toggles} from '../widgets/toggles.js';
import {escapeHTML} from '../../shared/common-utils.js'; import {escapeHTML} from '../../shared/common-utils.js';
import {unwrap, unwrapString} from '../assert.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js';
import { import {
OptPipelineBackendOptions, OptPipelineBackendOptions,
OptPipelineOutput, OptPipelineOutput,
OptPipelineResults, OptPipelineResults,
} from '../compilation/opt-pipeline-output.interfaces.js'; } from '../../types/compilation/opt-pipeline-output.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {unwrap, unwrapString} from '../assert.js';
const MIN_SIDEBAR_WIDTH = 100; const MIN_SIDEBAR_WIDTH = 100;

View File

@@ -31,9 +31,9 @@ import {OptRemark, OptState} from './opt-view.interfaces.js';
import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {unwrap} from '../assert.js'; import {unwrap} from '../assert.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';
import {Toggles} from '../widgets/toggles.js'; import {Toggles} from '../widgets/toggles.js';

View File

@@ -33,9 +33,9 @@ import * as utils from '../utils.js';
import {FontScale} from '../widgets/fontscale.js'; import {FontScale} from '../widgets/fontscale.js';
import {escapeHTML} from '../../shared/common-utils.js'; import {escapeHTML} from '../../shared/common-utils.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {unwrap} from '../assert.js'; import {unwrap} from '../assert.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {EventHub} from '../event-hub.js'; import {EventHub} from '../event-hub.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {PaneRenaming} from '../widgets/pane-renaming.js'; import {PaneRenaming} from '../widgets/pane-renaming.js';

View File

@@ -26,9 +26,9 @@ import {Container} from 'golden-layout';
import $ from 'jquery'; import $ from 'jquery';
import * as monaco from 'monaco-editor'; import * as monaco from 'monaco-editor';
import _ from 'underscore'; import _ from 'underscore';
import {CompilationResult, PPOutput} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {unwrap} from '../assert.js'; import {unwrap} from '../assert.js';
import {CompilationResult, PPOutput} from '../compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import * as monacoConfig from '../monaco-config.js'; import * as monacoConfig from '../monaco-config.js';
import {Toggles} from '../widgets/toggles.js'; import {Toggles} from '../widgets/toggles.js';

View File

@@ -31,8 +31,8 @@ import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {RustHirState} from './rusthir-view.interfaces.js'; import {RustHirState} from './rusthir-view.interfaces.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';

View File

@@ -31,8 +31,8 @@ import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {RustMacroExpState} from './rustmacroexp-view.interfaces.js'; import {RustMacroExpState} from './rustmacroexp-view.interfaces.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';

View File

@@ -31,8 +31,8 @@ import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {RustMirState} from './rustmir-view.interfaces.js'; import {RustMirState} from './rustmir-view.interfaces.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';

View File

@@ -31,9 +31,9 @@ import {MonacoPaneState} from './pane.interfaces.js';
import {MonacoPane} from './pane.js'; import {MonacoPane} from './pane.js';
import {StackUsageState, suCodeEntry} from './stack-usage-view.interfaces.js'; import {StackUsageState, suCodeEntry} from './stack-usage-view.interfaces.js';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {unwrap} from '../assert.js'; import {unwrap} from '../assert.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {extendConfig} from '../monaco-config.js'; import {extendConfig} from '../monaco-config.js';
import {SentryCapture} from '../sentry.js'; import {SentryCapture} from '../sentry.js';

View File

@@ -26,8 +26,8 @@ import {Container} from 'golden-layout';
import $ from 'jquery'; import $ from 'jquery';
import * as monaco from 'monaco-editor'; import * as monaco from 'monaco-editor';
import _ from 'underscore'; import _ from 'underscore';
import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../compiler.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {ToolState} from '../components.interfaces.js'; import {ToolState} from '../components.interfaces.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import * as monacoConfig from '../monaco-config.js'; import * as monacoConfig from '../monaco-config.js';

View File

@@ -27,15 +27,15 @@ import {Container} from 'golden-layout';
import $ from 'jquery'; import $ from 'jquery';
import * as monaco from 'monaco-editor'; import * as monaco from 'monaco-editor';
import _ from 'underscore'; import _ from 'underscore';
import {CompilationResult} from '../../types/compilation/compilation.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {LanguageKey} from '../../types/languages.interfaces.js';
import * as AnsiToHtml from '../ansi-to-html.js'; import * as AnsiToHtml from '../ansi-to-html.js';
import {unwrap, unwrapString} from '../assert.js'; import {unwrap, unwrapString} from '../assert.js';
import {CompilationResult} from '../compilation/compilation.interfaces.js';
import {CompilerService} from '../compiler-service.js'; import {CompilerService} from '../compiler-service.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {ComponentConfig, NewToolSettings, PopulatedToolInputViewState, ToolState} from '../components.interfaces.js'; import {ComponentConfig, NewToolSettings, PopulatedToolInputViewState, ToolState} from '../components.interfaces.js';
import * as Components from '../components.js'; import * as Components from '../components.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {LanguageKey} from '../languages.interfaces.js';
import * as monacoConfig from '../monaco-config.js'; import * as monacoConfig from '../monaco-config.js';
import {options as ceoptions} from '../options.js'; import {options as ceoptions} from '../options.js';
import * as utils from '../utils.js'; import * as utils from '../utils.js';

View File

@@ -28,16 +28,16 @@ import $ from 'jquery';
import TomSelect from 'tom-select'; import TomSelect from 'tom-select';
import _ from 'underscore'; import _ from 'underscore';
import {escapeHTML} from '../../shared/common-utils.js'; import {escapeHTML} from '../../shared/common-utils.js';
import {LanguageKey} from '../../types/languages.interfaces.js';
import {ResultLine} from '../../types/resultline/resultline.interfaces.js';
import {assert, unwrap, unwrapString} from '../assert.js'; import {assert, unwrap, unwrapString} from '../assert.js';
import * as BootstrapUtils from '../bootstrap-utils.js'; import * as BootstrapUtils from '../bootstrap-utils.js';
import * as Components from '../components.js'; import * as Components from '../components.js';
import {EventHub} from '../event-hub.js'; import {EventHub} from '../event-hub.js';
import {Hub} from '../hub.js'; import {Hub} from '../hub.js';
import {LanguageKey} from '../languages.interfaces.js';
import {LineColouring} from '../line-colouring.js'; import {LineColouring} from '../line-colouring.js';
import {MultifileFile, MultifileService, MultifileServiceState} from '../multifile-service.js'; import {MultifileFile, MultifileService, MultifileServiceState} from '../multifile-service.js';
import {options} from '../options.js'; import {options} from '../options.js';
import {ResultLine} from '../resultline/resultline.interfaces.js';
import {Settings, SiteSettings} from '../settings.js'; import {Settings, SiteSettings} from '../settings.js';
import * as utils from '../utils.js'; import * as utils from '../utils.js';
import {Alert} from '../widgets/alert.js'; import {Alert} from '../widgets/alert.js';

View File

@@ -29,9 +29,9 @@ import {
ConfiguredOverrides, ConfiguredOverrides,
EnvVarOverrides, EnvVarOverrides,
} from '../../types/compilation/compiler-overrides.interfaces.js'; } from '../../types/compilation/compiler-overrides.interfaces.js';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import {assert, unwrap} from '../assert.js'; import {assert, unwrap} from '../assert.js';
import * as BootstrapUtils from '../bootstrap-utils.js'; import * as BootstrapUtils from '../bootstrap-utils.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {localStorage} from '../local.js'; import {localStorage} from '../local.js';
import {options} from '../options.js'; import {options} from '../options.js';

View File

@@ -23,6 +23,7 @@
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import $ from 'jquery'; import $ from 'jquery';
import {CompilerInfo} from '../../types/compiler.interfaces.js';
import { import {
ConfiguredRuntimeTool, ConfiguredRuntimeTool,
ConfiguredRuntimeTools, ConfiguredRuntimeTools,
@@ -33,7 +34,6 @@ import {
} from '../../types/execution/execution.interfaces.js'; } from '../../types/execution/execution.interfaces.js';
import {assert} from '../assert.js'; import {assert} from '../assert.js';
import * as BootstrapUtils from '../bootstrap-utils.js'; import * as BootstrapUtils from '../bootstrap-utils.js';
import {CompilerInfo} from '../compiler.interfaces.js';
import {localStorage} from '../local.js'; import {localStorage} from '../local.js';
import {options} from '../options.js'; import {options} from '../options.js';

View File

@@ -3,7 +3,6 @@
"compilerOptions": { "compilerOptions": {
/* Module resolution */ /* Module resolution */
"target": "es5", "target": "es5",
"rootDirs": ["./static", "./types"],
/* Code generation */ /* Code generation */
"inlineSources": true, "inlineSources": true,
"strictPropertyInitialization": false, "strictPropertyInitialization": false,

View File

@@ -0,0 +1,25 @@
// Copyright (c) 2021, 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.
export type AssemblyInstructionInfo = Record<'tooltip' | 'html' | 'url', string>;

View File

@@ -22,7 +22,7 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE. // POSSIBILITY OF SUCH DAMAGE.
import {AssemblyInstructionInfo} from '../../lib/asm-docs/base.js'; import {AssemblyInstructionInfo} from '../assembly-docs.interfaces.js';
import {InstructionSet} from '../instructionsets.js'; import {InstructionSet} from '../instructionsets.js';
export interface AssemblyDocumentationRequest { export interface AssemblyDocumentationRequest {

View File

@@ -52,7 +52,7 @@ const hasGit = fs.existsSync(path.resolve(__dirname, '.git'));
// Hack alert: due to a variety of issues, sometimes we need to change // Hack alert: due to a variety of issues, sometimes we need to change
// the name here. Mostly it's things like webpack changes that affect // the name here. Mostly it's things like webpack changes that affect
// how minification is done, even though that's supposed not to matter. // how minification is done, even though that's supposed not to matter.
const webpackJsHack = '.v58.'; const webpackJsHack = '.v59.';
const plugins: Webpack.WebpackPluginInstance[] = [ const plugins: Webpack.WebpackPluginInstance[] = [
new MonacoEditorWebpackPlugin({ new MonacoEditorWebpackPlugin({
languages: [ languages: [