mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2025-12-27 07:04:04 -05:00
Multifile/IDE mode (#2725)
This commit is contained in:
5
examples/cmake/default.txt
Normal file
5
examples/cmake/default.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
project(default)
|
||||
|
||||
add_compile_options(-Werror -Wall -Wextra -g)
|
||||
|
||||
add_executable(output.s example.cpp)
|
||||
@@ -299,6 +299,7 @@ export class AsmParser extends AsmRegex {
|
||||
let keepInlineCode = false;
|
||||
|
||||
let lastOwnSource = null;
|
||||
const dontMaskFilenames = filters.dontMaskFilenames;
|
||||
|
||||
function maybeAddBlank() {
|
||||
const lastBlank = asm.length === 0 || asm[asm.length - 1].text === '';
|
||||
@@ -309,13 +310,21 @@ export class AsmParser extends AsmRegex {
|
||||
function handleSource(line) {
|
||||
let match = line.match(sourceTag);
|
||||
if (match) {
|
||||
const file = files[parseInt(match[1])];
|
||||
const file = utils.maskRootdir(files[parseInt(match[1])]);
|
||||
const sourceLine = parseInt(match[2]);
|
||||
if (file) {
|
||||
source = {
|
||||
file: !stdInLooking.test(file) ? file : null,
|
||||
line: sourceLine,
|
||||
};
|
||||
if (dontMaskFilenames) {
|
||||
source = {
|
||||
file: file,
|
||||
line: sourceLine,
|
||||
mainsource: !!stdInLooking.test(file),
|
||||
};
|
||||
} else {
|
||||
source = {
|
||||
file: !stdInLooking.test(file) ? file : null,
|
||||
line: sourceLine,
|
||||
};
|
||||
}
|
||||
const sourceCol = parseInt(match[3]);
|
||||
if (!isNaN(sourceCol) && sourceCol !== 0) {
|
||||
source.column = sourceCol;
|
||||
@@ -354,12 +363,20 @@ export class AsmParser extends AsmRegex {
|
||||
function handle6502(line) {
|
||||
const match = line.match(source6502Dbg);
|
||||
if (match) {
|
||||
const file = match[1];
|
||||
const file = utils.maskRootdir(match[1]);
|
||||
const sourceLine = parseInt(match[2]);
|
||||
source = {
|
||||
file: !stdInLooking.test(file) ? file : null,
|
||||
line: sourceLine,
|
||||
};
|
||||
if (dontMaskFilenames) {
|
||||
source = {
|
||||
file: file,
|
||||
line: sourceLine,
|
||||
mainsource: !!stdInLooking.test(file),
|
||||
};
|
||||
} else {
|
||||
source = {
|
||||
file: !stdInLooking.test(file) ? file : null,
|
||||
line: sourceLine,
|
||||
};
|
||||
}
|
||||
} else if (source6502DbgEnd.test(line)) {
|
||||
source = null;
|
||||
}
|
||||
@@ -398,7 +415,7 @@ export class AsmParser extends AsmRegex {
|
||||
lastOwnSource = null;
|
||||
}
|
||||
|
||||
if (filters.libraryCode && !lastOwnSource && source && source.file !== null) {
|
||||
if (filters.libraryCode && !lastOwnSource && source && (source.file !== null) && !source.mainsource) {
|
||||
if (mayRemovePreviousLabel && asm.length > 0) {
|
||||
const lastLine = asm[asm.length - 1];
|
||||
|
||||
@@ -512,6 +529,7 @@ export class AsmParser extends AsmRegex {
|
||||
const startTime = process.hrtime.bigint();
|
||||
const asm = [];
|
||||
const labelDefinitions = {};
|
||||
const dontMaskFilenames = filters.dontMaskFilenames;
|
||||
|
||||
let asmLines = asmResult.split('\n');
|
||||
const startingLineCount = asmLines.length;
|
||||
@@ -545,7 +563,15 @@ export class AsmParser extends AsmRegex {
|
||||
}
|
||||
let match = line.match(this.lineRe);
|
||||
if (match) {
|
||||
source = {file: null, line: parseInt(match.groups.line)};
|
||||
if (dontMaskFilenames) {
|
||||
source = {
|
||||
file: utils.maskRootdir(match[1]),
|
||||
line: parseInt(match.groups.line),
|
||||
mainsource: true,
|
||||
};
|
||||
} else {
|
||||
source = {file: null, line: parseInt(match.groups.line), mainsource: true};
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -565,7 +591,11 @@ export class AsmParser extends AsmRegex {
|
||||
|
||||
if (!func || !this.isUserFunction(func)) continue;
|
||||
|
||||
if (filters.libraryCode && source && source.file !== null) {
|
||||
// note: normally the source.file will be null if it's code from example.ext
|
||||
// but with filters.dontMaskFilenames it will be filled with the actual filename
|
||||
// instead we can test source.mainsource in that situation
|
||||
const isMainsource = source && ((source.file === null) || source.mainsource);
|
||||
if (filters.libraryCode && !isMainsource) {
|
||||
if (mayRemovePreviousLabel && asm.length > 0) {
|
||||
const lastLine = asm[asm.length - 1];
|
||||
if (lastLine.text && this.labelDef.test(lastLine.text)) {
|
||||
|
||||
@@ -244,11 +244,17 @@ export class BaseCompiler {
|
||||
|
||||
async objdump(outputFilename, result, maxSize, intelAsm, demangle) {
|
||||
outputFilename = this.getObjdumpOutputFilename(outputFilename);
|
||||
|
||||
if (!await utils.fileExists(outputFilename)) {
|
||||
result.asm = '<No output file ' + outputFilename + '>';
|
||||
return result;
|
||||
}
|
||||
|
||||
const objdumper = new this.objdumperClass();
|
||||
const args = ['-d', outputFilename, '-l', ...objdumper.widthOptions];
|
||||
if (demangle) args.push('-C');
|
||||
if (intelAsm) args.push(...objdumper.intelAsmOptions);
|
||||
const execOptions = {maxOutput: maxSize, customCwd: path.dirname(outputFilename)};
|
||||
const execOptions = {maxOutput: maxSize, customCwd: result.dirPath || path.dirname(outputFilename)};
|
||||
|
||||
const objResult = await this.exec(this.compiler.objdumper, args, execOptions);
|
||||
if (objResult.code !== 0) {
|
||||
@@ -271,6 +277,7 @@ export class BaseCompiler {
|
||||
input: executeParameters.stdin,
|
||||
env: executeParameters.env,
|
||||
customCwd: homeDir,
|
||||
appHome: homeDir,
|
||||
});
|
||||
execResult.stdout = utils.parseOutput(execResult.stdout);
|
||||
execResult.stderr = utils.parseOutput(execResult.stderr);
|
||||
@@ -429,7 +436,7 @@ export class BaseCompiler {
|
||||
}));
|
||||
}
|
||||
|
||||
getSharedLibraryPathsAsArguments(libraries) {
|
||||
getSharedLibraryPathsAsArguments(libraries, libDownloadPath) {
|
||||
const pathFlag = this.compiler.rpathFlag || '-Wl,-rpath,';
|
||||
const libPathFlag = this.compiler.libpathFlag || '-L';
|
||||
|
||||
@@ -441,9 +448,13 @@ export class BaseCompiler {
|
||||
];
|
||||
}
|
||||
|
||||
if (!libDownloadPath) {
|
||||
libDownloadPath = '.';
|
||||
}
|
||||
|
||||
return _.union(
|
||||
[libPathFlag + '.'],
|
||||
[pathFlag + '.'],
|
||||
[libPathFlag + libDownloadPath],
|
||||
[pathFlag + libDownloadPath],
|
||||
this.compiler.libPath.map(path => pathFlag + path),
|
||||
toolchainLibraryPaths.map(path => pathFlag + path),
|
||||
this.getSharedLibraryPaths(libraries).map(path => pathFlag + path),
|
||||
@@ -604,13 +615,23 @@ export class BaseCompiler {
|
||||
return inputFilename.replace(path.extname(inputFilename), '.mir');
|
||||
}
|
||||
|
||||
getOutputFilename(dirPath, outputFilebase) {
|
||||
// NB keep lower case as ldc compiler `tolower`s the output name
|
||||
return path.join(dirPath, `${outputFilebase}.s`);
|
||||
getOutputFilename(dirPath, outputFilebase, key) {
|
||||
let filename;
|
||||
if (key && key.backendOptions && key.backendOptions.customOutputFilename) {
|
||||
filename = key.backendOptions.customOutputFilename;
|
||||
} else {
|
||||
filename = `${outputFilebase}.s`;
|
||||
}
|
||||
|
||||
if (dirPath) {
|
||||
return path.join(dirPath, filename);
|
||||
} else {
|
||||
return filename;
|
||||
}
|
||||
}
|
||||
|
||||
getExecutableFilename(dirPath, outputFilebase) {
|
||||
return this.getOutputFilename(dirPath, outputFilebase);
|
||||
getExecutableFilename(dirPath, outputFilebase, key) {
|
||||
return this.getOutputFilename(dirPath, outputFilebase, key);
|
||||
}
|
||||
|
||||
async generateGccDump(inputFilename, options, gccDumpOptions) {
|
||||
@@ -727,6 +748,17 @@ export class BaseCompiler {
|
||||
}
|
||||
}
|
||||
|
||||
async writeMultipleFiles(files, dirPath) {
|
||||
const filesToWrite = [];
|
||||
|
||||
for (let file of files) {
|
||||
const fullpath = this.getExtraFilepath(dirPath, file.filename);
|
||||
filesToWrite.push(fs.outputFile(fullpath, file.contents));
|
||||
}
|
||||
|
||||
return Promise.all(filesToWrite);
|
||||
}
|
||||
|
||||
async buildExecutableInFolder(key, dirPath) {
|
||||
const buildEnvironment = this.setupBuildEnvironment(key, dirPath);
|
||||
|
||||
@@ -734,12 +766,10 @@ export class BaseCompiler {
|
||||
const writerOfSource = fs.writeFile(inputFilename, key.source);
|
||||
|
||||
if (key.files) {
|
||||
for (let file of key.files) {
|
||||
await fs.writeFile(this.getExtraFilepath(dirPath, file.filename), file.contents);
|
||||
}
|
||||
await this.writeMultipleFiles(key.files, dirPath);
|
||||
}
|
||||
|
||||
const outputFilename = this.getExecutableFilename(dirPath, this.outputFilebase);
|
||||
const outputFilename = this.getExecutableFilename(dirPath, this.outputFilebase, key);
|
||||
|
||||
const buildFilters = Object.assign({}, key.filters);
|
||||
buildFilters.binary = true;
|
||||
@@ -778,6 +808,10 @@ export class BaseCompiler {
|
||||
|
||||
await this.storePackageWithExecutable(key, dirPath, compilationResult);
|
||||
|
||||
if (!compilationResult.dirPath) {
|
||||
compilationResult.dirPath = dirPath;
|
||||
}
|
||||
|
||||
return compilationResult;
|
||||
}
|
||||
|
||||
@@ -795,7 +829,7 @@ export class BaseCompiler {
|
||||
code: 0,
|
||||
inputFilename: path.join(dirPath, this.compileFilename),
|
||||
dirPath: dirPath,
|
||||
executableFilename: this.getExecutableFilename(dirPath, this.outputFilebase),
|
||||
executableFilename: this.getExecutableFilename(dirPath, this.outputFilebase, key),
|
||||
packageDownloadAndUnzipTime: ((endTime - startTime) / BigInt(1000000)).toString(),
|
||||
});
|
||||
}
|
||||
@@ -889,7 +923,7 @@ export class BaseCompiler {
|
||||
}
|
||||
|
||||
executeParameters.ldPath = this.getSharedLibraryPathsAsLdLibraryPathsForExecution(key.libraries);
|
||||
const result = await this.runExecutable(buildResult.executableFilename, executeParameters);
|
||||
const result = await this.runExecutable(buildResult.executableFilename, executeParameters, buildResult.dirPath);
|
||||
result.didExecute = true;
|
||||
result.buildResult = buildResult;
|
||||
return result;
|
||||
@@ -912,10 +946,12 @@ export class BaseCompiler {
|
||||
return cacheKey;
|
||||
}
|
||||
|
||||
getCompilationInfo(key, result) {
|
||||
getCompilationInfo(key, result, customBuildPath) {
|
||||
const compilationinfo = Object.assign({}, key, result);
|
||||
compilationinfo.outputFilename = this.getOutputFilename(result.dirPath, this.outputFilebase);
|
||||
compilationinfo.executableFilename = this.getExecutableFilename(result.dirPath, this.outputFilebase);
|
||||
compilationinfo.outputFilename = this.getOutputFilename(
|
||||
customBuildPath || result.dirPath, this.outputFilebase, key);
|
||||
compilationinfo.executableFilename = this.getExecutableFilename(
|
||||
customBuildPath || result.dirPath, this.outputFilebase, key);
|
||||
compilationinfo.asmParser = this.asm;
|
||||
return compilationinfo;
|
||||
}
|
||||
@@ -952,7 +988,8 @@ export class BaseCompiler {
|
||||
}
|
||||
|
||||
const inputFilenameSafe = this.filename(inputFilename);
|
||||
const outputFilename = this.getOutputFilename(dirPath, this.outputFilebase);
|
||||
|
||||
const outputFilename = this.getOutputFilename(dirPath, this.outputFilebase, key);
|
||||
|
||||
options = _.compact(
|
||||
this.prepareArguments(options, filters, backendOptions, inputFilename, outputFilename, libraries),
|
||||
@@ -1029,7 +1066,7 @@ export class BaseCompiler {
|
||||
if (this.lang.id === 'c++') {
|
||||
return { ...this.cmakeBaseEnv, CXXFLAGS: compilerflags };
|
||||
} else {
|
||||
return { ...this.cmakeBaseEnv, CCFLAGS: compilerflags };
|
||||
return { ...this.cmakeBaseEnv, CFLAGS: compilerflags };
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1058,7 +1095,8 @@ export class BaseCompiler {
|
||||
|
||||
cmakeExecParams.env.LD_LIBRARY_PATH = dirPath;
|
||||
|
||||
const libPaths = this.getSharedLibraryPathsAsArguments(libsAndOptions.libraries);
|
||||
// todo: if we don't use nsjail, the path should not be /app but dirPath
|
||||
const libPaths = this.getSharedLibraryPathsAsArguments(libsAndOptions.libraries, '/app');
|
||||
cmakeExecParams.env.LDFLAGS = libPaths.join(' ');
|
||||
|
||||
return cmakeExecParams;
|
||||
@@ -1090,6 +1128,7 @@ export class BaseCompiler {
|
||||
|
||||
_.defaults(key.filters, this.getDefaultFilters());
|
||||
key.filters.binary = true;
|
||||
key.filters.dontMaskFilenames = true;
|
||||
|
||||
const libsAndOptions = this.createLibsAndOptions(key);
|
||||
|
||||
@@ -1103,39 +1142,64 @@ export class BaseCompiler {
|
||||
const cacheKey = this.getCmakeCacheKey(key, files);
|
||||
|
||||
const dirPath = await this.newTempDir();
|
||||
const outputFilename = this.getExecutableFilename(dirPath, this.outputFilebase);
|
||||
|
||||
const outputFilename = this.getExecutableFilename(path.join(dirPath, 'build'), this.outputFilebase, key);
|
||||
|
||||
let fullResult = await this.loadPackageWithExecutable(cacheKey, dirPath);
|
||||
if (!fullResult) {
|
||||
const filesToWrite = [];
|
||||
filesToWrite.push(fs.writeFile(path.join(dirPath, 'CMakeLists.txt'), cacheKey.source));
|
||||
for (let file of files) {
|
||||
filesToWrite.push(fs.writeFile(this.getExtraFilepath(dirPath, file.filename), file.contents));
|
||||
}
|
||||
await fs.writeFile(path.join(dirPath, 'CMakeLists.txt'), cacheKey.source);
|
||||
const filesToWrite = this.writeMultipleFiles(files, dirPath);
|
||||
|
||||
const execParams = this.getDefaultExecOptions();
|
||||
execParams.customCwd = dirPath; //path.join(dirPath, 'build');
|
||||
execParams.appHome = dirPath;
|
||||
execParams.customCwd = path.join(dirPath, 'build');
|
||||
|
||||
await fs.mkdir(execParams.customCwd);
|
||||
|
||||
const makeExecParams = this.createCmakeExecParams(execParams, dirPath, libsAndOptions);
|
||||
|
||||
await Promise.all(filesToWrite);
|
||||
await filesToWrite;
|
||||
|
||||
fullResult = {
|
||||
buildsteps: [],
|
||||
};
|
||||
|
||||
await this.setupBuildEnvironment(cacheKey, dirPath);
|
||||
fullResult.downloads = await this.setupBuildEnvironment(cacheKey, dirPath);
|
||||
|
||||
let toolchainparam = '';
|
||||
if (this.toolchainPath) {
|
||||
toolchainparam = `-DCMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=${this.toolchainPath}`;
|
||||
}
|
||||
|
||||
await this.doBuildstepAndAddToResult(fullResult, 'cmake', this.env.ceProps('cmake'),
|
||||
[toolchainparam, '.'], makeExecParams);
|
||||
await this.doBuildstepAndAddToResult(fullResult, 'make', this.env.ceProps('make'),
|
||||
const cmakeArgs = utils.splitArguments(key.backendOptions.cmakeArgs);
|
||||
const fullArgs = [toolchainparam, ...cmakeArgs, '..'];
|
||||
|
||||
const cmakeStepResult = await this.doBuildstepAndAddToResult(fullResult, 'cmake', this.env.ceProps('cmake'),
|
||||
fullArgs, makeExecParams);
|
||||
|
||||
if (cmakeStepResult.code !== 0) {
|
||||
fullResult.result = {
|
||||
dirPath,
|
||||
okToCache: false,
|
||||
code: cmakeStepResult.code,
|
||||
asm: [{text: '<Build failed>'}],
|
||||
};
|
||||
return fullResult;
|
||||
}
|
||||
|
||||
const makeStepResult = await this.doBuildstepAndAddToResult(fullResult, 'make', this.env.ceProps('make'),
|
||||
[], execParams);
|
||||
|
||||
if (makeStepResult.code !== 0) {
|
||||
fullResult.result = {
|
||||
dirPath,
|
||||
okToCache: false,
|
||||
code: makeStepResult.code,
|
||||
asm: [{text: '<Build failed>'}],
|
||||
};
|
||||
return fullResult;
|
||||
}
|
||||
|
||||
fullResult.result = {
|
||||
dirPath,
|
||||
okToCache: true,
|
||||
@@ -1145,24 +1209,38 @@ export class BaseCompiler {
|
||||
fullResult.result, outputFilename, cacheKey.filters);
|
||||
fullResult.result = asmResult;
|
||||
|
||||
if (this.lang.id === 'c++') {
|
||||
fullResult.result.compilationOptions = makeExecParams.env.CXXFLAGS.split(' ');
|
||||
} else {
|
||||
fullResult.result.compilationOptions = makeExecParams.env.CFLAGS.split(' ');
|
||||
}
|
||||
|
||||
fullResult.code = 0;
|
||||
_.each(fullResult.buildsteps, function (step) {
|
||||
fullResult.code += step.code;
|
||||
});
|
||||
|
||||
await this.storePackageWithExecutable(cacheKey, dirPath, fullResult);
|
||||
} else {
|
||||
fullResult.fetchedFromCache = true;
|
||||
|
||||
delete fullResult.code;
|
||||
delete fullResult.inputFilename;
|
||||
delete fullResult.dirPath;
|
||||
delete fullResult.executableFilename;
|
||||
delete fullResult.dirPath;
|
||||
}
|
||||
|
||||
fullResult.result.dirPath = dirPath;
|
||||
|
||||
if (this.compiler.supportsExecute && doExecute) {
|
||||
fullResult.execResult = await this.runExecutable(outputFilename, executeParameters, dirPath);
|
||||
fullResult.didExecute = true;
|
||||
}
|
||||
|
||||
const optOutput = undefined;
|
||||
await this.afterCompilation(fullResult.result, false, cacheKey, [], cacheKey.tools, cacheKey.backendOptions,
|
||||
cacheKey.filters, libsAndOptions.options, optOutput);
|
||||
await this.afterCompilation(fullResult.result, false, cacheKey, [], key.tools, cacheKey.backendOptions,
|
||||
cacheKey.filters, libsAndOptions.options, optOutput, path.join(dirPath, 'build'));
|
||||
|
||||
if (this.compiler.supportsExecute && doExecute) {
|
||||
fullResult.execResult = await this.runExecutable(outputFilename, executeParameters);
|
||||
fullResult.didExecute = true;
|
||||
}
|
||||
delete fullResult.result.dirPath;
|
||||
|
||||
return fullResult;
|
||||
}
|
||||
@@ -1171,23 +1249,18 @@ export class BaseCompiler {
|
||||
// note: it's vitally important that the resulting path does not escape dirPath
|
||||
// (filename is user input and thus unsafe)
|
||||
|
||||
const sanere = /^[\s\w.-]+$/i;
|
||||
if (sanere.test(filename)) {
|
||||
const joined = path.join(dirPath, filename);
|
||||
const normalized = path.normalize(joined);
|
||||
if (process.platform === 'win32') {
|
||||
if (!normalized.replace(/\\/g, '/').startsWith(
|
||||
dirPath.replace(/\\/g, '/'))
|
||||
) {
|
||||
throw new Error('Invalid filename');
|
||||
}
|
||||
} else {
|
||||
if (!normalized.startsWith(dirPath)) throw new Error('Invalid filename');
|
||||
const joined = path.join(dirPath, filename);
|
||||
const normalized = path.normalize(joined);
|
||||
if (process.platform === 'win32') {
|
||||
if (!normalized.replace(/\\/g, '/').startsWith(
|
||||
dirPath.replace(/\\/g, '/'))
|
||||
) {
|
||||
throw new Error('Invalid filename');
|
||||
}
|
||||
return normalized;
|
||||
} else {
|
||||
throw new Error('Invalid filename');
|
||||
if (!normalized.startsWith(dirPath)) throw new Error('Invalid filename');
|
||||
}
|
||||
return normalized;
|
||||
}
|
||||
|
||||
async compile(source, options, backendOptions, filters, bypassCache, tools, executionParameters, libraries, files) {
|
||||
@@ -1253,9 +1326,9 @@ export class BaseCompiler {
|
||||
await fs.writeFile(inputFilename, source);
|
||||
|
||||
if (files) {
|
||||
for (let file of files) {
|
||||
await fs.writeFile(this.getExtraFilepath(dirPath, file.filename), file.contents);
|
||||
}
|
||||
filters.dontMaskFilenames = true;
|
||||
|
||||
await this.writeMultipleFiles(files, dirPath);
|
||||
}
|
||||
|
||||
// TODO make const when I can
|
||||
@@ -1268,7 +1341,7 @@ export class BaseCompiler {
|
||||
}
|
||||
|
||||
async afterCompilation(result, doExecute, key, executeParameters, tools, backendOptions, filters, options,
|
||||
optOutput) {
|
||||
optOutput, customBuildPath) {
|
||||
// Start the execution as soon as we can, but only await it at the end.
|
||||
const execPromise = doExecute ? this.handleExecution(key, executeParameters) : null;
|
||||
|
||||
@@ -1277,7 +1350,7 @@ export class BaseCompiler {
|
||||
result.optOutput = optOutput;
|
||||
}
|
||||
result.tools = _.union(result.tools, await Promise.all(this.runToolsOfType(tools, 'postcompilation',
|
||||
this.getCompilationInfo(key, result))));
|
||||
this.getCompilationInfo(key, result, customBuildPath))));
|
||||
|
||||
result = this.extractDeviceCode(result, filters);
|
||||
|
||||
|
||||
@@ -32,9 +32,12 @@ import {
|
||||
export class ClientStateNormalizer {
|
||||
constructor() {
|
||||
this.normalized = new ClientState();
|
||||
this.rootContent = null;
|
||||
}
|
||||
|
||||
fromGoldenLayoutContent(content) {
|
||||
if (!this.rootContent) this.rootContent = content;
|
||||
|
||||
for (const component of content) {
|
||||
this.fromGoldenLayoutComponent(component);
|
||||
}
|
||||
@@ -42,6 +45,7 @@ export class ClientStateNormalizer {
|
||||
|
||||
setFilterSettingsFromComponent(compiler, component) {
|
||||
compiler.filters.binary = component.componentState.filters.binary;
|
||||
compiler.filters.execute = component.componentState.filters.execute;
|
||||
compiler.filters.labels = component.componentState.filters.labels;
|
||||
compiler.filters.directives = component.componentState.filters.directives;
|
||||
compiler.filters.commentOnly = component.componentState.filters.commentOnly;
|
||||
@@ -50,24 +54,121 @@ export class ClientStateNormalizer {
|
||||
compiler.filters.demangle = component.componentState.filters.demangle;
|
||||
}
|
||||
|
||||
findCompilerInGoldenLayout(content, id) {
|
||||
let result;
|
||||
|
||||
for (const component of content) {
|
||||
if (component.componentName === 'compiler') {
|
||||
if (component.componentState.id === id) {
|
||||
return component;
|
||||
}
|
||||
} else if (component.content && component.content.length > 0) {
|
||||
result = this.findCompilerInGoldenLayout(component.content, id);
|
||||
if (result) break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
findOrCreateSessionFromEditorOrCompiler(editorId, compilerId) {
|
||||
let session;
|
||||
if (editorId) {
|
||||
session = this.normalized.findOrCreateSession(editorId);
|
||||
} else {
|
||||
const glCompiler = this.findCompilerInGoldenLayout(this.rootContent, compilerId);
|
||||
if (glCompiler) {
|
||||
if (glCompiler.componentState.source) {
|
||||
session = this.normalized.findOrCreateSession(glCompiler.componentState.source);
|
||||
}
|
||||
}
|
||||
}
|
||||
return session;
|
||||
}
|
||||
|
||||
addSpecialOutputToCompiler(compilerId, name, editorId) {
|
||||
const glCompiler = this.findCompilerInGoldenLayout(this.rootContent, compilerId);
|
||||
if (glCompiler) {
|
||||
let compiler;
|
||||
if (glCompiler.componentState.source) {
|
||||
const session = this.normalized.findOrCreateSession(glCompiler.componentState.source);
|
||||
compiler = session.findOrCreateCompiler(compilerId);
|
||||
} else if (glCompiler.componentState.tree) {
|
||||
const tree = this.normalized.findOrCreateTree(glCompiler.componentState.tree);
|
||||
compiler = tree.findOrCreateCompiler(compilerId);
|
||||
}
|
||||
|
||||
compiler.specialoutputs.push(name);
|
||||
} else if (editorId) {
|
||||
const session = this.normalized.findOrCreateSession(editorId);
|
||||
const compiler = session.findOrCreateCompiler(compilerId);
|
||||
compiler.specialoutputs.push(name);
|
||||
}
|
||||
}
|
||||
|
||||
addToolToCompiler(compilerId, editorId, toolId, args, stdin) {
|
||||
const glCompiler = this.findCompilerInGoldenLayout(this.rootContent, compilerId);
|
||||
if (glCompiler) {
|
||||
let compiler;
|
||||
if (glCompiler.componentState.source) {
|
||||
const session = this.normalized.findOrCreateSession(glCompiler.componentState.source);
|
||||
compiler = session.findOrCreateCompiler(compilerId);
|
||||
} else if (glCompiler.componentState.tree) {
|
||||
const tree = this.normalized.findOrCreateTree(glCompiler.componentState.tree);
|
||||
compiler = tree.findOrCreateCompiler(compilerId);
|
||||
}
|
||||
|
||||
compiler.tools.push({
|
||||
id: toolId,
|
||||
args: args,
|
||||
stdin: stdin,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
fromGoldenLayoutComponent(component) {
|
||||
if (component.componentName === 'codeEditor') {
|
||||
if (component.componentName === 'tree') {
|
||||
const tree = this.normalized.findOrCreateTree(component.componentState.id);
|
||||
tree.fromJsonData(component.componentState);
|
||||
} else if (component.componentName === 'codeEditor') {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.id);
|
||||
session.language = component.componentState.lang;
|
||||
session.source = component.componentState.source;
|
||||
if (component.componentState.filename)
|
||||
session.filename = component.componentState.filename;
|
||||
} else if (component.componentName === 'compiler') {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.source);
|
||||
let compiler;
|
||||
if (component.componentState.id) {
|
||||
if (component.componentState.source) {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.source);
|
||||
compiler = session.findOrCreateCompiler(component.componentState.id);
|
||||
} else if (component.componentState.tree) {
|
||||
const tree = this.normalized.findOrCreateTree(component.componentState.tree);
|
||||
compiler = tree.findOrCreateCompiler(component.componentState.id);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
compiler = new ClientStateCompiler();
|
||||
|
||||
if (component.componentState.source) {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.source);
|
||||
session.compilers.push(compiler);
|
||||
|
||||
this.normalized.numberCompilersIfNeeded(session, this.normalized.getNextCompilerId());
|
||||
} else if (component.componentState.tree) {
|
||||
const tree = this.normalized.findOrCreateTree(component.componentState.tree);
|
||||
tree.compilers.push(compiler);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const compiler = new ClientStateCompiler();
|
||||
compiler.id = component.componentState.compiler;
|
||||
compiler.options = component.componentState.options;
|
||||
compiler.libs = component.componentState.libs;
|
||||
this.setFilterSettingsFromComponent(compiler, component);
|
||||
|
||||
session.compilers.push(compiler);
|
||||
} else if (component.componentName === 'executor') {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.source);
|
||||
|
||||
const executor = new ClientStateExecutor();
|
||||
executor.compiler.id = component.componentState.compiler;
|
||||
executor.compiler.options = component.componentState.options;
|
||||
@@ -81,49 +182,63 @@ export class ClientStateNormalizer {
|
||||
if (component.componentState.wrap)
|
||||
executor.wrap = true;
|
||||
|
||||
session.executors.push(executor);
|
||||
if (component.componentState.source) {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.source);
|
||||
|
||||
session.executors.push(executor);
|
||||
} else if (component.componentState.tree) {
|
||||
const tree = this.normalized.findOrCreateTree(component.componentState.tree);
|
||||
|
||||
tree.executors.push(executor);
|
||||
}
|
||||
} else if (component.componentName === 'ast') {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.editorid);
|
||||
const compiler = session.findOrCreateCompiler(component.componentState.id);
|
||||
|
||||
compiler.specialoutputs.push('ast');
|
||||
this.addSpecialOutputToCompiler(component.componentState.id, 'ast',
|
||||
component.componentState.editorid);
|
||||
} else if (component.componentName === 'opt') {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.editorid);
|
||||
const compiler = session.findOrCreateCompiler(component.componentState.id);
|
||||
|
||||
compiler.specialoutputs.push('opt');
|
||||
this.addSpecialOutputToCompiler(component.componentState.id, 'opt',
|
||||
component.componentState.editorid);
|
||||
} else if (component.componentName === 'cfg') {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.editorid);
|
||||
const compiler = session.findOrCreateCompiler(component.componentState.id);
|
||||
|
||||
compiler.specialoutputs.push('cfg');
|
||||
this.addSpecialOutputToCompiler(component.componentState.id, 'cfg',
|
||||
component.componentState.editorid);
|
||||
} else if (component.componentName === 'gccdump') {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState._editorid);
|
||||
const compiler = session.findOrCreateCompiler(component.componentState._compilerid);
|
||||
|
||||
compiler.specialoutputs.push('gccdump');
|
||||
this.addSpecialOutputToCompiler(component.componentState._compilerid, 'gccdump',
|
||||
component.componentState._editorid);
|
||||
} else if (component.componentName === 'output') {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.editor);
|
||||
const compiler = session.findOrCreateCompiler(component.componentState.compiler);
|
||||
|
||||
compiler.specialoutputs.push('compilerOutput');
|
||||
this.addSpecialOutputToCompiler(component.componentState.compiler, 'compilerOutput',
|
||||
component.componentState.editor);
|
||||
} else if (component.componentName === 'conformance') {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.editorid);
|
||||
session.conformanceview = new ClientStateConformanceView(component.componentState);
|
||||
} else if (component.componentName === 'tool') {
|
||||
const session = this.normalized.findOrCreateSession(component.componentState.editor);
|
||||
const compiler = session.findOrCreateCompiler(component.componentState.compiler);
|
||||
|
||||
compiler.tools.push({
|
||||
id: component.componentState.toolId,
|
||||
args: component.componentState.args,
|
||||
});
|
||||
this.addToolToCompiler(component.componentState.compiler, component.componentState.editor,
|
||||
component.componentState.toolId, component.componentState.args,
|
||||
component.componentState.stdin);
|
||||
} else if (component.content) {
|
||||
this.fromGoldenLayoutContent(component.content);
|
||||
}
|
||||
|
||||
this.fixFilesInTrees();
|
||||
}
|
||||
|
||||
fixFilesInTrees() {
|
||||
for (const tree of this.normalized.trees) {
|
||||
tree.files = tree.files.filter((file) => file.isIncluded);
|
||||
|
||||
for (const file of tree.files) {
|
||||
if (file.editorId) {
|
||||
const session = this.normalized.findSessionById(file.editorId);
|
||||
if (session) {
|
||||
file.content = session.source;
|
||||
file.filename = session.filename;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fromGoldenLayout(globj) {
|
||||
this.rootContent = globj.content;
|
||||
|
||||
if (globj.content) {
|
||||
this.fromGoldenLayoutContent(globj.content);
|
||||
}
|
||||
@@ -132,7 +247,7 @@ export class ClientStateNormalizer {
|
||||
|
||||
class GoldenLayoutComponents {
|
||||
createSourceComponent(session, customSessionId) {
|
||||
return {
|
||||
const editor = {
|
||||
type: 'component',
|
||||
componentName: 'codeEditor',
|
||||
componentState: {
|
||||
@@ -143,6 +258,37 @@ class GoldenLayoutComponents {
|
||||
isClosable: true,
|
||||
reorderEnabled: true,
|
||||
};
|
||||
|
||||
if (session.filename) {
|
||||
editor.title = session.filename;
|
||||
editor.componentState.filename = session.filename;
|
||||
}
|
||||
|
||||
return editor;
|
||||
}
|
||||
|
||||
createTreeComponent(tree, customTreeId) {
|
||||
const treeComponent = {
|
||||
type: 'component',
|
||||
componentName: 'tree',
|
||||
componentState: {
|
||||
id: tree.id,
|
||||
cmakeArgs: tree.cmakeArgs,
|
||||
customOutputFilename: tree.customOutputFilename,
|
||||
isCMakeProject: tree.isCMakeProject,
|
||||
compilerLanguageId: tree.compilerLanguageId,
|
||||
files: tree.files,
|
||||
newFileId: tree.newFileId,
|
||||
},
|
||||
isClosable: true,
|
||||
reorderEnabled: true,
|
||||
};
|
||||
|
||||
if (customTreeId) {
|
||||
treeComponent.componentState.id = customTreeId;
|
||||
}
|
||||
|
||||
return treeComponent;
|
||||
}
|
||||
|
||||
createAstComponent(session, compilerIndex, customSessionId) {
|
||||
@@ -151,7 +297,7 @@ class GoldenLayoutComponents {
|
||||
componentName: 'ast',
|
||||
componentState: {
|
||||
id: compilerIndex,
|
||||
editorid: customSessionId ? customSessionId : session.id,
|
||||
editorid: customSessionId ? customSessionId : (session ? session.id : undefined),
|
||||
},
|
||||
isClosable: true,
|
||||
reorderEnabled: true,
|
||||
@@ -164,7 +310,7 @@ class GoldenLayoutComponents {
|
||||
componentName: 'opt',
|
||||
componentState: {
|
||||
id: compilerIndex,
|
||||
editorid: customSessionId ? customSessionId : session.id,
|
||||
editorid: customSessionId ? customSessionId : (session ? session.id : undefined),
|
||||
},
|
||||
isClosable: true,
|
||||
reorderEnabled: true,
|
||||
@@ -177,7 +323,7 @@ class GoldenLayoutComponents {
|
||||
componentName: 'opt',
|
||||
componentState: {
|
||||
id: compilerIndex,
|
||||
editorid: customSessionId ? customSessionId : session.id,
|
||||
editorid: customSessionId ? customSessionId : (session ? session.id : undefined),
|
||||
options: {
|
||||
navigation: false,
|
||||
physics: false,
|
||||
@@ -194,7 +340,7 @@ class GoldenLayoutComponents {
|
||||
componentName: 'gccdump',
|
||||
componentState: {
|
||||
_compilerid: compilerIndex,
|
||||
_editorid: customSessionId ? customSessionId : session.id,
|
||||
_editorid: customSessionId ? customSessionId : (session ? session.id : undefined),
|
||||
},
|
||||
isClosable: true,
|
||||
reorderEnabled: true,
|
||||
@@ -207,7 +353,7 @@ class GoldenLayoutComponents {
|
||||
componentName: 'output',
|
||||
componentState: {
|
||||
compiler: compilerIndex,
|
||||
editor: customSessionId ? customSessionId : session.id,
|
||||
editor: customSessionId ? customSessionId : (session ? session.id : undefined),
|
||||
wrap: false,
|
||||
fontScale: 14,
|
||||
},
|
||||
@@ -216,15 +362,16 @@ class GoldenLayoutComponents {
|
||||
};
|
||||
}
|
||||
|
||||
createToolComponent(session, compilerIndex, toolId, args, customSessionId) {
|
||||
createToolComponent(session, compilerIndex, toolId, args, stdin, customSessionId) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'tool',
|
||||
componentState: {
|
||||
editor: customSessionId ? customSessionId : session.id,
|
||||
editor: customSessionId ? customSessionId : (session ? session.id : undefined),
|
||||
compiler: compilerIndex,
|
||||
toolId: toolId,
|
||||
args: args,
|
||||
stdin: stdin,
|
||||
},
|
||||
isClosable: true,
|
||||
reorderEnabled: true,
|
||||
@@ -246,24 +393,20 @@ class GoldenLayoutComponents {
|
||||
};
|
||||
}
|
||||
|
||||
createCompilerComponent(session, compiler, customSessionId) {
|
||||
copyCompilerFilters(filters) {
|
||||
return {...filters};
|
||||
}
|
||||
|
||||
createCompilerComponent(session, compiler, customSessionId, idxCompiler) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'compiler',
|
||||
componentState: {
|
||||
id: idxCompiler,
|
||||
compiler: compiler.id,
|
||||
source: customSessionId ? customSessionId : session.id,
|
||||
options: compiler.options,
|
||||
filters: {
|
||||
binary: compiler.filters.binary,
|
||||
execute: compiler.filters.execute,
|
||||
labels: compiler.filters.labels,
|
||||
directives: compiler.filters.directives,
|
||||
commentOnly: compiler.filters.commentOnly,
|
||||
trim: compiler.filters.trim,
|
||||
intel: compiler.filters.intel,
|
||||
demangle: compiler.filters.demangle,
|
||||
},
|
||||
filters: this.copyCompilerFilters(compiler.filters),
|
||||
libs: compiler.libs,
|
||||
lang: session.language,
|
||||
},
|
||||
@@ -272,6 +415,25 @@ class GoldenLayoutComponents {
|
||||
};
|
||||
}
|
||||
|
||||
createCompilerComponentForTree(tree, compiler, customTreeId, idxCompiler) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'compiler',
|
||||
componentState: {
|
||||
id: idxCompiler,
|
||||
compiler: compiler.id,
|
||||
source: undefined,
|
||||
tree: customTreeId ? customTreeId : tree.id,
|
||||
options: compiler.options,
|
||||
filters: this.copyCompilerFilters(compiler.filters),
|
||||
libs: compiler.libs,
|
||||
lang: tree.compilerLanguageId,
|
||||
},
|
||||
isClosable: true,
|
||||
reorderEnabled: true,
|
||||
};
|
||||
}
|
||||
|
||||
createExecutorComponent(session, executor, customSessionId) {
|
||||
return {
|
||||
type: 'component',
|
||||
@@ -295,6 +457,30 @@ class GoldenLayoutComponents {
|
||||
};
|
||||
}
|
||||
|
||||
createExecutorComponentForTree(tree, executor, customTreeId) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'executor',
|
||||
componentState: {
|
||||
compiler: executor.compiler.id,
|
||||
source: undefined,
|
||||
tree: customTreeId ? customTreeId : tree.id,
|
||||
options: executor.compiler.options,
|
||||
execArgs: executor.arguments,
|
||||
execStdin: executor.stdin,
|
||||
libs: executor.compiler.libs,
|
||||
lang: tree.compilerLanguageId,
|
||||
compilationPanelShown: executor.compilerVisible,
|
||||
compilerOutShown: executor.compilerOutputVisible,
|
||||
argsPanelShown: executor.argumentsVisible,
|
||||
stdinPanelShown: executor.stdinVisible,
|
||||
wrap: executor.wrap,
|
||||
},
|
||||
isClosable: true,
|
||||
reorderEnabled: true,
|
||||
};
|
||||
}
|
||||
|
||||
createDiffComponent(left, right) {
|
||||
return {
|
||||
type: 'component',
|
||||
@@ -325,6 +511,39 @@ class GoldenLayoutComponents {
|
||||
|
||||
return component;
|
||||
}
|
||||
|
||||
createSpecialOutputComponentForTreeCompiler(viewtype, idxCompiler) {
|
||||
let component = null;
|
||||
if (viewtype === 'ast') {
|
||||
component = this.createAstComponent(null, idxCompiler + 1, false);
|
||||
} else if (viewtype === 'opt') {
|
||||
component = this.createOptComponent(null, idxCompiler + 1, false);
|
||||
} else if (viewtype === 'cfg') {
|
||||
component = this.createCfgComponent(null, idxCompiler + 1, false);
|
||||
} else if (viewtype === 'gccdump') {
|
||||
component = this.createGccDumpComponent(null, idxCompiler + 1, false);
|
||||
} else if (viewtype === 'compilerOutput') {
|
||||
component = this.createCompilerOutComponent(null, idxCompiler + 1, false);
|
||||
}
|
||||
|
||||
return component;
|
||||
}
|
||||
|
||||
createToolComponentForTreeCompiler(tree, compilerIndex, toolId, args, stdin, customTreeId) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'tool',
|
||||
componentState: {
|
||||
tree: customTreeId ? customTreeId : (tree ? tree.id : undefined),
|
||||
compiler: compilerIndex,
|
||||
toolId: toolId,
|
||||
args: args,
|
||||
stdin: stdin,
|
||||
},
|
||||
isClosable: true,
|
||||
reorderEnabled: true,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
@@ -333,6 +552,14 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
this.golden = {};
|
||||
}
|
||||
|
||||
newEmptyStack(width) {
|
||||
return {
|
||||
type: 'stack',
|
||||
width: width,
|
||||
content: [],
|
||||
};
|
||||
}
|
||||
|
||||
newStackWithOneComponent(width, component) {
|
||||
return {
|
||||
type: 'stack',
|
||||
@@ -341,6 +568,12 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
};
|
||||
}
|
||||
|
||||
newTreeFromTree(tree, width) {
|
||||
return this.newStackWithOneComponent(width,
|
||||
this.createTreeComponent(tree),
|
||||
);
|
||||
}
|
||||
|
||||
newSourceStackFromSession(session, width) {
|
||||
return this.newStackWithOneComponent(width,
|
||||
this.createSourceComponent(session),
|
||||
@@ -377,9 +610,9 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
);
|
||||
}
|
||||
|
||||
newToolStackFromCompiler(session, compilerIndex, toolId, args, width) {
|
||||
newToolStackFromCompiler(session, compilerIndex, toolId, args, stdin, width) {
|
||||
return this.newStackWithOneComponent(width,
|
||||
this.createToolComponent(session, compilerIndex, toolId, args),
|
||||
this.createToolComponent(session, compilerIndex, toolId, args, stdin),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -402,7 +635,7 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
|
||||
newCompilerStackFromSession(session, compiler, width) {
|
||||
return this.newStackWithOneComponent(width,
|
||||
this.createCompilerComponent(session, compiler),
|
||||
this.createCompilerComponent(session, compiler, false, compiler._internalId),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -479,6 +712,75 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
return gl;
|
||||
}
|
||||
|
||||
closeAllEditors(tree) {
|
||||
for (const file of tree.files) {
|
||||
file.editorId = -1;
|
||||
file.isOpen = false;
|
||||
}
|
||||
}
|
||||
|
||||
getPresentationModeLayoutForTree(state, left) {
|
||||
const gl = this.getPresentationModeEmptyLayout();
|
||||
const tree = state.trees[left.tree];
|
||||
const customTreeId = 1;
|
||||
|
||||
this.closeAllEditors(tree);
|
||||
|
||||
gl.content[0].content = [
|
||||
{
|
||||
type: 'column',
|
||||
width: 100,
|
||||
content: [
|
||||
{
|
||||
type: 'row',
|
||||
height: 50,
|
||||
content: [this.createTreeComponent(tree, customTreeId)],
|
||||
},
|
||||
{
|
||||
type: 'row',
|
||||
height: 50,
|
||||
content: [
|
||||
{
|
||||
type: 'stack',
|
||||
width: 100,
|
||||
content: [],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}];
|
||||
|
||||
let stack = gl.content[0].content[0].content[1].content[0];
|
||||
|
||||
for (let idxCompiler = 0; idxCompiler < tree.compilers.length; idxCompiler++) {
|
||||
const compiler = tree.compilers[idxCompiler];
|
||||
stack.content.push(
|
||||
this.createCompilerComponentForTree(tree, compiler, customTreeId, idxCompiler + 1),
|
||||
);
|
||||
|
||||
for (const viewtype of compiler.specialoutputs) {
|
||||
stack.content.push(
|
||||
this.createSpecialOutputComponentForTreeCompiler(viewtype, idxCompiler),
|
||||
);
|
||||
}
|
||||
|
||||
for (const tool of compiler.tools) {
|
||||
stack.content.push(
|
||||
this.createToolComponentForTreeCompiler(tree, idxCompiler + 1, tool.id,
|
||||
tool.args, tool.stdin),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
for (let idxExecutor = 0; idxExecutor < tree.executors.length; idxExecutor++) {
|
||||
stack.content.push(
|
||||
this.createExecutorComponentForTree(tree, tree.executors[idxExecutor], customTreeId),
|
||||
);
|
||||
}
|
||||
|
||||
return gl;
|
||||
}
|
||||
|
||||
getPresentationModeLayoutForComparisonSlide(state, left, right) {
|
||||
const gl = this.getPresentationModeEmptyLayout();
|
||||
gl.content[0].content = [
|
||||
@@ -529,7 +831,7 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
|
||||
for (const tool of compiler.tools) {
|
||||
stack.content.push(
|
||||
this.createToolComponent(session, idxCompiler + 1, tool.id, tool.args, customSessionId),
|
||||
this.createToolComponent(false, idxCompiler + 1, tool.id, tool.args, tool.stdin, customSessionId),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -546,6 +848,17 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
generatePresentationModeMobileViewerSlides(state) {
|
||||
const slides = [];
|
||||
|
||||
if (state.trees.length > 0) {
|
||||
for (var idxTree = 0; idxTree < state.trees.length; idxTree++) {
|
||||
const gl = this.getPresentationModeLayoutForTree(state, {
|
||||
tree: idxTree,
|
||||
});
|
||||
slides.push(gl);
|
||||
}
|
||||
|
||||
return slides;
|
||||
}
|
||||
|
||||
for (var idxSession = 0; idxSession < state.sessions.length; idxSession++) {
|
||||
const gl = this.getPresentationModeLayoutForSource(state, {
|
||||
session: idxSession,
|
||||
@@ -557,6 +870,29 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
return slides;
|
||||
}
|
||||
|
||||
treeLayoutFromClientstate(state) {
|
||||
const firstTree = state.trees[0];
|
||||
const leftSide = this.newTreeFromTree(firstTree, 25);
|
||||
const middle = this.newEmptyStack(40);
|
||||
for (const session of state.sessions) {
|
||||
middle.content.push(this.createSourceComponent(session));
|
||||
}
|
||||
|
||||
const rightSide = this.newEmptyStack(40);
|
||||
let idxCompiler = 0;
|
||||
for (const compiler of firstTree.compilers) {
|
||||
rightSide.content.push(this.createCompilerComponentForTree(firstTree, compiler));
|
||||
|
||||
for (const specialOutput of compiler.specialoutputs) {
|
||||
rightSide.content.push(this.createSpecialOutputComponentForTreeCompiler(specialOutput, idxCompiler));
|
||||
}
|
||||
|
||||
idxCompiler++;
|
||||
}
|
||||
|
||||
this.golden.content[0].content.push(leftSide, middle, rightSide);
|
||||
}
|
||||
|
||||
fromClientState(state) {
|
||||
this.golden = {
|
||||
settings: {
|
||||
@@ -600,6 +936,11 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
],
|
||||
};
|
||||
|
||||
if (state.trees.length > 0) {
|
||||
this.treeLayoutFromClientstate(state);
|
||||
return;
|
||||
}
|
||||
|
||||
if (state.sessions.length > 1) {
|
||||
const sessionWidth = 100 / state.sessions.length;
|
||||
|
||||
@@ -651,7 +992,7 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
|
||||
for (const tool of compiler.tools) {
|
||||
let stack = this.newToolStackFromCompiler(session, idxCompiler + 1,
|
||||
tool.id, tool.args, compilerWidth);
|
||||
tool.id, tool.args, tool.stdin, compilerWidth);
|
||||
this.golden.content[0].content[idxSession].content[1].content.push(stack);
|
||||
}
|
||||
}
|
||||
@@ -694,7 +1035,7 @@ export class ClientStateGoldenifier extends GoldenLayoutComponents {
|
||||
|
||||
for (const tool of compiler.tools) {
|
||||
let stack = this.newToolStackFromCompiler(session, compiler, idxCompiler + 1,
|
||||
tool.id, tool.args, width);
|
||||
tool.id, tool.args, tool.stdin, width);
|
||||
this.golden.content[0].content.push(stack);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,8 @@ export class ClientStateCompilerOptions {
|
||||
|
||||
export class ClientStateCompiler {
|
||||
constructor(jsondata) {
|
||||
this._internalid = undefined;
|
||||
|
||||
if (jsondata) {
|
||||
this.fromJsonData(jsondata);
|
||||
} else {
|
||||
@@ -63,6 +65,10 @@ export class ClientStateCompiler {
|
||||
}
|
||||
|
||||
fromJsonData(jsondata) {
|
||||
if (typeof jsondata._internalid !== undefined) {
|
||||
this._internalid = jsondata._internalid;
|
||||
}
|
||||
|
||||
if (typeof jsondata.id !== 'undefined') {
|
||||
this.id = jsondata.id;
|
||||
} else if (typeof jsondata.compilerId !== 'undefined') {
|
||||
@@ -107,6 +113,8 @@ export class ClientStateExecutor {
|
||||
this.compiler = new ClientStateCompiler();
|
||||
this.wrap = false;
|
||||
}
|
||||
|
||||
delete this.compiler._internalid;
|
||||
}
|
||||
|
||||
fromJsonData(jsondata) {
|
||||
@@ -140,11 +148,115 @@ export class ClientStateConformanceView {
|
||||
fromJsonData(jsondata) {
|
||||
this.libs = jsondata.libs;
|
||||
for (const compilerdata of jsondata.compilers) {
|
||||
this.compilers.push(new ClientStateCompiler(compilerdata));
|
||||
const compiler = new ClientStateCompiler(compilerdata);
|
||||
delete compiler._internalid;
|
||||
this.compilers.push(compiler);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class MultifileFile {
|
||||
constructor(jsondata) {
|
||||
this.fileId = 0;
|
||||
this.isIncluded = false;
|
||||
this.isOpen = false;
|
||||
this.isMainSource = false;
|
||||
this.filename = '';
|
||||
this.content = '';
|
||||
this.editorId = -1;
|
||||
this.langId = 'c++';
|
||||
|
||||
if (jsondata) this.fromJsonData(jsondata);
|
||||
}
|
||||
|
||||
fromJsonData(jsondata) {
|
||||
this.fileId = jsondata.fileId;
|
||||
this.isIncluded = jsondata.isIncluded;
|
||||
this.isOpen = jsondata.isOpen;
|
||||
this.isMainSource = jsondata.isMainSource;
|
||||
this.filename = jsondata.filename;
|
||||
this.content = jsondata.content;
|
||||
this.editorId = jsondata.editorId;
|
||||
this.langId = jsondata.langId;
|
||||
}
|
||||
}
|
||||
|
||||
export class ClientStateTree {
|
||||
constructor(jsondata) {
|
||||
this.id = 1;
|
||||
this.cmakeArgs = '';
|
||||
this.customOutputFilename = '';
|
||||
this.isCMakeProject = false;
|
||||
this.compilerLanguageId = 'c++';
|
||||
this.files = [];
|
||||
this.newFileId = 1;
|
||||
this.compilers = [];
|
||||
this.executors = [];
|
||||
|
||||
if (jsondata) this.fromJsonData(jsondata);
|
||||
}
|
||||
|
||||
fromJsonData(jsondata) {
|
||||
this.id = jsondata.id;
|
||||
this.cmakeArgs = jsondata.cmakeArgs;
|
||||
this.customOutputFilename = jsondata.customOutputFilename;
|
||||
this.isCMakeProject = jsondata.isCMakeProject;
|
||||
this.compilerLanguageId = jsondata.compilerLanguageId;
|
||||
|
||||
let requiresFix = typeof jsondata.newFileId === 'undefined';
|
||||
for (const file of jsondata.files) {
|
||||
const newFile = new MultifileFile(file);
|
||||
this.files.push(newFile);
|
||||
if (this.newFileId <= newFile.id) {
|
||||
requiresFix = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (requiresFix) {
|
||||
this.newFileId = 1;
|
||||
for (const file of this.files) {
|
||||
if (file.id > this.newFileId) {
|
||||
this.newFileId = file.id + 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.newFileId = jsondata.newFileId;
|
||||
}
|
||||
|
||||
if (typeof jsondata.compilers !== 'undefined') {
|
||||
for (const compilerdata of jsondata.compilers) {
|
||||
const compiler = new ClientStateCompiler(compilerdata);
|
||||
if (compiler.id) {
|
||||
this.compilers.push(compiler);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof jsondata.executors !== 'undefined') {
|
||||
for (const executor of jsondata.executors) {
|
||||
this.executors.push(new ClientStateExecutor(executor));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
findOrCreateCompiler(id) {
|
||||
let foundCompiler;
|
||||
for (let compiler of this.compilers) {
|
||||
if (compiler._internalid === id) {
|
||||
foundCompiler = compiler;
|
||||
}
|
||||
}
|
||||
|
||||
if (!foundCompiler) {
|
||||
foundCompiler = new ClientStateCompiler();
|
||||
foundCompiler._internalid = id;
|
||||
this.compilers.push(foundCompiler);
|
||||
}
|
||||
|
||||
return foundCompiler;
|
||||
}
|
||||
}
|
||||
|
||||
export class ClientStateSession {
|
||||
constructor(jsondata) {
|
||||
this.id = false;
|
||||
@@ -153,6 +265,7 @@ export class ClientStateSession {
|
||||
this.conformanceview = false;
|
||||
this.compilers = [];
|
||||
this.executors = [];
|
||||
this.filename = undefined;
|
||||
|
||||
if (jsondata) this.fromJsonData(jsondata);
|
||||
}
|
||||
@@ -181,21 +294,27 @@ export class ClientStateSession {
|
||||
this.executors.push(new ClientStateExecutor(executor));
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof jsondata.filename !== 'undefined') {
|
||||
this.filename = jsondata.filename;
|
||||
}
|
||||
}
|
||||
|
||||
findOrCreateCompiler(id) {
|
||||
let compiler = null;
|
||||
if (id <= this.compilers.length) {
|
||||
compiler = this.compilers[id - 1];
|
||||
return compiler;
|
||||
let foundCompiler;
|
||||
for (let compiler of this.compilers) {
|
||||
if (compiler._internalid === id) {
|
||||
foundCompiler = compiler;
|
||||
}
|
||||
}
|
||||
|
||||
for (let idx = this.compilers.length; idx < id; idx++) {
|
||||
compiler = new ClientStateCompiler();
|
||||
this.compilers.push(compiler);
|
||||
if (!foundCompiler) {
|
||||
foundCompiler = new ClientStateCompiler();
|
||||
foundCompiler._internalid = id;
|
||||
this.compilers.push(foundCompiler);
|
||||
}
|
||||
|
||||
return compiler;
|
||||
return foundCompiler;
|
||||
}
|
||||
|
||||
countNumberOfSpecialOutputsAndTools() {
|
||||
@@ -215,21 +334,63 @@ export class ClientStateSession {
|
||||
export class ClientState {
|
||||
constructor(jsondata) {
|
||||
this.sessions = [];
|
||||
this.trees = [];
|
||||
|
||||
if (jsondata) this.fromJsonData(jsondata);
|
||||
}
|
||||
|
||||
fromJsonData(jsondata) {
|
||||
for (const sessiondata of jsondata.sessions) {
|
||||
this.sessions.push(new ClientStateSession(sessiondata));
|
||||
const session = new ClientStateSession(sessiondata);
|
||||
this.numberCompilersIfNeeded(session);
|
||||
this.sessions.push(session);
|
||||
}
|
||||
|
||||
if (jsondata.trees) {
|
||||
for (const treedata of jsondata.trees) {
|
||||
this.trees.push(new ClientStateTree(treedata));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getNextCompilerId() {
|
||||
let nextId = 1;
|
||||
for (const session of this.sessions) {
|
||||
for (const compiler of session.compilers) {
|
||||
if (compiler._internalid && compiler._internalid >= nextId) {
|
||||
nextId = compiler._internalid + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return nextId;
|
||||
}
|
||||
|
||||
numberCompilersIfNeeded(session, startAt) {
|
||||
let id = startAt;
|
||||
let someIdsNeedNumbering = false;
|
||||
|
||||
for (const compiler of session.compilers) {
|
||||
if (compiler._internalid) {
|
||||
if (compiler._internalid >= id) {
|
||||
id = compiler._internalid + 1;
|
||||
}
|
||||
} else {
|
||||
someIdsNeedNumbering = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (someIdsNeedNumbering) {
|
||||
for (const compiler of session.compilers) {
|
||||
if (!compiler._internalid) {
|
||||
compiler._internalid = id;
|
||||
id++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
findSessionById(id) {
|
||||
let session = null;
|
||||
for (let idxSession = 0; idxSession < this.sessions.length; idxSession++) {
|
||||
session = this.sessions[idxSession];
|
||||
|
||||
for (const session of this.sessions) {
|
||||
if (session.id === id) {
|
||||
return session;
|
||||
}
|
||||
@@ -238,6 +399,19 @@ export class ClientState {
|
||||
return false;
|
||||
}
|
||||
|
||||
findTreeById(id) {
|
||||
let tree = null;
|
||||
for (let idxTree = 0; idxTree < this.trees.length; idxTree++) {
|
||||
tree = this.trees[idxTree];
|
||||
|
||||
if (tree.id === id) {
|
||||
return tree;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
findOrCreateSession(id) {
|
||||
let session = this.findSessionById(id);
|
||||
if (session) return session;
|
||||
@@ -248,4 +422,15 @@ export class ClientState {
|
||||
|
||||
return session;
|
||||
}
|
||||
|
||||
findOrCreateTree(id) {
|
||||
let tree = this.findTreeById(id);
|
||||
if (tree) return tree;
|
||||
|
||||
tree = new ClientStateTree();
|
||||
tree.id = id;
|
||||
this.trees.push(tree);
|
||||
|
||||
return tree;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,11 +43,14 @@ export class OCamlCompiler extends BaseCompiler {
|
||||
return options;
|
||||
}
|
||||
|
||||
getOutputFilename(dirPath) {
|
||||
return path.join(dirPath, `${path.basename(this.compileFilename, this.lang.extensions[0])}.s`);
|
||||
getOutputFilename(dirPath, outputFilebase, key) {
|
||||
const filename = key.backendOptions.customOutputFilename ||
|
||||
`${path.basename(this.compileFilename, this.lang.extensions[0])}.s`;
|
||||
return path.join(dirPath, filename);
|
||||
}
|
||||
|
||||
getExecutableFilename(dirPath, outputFilebase) {
|
||||
return path.join(dirPath, outputFilebase);
|
||||
getExecutableFilename(dirPath, outputFilebase, key) {
|
||||
const filename = key.backendOptions.customOutputFilename || outputFilebase;
|
||||
return path.join(dirPath, filename);
|
||||
}
|
||||
}
|
||||
|
||||
44
lib/exec.js
44
lib/exec.js
@@ -183,10 +183,19 @@ export function getNsJailOptions(configName, command, args, options) {
|
||||
const homeDir = '/app';
|
||||
let filenameTransform;
|
||||
if (options.customCwd) {
|
||||
jailingOptions.push(
|
||||
'--cwd', homeDir,
|
||||
'--bindmount', `${options.customCwd}:${homeDir}`,
|
||||
);
|
||||
if (options.appHome) {
|
||||
const relativeCwd = path.join(homeDir, path.relative(options.appHome, options.customCwd));
|
||||
jailingOptions.push(
|
||||
'--cwd', relativeCwd,
|
||||
'--bindmount', `${options.appHome}:${homeDir}`,
|
||||
);
|
||||
} else {
|
||||
jailingOptions.push(
|
||||
'--cwd', homeDir,
|
||||
'--bindmount', `${options.customCwd}:${homeDir}`,
|
||||
);
|
||||
}
|
||||
|
||||
const replacement = options.customCwd;
|
||||
filenameTransform = opt => opt.replace(replacement, '/app');
|
||||
args = args.map(filenameTransform);
|
||||
@@ -213,16 +222,27 @@ export function getNsJailOptions(configName, command, args, options) {
|
||||
};
|
||||
}
|
||||
|
||||
export function getSandboxNsjailOptions(command, args, options) {
|
||||
// If we already had a custom cwd, use that.
|
||||
if (options.customCwd) {
|
||||
let relativeCommand = command;
|
||||
if (command.startsWith(options.customCwd)) {
|
||||
relativeCommand = path.relative(options.customCwd, command);
|
||||
if (path.dirname(relativeCommand) === '.') {
|
||||
relativeCommand = `./${relativeCommand}`;
|
||||
}
|
||||
}
|
||||
return getNsJailOptions('sandbox', relativeCommand, args, options);
|
||||
}
|
||||
|
||||
// Else, assume the executable should be run as `./exec` and run it from its directory.
|
||||
options = {...options, customCwd: path.dirname(command)};
|
||||
return getNsJailOptions('sandbox', `./${path.basename(command)}`, args, options);
|
||||
}
|
||||
|
||||
function sandboxNsjail(command, args, options) {
|
||||
logger.info('Sandbox execution via nsjail', {command, args});
|
||||
const nsOpts = (() => {
|
||||
// If we already had a custom cwd, use that.
|
||||
if (options.customCwd)
|
||||
return getNsJailOptions('sandbox', command, args, options);
|
||||
// Else, assume the executable should be run as `./exec` and run it from its directory.
|
||||
options = {...options, customCwd: path.dirname(command)};
|
||||
return getNsJailOptions('sandbox', `./${path.basename(command)}`, args, options);
|
||||
})();
|
||||
const nsOpts = getSandboxNsjailOptions(command, args, options);
|
||||
return executeDirect(
|
||||
execProps('nsjail'),
|
||||
nsOpts.args,
|
||||
|
||||
@@ -53,7 +53,7 @@ export const languages = {
|
||||
'c++': {
|
||||
name: 'C++',
|
||||
monaco: 'cppp',
|
||||
extensions: ['.cpp', '.cxx', '.h', '.hpp', '.hxx', '.c'],
|
||||
extensions: ['.cpp', '.cxx', '.h', '.hpp', '.hxx', '.c', '.cc'],
|
||||
alias: ['gcc', 'cpp'],
|
||||
previewFilter: /^\s*#include/,
|
||||
formatter: 'clangformat',
|
||||
@@ -245,6 +245,12 @@ export const languages = {
|
||||
alias: [],
|
||||
monacoDisassembly: 'asmruby',
|
||||
},
|
||||
cmake: {
|
||||
name: 'CMake',
|
||||
monaco: 'cmake',
|
||||
extensions: ['.txt'],
|
||||
alias: [],
|
||||
},
|
||||
};
|
||||
|
||||
_.each(languages, (lang, key) => {
|
||||
|
||||
35
lib/utils.js
35
lib/utils.js
@@ -77,6 +77,15 @@ export function expandTabs(line) {
|
||||
});
|
||||
}
|
||||
|
||||
export function maskRootdir(filepath) {
|
||||
if (filepath) {
|
||||
// todo: make this compatible with local installations and windows etc
|
||||
return filepath.replace(/^\/tmp\/compiler-explorer-compiler[\w\d-.]*\//, '/app/').replace(/^\/app\//, '');
|
||||
} else {
|
||||
return filepath;
|
||||
}
|
||||
}
|
||||
|
||||
/***
|
||||
* @typedef {Object} lineTag
|
||||
* @property {string} text
|
||||
@@ -116,18 +125,33 @@ function _parseOutputLine(line, inputFilename, pathPrefix) {
|
||||
*/
|
||||
export function parseOutput(lines, inputFilename, pathPrefix) {
|
||||
const re = /^\s*<source>[(:](\d+)(:?,?(\d+):?)?[):]*\s*(.*)/;
|
||||
const reWithFilename = /^\s*([\w.]*)[(:](\d+)(:?,?(\d+):?)?[):]*\s*(.*)/;
|
||||
const result = [];
|
||||
eachLine(lines, line => {
|
||||
line = _parseOutputLine(line, inputFilename, pathPrefix);
|
||||
if (!inputFilename) {
|
||||
line = maskRootdir(line);
|
||||
}
|
||||
if (line !== null) {
|
||||
const lineObj = {text: line};
|
||||
const match = line.replace(ansiColoursRe, '').match(re);
|
||||
const filteredline = line.replace(ansiColoursRe, '');
|
||||
let match = filteredline.match(re);
|
||||
if (match) {
|
||||
lineObj.tag = {
|
||||
line: parseInt(match[1]),
|
||||
column: parseInt(match[3] || '0'),
|
||||
text: match[4].trim(),
|
||||
};
|
||||
} else {
|
||||
match = filteredline.match(reWithFilename);
|
||||
if (match) {
|
||||
lineObj.tag = {
|
||||
file: match[1],
|
||||
line: parseInt(match[2]),
|
||||
column: parseInt(match[4] || '0'),
|
||||
text: match[5].trim(),
|
||||
};
|
||||
}
|
||||
}
|
||||
result.push(lineObj);
|
||||
}
|
||||
@@ -422,3 +446,12 @@ export async function fileExists(filename) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export async function dirExists(dir) {
|
||||
try {
|
||||
const stat = await fs.stat(dir);
|
||||
return stat.isDirectory();
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
641
package-lock.json
generated
641
package-lock.json
generated
@@ -43,106 +43,18 @@
|
||||
"source-map": "^0.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/code-frame": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
|
||||
"integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/highlight": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/generator": {
|
||||
"version": "7.11.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz",
|
||||
"integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.11.5",
|
||||
"jsesc": "^2.5.1",
|
||||
"source-map": "^0.5.0"
|
||||
}
|
||||
},
|
||||
"@babel/helper-function-name": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
|
||||
"integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-get-function-arity": "^7.10.4",
|
||||
"@babel/template": "^7.10.4",
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/helper-get-function-arity": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
|
||||
"integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/helper-split-export-declaration": {
|
||||
"version": "7.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
|
||||
"integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.11.0"
|
||||
}
|
||||
},
|
||||
"@babel/helper-validator-identifier": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
|
||||
"integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/highlight": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
|
||||
"integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-validator-identifier": "^7.10.4",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"@babel/parser": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz",
|
||||
"integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/template": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
|
||||
"integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.10.4",
|
||||
"@babel/parser": "^7.10.4",
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/traverse": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz",
|
||||
"integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.10.4",
|
||||
"@babel/generator": "^7.11.5",
|
||||
"@babel/helper-function-name": "^7.10.4",
|
||||
"@babel/helper-split-export-declaration": "^7.11.0",
|
||||
"@babel/parser": "^7.11.5",
|
||||
"@babel/types": "^7.11.5",
|
||||
"debug": "^4.1.0",
|
||||
"globals": "^11.1.0",
|
||||
"lodash": "^4.17.19"
|
||||
}
|
||||
},
|
||||
"@babel/types": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
|
||||
@@ -183,12 +95,6 @@
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"dev": true
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -347,12 +253,6 @@
|
||||
"lodash": "^4.17.19",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -381,12 +281,6 @@
|
||||
"lodash": "^4.17.19",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -405,58 +299,12 @@
|
||||
"lodash": "^4.17.19"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/code-frame": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
|
||||
"integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/highlight": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/helper-split-export-declaration": {
|
||||
"version": "7.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
|
||||
"integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.11.0"
|
||||
}
|
||||
},
|
||||
"@babel/helper-validator-identifier": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
|
||||
"integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/highlight": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
|
||||
"integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-validator-identifier": "^7.10.4",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"@babel/parser": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz",
|
||||
"integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/template": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
|
||||
"integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.10.4",
|
||||
"@babel/parser": "^7.10.4",
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/types": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
|
||||
@@ -467,12 +315,6 @@
|
||||
"lodash": "^4.17.19",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -501,12 +343,6 @@
|
||||
"lodash": "^4.17.19",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -522,106 +358,12 @@
|
||||
"@babel/types": "^7.10.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/code-frame": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
|
||||
"integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/highlight": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/generator": {
|
||||
"version": "7.11.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz",
|
||||
"integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.11.5",
|
||||
"jsesc": "^2.5.1",
|
||||
"source-map": "^0.5.0"
|
||||
}
|
||||
},
|
||||
"@babel/helper-function-name": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
|
||||
"integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-get-function-arity": "^7.10.4",
|
||||
"@babel/template": "^7.10.4",
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/helper-get-function-arity": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
|
||||
"integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/helper-split-export-declaration": {
|
||||
"version": "7.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
|
||||
"integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.11.0"
|
||||
}
|
||||
},
|
||||
"@babel/helper-validator-identifier": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
|
||||
"integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/highlight": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
|
||||
"integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-validator-identifier": "^7.10.4",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"@babel/parser": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz",
|
||||
"integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/template": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
|
||||
"integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.10.4",
|
||||
"@babel/parser": "^7.10.4",
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/traverse": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz",
|
||||
"integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.10.4",
|
||||
"@babel/generator": "^7.11.5",
|
||||
"@babel/helper-function-name": "^7.10.4",
|
||||
"@babel/helper-split-export-declaration": "^7.11.0",
|
||||
"@babel/parser": "^7.11.5",
|
||||
"@babel/types": "^7.11.5",
|
||||
"debug": "^4.1.0",
|
||||
"globals": "^11.1.0",
|
||||
"lodash": "^4.17.19"
|
||||
}
|
||||
},
|
||||
"@babel/types": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
|
||||
@@ -632,27 +374,6 @@
|
||||
"lodash": "^4.17.19",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
|
||||
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -666,49 +387,12 @@
|
||||
"@babel/types": "^7.10.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/code-frame": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
|
||||
"integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/highlight": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/helper-validator-identifier": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
|
||||
"integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/highlight": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
|
||||
"integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-validator-identifier": "^7.10.4",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"@babel/parser": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz",
|
||||
"integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/template": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
|
||||
"integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.10.4",
|
||||
"@babel/parser": "^7.10.4",
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/types": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
|
||||
@@ -719,12 +403,6 @@
|
||||
"lodash": "^4.17.19",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -777,106 +455,12 @@
|
||||
"@babel/types": "^7.10.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/code-frame": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
|
||||
"integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/highlight": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/generator": {
|
||||
"version": "7.11.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz",
|
||||
"integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.11.5",
|
||||
"jsesc": "^2.5.1",
|
||||
"source-map": "^0.5.0"
|
||||
}
|
||||
},
|
||||
"@babel/helper-function-name": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
|
||||
"integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-get-function-arity": "^7.10.4",
|
||||
"@babel/template": "^7.10.4",
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/helper-get-function-arity": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
|
||||
"integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/helper-split-export-declaration": {
|
||||
"version": "7.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
|
||||
"integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/types": "^7.11.0"
|
||||
}
|
||||
},
|
||||
"@babel/helper-validator-identifier": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
|
||||
"integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/highlight": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
|
||||
"integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-validator-identifier": "^7.10.4",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"@babel/parser": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz",
|
||||
"integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/template": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
|
||||
"integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.10.4",
|
||||
"@babel/parser": "^7.10.4",
|
||||
"@babel/types": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/traverse": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz",
|
||||
"integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.10.4",
|
||||
"@babel/generator": "^7.11.5",
|
||||
"@babel/helper-function-name": "^7.10.4",
|
||||
"@babel/helper-split-export-declaration": "^7.11.0",
|
||||
"@babel/parser": "^7.11.5",
|
||||
"@babel/types": "^7.11.5",
|
||||
"debug": "^4.1.0",
|
||||
"globals": "^11.1.0",
|
||||
"lodash": "^4.17.19"
|
||||
}
|
||||
},
|
||||
"@babel/types": {
|
||||
"version": "7.11.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
|
||||
@@ -887,27 +471,6 @@
|
||||
"lodash": "^4.17.19",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
|
||||
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1033,13 +596,6 @@
|
||||
"@babel/helper-validator-identifier": "^7.9.5",
|
||||
"lodash": "^4.17.13",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@dabh/diagnostics": {
|
||||
@@ -2369,12 +1925,6 @@
|
||||
"argparse": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"dev": true
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
|
||||
@@ -2389,27 +1939,6 @@
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"temp": {
|
||||
"version": "0.9.4",
|
||||
"resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz",
|
||||
"integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mkdirp": "^0.5.1",
|
||||
"rimraf": "~2.6.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"mkdirp": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
||||
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2771,9 +2300,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"aws-sdk": {
|
||||
"version": "2.917.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.917.0.tgz",
|
||||
"integrity": "sha512-9dYbmj2X6AcBOVrjajJbfNTTzQUJ88ZJZ0qpg/nTGn12BDAEEDY0h+woOkz5vF7+ZEHnAPxQHdsyOApFLqeiXQ==",
|
||||
"version": "2.918.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.918.0.tgz",
|
||||
"integrity": "sha512-ZjWanOA1Zo664EyWLCnbUlkwCjoRPmSIMx529W4gk1418qo3oCEcvUy1HeibGGIClYnZZ7J4FMQvVDm2+JtHLQ==",
|
||||
"requires": {
|
||||
"buffer": "4.9.2",
|
||||
"events": "1.1.1",
|
||||
@@ -4949,13 +4478,13 @@
|
||||
}
|
||||
},
|
||||
"deep-equal-in-any-order": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/deep-equal-in-any-order/-/deep-equal-in-any-order-1.1.4.tgz",
|
||||
"integrity": "sha512-yigFzn8ynCxq7ECTXiH/sS3as0QZaXDeSY6QmXPA67C+TwfilSh2AkNMrmmCYp+dh/UcA7UHTmpC7qwT4zEOLA==",
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/deep-equal-in-any-order/-/deep-equal-in-any-order-1.1.6.tgz",
|
||||
"integrity": "sha512-8/mJXBxWouNzoEUxwHt27tf0UpldfV6TSmcVJqwxcyg6HsO6m68TzoRON53dQSvp4HrjrRF3N8Sot7ZJG9a7Ug==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash.mapvalues": "^4.6.0",
|
||||
"sort-any": "^1.2.2"
|
||||
"sort-any": "^1.2.3"
|
||||
}
|
||||
},
|
||||
"deep-extend": {
|
||||
@@ -5690,42 +5219,6 @@
|
||||
"@babel/highlight": "^7.10.4"
|
||||
}
|
||||
},
|
||||
"@babel/helper-validator-identifier": {
|
||||
"version": "7.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
|
||||
"integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==",
|
||||
"dev": true
|
||||
},
|
||||
"@babel/highlight": {
|
||||
"version": "7.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz",
|
||||
"integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-validator-identifier": "^7.14.0",
|
||||
"chalk": "^2.0.0",
|
||||
"js-tokens": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
|
||||
@@ -5899,12 +5392,6 @@
|
||||
"supports-hyperlinks": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
|
||||
@@ -5969,15 +5456,6 @@
|
||||
"strip-ansi": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
|
||||
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
|
||||
@@ -6107,23 +5585,6 @@
|
||||
"requires": {
|
||||
"eslint-utils": "^2.0.0",
|
||||
"regexpp": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"eslint-utils": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
|
||||
"integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"eslint-visitor-keys": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"regexpp": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
|
||||
"integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-plugin-header": {
|
||||
@@ -6132,9 +5593,9 @@
|
||||
"integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg=="
|
||||
},
|
||||
"eslint-plugin-import": {
|
||||
"version": "2.23.3",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.3.tgz",
|
||||
"integrity": "sha512-wDxdYbSB55F7T5CC7ucDjY641VvKmlRwT0Vxh7PkY1mI4rclVRFWYfsrjDgZvwYYDZ5ee0ZtfFKXowWjqvEoRQ==",
|
||||
"version": "2.23.4",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz",
|
||||
"integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"array-includes": "^3.1.3",
|
||||
@@ -6311,15 +5772,6 @@
|
||||
"semver": "^6.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"eslint-utils": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
|
||||
"integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"eslint-visitor-keys": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"ignore": {
|
||||
"version": "5.1.8",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
|
||||
@@ -7410,11 +6862,6 @@
|
||||
"universalify": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"graceful-fs": {
|
||||
"version": "4.2.6",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
|
||||
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
||||
@@ -7757,10 +7204,9 @@
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.1.15",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
|
||||
"integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
|
||||
"dev": true
|
||||
"version": "4.2.6",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
|
||||
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
|
||||
},
|
||||
"growl": {
|
||||
"version": "1.10.5",
|
||||
@@ -8248,6 +7694,11 @@
|
||||
"minimatch": "^3.0.4"
|
||||
}
|
||||
},
|
||||
"immediate": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
||||
"integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
|
||||
},
|
||||
"import-fresh": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
|
||||
@@ -9086,6 +8537,17 @@
|
||||
"promise": "^7.0.1"
|
||||
}
|
||||
},
|
||||
"jszip": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz",
|
||||
"integrity": "sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==",
|
||||
"requires": {
|
||||
"lie": "~3.3.0",
|
||||
"pako": "~1.0.2",
|
||||
"readable-stream": "~2.3.6",
|
||||
"set-immediate-shim": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"just-extend": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz",
|
||||
@@ -9164,6 +8626,14 @@
|
||||
"type-check": "~0.4.0"
|
||||
}
|
||||
},
|
||||
"lie": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
|
||||
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
|
||||
"requires": {
|
||||
"immediate": "~3.0.5"
|
||||
}
|
||||
},
|
||||
"lines-and-columns": {
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
|
||||
@@ -9993,9 +9463,9 @@
|
||||
}
|
||||
},
|
||||
"monaco-vim": {
|
||||
"version": "0.1.14",
|
||||
"resolved": "https://registry.npmjs.org/monaco-vim/-/monaco-vim-0.1.14.tgz",
|
||||
"integrity": "sha512-siSYnbUZ8jcrB3mHoRWJUbfdLxh39pXz0heD4ERC81/ZAx1KNgfchM22pQN/pRTsDU+2bRn5h3v+vdVa6dpn1A=="
|
||||
"version": "0.1.15",
|
||||
"resolved": "https://registry.npmjs.org/monaco-vim/-/monaco-vim-0.1.15.tgz",
|
||||
"integrity": "sha512-n8pcRikICk67y90tYHiHfsE/eHHjDsZUZ5xiDjPfsgis+AoXiNC6Gc2JQWyig5/c2m94X0oCr9/J5Sp1mupT1A=="
|
||||
},
|
||||
"morgan": {
|
||||
"version": "1.10.0",
|
||||
@@ -11157,8 +10627,7 @@
|
||||
"pako": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
|
||||
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
|
||||
},
|
||||
"parallel-transform": {
|
||||
"version": "1.2.0",
|
||||
@@ -13205,6 +12674,11 @@
|
||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
||||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
||||
},
|
||||
"set-immediate-shim": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
|
||||
"integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
|
||||
},
|
||||
"set-value": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
|
||||
@@ -13584,9 +13058,9 @@
|
||||
}
|
||||
},
|
||||
"sort-any": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/sort-any/-/sort-any-1.2.3.tgz",
|
||||
"integrity": "sha512-yJLpmCgDOu7Z6XS6ofzcKRy/Id8yfGB8KkzC7oKAk1F7P3jPWEU8GMxBJWDo5fKp71JYY1bJ8tmaHBfoTx+y8w==",
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/sort-any/-/sort-any-1.2.5.tgz",
|
||||
"integrity": "sha512-Dac7ma4LV1oS3vefzbaqxVVae7n4LcOP4SDY2tECBOJT2BoQFB9XC7IgC33P+gYsJH6HUhRNyQGdB/f2KNKW+g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "^4.17.21"
|
||||
@@ -14562,12 +14036,6 @@
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
|
||||
"integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
|
||||
"dev": true
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
||||
@@ -16404,17 +15872,6 @@
|
||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
||||
"dev": true
|
||||
},
|
||||
"string-width": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
||||
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"emoji-regex": "^7.0.1",
|
||||
"is-fullwidth-code-point": "^2.0.0",
|
||||
"strip-ansi": "^5.1.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"http-proxy": "^1.18.1",
|
||||
"jquery": "^3.6.0",
|
||||
"js-cookie": "^2.2.1",
|
||||
"jszip": "^3.6.0",
|
||||
"lodash": "^4.17.21",
|
||||
"lodash.clonedeep": "^4.5.0",
|
||||
"lru-cache": "^5.1.1",
|
||||
|
||||
@@ -206,6 +206,43 @@ CompilerService.prototype.submit = function (request) {
|
||||
}, this));
|
||||
};
|
||||
|
||||
CompilerService.prototype.submitCMake = function (request) {
|
||||
request.allowStoreCodeDebug = this.allowStoreCodeDebug;
|
||||
var jsonRequest = JSON.stringify(request);
|
||||
if (options.doCache) {
|
||||
var cachedResult = this.cache.get(jsonRequest);
|
||||
if (cachedResult) {
|
||||
return Promise.resolve({
|
||||
request: request,
|
||||
result: cachedResult,
|
||||
localCacheHit: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
return new Promise(_.bind(function (resolve, reject) {
|
||||
var bindHandler = _.partial(handleRequestError, request, reject);
|
||||
var compilerId = encodeURIComponent(request.compiler);
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: window.location.origin + this.base + 'api/compiler/' + compilerId + '/cmake',
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
data: jsonRequest,
|
||||
success: _.bind(function (result) {
|
||||
if (result && result.okToCache && options.doCache) {
|
||||
this.cache.set(jsonRequest, result);
|
||||
}
|
||||
resolve({
|
||||
request: request,
|
||||
result: result,
|
||||
localCacheHit: false,
|
||||
});
|
||||
}, this),
|
||||
error: bindHandler,
|
||||
});
|
||||
}, this));
|
||||
};
|
||||
|
||||
CompilerService.prototype.requestPopularArguments = function (compilerId, options) {
|
||||
return new Promise(_.bind(function (resolve, reject) {
|
||||
var bindHandler = _.partial(handleRequestError, compilerId, reject);
|
||||
|
||||
@@ -46,6 +46,13 @@ module.exports = {
|
||||
},
|
||||
};
|
||||
},
|
||||
getCompilerForTree: function (treeId, lang) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'compiler',
|
||||
componentState: {tree: treeId, lang: lang},
|
||||
};
|
||||
},
|
||||
getExecutor: function (editorId, lang) {
|
||||
return {
|
||||
type: 'component',
|
||||
@@ -53,12 +60,13 @@ module.exports = {
|
||||
componentState: {source: editorId, lang: lang},
|
||||
};
|
||||
},
|
||||
getExecutorWith: function (editorId, lang, compilerId, libraries, compilerArgs) {
|
||||
getExecutorWith: function (editorId, lang, compilerId, libraries, compilerArgs, treeId) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'executor',
|
||||
componentState: {
|
||||
source: editorId,
|
||||
tree: treeId,
|
||||
lang: lang,
|
||||
compiler: compilerId,
|
||||
libs: libraries,
|
||||
@@ -66,6 +74,13 @@ module.exports = {
|
||||
},
|
||||
};
|
||||
},
|
||||
getExecutorForTree: function (treeId, lang) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'executor',
|
||||
componentState: {tree: treeId, lang: lang},
|
||||
};
|
||||
},
|
||||
getEditor: function (id, langId) {
|
||||
return {
|
||||
type: 'component',
|
||||
@@ -80,14 +95,21 @@ module.exports = {
|
||||
componentState: {id: id, source: source, options: options},
|
||||
};
|
||||
},
|
||||
getOutput: function (compiler, editor) {
|
||||
getTree: function (id) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'tree',
|
||||
componentState: {id: id},
|
||||
};
|
||||
},
|
||||
getOutput: function (compiler, editor, tree) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'output',
|
||||
componentState: {compiler: compiler, editor: editor},
|
||||
componentState: {compiler: compiler, editor: editor, tree: tree},
|
||||
};
|
||||
},
|
||||
getToolViewWith: function (compiler, editor, toolId, args, monacoStdin) {
|
||||
getToolViewWith: function (compiler, editor, toolId, args, monacoStdin, tree) {
|
||||
return {
|
||||
type: 'component',
|
||||
componentName: 'tool',
|
||||
@@ -96,6 +118,7 @@ module.exports = {
|
||||
editor: editor,
|
||||
toolId: toolId,
|
||||
args: args,
|
||||
tree: tree,
|
||||
monacoStdin: monacoStdin,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -801,3 +801,25 @@ html[data-theme=dark] {
|
||||
.status-icon {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.tree-editor-file {
|
||||
cursor: pointer;
|
||||
line-height: 14px;
|
||||
padding: 0px 0px 0px 5px;
|
||||
}
|
||||
.tree-editor-file span {
|
||||
font-family: inherit;
|
||||
float: left;
|
||||
margin-top: 6px;
|
||||
}
|
||||
.tree-editor-file button {
|
||||
float: right;
|
||||
padding: 4px 10px 4px 0px;
|
||||
}
|
||||
.mainbar .cmake-project {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.v-scroll {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
128
static/hub.js
128
static/hub.js
@@ -28,6 +28,7 @@ var _ = require('underscore');
|
||||
var Sentry = require('@sentry/browser');
|
||||
var editor = require('./panes/editor');
|
||||
var compiler = require('./panes/compiler');
|
||||
var tree = require('./panes/tree');
|
||||
var executor = require('./panes/executor');
|
||||
var output = require('./panes/output');
|
||||
var tool = require('./panes/tool');
|
||||
@@ -72,6 +73,9 @@ function Hub(layout, subLangId, defaultLangId) {
|
||||
this.editorIds = new Ids();
|
||||
this.compilerIds = new Ids();
|
||||
this.executorIds = new Ids();
|
||||
this.treeIds = new Ids();
|
||||
this.trees = [];
|
||||
this.editors = [];
|
||||
this.compilerService = new CompilerService(layout.eventHub);
|
||||
this.deferred = true;
|
||||
this.deferredEmissions = [];
|
||||
@@ -91,6 +95,10 @@ function Hub(layout, subLangId, defaultLangId) {
|
||||
function (container, state) {
|
||||
return self.compilerFactory(container, state);
|
||||
});
|
||||
layout.registerComponent(Components.getTree().componentName,
|
||||
function (container, state) {
|
||||
return self.treeFactory(container, state);
|
||||
});
|
||||
layout.registerComponent(Components.getExecutor().componentName,
|
||||
function (container, state) {
|
||||
return self.executorFactory(container, state);
|
||||
@@ -160,6 +168,12 @@ function Hub(layout, subLangId, defaultLangId) {
|
||||
layout.eventHub.on('compilerClose', function (id) {
|
||||
this.compilerIds.remove(id);
|
||||
}, this);
|
||||
layout.eventHub.on('treeOpen', function (id) {
|
||||
this.treeIds.add(id);
|
||||
}, this);
|
||||
layout.eventHub.on('treeClose', function (id) {
|
||||
this.treeIds.remove(id);
|
||||
}, this);
|
||||
layout.eventHub.on('executorOpen', function (id) {
|
||||
this.executorIds.add(id);
|
||||
}, this);
|
||||
@@ -177,12 +191,32 @@ function Hub(layout, subLangId, defaultLangId) {
|
||||
Hub.prototype.undefer = function () {
|
||||
this.deferred = false;
|
||||
var eventHub = this.layout.eventHub;
|
||||
var compilerEmissions = [];
|
||||
var nonCompilerEmissions = [];
|
||||
|
||||
_.each(this.deferredEmissions, function (args) {
|
||||
if (args[0] === 'compiler') {
|
||||
compilerEmissions.push(args);
|
||||
} else {
|
||||
nonCompilerEmissions.push(args);
|
||||
}
|
||||
});
|
||||
|
||||
_.each(nonCompilerEmissions, function (args) {
|
||||
eventHub.emit.apply(eventHub, args);
|
||||
});
|
||||
|
||||
_.each(compilerEmissions, function (args) {
|
||||
eventHub.emit.apply(eventHub, args);
|
||||
});
|
||||
|
||||
this.deferredEmissions = [];
|
||||
};
|
||||
|
||||
Hub.prototype.nextTreeId = function () {
|
||||
return this.treeIds.next();
|
||||
};
|
||||
|
||||
Hub.prototype.nextEditorId = function () {
|
||||
return this.editorIds.next();
|
||||
};
|
||||
@@ -200,7 +234,39 @@ Hub.prototype.codeEditorFactory = function (container, state) {
|
||||
// NB there doesn't seem to be a better way to do this than reach into the config and rely on the fact nothing
|
||||
// has used it yet.
|
||||
container.parent.config.isClosable = true;
|
||||
return new editor.Editor(this, state, container);
|
||||
var editorObj = new editor.Editor(this, state, container);
|
||||
this.editors.push(editorObj);
|
||||
};
|
||||
|
||||
Hub.prototype.treeFactory = function (container, state) {
|
||||
var treeObj = new tree.Tree(this, state, container);
|
||||
this.trees.push(treeObj);
|
||||
|
||||
return treeObj;
|
||||
};
|
||||
|
||||
Hub.prototype.getTreeById = function (treeId) {
|
||||
return _.find(this.trees, function (treeObj) {
|
||||
return treeObj.id === treeId;
|
||||
});
|
||||
};
|
||||
|
||||
Hub.prototype.removeTree = function (treeId) {
|
||||
this.trees = _.filter(this.trees, function (treeObj) {
|
||||
return treeObj.id !== treeId;
|
||||
});
|
||||
};
|
||||
|
||||
Hub.prototype.getEditorById = function (editorId) {
|
||||
return _.find(this.editors, function (editorObj) {
|
||||
return editorObj.id === editorId;
|
||||
});
|
||||
};
|
||||
|
||||
Hub.prototype.removeEditor = function (editorId) {
|
||||
this.editors = _.filter(this.editors, function (editorObj) {
|
||||
return editorObj.id !== editorId;
|
||||
});
|
||||
};
|
||||
|
||||
Hub.prototype.compilerFactory = function (container, state) {
|
||||
@@ -330,6 +396,61 @@ Hub.prototype.findParentRowOrColumn = function (elem) {
|
||||
return elem;
|
||||
};
|
||||
|
||||
Hub.prototype.findParentRowOrColumnOrStack = function (elem) {
|
||||
while (elem) {
|
||||
if (elem.isRow || elem.isColumn || elem.isStack) return elem;
|
||||
elem = elem.parent;
|
||||
}
|
||||
return elem;
|
||||
};
|
||||
|
||||
Hub.prototype.hasTree = function () {
|
||||
return (this.trees.length > 0);
|
||||
};
|
||||
|
||||
Hub.prototype.getTreesWithEditorId = function (editorId) {
|
||||
return _.filter(this.trees, function (tree) {
|
||||
return tree.multifileService.isEditorPartOfProject(editorId);
|
||||
});
|
||||
};
|
||||
|
||||
Hub.prototype.getTrees = function () {
|
||||
return this.trees;
|
||||
};
|
||||
|
||||
Hub.prototype.findEditorInChildren = function (elem) {
|
||||
var count = elem.contentItems.length;
|
||||
var idx = 0;
|
||||
while (idx < count) {
|
||||
var child = elem.contentItems[idx];
|
||||
|
||||
if (child.componentName === 'codeEditor') {
|
||||
return this.findParentRowOrColumnOrStack(child);
|
||||
} else {
|
||||
if (child.isRow || child.isColumn || child.isStack) {
|
||||
var editorFound = this.findEditorInChildren(child);
|
||||
if (editorFound) return editorFound;
|
||||
}
|
||||
}
|
||||
idx++;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
Hub.prototype.findEditorParentRowOrColumn = function () {
|
||||
return this.findEditorInChildren(this.layout.root);
|
||||
};
|
||||
|
||||
Hub.prototype.addInEditorStackIfPossible = function (newElem) {
|
||||
var insertPoint = this.findEditorParentRowOrColumn();
|
||||
if (insertPoint) {
|
||||
insertPoint.addChild(newElem);
|
||||
} else {
|
||||
this.addAtRoot(newElem);
|
||||
}
|
||||
};
|
||||
|
||||
Hub.prototype.addAtRoot = function (newElem) {
|
||||
var rootFirstItem = this.layout.root.contentItems[0];
|
||||
if (rootFirstItem) {
|
||||
@@ -349,4 +470,9 @@ Hub.prototype.addAtRoot = function (newElem) {
|
||||
}
|
||||
};
|
||||
|
||||
Hub.prototype.activateTabForContainer = function (container) {
|
||||
if (container && container.tab)
|
||||
container.tab.header.parent.setActiveContentItem(container.tab.contentItem);
|
||||
};
|
||||
|
||||
module.exports = Hub;
|
||||
|
||||
121
static/line-colouring.ts
Normal file
121
static/line-colouring.ts
Normal file
@@ -0,0 +1,121 @@
|
||||
import _ from 'underscore';
|
||||
import { MultifileService } from './multifile-service';
|
||||
|
||||
class ColouredSourcelineInfo {
|
||||
sourceLine: number;
|
||||
compilerId: number;
|
||||
compilerLine: number;
|
||||
colourIdx: number;
|
||||
};
|
||||
|
||||
export class LineColouring {
|
||||
private colouredSourceLinesByEditor: Object;
|
||||
private multifileService: MultifileService;
|
||||
private linesAndColourByCompiler: Object;
|
||||
private linesAndColourByEditor: Object;
|
||||
|
||||
constructor(multifileService: MultifileService) {
|
||||
this.multifileService = multifileService;
|
||||
|
||||
this.clear();
|
||||
}
|
||||
|
||||
public clear() {
|
||||
this.colouredSourceLinesByEditor = [];
|
||||
this.linesAndColourByCompiler = {};
|
||||
this.linesAndColourByEditor = {};
|
||||
}
|
||||
|
||||
public addFromAssembly(compilerId, asm) {
|
||||
let asmLineIdx = 0;
|
||||
for (const asmLine of asm ) {
|
||||
if (asmLine.source && asmLine.source.line > 0) {
|
||||
const editorId = this.multifileService.getEditorIdByFilename(asmLine.source.file);
|
||||
if (editorId > 0) {
|
||||
if (!this.colouredSourceLinesByEditor[editorId]) {
|
||||
this.colouredSourceLinesByEditor[editorId] = new Array<ColouredSourcelineInfo>();
|
||||
}
|
||||
|
||||
if (!this.linesAndColourByCompiler[compilerId]) {
|
||||
this.linesAndColourByCompiler[compilerId] = {};
|
||||
}
|
||||
|
||||
if (!this.linesAndColourByEditor[editorId]) {
|
||||
this.linesAndColourByEditor[editorId] = {};
|
||||
}
|
||||
|
||||
this.colouredSourceLinesByEditor[editorId].push({
|
||||
sourceLine: asmLine.source.line - 1,
|
||||
compilerId: compilerId,
|
||||
compilerLine: asmLineIdx,
|
||||
colourIdx: -1,
|
||||
});
|
||||
}
|
||||
}
|
||||
asmLineIdx++;
|
||||
}
|
||||
}
|
||||
|
||||
private getUniqueLinesForEditor(editorId: number) {
|
||||
const lines = [];
|
||||
|
||||
for (const info of this.colouredSourceLinesByEditor[editorId]) {
|
||||
if (!lines.includes(info.sourceLine))
|
||||
lines.push(info.sourceLine);
|
||||
}
|
||||
|
||||
return lines;
|
||||
}
|
||||
|
||||
private setColourBySourceline(editorId: number, line: number, colourIdx: number) {
|
||||
for (const info of this.colouredSourceLinesByEditor[editorId]) {
|
||||
if (info.sourceLine === line) {
|
||||
info.colourIdx = colourIdx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public calculate() {
|
||||
let colourIdx = 0;
|
||||
|
||||
for (const editorIdStr of _.keys(this.colouredSourceLinesByEditor)) {
|
||||
const editorId = parseInt(editorIdStr);
|
||||
|
||||
const lines = this.getUniqueLinesForEditor(editorId);
|
||||
for (const line of lines) {
|
||||
this.setColourBySourceline(editorId, line, colourIdx);
|
||||
colourIdx++;
|
||||
}
|
||||
}
|
||||
|
||||
const compilerIds = _.keys(this.linesAndColourByCompiler);
|
||||
const editorIds = _.keys(this.linesAndColourByEditor);
|
||||
|
||||
for (const compilerIdStr of compilerIds) {
|
||||
const compilerId = parseInt(compilerIdStr);
|
||||
for (const editorId of _.keys(this.colouredSourceLinesByEditor)) {
|
||||
for (const info of this.colouredSourceLinesByEditor[editorId]) {
|
||||
if (info.compilerId === compilerId && info.colourIdx >= 0) {
|
||||
this.linesAndColourByCompiler[compilerId][info.compilerLine] = info.colourIdx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const editorId of editorIds) {
|
||||
for (const info of this.colouredSourceLinesByEditor[editorId]) {
|
||||
if (info.colourIdx >= 0) {
|
||||
this.linesAndColourByEditor[editorId][info.sourceLine] = info.colourIdx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public getColoursForCompiler(compilerId: number): Object {
|
||||
return this.linesAndColourByCompiler[compilerId];
|
||||
}
|
||||
|
||||
public getColoursForEditor(editorId: number): Object {
|
||||
return this.linesAndColourByEditor[editorId];
|
||||
}
|
||||
};
|
||||
@@ -139,7 +139,7 @@ LoadSave.prototype.onLocalFile = function (event) {
|
||||
var file = files[0];
|
||||
var reader = new FileReader();
|
||||
reader.onload = _.bind(function () {
|
||||
this.onLoad(reader.result);
|
||||
this.onLoad(reader.result, file.name);
|
||||
}, this);
|
||||
reader.readAsText(file);
|
||||
}
|
||||
|
||||
@@ -258,6 +258,16 @@ function configFromEmbedded(embeddedUrl) {
|
||||
}
|
||||
}
|
||||
|
||||
function fixBugsInConfig(config) {
|
||||
if (config.activeItemIndex && config.activeItemIndex >= config.content.length) {
|
||||
config.activeItemIndex = config.content.length - 1;
|
||||
}
|
||||
|
||||
_.each(config.content, function (item) {
|
||||
fixBugsInConfig(item);
|
||||
});
|
||||
}
|
||||
|
||||
function findConfig(defaultConfig, options) {
|
||||
var config;
|
||||
if (!options.embedded) {
|
||||
@@ -295,6 +305,10 @@ function findConfig(defaultConfig, options) {
|
||||
},
|
||||
}, configFromEmbedded(window.location.hash.substr(1)));
|
||||
}
|
||||
|
||||
removeOrphanedMaximisedItemFromConfig(config);
|
||||
fixBugsInConfig(config);
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
@@ -473,7 +487,6 @@ function start() {
|
||||
}
|
||||
|
||||
var config = findConfig(defaultConfig, options);
|
||||
removeOrphanedMaximisedItemFromConfig(config);
|
||||
|
||||
var root = $('#root');
|
||||
|
||||
@@ -493,6 +506,10 @@ function start() {
|
||||
hub = new Hub(layout, subLangId, defaultLangId);
|
||||
}
|
||||
|
||||
if (hub.hasTree()) {
|
||||
$('#add-tree').prop('disabled', true);
|
||||
}
|
||||
|
||||
function sizeRoot() {
|
||||
var height = $(window).height() - (root.position().top || 0) - ($('#simplecook:visible').height() || 0);
|
||||
root.height(height);
|
||||
@@ -521,7 +538,11 @@ function start() {
|
||||
function setupAdd(thing, func) {
|
||||
layout.createDragSource(thing, func);
|
||||
thing.click(function () {
|
||||
hub.addAtRoot(func());
|
||||
if (hub.hasTree()) {
|
||||
hub.addInEditorStackIfPossible(func());
|
||||
} else {
|
||||
hub.addAtRoot(func());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -531,6 +552,10 @@ function start() {
|
||||
setupAdd($('#add-diff'), function () {
|
||||
return Components.getDiff();
|
||||
});
|
||||
setupAdd($('#add-tree'), function () {
|
||||
$('#add-tree').prop('disabled', true);
|
||||
return Components.getTree();
|
||||
});
|
||||
|
||||
if (hashPart) {
|
||||
var element = $(hashPart);
|
||||
|
||||
@@ -41,3 +41,4 @@ require('../modes/nim-mode');
|
||||
require('../modes/ocaml-mode');
|
||||
require('../modes/openclc-mode');
|
||||
require('../modes/zig-mode');
|
||||
require('../modes/cmake-mode');
|
||||
|
||||
104
static/modes/cmake-mode.js
Normal file
104
static/modes/cmake-mode.js
Normal file
@@ -0,0 +1,104 @@
|
||||
// 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.
|
||||
|
||||
'use strict';
|
||||
var monaco = require('monaco-editor');
|
||||
|
||||
function definition() {
|
||||
return {
|
||||
symbols: /[=><!~?&|+\-*/^;.,]+/,
|
||||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
|
||||
tokenizer: {
|
||||
root: [
|
||||
[/(add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_libraries|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)/,
|
||||
'keyword'],
|
||||
[/\b((CMAKE_)?(CXX_STANDARD|CXX_FLAGS|CMAKE_CXX_FLAGS_DEBUG|CMAKE_CXX_FLAGS_MINSIZEREL|CMAKE_CXX_FLAGS_RELEASE|CMAKE_CXX_FLAGS_RELWITHDEBINFO))\b/,
|
||||
'variable'],
|
||||
[/\b(ABSOLUTE|AND|BOOL|CACHE|COMMAND|COMMENT|DEFINED|DOC|EQUAL|EXISTS|EXT|FALSE|GREATER|GREATER_EQUAL|INTERNAL|IN_LIST|IS_ABSOLUTE|IS_DIRECTORY|IS_NEWER_THAN|IS_SYMLINK|LESS|LESS_EQUAL|MATCHES|NAME|NAMES|NAME_WE|NOT|OFF|ON|OR|PATH|PATHS|POLICY|PROGRAM|STREQUAL|STRGREATER|STRGREATER_EQUAL|STRING|STRLESS|STRLESS_EQUAL|TARGET|TEST|TRUE|VERSION_EQUAL|VERSION_GREATER|VERSION_GREATER_EQUAL|VERSION_LESS)\b/,
|
||||
'keyword'],
|
||||
[/\b((APPLE|BORLAND|(CMAKE_)?(CL_64|COMPILER_2005|HOST_APPLE|HOST_SYSTEM|HOST_SYSTEM_NAME|HOST_SYSTEM_PROCESSOR|HOST_SYSTEM_VERSION|HOST_UNIX|HOST_WIN32|LIBRARY_ARCHITECTURE|LIBRARY_ARCHITECTURE_REGEX|OBJECT_PATH_MAX|SYSTEM|SYSTEM_NAME|SYSTEM_PROCESSOR|SYSTEM_VERSION)|CYGWIN|MSVC|MSVC80|MSVC_IDE|MSVC_VERSION|UNIX|WIN32|XCODE_VERSION|MSVC60|MSVC70|MSVC90|MSVC71))\b/,
|
||||
'variable'],
|
||||
[/\b(BUILD_SHARED_LIBS|(CMAKE_)?(ABSOLUTE_DESTINATION_FILES|AUTOMOC_RELAXED_MODE|BACKWARDS_COMPATIBILITY|BUILD_TYPE|COLOR_MAKEFILE|CONFIGURATION_TYPES|DEBUG_TARGET_PROPERTIES|DISABLE_FIND_PACKAGE_\w+|FIND_LIBRARY_PREFIXES|FIND_LIBRARY_SUFFIXES|IGNORE_PATH|INCLUDE_PATH|INSTALL_DEFAULT_COMPONENT_NAME|INSTALL_PREFIX|LIBRARY_PATH|MFC_FLAG|MODULE_PATH|NOT_USING_CONFIG_FLAGS|POLICY_DEFAULT_CMP\w+|PREFIX_PATH|PROGRAM_PATH|SKIP_INSTALL_ALL_DEPENDENCY|SYSTEM_IGNORE_PATH|SYSTEM_INCLUDE_PATH|SYSTEM_LIBRARY_PATH|SYSTEM_PREFIX_PATH|SYSTEM_PROGRAM_PATH|USER_MAKE_RULES_OVERRIDE|WARN_ON_ABSOLUTE_INSTALL_DESTINATION))\b/,
|
||||
'keyword'],
|
||||
{ include: '@whitespace' },
|
||||
{ include: '@builtins' },
|
||||
],
|
||||
builtins: [
|
||||
[/\$\{\w+\}/, 'variable'],
|
||||
[/\d*\.\d+([eE][-+]?\d+)?/, 'number.float'],
|
||||
[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, 'number.hex'],
|
||||
[/\d+/, 'number'],
|
||||
[/"/, 'string', '@string."'],
|
||||
[/'/, 'string', '@string.\''],
|
||||
],
|
||||
whitespace: [
|
||||
[/[ \t\r\n]+/, ''],
|
||||
[/#.*$/, 'comment'],
|
||||
],
|
||||
string: [
|
||||
[/[^\\"'%]+/, { cases: { '@eos': { token: 'string', next: '@popall' }, '@default': 'string' } }],
|
||||
[/@escapes/, 'string.escape'],
|
||||
[/\\./, 'string.escape.invalid'],
|
||||
[/\$\{[\w ]+\}/, 'variable'],
|
||||
[/["']/, { cases: { '$#==$S2': { token: 'string', next: '@pop' }, '@default': 'string' } }],
|
||||
[/$/, 'string', '@popall'],
|
||||
],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function configuration() {
|
||||
return {
|
||||
indentationRules: {
|
||||
decreaseIndentPattern: /^(.*\*\/)?\s*\}.*$/,
|
||||
increaseIndentPattern: /^.*\{[^}"']*$/,
|
||||
},
|
||||
wordPattern: /(-?\d*\.\d\w*)|([^`~!@#%^&*()\-=+[{\]}\\|;:'",.<>/?\s]+)/g,
|
||||
comments: {
|
||||
lineComment: '#',
|
||||
},
|
||||
brackets: [
|
||||
['{', '}'],
|
||||
['(', ')'],
|
||||
],
|
||||
__electricCharacterSupport: {
|
||||
brackets: [
|
||||
{ tokenType: 'delimiter.curly.ts', open: '{', close: '}', isElectric: true },
|
||||
{ tokenType: 'delimiter.square.ts', open: '[', close: ']', isElectric: true },
|
||||
{ tokenType: 'delimiter.paren.ts', open: '(', close: ')', isElectric: true },
|
||||
],
|
||||
},
|
||||
__characterPairSupport: {
|
||||
autoClosingPairs: [
|
||||
{ open: '{', close: '}' },
|
||||
{ open: '(', close: ')' },
|
||||
{ open: '"', close: '"', notIn: ['string'] },
|
||||
],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
monaco.languages.register({ id: 'cmake' });
|
||||
monaco.languages.setMonarchTokensProvider('cmake', definition());
|
||||
monaco.languages.setLanguageConfiguration('cmake', configuration());
|
||||
484
static/multifile-service.ts
Normal file
484
static/multifile-service.ts
Normal file
@@ -0,0 +1,484 @@
|
||||
import _ from 'underscore';
|
||||
import path from 'path';
|
||||
var options = require('./options');
|
||||
var languages = options.languages;
|
||||
var JSZip = require('jszip');
|
||||
|
||||
export class MultifileFile {
|
||||
fileId: number;
|
||||
isIncluded: boolean;
|
||||
isOpen: boolean;
|
||||
isMainSource: boolean;
|
||||
filename: string;
|
||||
content: string;
|
||||
editorId: number;
|
||||
langId: string;
|
||||
}
|
||||
|
||||
export class FiledataPair {
|
||||
filename: string;
|
||||
contents: string;
|
||||
}
|
||||
|
||||
export class MultifileServiceState {
|
||||
isCMakeProject: boolean;
|
||||
compilerLanguageId: string;
|
||||
files: MultifileFile[];
|
||||
newFileId: number;
|
||||
}
|
||||
|
||||
export class MultifileService {
|
||||
private files: Array<MultifileFile>;
|
||||
private compilerLanguageId: string;
|
||||
private isCMakeProject: boolean;
|
||||
private hub: any;
|
||||
private newFileId: number;
|
||||
private alertSystem: any;
|
||||
private validExtraFilenameExtensions: string[];
|
||||
private defaultLangIdUnknownExt: string;
|
||||
private cmakeLangId: string;
|
||||
private cmakeMainSourceFilename: string;
|
||||
private maxFilesize: number;
|
||||
|
||||
constructor(hub, alertSystem, state: MultifileServiceState) {
|
||||
this.hub = hub;
|
||||
this.alertSystem = alertSystem;
|
||||
|
||||
this.isCMakeProject = state.isCMakeProject || false;
|
||||
this.compilerLanguageId = state.compilerLanguageId || '';
|
||||
this.files = state.files || [];
|
||||
this.newFileId = state.newFileId || 1;
|
||||
|
||||
this.validExtraFilenameExtensions = ['.txt', '.md', '.rst', '.sh', '.cmake', '.in'];
|
||||
this.defaultLangIdUnknownExt = 'c++';
|
||||
this.cmakeLangId = 'cmake';
|
||||
this.cmakeMainSourceFilename = 'CMakeLists.txt';
|
||||
this.maxFilesize = 1024000;
|
||||
}
|
||||
|
||||
private isHiddenFile(filename: string): boolean {
|
||||
return (filename.length > 0 && filename[0] === '.');
|
||||
}
|
||||
|
||||
private isValidFilename(filename: string): boolean {
|
||||
if (this.isHiddenFile(filename)) return false;
|
||||
|
||||
const filenameExt = path.extname(filename);
|
||||
if (this.validExtraFilenameExtensions.includes(filenameExt)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return _.any(languages, (lang) => {
|
||||
return lang.extensions.includes(filenameExt);
|
||||
});
|
||||
}
|
||||
|
||||
private isCMakeFile(filename: string): boolean {
|
||||
const filenameExt = path.extname(filename);
|
||||
if (filenameExt === '.cmake' || filenameExt === '.in') {
|
||||
return true;
|
||||
}
|
||||
|
||||
return path.basename(filename) === this.cmakeMainSourceFilename;
|
||||
}
|
||||
|
||||
private getLanguageIdFromFilename(filename: string): string {
|
||||
const filenameExt = path.extname(filename);
|
||||
|
||||
const possibleLang = _.filter(languages, (lang) => {
|
||||
return lang.extensions.includes(filenameExt);
|
||||
});
|
||||
|
||||
if (possibleLang.length > 0) {
|
||||
return possibleLang[0].id;
|
||||
}
|
||||
|
||||
if (this.isCMakeFile(filename)) {
|
||||
return this.cmakeLangId;
|
||||
}
|
||||
|
||||
return this.defaultLangIdUnknownExt;
|
||||
}
|
||||
|
||||
public async loadProjectFromFile(f, callback) {
|
||||
this.files = [];
|
||||
this.newFileId = 1;
|
||||
|
||||
const zipFilename = path.basename(f.name, '.zip');
|
||||
const mainSourcefilename = this.getDefaultMainCMakeFilename();
|
||||
|
||||
const zip = await JSZip.loadAsync(f);
|
||||
|
||||
zip.forEach(async (relativePath, zipEntry) => {
|
||||
if (!zipEntry.dir) {
|
||||
let removeFromName = 0;
|
||||
if (relativePath.indexOf(zipFilename) === 0) {
|
||||
removeFromName = zipFilename.length + 1;
|
||||
}
|
||||
|
||||
const properName = relativePath.substring(removeFromName);
|
||||
if (!this.isValidFilename(properName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
let content = await zip.file(zipEntry.name).async("string");
|
||||
if (content.length > this.maxFilesize) {
|
||||
return;
|
||||
}
|
||||
|
||||
// remove utf8-bom characters
|
||||
content = content.replace(/^(\ufeff)/, '');
|
||||
|
||||
const file: MultifileFile = {
|
||||
fileId: this.newFileId,
|
||||
filename: properName,
|
||||
isIncluded: true,
|
||||
isOpen: false,
|
||||
editorId: -1,
|
||||
isMainSource: properName === mainSourcefilename,
|
||||
content: content,
|
||||
langId: this.getLanguageIdFromFilename(properName),
|
||||
};
|
||||
|
||||
this.addFile(file);
|
||||
callback(file);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public async saveProjectToZipfile(callback: (any) => void) {
|
||||
const zip = new JSZip();
|
||||
|
||||
this.forEachFile((file: MultifileFile) => {
|
||||
if (file.isIncluded) {
|
||||
zip.file(file.filename, this.getFileContents(file));
|
||||
}
|
||||
})
|
||||
|
||||
zip.generateAsync({type:"blob"}).then((blob) => {
|
||||
callback(blob);
|
||||
}, (err) => {
|
||||
throw err;
|
||||
});
|
||||
}
|
||||
|
||||
public getState(): MultifileServiceState {
|
||||
return {
|
||||
isCMakeProject: this.isCMakeProject,
|
||||
compilerLanguageId: this.compilerLanguageId,
|
||||
files: this.files,
|
||||
newFileId: this.newFileId,
|
||||
};
|
||||
}
|
||||
|
||||
public getLanguageId() {
|
||||
return this.compilerLanguageId;
|
||||
}
|
||||
|
||||
public isCompatibleWithCMake(): boolean {
|
||||
if (this.compilerLanguageId !== 'c++' && this.compilerLanguageId !== 'c') {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public setLanguageId(id: string) {
|
||||
this.compilerLanguageId = id;
|
||||
}
|
||||
|
||||
public isACMakeProject(): boolean {
|
||||
return this.isCompatibleWithCMake() && this.isCMakeProject;
|
||||
}
|
||||
|
||||
public setAsCMakeProject(yes: boolean) {
|
||||
if (yes) {
|
||||
this.isCMakeProject = true;
|
||||
} else {
|
||||
this.isCMakeProject = false;
|
||||
}
|
||||
}
|
||||
|
||||
private checkFileEditor(file: MultifileFile) {
|
||||
if (file && file.editorId > 0) {
|
||||
const editor = this.hub.getEditorById(file.editorId);
|
||||
if (!editor) {
|
||||
file.isOpen = false;
|
||||
file.editorId = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public getFileContents(file: MultifileFile) {
|
||||
this.checkFileEditor(file);
|
||||
|
||||
if (file.isOpen) {
|
||||
const editor = this.hub.getEditorById(file.editorId);
|
||||
return editor.getSource();
|
||||
} else {
|
||||
return file.content;
|
||||
}
|
||||
}
|
||||
|
||||
public isEditorPartOfProject(editorId: Number) {
|
||||
var found = _.find(this.files, (file: MultifileFile) => {
|
||||
return (file.isIncluded) && file.isOpen && (editorId === file.editorId);
|
||||
});
|
||||
|
||||
return !!found;
|
||||
}
|
||||
|
||||
public getFileByFileId(fileId: Number) {
|
||||
const file = _.find(this.files, (file: MultifileFile) => {
|
||||
return file.fileId === fileId;
|
||||
});
|
||||
|
||||
this.checkFileEditor(file);
|
||||
|
||||
return file;
|
||||
}
|
||||
|
||||
public setAsMainSource(mainFileId: Number) {
|
||||
for (let file of this.files) {
|
||||
file.isMainSource = false;
|
||||
}
|
||||
|
||||
var mainfile = this.getFileByFileId(mainFileId);
|
||||
mainfile.isMainSource = true;
|
||||
}
|
||||
|
||||
private isValidFile(file: MultifileFile): boolean {
|
||||
return (file.editorId > 0) || !!file.filename;
|
||||
}
|
||||
|
||||
private filterOutNonsense() {
|
||||
this.files = _.filter(this.files, (file: MultifileFile) => this.isValidFile(file));
|
||||
}
|
||||
|
||||
public getFiles(): Array<FiledataPair> {
|
||||
this.filterOutNonsense();
|
||||
|
||||
var filtered = _.filter(this.files, (file: MultifileFile) => {
|
||||
return !file.isMainSource && file.isIncluded;
|
||||
});
|
||||
|
||||
return _.map(filtered, (file: MultifileFile) => {
|
||||
return {
|
||||
filename: file.filename,
|
||||
contents: this.getFileContents(file),
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
private isMainSourceFile(file: MultifileFile): boolean {
|
||||
if (this.isCMakeProject) {
|
||||
if (file.filename === this.getDefaultMainCMakeFilename()) {
|
||||
this.setAsMainSource(file.fileId);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (file.filename === this.getDefaultMainSourceFilename(this.compilerLanguageId)) {
|
||||
this.setAsMainSource(file.fileId);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return file.isMainSource;
|
||||
}
|
||||
|
||||
public getMainSource(): string {
|
||||
var mainFile = _.find(this.files, (file: MultifileFile) => {
|
||||
return file.isIncluded && this.isMainSourceFile(file);
|
||||
});
|
||||
|
||||
if (mainFile) {
|
||||
return this.getFileContents(mainFile);
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
public getFileByEditorId(editorId: number): MultifileFile {
|
||||
return _.find(this.files, (file: MultifileFile) => {
|
||||
return file.editorId === editorId;
|
||||
});
|
||||
}
|
||||
|
||||
public getEditorIdByFilename(filename: string): number {
|
||||
const file: MultifileFile = _.find(this.files, (file: MultifileFile) => {
|
||||
return file.isIncluded && (file.filename === filename);
|
||||
});
|
||||
|
||||
return (file && file.editorId > 0) ? file.editorId : null;
|
||||
}
|
||||
|
||||
public getMainSourceEditorId(): number {
|
||||
const file: MultifileFile = _.find(this.files, (file: MultifileFile) => {
|
||||
return file.isIncluded && this.isMainSourceFile(file);
|
||||
});
|
||||
|
||||
this.checkFileEditor(file);
|
||||
|
||||
return (file && file.editorId > 0) ? file.editorId : null;
|
||||
}
|
||||
|
||||
private addFile(file: MultifileFile) {
|
||||
this.newFileId++;
|
||||
this.files.push(file);
|
||||
}
|
||||
|
||||
public addFileForEditorId(editorId: number) {
|
||||
const file: MultifileFile = {
|
||||
fileId: this.newFileId,
|
||||
isIncluded: false,
|
||||
isOpen: true,
|
||||
isMainSource: false,
|
||||
filename: '',
|
||||
content: '',
|
||||
editorId: editorId,
|
||||
langId: '',
|
||||
};
|
||||
|
||||
this.addFile(file);
|
||||
}
|
||||
|
||||
public removeFileByFileId(fileId: number): MultifileFile {
|
||||
const file: MultifileFile = this.getFileByFileId(fileId);
|
||||
|
||||
this.files = this.files.filter((obj: MultifileFile) => obj.fileId !== fileId);
|
||||
|
||||
return file;
|
||||
}
|
||||
|
||||
public async excludeByFileId(fileId: number): Promise<void> {
|
||||
const file: MultifileFile = this.getFileByFileId(fileId);
|
||||
file.isIncluded = false;
|
||||
}
|
||||
|
||||
public async includeByFileId(fileId: number): Promise<void> {
|
||||
const file: MultifileFile = this.getFileByFileId(fileId);
|
||||
file.isIncluded = true;
|
||||
|
||||
if (file.filename === '') {
|
||||
const isRenamed = await this.renameFile(fileId);
|
||||
if (isRenamed) {
|
||||
this.includeByFileId(fileId);
|
||||
} else {
|
||||
file.isIncluded = false;
|
||||
}
|
||||
} else {
|
||||
file.isIncluded = true;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public async includeByEditorId(editorId: number): Promise<void> {
|
||||
const file: MultifileFile = this.getFileByEditorId(editorId);
|
||||
|
||||
return this.includeByFileId(file.fileId);
|
||||
}
|
||||
|
||||
public forEachOpenFile(callback: (File) => void) {
|
||||
this.filterOutNonsense();
|
||||
|
||||
for (const file of this.files) {
|
||||
if (file.isOpen && file.editorId > 0) {
|
||||
callback(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public forEachFile(callback: (File) => void) {
|
||||
this.filterOutNonsense();
|
||||
|
||||
for (const file of this.files) {
|
||||
callback(file);
|
||||
}
|
||||
}
|
||||
|
||||
private getDefaultMainCMakeFilename() {
|
||||
return this.cmakeMainSourceFilename;
|
||||
}
|
||||
|
||||
private getDefaultMainSourceFilename(langId) {
|
||||
const lang = languages[langId];
|
||||
const ext0 = lang.extensions[0];
|
||||
return 'example' + ext0;
|
||||
}
|
||||
|
||||
private getSuggestedFilename(file: MultifileFile, editor: any): string {
|
||||
let suggestedFilename = file.filename;
|
||||
if (file.filename === '') {
|
||||
let langId: string = file.langId;
|
||||
if (editor) {
|
||||
langId = editor.currentLanguage.id;
|
||||
if (editor.filename) {
|
||||
suggestedFilename = editor.filename;
|
||||
}
|
||||
}
|
||||
|
||||
if (!suggestedFilename) {
|
||||
if (langId === this.cmakeLangId) {
|
||||
suggestedFilename = this.getDefaultMainCMakeFilename();
|
||||
} else {
|
||||
suggestedFilename = this.getDefaultMainSourceFilename(langId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return suggestedFilename;
|
||||
}
|
||||
|
||||
private fileExists(filename: string, excludeFile: MultifileFile): boolean {
|
||||
return !!_.find(this.files, (file: MultifileFile) => {
|
||||
return (file !== excludeFile) && (file.filename === filename);
|
||||
});
|
||||
}
|
||||
|
||||
public async renameFile(fileId: number): Promise<boolean> {
|
||||
var file = this.getFileByFileId(fileId);
|
||||
|
||||
let editor: any = null;
|
||||
if (file.isOpen && file.editorId > 0) {
|
||||
editor = this.hub.getEditorById(file.editorId);
|
||||
}
|
||||
|
||||
let suggestedFilename = this.getSuggestedFilename(file, editor);
|
||||
|
||||
return new Promise((resolve) => {
|
||||
this.alertSystem.enterSomething('Rename file', 'Please enter a filename', suggestedFilename, {
|
||||
yes: (value) => {
|
||||
if (value !== '' && value[0] !== '/') {
|
||||
if (!this.fileExists(value, file)) {
|
||||
file.filename = value;
|
||||
|
||||
if (editor) {
|
||||
editor.setFilename(file.filename);
|
||||
}
|
||||
|
||||
resolve(true);
|
||||
} else {
|
||||
this.alertSystem.alert('Rename file', 'Filename already exists');
|
||||
resolve(false);
|
||||
}
|
||||
} else {
|
||||
this.alertSystem.alert('Rename file', 'Filename cannot be empty or start with a "/"');
|
||||
resolve(false);
|
||||
}
|
||||
},
|
||||
no: () => {
|
||||
resolve(false);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public async renameFileByEditorId(editorId: number): Promise<boolean> {
|
||||
var file = this.getFileByEditorId(editorId);
|
||||
|
||||
return this.renameFile(file.fileId);
|
||||
}
|
||||
}
|
||||
@@ -81,7 +81,12 @@ function Compiler(hub, container, state) {
|
||||
this.domRoot = container.getElement();
|
||||
this.domRoot.html($('#compiler').html());
|
||||
this.id = state.id || hub.nextCompilerId();
|
||||
this.sourceEditorId = state.source || 1;
|
||||
this.sourceTreeId = state.tree ? state.tree : false;
|
||||
if (this.sourceTreeId) {
|
||||
this.sourceEditorId = false;
|
||||
} else {
|
||||
this.sourceEditorId = state.source || 1;
|
||||
}
|
||||
this.settings = Settings.getStoredSettings();
|
||||
this.originalCompilerId = state.compiler;
|
||||
this.initLangAndCompiler(state);
|
||||
@@ -96,7 +101,9 @@ function Compiler(hub, container, state) {
|
||||
this.lastResult = {};
|
||||
this.lastTimeTaken = 0;
|
||||
this.pendingRequestSentAt = 0;
|
||||
this.pendingCMakeRequestSentAt = 0;
|
||||
this.nextRequest = null;
|
||||
this.nextCMakeRequest = null;
|
||||
this.optViewOpen = false;
|
||||
this.flagsViewOpen = state.flagsViewOpen || false;
|
||||
this.cfgViewOpen = false;
|
||||
@@ -157,8 +164,27 @@ function Compiler(hub, container, state) {
|
||||
eventCategory: 'OpenViewPane',
|
||||
eventAction: 'Compiler',
|
||||
});
|
||||
|
||||
if (this.sourceTreeId) {
|
||||
this.compile();
|
||||
}
|
||||
}
|
||||
|
||||
Compiler.prototype.getEditorIdBySourcefile = function (sourcefile) {
|
||||
if (this.sourceTreeId) {
|
||||
var tree = this.hub.getTreeById(this.sourceTreeId);
|
||||
if (tree) {
|
||||
return tree.multifileService.getEditorIdByFilename(sourcefile.file);
|
||||
}
|
||||
} else {
|
||||
if (sourcefile !== null && (sourcefile.file === null || sourcefile.mainsource)) {
|
||||
return this.sourceEditorId;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
Compiler.prototype.initLangAndCompiler = function (state) {
|
||||
var langId = state.lang;
|
||||
var compilerId = state.compiler;
|
||||
@@ -177,7 +203,7 @@ Compiler.prototype.close = function () {
|
||||
|
||||
Compiler.prototype.initPanerButtons = function () {
|
||||
var outputConfig = _.bind(function () {
|
||||
return Components.getOutput(this.id, this.sourceEditorId);
|
||||
return Components.getOutput(this.id, this.sourceEditorId, this.sourceTreeId);
|
||||
}, this);
|
||||
|
||||
this.container.layoutManager.createDragSource(this.outputBtn, outputConfig);
|
||||
@@ -242,6 +268,7 @@ Compiler.prototype.initPanerButtons = function () {
|
||||
var createExecutor = _.bind(function () {
|
||||
var currentState = this.currentState();
|
||||
var editorId = currentState.source;
|
||||
var treeId = currentState.tree;
|
||||
var langId = currentState.lang;
|
||||
var compilerId = currentState.compiler;
|
||||
var libs = [];
|
||||
@@ -251,7 +278,7 @@ Compiler.prototype.initPanerButtons = function () {
|
||||
ver: item.versionId,
|
||||
});
|
||||
});
|
||||
return Components.getExecutorWith(editorId, langId, compilerId, libs, currentState.options);
|
||||
return Components.getExecutorWith(editorId, langId, compilerId, libs, currentState.options, treeId);
|
||||
}, this);
|
||||
|
||||
var panerDropdown = this.domRoot.find('.pane-dropdown');
|
||||
@@ -522,9 +549,12 @@ Compiler.prototype.initEditorActions = function () {
|
||||
run: _.bind(function (ed) {
|
||||
var desiredLine = ed.getPosition().lineNumber - 1;
|
||||
var source = this.assembly[desiredLine].source;
|
||||
if (source !== null && source.file === null) {
|
||||
// a null file means it was the user's source
|
||||
this.eventHub.emit('editorLinkLine', this.sourceEditorId, source.line, -1, -1, true);
|
||||
if (source && source.line > 0) {
|
||||
var editorId = this.getEditorIdBySourcefile(source);
|
||||
if (editorId) {
|
||||
// a null file means it was the user's source
|
||||
this.eventHub.emit('editorLinkLine', editorId, source.line, -1, -1, true);
|
||||
}
|
||||
}
|
||||
}, this),
|
||||
});
|
||||
@@ -589,9 +619,7 @@ Compiler.prototype.getEffectiveFilters = function () {
|
||||
|
||||
Compiler.prototype.findTools = function (content, tools) {
|
||||
if (content.componentName === 'tool') {
|
||||
if (
|
||||
(content.componentState.editor === this.sourceEditorId) &&
|
||||
(content.componentState.compiler === this.id)) {
|
||||
if (content.componentState.compiler === this.id) {
|
||||
tools.push({
|
||||
id: content.componentState.toolId,
|
||||
args: content.componentState.args,
|
||||
@@ -670,12 +698,53 @@ Compiler.prototype.compile = function (bypassCache, newTools) {
|
||||
});
|
||||
});
|
||||
|
||||
if (this.sourceTreeId) {
|
||||
this.compileFromTree(options, bypassCache);
|
||||
} else {
|
||||
this.compileFromEditorSource(options, bypassCache);
|
||||
}
|
||||
};
|
||||
|
||||
Compiler.prototype.compileFromTree = function (options, bypassCache) {
|
||||
var tree = this.hub.getTreeById(this.sourceTreeId);
|
||||
|
||||
var mainsource = tree.multifileService.getMainSource();
|
||||
|
||||
var request = {
|
||||
source: mainsource,
|
||||
compiler: this.compiler ? this.compiler.id : '',
|
||||
options: options,
|
||||
lang: this.currentLangId,
|
||||
files: tree.multifileService.getFiles(),
|
||||
};
|
||||
|
||||
var treeState = tree.currentState();
|
||||
var cmakeProject = treeState.isCMakeProject;
|
||||
|
||||
if (bypassCache) request.bypassCache = true;
|
||||
if (!this.compiler) {
|
||||
this.onCompileResponse(request, errorResult('<Please select a compiler>'), false);
|
||||
} else if (cmakeProject && request.source === '') {
|
||||
this.onCompileResponse(request, errorResult('<Please supply a CMakeLists.txt>'), false);
|
||||
} else {
|
||||
if (cmakeProject) {
|
||||
request.options.compilerOptions.cmakeArgs = treeState.cmakeArgs;
|
||||
request.options.compilerOptions.customOutputFilename = treeState.customOutputFilename;
|
||||
this.sendCMakeCompile(request);
|
||||
} else {
|
||||
this.sendCompile(request);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Compiler.prototype.compileFromEditorSource = function (options, bypassCache) {
|
||||
this.compilerService.expand(this.source).then(_.bind(function (expanded) {
|
||||
var request = {
|
||||
source: expanded || '',
|
||||
compiler: this.compiler ? this.compiler.id : '',
|
||||
options: options,
|
||||
lang: this.currentLangId,
|
||||
files: [],
|
||||
};
|
||||
if (bypassCache) request.bypassCache = true;
|
||||
if (!this.compiler) {
|
||||
@@ -686,6 +755,42 @@ Compiler.prototype.compile = function (bypassCache, newTools) {
|
||||
}, this));
|
||||
};
|
||||
|
||||
Compiler.prototype.sendCMakeCompile = function (request) {
|
||||
var onCompilerResponse = _.bind(this.onCMakeResponse, this);
|
||||
|
||||
if (this.pendingCMakeRequestSentAt) {
|
||||
// If we have a request pending, then just store this request to do once the
|
||||
// previous request completes.
|
||||
this.nextCMakeRequest = request;
|
||||
return;
|
||||
}
|
||||
this.eventHub.emit('compiling', this.id, this.compiler);
|
||||
// Display the spinner
|
||||
this.handleCompilationStatus({code: 4});
|
||||
this.pendingCMakeRequestSentAt = Date.now();
|
||||
// After a short delay, give the user some indication that we're working on their
|
||||
// compilation.
|
||||
var progress = setTimeout(_.bind(function () {
|
||||
this.setAssembly({asm: fakeAsm('<Compiling...>')}, 0);
|
||||
}, this), 500);
|
||||
this.compilerService.submitCMake(request)
|
||||
.then(function (x) {
|
||||
clearTimeout(progress);
|
||||
onCompilerResponse(request, x.result, x.localCacheHit);
|
||||
})
|
||||
.catch(function (x) {
|
||||
clearTimeout(progress);
|
||||
var message = 'Unknown error';
|
||||
if (_.isString(x)) {
|
||||
message = x;
|
||||
} else if (x) {
|
||||
message = x.error || x.code || message;
|
||||
}
|
||||
onCompilerResponse(request,
|
||||
errorResult('<Compilation failed: ' + message + '>'), false);
|
||||
});
|
||||
};
|
||||
|
||||
Compiler.prototype.sendCompile = function (request) {
|
||||
var onCompilerResponse = _.bind(this.onCompileResponse, this);
|
||||
|
||||
@@ -709,13 +814,14 @@ Compiler.prototype.sendCompile = function (request) {
|
||||
clearTimeout(progress);
|
||||
onCompilerResponse(request, x.result, x.localCacheHit);
|
||||
})
|
||||
.catch(function (x) {
|
||||
.catch(function (e) {
|
||||
clearTimeout(progress);
|
||||
var message = 'Unknown error';
|
||||
if (_.isString(x)) {
|
||||
message = x;
|
||||
} else if (x) {
|
||||
message = x.error || x.code || message;
|
||||
if (_.isString(e)) {
|
||||
message = e;
|
||||
} else if (e) {
|
||||
message = e.error || e.code || e.message;
|
||||
if (e.stack) console.log(e);
|
||||
}
|
||||
onCompilerResponse(request, errorResult('<Compilation failed: ' + message + '>'), false);
|
||||
});
|
||||
@@ -836,21 +942,36 @@ function fakeAsm(text) {
|
||||
return [{text: text, source: null, fake: true}];
|
||||
}
|
||||
|
||||
Compiler.prototype.onCompileResponse = function (request, result, cached) {
|
||||
// Delete trailing empty lines
|
||||
if ($.isArray(result.asm)) {
|
||||
var indexToDiscard = _.findLastIndex(result.asm, function (line) {
|
||||
return !_.isEmpty(line.text);
|
||||
});
|
||||
result.asm.splice(indexToDiscard + 1, result.asm.length - indexToDiscard);
|
||||
Compiler.prototype.doNextCompileRequest = function () {
|
||||
if (this.nextRequest) {
|
||||
var next = this.nextRequest;
|
||||
this.nextRequest = null;
|
||||
this.sendCompile(next);
|
||||
}
|
||||
// Save which source produced this change. It should probably be saved earlier though
|
||||
};
|
||||
|
||||
Compiler.prototype.doNextCMakeRequest = function () {
|
||||
if (this.nextCMakeRequest) {
|
||||
var next = this.nextCMakeRequest;
|
||||
this.nextCMakeRequest = null;
|
||||
this.sendCMakeCompile(next);
|
||||
}
|
||||
};
|
||||
|
||||
Compiler.prototype.onCMakeResponse = function (request, result, cached) {
|
||||
result.source = this.source;
|
||||
this.lastResult = result;
|
||||
var timeTaken = Math.max(0, Date.now() - this.pendingRequestSentAt);
|
||||
var timeTaken = Math.max(0, Date.now() - this.pendingCMakeRequestSentAt);
|
||||
this.lastTimeTaken = timeTaken;
|
||||
var wasRealReply = this.pendingRequestSentAt > 0;
|
||||
this.pendingRequestSentAt = 0;
|
||||
var wasRealReply = this.pendingCMakeRequestSentAt > 0;
|
||||
this.pendingCMakeRequestSentAt = 0;
|
||||
|
||||
this.handleCompileRequestAndResult(request, result, cached, wasRealReply, timeTaken);
|
||||
|
||||
this.doNextCMakeRequest();
|
||||
};
|
||||
|
||||
Compiler.prototype.handleCompileRequestAndResult = function (request, result, cached, wasRealReply, timeTaken) {
|
||||
ga.proxy('send', {
|
||||
hitType: 'event',
|
||||
eventCategory: 'Compile',
|
||||
@@ -865,11 +986,32 @@ Compiler.prototype.onCompileResponse = function (request, result, cached) {
|
||||
timingValue: timeTaken,
|
||||
});
|
||||
|
||||
// Delete trailing empty lines
|
||||
if ($.isArray(result.asm)) {
|
||||
var indexToDiscard = _.findLastIndex(result.asm, function (line) {
|
||||
return !_.isEmpty(line.text);
|
||||
});
|
||||
result.asm.splice(indexToDiscard + 1, result.asm.length - indexToDiscard);
|
||||
}
|
||||
|
||||
this.labelDefinitions = result.labelDefinitions || {};
|
||||
this.setAssembly(result, result.filteredCount || 0);
|
||||
if (result.asm) {
|
||||
this.setAssembly(result, result.filteredCount || 0);
|
||||
} else if (result.result && result.result.asm) {
|
||||
this.setAssembly(result.result, result.result.filteredCount || 0);
|
||||
}
|
||||
|
||||
var stdout = result.stdout || [];
|
||||
var stderr = result.stderr || [];
|
||||
var failed = result.code ? result.code !== 0 : false;
|
||||
|
||||
if (result.buildsteps) {
|
||||
_.each(result.buildsteps, function (step) {
|
||||
stdout = stdout.concat(step.stdout || []);
|
||||
stderr = stderr.concat(step.stderr || []);
|
||||
failed = failed | (step.code !== 0);
|
||||
});
|
||||
}
|
||||
|
||||
this.handleCompilationStatus(this.compilerService.calculateStatusIcon(result));
|
||||
this.outputTextCount.text(stdout.length);
|
||||
@@ -896,14 +1038,27 @@ Compiler.prototype.onCompileResponse = function (request, result, cached) {
|
||||
|
||||
this.compileInfoLabel.text(infoLabelText);
|
||||
|
||||
this.postCompilationResult(request, result);
|
||||
this.eventHub.emit('compileResult', this.id, this.compiler, result, languages[this.currentLangId]);
|
||||
|
||||
if (this.nextRequest) {
|
||||
var next = this.nextRequest;
|
||||
this.nextRequest = null;
|
||||
this.sendCompile(next);
|
||||
if (result.result) {
|
||||
this.postCompilationResult(request, result.result);
|
||||
} else {
|
||||
this.postCompilationResult(request, result);
|
||||
}
|
||||
|
||||
this.eventHub.emit('compileResult', this.id, this.compiler, result, languages[this.currentLangId]);
|
||||
};
|
||||
|
||||
Compiler.prototype.onCompileResponse = function (request, result, cached) {
|
||||
// Save which source produced this change. It should probably be saved earlier though
|
||||
result.source = this.source;
|
||||
this.lastResult = result;
|
||||
var timeTaken = Math.max(0, Date.now() - this.pendingRequestSentAt);
|
||||
this.lastTimeTaken = timeTaken;
|
||||
var wasRealReply = this.pendingRequestSentAt > 0;
|
||||
this.pendingRequestSentAt = 0;
|
||||
|
||||
this.handleCompileRequestAndResult(request, result, cached, wasRealReply, timeTaken);
|
||||
|
||||
this.doNextCompileRequest();
|
||||
};
|
||||
|
||||
Compiler.prototype.postCompilationResult = function (request, result) {
|
||||
@@ -926,6 +1081,19 @@ Compiler.prototype.postCompilationResult = function (request, result) {
|
||||
};
|
||||
|
||||
Compiler.prototype.onEditorChange = function (editor, source, langId, compilerId) {
|
||||
if (this.sourceTreeId) {
|
||||
var tree = this.hub.getTreeById(this.sourceTreeId);
|
||||
if (tree) {
|
||||
if (tree.multifileService.isEditorPartOfProject(editor)) {
|
||||
if (this.settings.compileOnChange) {
|
||||
this.compile();
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (editor === this.sourceEditorId && langId === this.currentLangId &&
|
||||
(compilerId === undefined || compilerId === this.id)) {
|
||||
this.source = source;
|
||||
@@ -1284,15 +1452,27 @@ Compiler.prototype.initLibraries = function (state) {
|
||||
};
|
||||
|
||||
Compiler.prototype.updateLibraries = function () {
|
||||
if (this.libsWidget) this.libsWidget.setNewLangId(this.currentLangId, this.compiler.id, this.compiler.libs);
|
||||
if (this.libsWidget) {
|
||||
this.libsWidget.setNewLangId(this.currentLangId,
|
||||
this.compiler ? this.compiler.id : false,
|
||||
this.compiler ? this.compiler.libs : {});
|
||||
}
|
||||
};
|
||||
|
||||
Compiler.prototype.isSupportedTool = function (tool) {
|
||||
if (this.sourceTreeId) {
|
||||
return tool.tool.type === 'postcompilation';
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
Compiler.prototype.supportsTool = function (toolId) {
|
||||
if (!this.compiler) return;
|
||||
|
||||
return _.find(this.compiler.tools, function (tool) {
|
||||
return (tool.tool.id === toolId);
|
||||
});
|
||||
return _.find(this.compiler.tools, _.bind(function (tool) {
|
||||
return (tool.tool.id === toolId && this.isSupportedTool(tool));
|
||||
}, this));
|
||||
};
|
||||
|
||||
Compiler.prototype.initToolButton = function (togglePannerAdder, button, toolId) {
|
||||
@@ -1308,7 +1488,7 @@ Compiler.prototype.initToolButton = function (togglePannerAdder, button, toolId)
|
||||
monacoStdin = langTools[toolId].tool.monacoStdin;
|
||||
}
|
||||
}
|
||||
return Components.getToolViewWith(this.id, this.sourceEditorId, toolId, args, monacoStdin);
|
||||
return Components.getToolViewWith(this.id, this.sourceEditorId, toolId, args, monacoStdin, this.sourceTreeId);
|
||||
}, this);
|
||||
|
||||
this.container.layoutManager
|
||||
@@ -1344,9 +1524,11 @@ Compiler.prototype.initToolButtons = function (togglePannerAdder) {
|
||||
if (_.isEmpty(this.compiler.tools)) {
|
||||
addTool('none', 'No tools available');
|
||||
} else {
|
||||
_.each(this.compiler.tools, function (tool) {
|
||||
addTool(tool.tool.id, tool.tool.name);
|
||||
});
|
||||
_.each(this.compiler.tools, _.bind(function (tool) {
|
||||
if (this.isSupportedTool(tool)) {
|
||||
addTool(tool.tool.id, tool.tool.name);
|
||||
}
|
||||
}, this));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1473,12 +1655,14 @@ Compiler.prototype.initListeners = function () {
|
||||
this.container.on('resize', this.resize, this);
|
||||
this.container.on('shown', this.resize, this);
|
||||
this.container.on('open', function () {
|
||||
this.eventHub.emit('compilerOpen', this.id, this.sourceEditorId);
|
||||
this.eventHub.emit('compilerOpen', this.id, this.sourceEditorId, this.sourceTreeId);
|
||||
}, this);
|
||||
this.eventHub.on('editorChange', this.onEditorChange, this);
|
||||
this.eventHub.on('compilerFlagsChange', this.onCompilerFlagsChange, this);
|
||||
this.eventHub.on('editorClose', this.onEditorClose, this);
|
||||
this.eventHub.on('treeClose', this.onTreeClose, this);
|
||||
this.eventHub.on('colours', this.onColours, this);
|
||||
this.eventHub.on('coloursForCompiler', this.onColoursForCompiler, this);
|
||||
this.eventHub.on('resendCompilation', this.onResendCompilation, this);
|
||||
this.eventHub.on('findCompilers', this.sendCompiler, this);
|
||||
this.eventHub.on('compilerSetDecorations', this.onCompilerSetDecorations, this);
|
||||
@@ -1597,7 +1781,9 @@ Compiler.prototype.onOptionsChange = function (options) {
|
||||
|
||||
Compiler.prototype.checkForUnwiseArguments = function (optionsArray) {
|
||||
// Check if any options are in the unwiseOptions array and remember them
|
||||
var unwiseOptions = _.intersection(optionsArray, this.compiler.unwiseOptions);
|
||||
var unwiseOptions = _.intersection(optionsArray, _.filter(this.compiler.unwiseOptions, function (opt) {
|
||||
return opt !== '';
|
||||
}));
|
||||
|
||||
var options = unwiseOptions.length === 1 ? 'Option ' : 'Options ';
|
||||
var names = unwiseOptions.join(', ');
|
||||
@@ -1651,7 +1837,7 @@ Compiler.prototype.onCompilerChange = function (value) {
|
||||
};
|
||||
|
||||
Compiler.prototype.sendCompiler = function () {
|
||||
this.eventHub.emit('compiler', this.id, this.compiler, this.options, this.sourceEditorId);
|
||||
this.eventHub.emit('compiler', this.id, this.compiler, this.options, this.sourceEditorId, this.sourceTreeId);
|
||||
};
|
||||
|
||||
Compiler.prototype.onEditorClose = function (editor) {
|
||||
@@ -1665,6 +1851,15 @@ Compiler.prototype.onEditorClose = function (editor) {
|
||||
}
|
||||
};
|
||||
|
||||
Compiler.prototype.onTreeClose = function (tree) {
|
||||
if (tree === this.sourceTreeId) {
|
||||
this.close();
|
||||
_.defer(function (self) {
|
||||
self.container.close();
|
||||
}, this);
|
||||
}
|
||||
};
|
||||
|
||||
Compiler.prototype.onFilterChange = function () {
|
||||
var filters = this.getEffectiveFilters();
|
||||
this.eventHub.emit('filtersChange', this.id, filters);
|
||||
@@ -1678,6 +1873,7 @@ Compiler.prototype.currentState = function () {
|
||||
id: this.id,
|
||||
compiler: this.compiler ? this.compiler.id : '',
|
||||
source: this.sourceEditorId,
|
||||
tree: this.sourceTreeId,
|
||||
options: this.options,
|
||||
// NB must *not* be effective filters
|
||||
filters: this.filters.get(),
|
||||
@@ -1696,14 +1892,27 @@ Compiler.prototype.saveState = function () {
|
||||
};
|
||||
|
||||
Compiler.prototype.onColours = function (editor, colours, scheme) {
|
||||
if (editor === this.sourceEditorId) {
|
||||
var asmColours = {};
|
||||
_.each(this.assembly, function (x, index) {
|
||||
if (x.source && x.source.file === null && x.source.line > 0) {
|
||||
asmColours[index] = colours[x.source.line - 1];
|
||||
var asmColours = {};
|
||||
_.each(this.assembly, _.bind(function (x, index) {
|
||||
if (x.source && x.source.line > 0) {
|
||||
var editorId = this.getEditorIdBySourcefile(x.source);
|
||||
if (editorId === editor) {
|
||||
if (!asmColours[editorId]) {
|
||||
asmColours[editorId] = {};
|
||||
}
|
||||
asmColours[editorId][index] = colours[x.source.line - 1];
|
||||
}
|
||||
});
|
||||
this.colours = colour.applyColours(this.outputEditor, asmColours, scheme, this.colours);
|
||||
}
|
||||
}, this));
|
||||
|
||||
_.each(asmColours, _.bind(function (col) {
|
||||
this.colours = colour.applyColours(this.outputEditor, col, scheme, this.colours);
|
||||
}, this));
|
||||
};
|
||||
|
||||
Compiler.prototype.onColoursForCompiler = function (compilerId, colours, scheme) {
|
||||
if (this.id === compilerId) {
|
||||
this.colours = colour.applyColours(this.outputEditor, colours, scheme, this.colours);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1711,7 +1920,6 @@ Compiler.prototype.getCompilerName = function () {
|
||||
return this.compiler ? this.compiler.name : 'No compiler set';
|
||||
};
|
||||
|
||||
|
||||
Compiler.prototype.getLanguageName = function () {
|
||||
var lang = options.languages[this.currentLangId];
|
||||
return lang ? lang.name : '?';
|
||||
@@ -1720,7 +1928,13 @@ Compiler.prototype.getLanguageName = function () {
|
||||
Compiler.prototype.getPaneName = function () {
|
||||
var langName = this.getLanguageName();
|
||||
var compName = this.getCompilerName();
|
||||
return compName + ' (' + langName +', Editor #' + this.sourceEditorId + ', Compiler #' + this.id + ')';
|
||||
if (this.sourceEditorId) {
|
||||
return compName + ' (' + langName +', Editor #' + this.sourceEditorId + ', Compiler #' + this.id + ')';
|
||||
} else if (this.sourceTreeId) {
|
||||
return compName + ' (' + langName +', Tree #' + this.sourceTreeId + ', Compiler #' + this.id + ')';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
};
|
||||
|
||||
Compiler.prototype.updateCompilerName = function () {
|
||||
@@ -1757,21 +1971,24 @@ Compiler.prototype.clearLinkedLines = function () {
|
||||
this.updateDecorations();
|
||||
};
|
||||
|
||||
Compiler.prototype.onPanesLinkLine = function (compilerId, lineNumber, colBegin, colEnd, revealLine, sender) {
|
||||
Compiler.prototype.onPanesLinkLine = function (compilerId, lineNumber, colBegin, colEnd, revealLine, sender, editorId) {
|
||||
if (Number(compilerId) === this.id) {
|
||||
var lineNums = [];
|
||||
var directlyLinkedLineNums = [];
|
||||
var signalFromAnotherPane = sender !== this.getPaneName();
|
||||
_.each(this.assembly, function (asmLine, i) {
|
||||
if (asmLine.source && asmLine.source.file === null && asmLine.source.line === lineNumber) {
|
||||
var line = i + 1;
|
||||
lineNums.push(line);
|
||||
var currentCol = asmLine.source.column;
|
||||
if (signalFromAnotherPane && currentCol && colBegin <= currentCol && currentCol <= colEnd) {
|
||||
directlyLinkedLineNums.push(line);
|
||||
_.each(this.assembly, _.bind(function (asmLine, i) {
|
||||
if (asmLine.source && asmLine.source.line === lineNumber) {
|
||||
var fileEditorId = this.getEditorIdBySourcefile(asmLine.source);
|
||||
if (fileEditorId && (editorId === fileEditorId)) {
|
||||
var line = i + 1;
|
||||
lineNums.push(line);
|
||||
var currentCol = asmLine.source.column;
|
||||
if (signalFromAnotherPane && currentCol && colBegin <= currentCol && currentCol <= colEnd) {
|
||||
directlyLinkedLineNums.push(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}, this));
|
||||
|
||||
if (revealLine && lineNums[0]) {
|
||||
this.pushRevealJump();
|
||||
@@ -1881,8 +2098,8 @@ Compiler.prototype.setCompilerVersionPopover = function (version, notification)
|
||||
});
|
||||
};
|
||||
|
||||
Compiler.prototype.onRequestCompilation = function (editorId) {
|
||||
if (editorId === this.sourceEditorId) {
|
||||
Compiler.prototype.onRequestCompilation = function (editorId, treeId) {
|
||||
if ((editorId === this.sourceEditorId) || (treeId && treeId === this.sourceTreeId)) {
|
||||
this.compile();
|
||||
}
|
||||
};
|
||||
@@ -1975,17 +2192,22 @@ Compiler.prototype.onMouseMove = function (e) {
|
||||
var sourceLine = -1;
|
||||
var sourceColBegin = -1;
|
||||
var sourceColEnd = -1;
|
||||
if (hoverAsm.source && !hoverAsm.source.file) {
|
||||
if (hoverAsm.source) {
|
||||
sourceLine = hoverAsm.source.line;
|
||||
if (hoverAsm.source.column) {
|
||||
sourceColBegin = hoverAsm.source.column;
|
||||
sourceColEnd = sourceColBegin;
|
||||
}
|
||||
|
||||
var editorId = this.getEditorIdBySourcefile(hoverAsm.source);
|
||||
if (editorId) {
|
||||
this.eventHub.emit('editorLinkLine', editorId, sourceLine, sourceColBegin, sourceColEnd, false);
|
||||
|
||||
this.eventHub.emit('panesLinkLine', this.id,
|
||||
sourceLine, sourceColBegin, sourceColEnd,
|
||||
false, this.getPaneName(), editorId);
|
||||
}
|
||||
}
|
||||
this.eventHub.emit('editorLinkLine', this.sourceEditorId, sourceLine, sourceColBegin, sourceColEnd, false);
|
||||
this.eventHub.emit('panesLinkLine', this.id,
|
||||
sourceLine, sourceColBegin, sourceColEnd,
|
||||
false, this.getPaneName());
|
||||
}
|
||||
}
|
||||
var currentWord = this.outputEditor.getModel().getWordAtPosition(e.target.position);
|
||||
@@ -2106,8 +2328,9 @@ Compiler.prototype.handleCompilationStatus = function (status) {
|
||||
this.compilerService.handleCompilationStatus(this.statusLabel, this.statusIcon, status);
|
||||
};
|
||||
|
||||
Compiler.prototype.onLanguageChange = function (editorId, newLangId) {
|
||||
if (this.sourceEditorId === editorId) {
|
||||
Compiler.prototype.onLanguageChange = function (editorId, newLangId, treeId) {
|
||||
if ((this.sourceEditorId && this.sourceEditorId === editorId) ||
|
||||
(this.sourceTreeId && this.sourceTreeId === treeId)) {
|
||||
var oldLangId = this.currentLangId;
|
||||
this.currentLangId = newLangId;
|
||||
// Store the current selected stuff to come back to it later in the same session (Not state stored!)
|
||||
|
||||
@@ -320,6 +320,7 @@ Conformance.prototype.compileChild = function (compilerEntry) {
|
||||
skipAsm: true,
|
||||
},
|
||||
lang: this.langId,
|
||||
files: [],
|
||||
};
|
||||
|
||||
_.each(this.currentLibs, function (item) {
|
||||
|
||||
@@ -39,10 +39,10 @@ var TomSelect = require('tom-select');
|
||||
var Settings = require('../settings');
|
||||
require('../modes/_all');
|
||||
|
||||
|
||||
var loadSave = new loadSaveLib.LoadSave();
|
||||
var languages = options.languages;
|
||||
|
||||
// eslint-disable-next-line max-statements
|
||||
function Editor(hub, state, container) {
|
||||
this.id = state.id || hub.nextEditorId();
|
||||
this.container = container;
|
||||
@@ -57,8 +57,10 @@ function Editor(hub, state, container) {
|
||||
this.httpRoot = window.httpRoot;
|
||||
this.widgetsByCompiler = {};
|
||||
this.asmByCompiler = {};
|
||||
this.defaultFileByCompiler = {};
|
||||
this.busyCompilers = {};
|
||||
this.colours = [];
|
||||
this.treeCompilers = {};
|
||||
|
||||
this.decorations = {};
|
||||
this.prevDecorations = [];
|
||||
@@ -70,6 +72,8 @@ function Editor(hub, state, container) {
|
||||
this.alertSystem = new Alert();
|
||||
this.alertSystem.prefixMessage = 'Editor #' + this.id + ': ';
|
||||
|
||||
this.filename = state.filename || false;
|
||||
|
||||
this.awaitingInitialResults = false;
|
||||
this.selection = state.selection;
|
||||
|
||||
@@ -82,7 +86,8 @@ function Editor(hub, state, container) {
|
||||
var legacyReadOnly = state.options && !!state.options.readOnly;
|
||||
this.editor = monaco.editor.create(root[0], monacoConfig.extendConfig({
|
||||
language: this.currentLanguage.monaco,
|
||||
readOnly: !!options.readOnly || legacyReadOnly || window.compilerExplorerOptions.mobileViewer,
|
||||
readOnly: !!options.readOnly || legacyReadOnly ||
|
||||
(window.compilerExplorerOptions && window.compilerExplorerOptions.mobileViewer),
|
||||
glyphMargin: !options.embedded,
|
||||
}, this.settings));
|
||||
this.editor.getModel().setEOL(monaco.editor.EndOfLineSequence.LF);
|
||||
@@ -198,6 +203,7 @@ Editor.prototype.updateState = function () {
|
||||
source: this.getSource(),
|
||||
lang: this.currentLanguage.id,
|
||||
selection: this.selection,
|
||||
filename: this.filename,
|
||||
};
|
||||
this.fontScale.addState(state);
|
||||
this.container.setState(state);
|
||||
@@ -242,7 +248,7 @@ Editor.prototype.initCallbacks = function () {
|
||||
this.container.on('resize', this.resize, this);
|
||||
this.container.on('shown', this.resize, this);
|
||||
this.container.on('open', _.bind(function () {
|
||||
this.eventHub.emit('editorOpen', this.id);
|
||||
this.eventHub.emit('editorOpen', this.id, this);
|
||||
}, this));
|
||||
this.container.on('destroy', this.close, this);
|
||||
this.container.layoutManager.on('initialised', function () {
|
||||
@@ -252,6 +258,9 @@ Editor.prototype.initCallbacks = function () {
|
||||
this.requestCompilation();
|
||||
}, this);
|
||||
|
||||
this.eventHub.on('treeCompilerEditorIncludeChange', this.onTreeCompilerEditorIncludeChange, this);
|
||||
this.eventHub.on('treeCompilerEditorExcludeChange', this.onTreeCompilerEditorExcludeChange, this);
|
||||
this.eventHub.on('coloursForEditor', this.onColoursForEditor, this);
|
||||
this.eventHub.on('compilerOpen', this.onCompilerOpen, this);
|
||||
this.eventHub.on('executorOpen', this.onExecutorOpen, this);
|
||||
this.eventHub.on('compilerClose', this.onCompilerClose, this);
|
||||
@@ -266,6 +275,7 @@ Editor.prototype.initCallbacks = function () {
|
||||
this.eventHub.on('resize', this.resize, this);
|
||||
this.eventHub.on('newSource', this.onNewSource, this);
|
||||
this.eventHub.on('motd', this.onMotd, this);
|
||||
this.eventHub.on('findEditors', this.sendEditor, this);
|
||||
this.eventHub.emit('requestMotd');
|
||||
|
||||
this.editor.getModel().onDidChangeContent(_.bind(function () {
|
||||
@@ -308,6 +318,10 @@ Editor.prototype.initCallbacks = function () {
|
||||
}, this));
|
||||
};
|
||||
|
||||
Editor.prototype.sendEditor = function () {
|
||||
this.eventHub.emit('editorOpen', this.id, this);
|
||||
};
|
||||
|
||||
Editor.prototype.onMouseMove = function (e) {
|
||||
if (e !== null && e.target !== null && this.settings.hoverShowSource && e.target.position !== null) {
|
||||
var pos = e.target.position;
|
||||
@@ -441,7 +455,15 @@ Editor.prototype.initButtons = function (state) {
|
||||
$(this.domRoot).keydown(_.bind(function (event) {
|
||||
if ((event.ctrlKey || event.metaKey) && String.fromCharCode(event.which).toLowerCase() === 's') {
|
||||
event.preventDefault();
|
||||
if (this.settings.enableCtrlS) {
|
||||
if (this.settings.enableCtrlStree && this.hub.hasTree()) {
|
||||
var trees = this.hub.trees;
|
||||
// todo: change when multiple trees are used
|
||||
if (trees && trees.length > 0) {
|
||||
trees[0].multifileService.includeByEditorId(this.id).then(_.bind(function () {
|
||||
trees[0].refresh();
|
||||
}, this));
|
||||
}
|
||||
} else if (this.settings.enableCtrlS) {
|
||||
loadSave.setMinimalOptions(this.getSource(), this.currentLanguage);
|
||||
if (!loadSave.onSaveToFile(this.id)) {
|
||||
this.showLoadSaver();
|
||||
@@ -606,6 +628,9 @@ Editor.prototype.updateOpenInQuickBench = function () {
|
||||
};
|
||||
|
||||
Editor.prototype.changeLanguage = function (newLang) {
|
||||
if (newLang === 'cmake') {
|
||||
this.selectize.addOption(languages.cmake);
|
||||
}
|
||||
this.selectize.setValue(newLang);
|
||||
};
|
||||
|
||||
@@ -618,12 +643,18 @@ Editor.prototype.tryPanesLinkLine = function (thisLineNumber, column, reveal) {
|
||||
var selectedToken = this.getTokenSpan(thisLineNumber, column);
|
||||
_.each(this.asmByCompiler, _.bind(function (asms, compilerId) {
|
||||
this.eventHub.emit('panesLinkLine', compilerId, thisLineNumber,
|
||||
selectedToken.colBegin, selectedToken.colEnd, reveal);
|
||||
selectedToken.colBegin, selectedToken.colEnd, reveal, undefined, this.id);
|
||||
}, this));
|
||||
};
|
||||
|
||||
Editor.prototype.requestCompilation = function () {
|
||||
this.eventHub.emit('requestCompilation', this.id);
|
||||
|
||||
_.each(this.hub.trees, _.bind(function (tree) {
|
||||
if (tree.multifileService.isEditorPartOfProject(this.id)) {
|
||||
this.eventHub.emit('requestCompilation', this.id, tree.id);
|
||||
}
|
||||
}, this));
|
||||
};
|
||||
|
||||
Editor.prototype.initEditorActions = function () {
|
||||
@@ -959,24 +990,54 @@ Editor.prototype.onSettingsChange = function (newSettings) {
|
||||
};
|
||||
|
||||
Editor.prototype.numberUsedLines = function () {
|
||||
if (_.any(this.busyCompilers)) return;
|
||||
|
||||
if (!this.settings.colouriseAsm) {
|
||||
this.updateColours([]);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.hub.hasTree()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var result = {};
|
||||
// First, note all lines used.
|
||||
_.each(this.asmByCompiler, function (asm) {
|
||||
_.each(asm, function (asmLine) {
|
||||
// If the line has a source indicator, and the source indicator is null (i.e. the
|
||||
// user's input file), then tag it as used.
|
||||
if (asmLine.source && asmLine.source.file === null && asmLine.source.line > 0)
|
||||
result[asmLine.source.line - 1] = true;
|
||||
});
|
||||
});
|
||||
_.each(this.asmByCompiler, _.bind(function (asm, compilerId) {
|
||||
_.each(asm, _.bind(function (asmLine) {
|
||||
var foundInTrees = false;
|
||||
|
||||
_.each(this.treeCompilers, _.bind(function (compilerIds, treeId) {
|
||||
if (compilerIds[compilerId]) {
|
||||
var tree = this.hub.getTreeById(Number(treeId));
|
||||
var defaultFile = this.defaultFileByCompiler[compilerId];
|
||||
foundInTrees = true;
|
||||
|
||||
if (asmLine.source && asmLine.source.line > 0) {
|
||||
var sourcefilename = asmLine.source.file ? asmLine.source.file : defaultFile;
|
||||
if (this.id === tree.multifileService.getEditorIdByFilename(sourcefilename)) {
|
||||
result[asmLine.source.line - 1] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}, this));
|
||||
|
||||
if (!foundInTrees) {
|
||||
if (asmLine.source &&
|
||||
(asmLine.source.file === null || asmLine.source.mainsource) &&
|
||||
asmLine.source.line > 0) {
|
||||
result[asmLine.source.line - 1] = true;
|
||||
}
|
||||
}
|
||||
}, this));
|
||||
}, this));
|
||||
// Now assign an ordinal to each used line.
|
||||
var ordinal = 0;
|
||||
_.each(result, function (v, k) {
|
||||
result[k] = ordinal++;
|
||||
});
|
||||
|
||||
if (_.any(this.busyCompilers)) return;
|
||||
this.updateColours(this.settings.colouriseAsm ? result : []);
|
||||
this.updateColours(result);
|
||||
};
|
||||
|
||||
Editor.prototype.updateColours = function (colours) {
|
||||
@@ -984,7 +1045,7 @@ Editor.prototype.updateColours = function (colours) {
|
||||
this.eventHub.emit('colours', this.id, colours, this.settings.colourScheme);
|
||||
};
|
||||
|
||||
Editor.prototype.onCompilerOpen = function (compilerId, editorId) {
|
||||
Editor.prototype.onCompilerOpen = function (compilerId, editorId, treeId) {
|
||||
if (editorId === this.id) {
|
||||
// On any compiler open, rebroadcast our state in case they need to know it.
|
||||
if (this.waitingForLanguage) {
|
||||
@@ -1000,8 +1061,36 @@ Editor.prototype.onCompilerOpen = function (compilerId, editorId) {
|
||||
}
|
||||
}
|
||||
}
|
||||
this.maybeEmitChange(true, compilerId);
|
||||
|
||||
if (treeId > 0) {
|
||||
if (!this.treeCompilers[treeId]) {
|
||||
this.treeCompilers[treeId] = {};
|
||||
}
|
||||
this.treeCompilers[treeId][compilerId] = true;
|
||||
}
|
||||
this.ourCompilers[compilerId] = true;
|
||||
|
||||
if (!treeId) {
|
||||
this.maybeEmitChange(true, compilerId);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Editor.prototype.onTreeCompilerEditorIncludeChange = function (treeId, editorId, compilerId) {
|
||||
if (this.id === editorId) {
|
||||
this.onCompilerOpen(compilerId, editorId, treeId);
|
||||
}
|
||||
};
|
||||
|
||||
Editor.prototype.onTreeCompilerEditorExcludeChange = function (treeId, editorId, compilerId) {
|
||||
if (this.id === editorId) {
|
||||
this.onCompilerClose(compilerId);
|
||||
}
|
||||
};
|
||||
|
||||
Editor.prototype.onColoursForEditor = function (editorId, colours, scheme) {
|
||||
if (this.id === editorId) {
|
||||
this.colours = colour.applyColours(this.editor, colours, scheme, this.colours);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1012,13 +1101,18 @@ Editor.prototype.onExecutorOpen = function (executorId, editorId) {
|
||||
}
|
||||
};
|
||||
|
||||
Editor.prototype.onCompilerClose = function (compilerId) {
|
||||
Editor.prototype.onCompilerClose = function (compilerId, unused, treeId) {
|
||||
if (this.treeCompilers[treeId]) {
|
||||
delete this.treeCompilers[treeId][compilerId];
|
||||
}
|
||||
|
||||
if (this.ourCompilers[compilerId]) {
|
||||
monaco.editor.setModelMarkers(this.editor.getModel(), compilerId, []);
|
||||
delete this.widgetsByCompiler[compilerId];
|
||||
delete this.asmByCompiler[compilerId];
|
||||
delete this.busyCompilers[compilerId];
|
||||
delete this.ourCompilers[compilerId];
|
||||
delete this.defaultFileByCompiler[compilerId];
|
||||
this.numberUsedLines();
|
||||
}
|
||||
};
|
||||
@@ -1036,10 +1130,25 @@ Editor.prototype.onCompiling = function (compilerId) {
|
||||
|
||||
Editor.prototype.onCompileResponse = function (compilerId, compiler, result) {
|
||||
if (!this.ourCompilers[compilerId]) return;
|
||||
|
||||
this.busyCompilers[compilerId] = false;
|
||||
var output = (result.stdout || []).concat(result.stderr || []);
|
||||
var widgets = _.compact(_.map(output, function (obj) {
|
||||
if (!obj.tag) return;
|
||||
|
||||
var trees = this.hub.trees;
|
||||
if (trees && trees.length > 0) {
|
||||
if (obj.tag.file) {
|
||||
if (this.id !== trees[0].multifileService.getEditorIdByFilename(obj.tag.file)) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (this.id !== trees[0].multifileService.getMainSourceEditorId()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var severity = 3; // error
|
||||
if (obj.tag.text.match(/^warning/)) severity = 2;
|
||||
if (obj.tag.text.match(/^note/)) severity = 1;
|
||||
@@ -1072,7 +1181,19 @@ Editor.prototype.onCompileResponse = function (compilerId, compiler, result) {
|
||||
};
|
||||
}, this);
|
||||
this.updateDecorations();
|
||||
this.asmByCompiler[compilerId] = result.asm;
|
||||
|
||||
if (result.result && result.result.asm) {
|
||||
this.asmByCompiler[compilerId] = result.result.asm;
|
||||
} else {
|
||||
this.asmByCompiler[compilerId] = result.asm;
|
||||
}
|
||||
|
||||
if (result.inputFilename) {
|
||||
this.defaultFileByCompiler[compilerId] = result.inputFilename;
|
||||
} else {
|
||||
this.defaultFileByCompiler[compilerId] = 'example' + this.currentLanguage.extensions[0];
|
||||
}
|
||||
|
||||
this.numberUsedLines();
|
||||
};
|
||||
|
||||
@@ -1217,8 +1338,9 @@ Editor.prototype.initLoadSaver = function () {
|
||||
this.loadSaveButton
|
||||
.off('click')
|
||||
.click(_.bind(function () {
|
||||
loadSave.run(_.bind(function (text) {
|
||||
loadSave.run(_.bind(function (text, filename) {
|
||||
this.setSource(text);
|
||||
this.setFilename(filename);
|
||||
this.updateState();
|
||||
this.maybeEmitChange(true);
|
||||
this.requestCompilation();
|
||||
@@ -1231,7 +1353,7 @@ Editor.prototype.onLanguageChange = function (newLangId) {
|
||||
if (newLangId !== this.currentLanguage.id) {
|
||||
var oldLangId = this.currentLanguage.id;
|
||||
this.currentLanguage = languages[newLangId];
|
||||
if (!this.waitingForLanguage && !this.settings.keepSourcesOnLangChange) {
|
||||
if (!this.waitingForLanguage && !this.settings.keepSourcesOnLangChange && (newLangId !== 'cmake')) {
|
||||
this.editorSourceByLang[oldLangId] = this.getSource();
|
||||
this.updateEditorCode();
|
||||
}
|
||||
@@ -1255,11 +1377,25 @@ Editor.prototype.onLanguageChange = function (newLangId) {
|
||||
};
|
||||
|
||||
Editor.prototype.getPaneName = function () {
|
||||
return this.currentLanguage.name + ' source #' + this.id;
|
||||
if (this.filename) {
|
||||
return this.filename;
|
||||
} else {
|
||||
return this.currentLanguage.name + ' source #' + this.id;
|
||||
}
|
||||
};
|
||||
|
||||
Editor.prototype.setFilename = function (name) {
|
||||
this.filename = name;
|
||||
this.updateTitle();
|
||||
this.updateState();
|
||||
};
|
||||
|
||||
Editor.prototype.updateTitle = function () {
|
||||
this.container.setTitle(this.getPaneName());
|
||||
var name = this.getPaneName();
|
||||
if (name.endsWith('CMakeLists.txt')) {
|
||||
this.changeLanguage('cmake');
|
||||
}
|
||||
this.container.setTitle(name);
|
||||
};
|
||||
|
||||
// Called every time we change language, so we get the relevant code
|
||||
@@ -1271,6 +1407,7 @@ Editor.prototype.close = function () {
|
||||
this.eventHub.unsubscribe();
|
||||
this.eventHub.emit('editorClose', this.id);
|
||||
this.editor.dispose();
|
||||
this.hub.removeEditor(this.id);
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
|
||||
@@ -59,7 +59,12 @@ function Executor(hub, container, state) {
|
||||
this.domRoot = container.getElement();
|
||||
this.domRoot.html($('#executor').html());
|
||||
this.contentRoot = this.domRoot.find('.content');
|
||||
this.sourceEditorId = state.source || 1;
|
||||
this.sourceTreeId = state.tree ? state.tree : false;
|
||||
if (this.sourceTreeId) {
|
||||
this.sourceEditorId = false;
|
||||
} else {
|
||||
this.sourceEditorId = state.source || 1;
|
||||
}
|
||||
this.id = state.id || hub.nextExecutorId();
|
||||
this.settings = Settings.getStoredSettings();
|
||||
this.initLangAndCompiler(state);
|
||||
@@ -73,7 +78,9 @@ function Executor(hub, container, state) {
|
||||
this.lastResult = {};
|
||||
this.lastTimeTaken = 0;
|
||||
this.pendingRequestSentAt = 0;
|
||||
this.pendingCMakeRequestSentAt = 0;
|
||||
this.nextRequest = null;
|
||||
this.nextCMakeRequest = null;
|
||||
|
||||
this.alertSystem = new Alert();
|
||||
this.alertSystem.prefixMessage = 'Executor #' + this.id + ': ';
|
||||
@@ -104,12 +111,31 @@ function Executor(hub, container, state) {
|
||||
eventCategory: 'OpenViewPane',
|
||||
eventAction: 'Executor',
|
||||
});
|
||||
|
||||
if (this.sourceTreeId) {
|
||||
this.compile();
|
||||
}
|
||||
}
|
||||
|
||||
Executor.prototype.compilerIsVisible = function (compiler) {
|
||||
return compiler.supportsExecute;
|
||||
};
|
||||
|
||||
Executor.prototype.getEditorIdBySourcefile = function (sourcefile) {
|
||||
if (this.sourceTreeId) {
|
||||
var tree = this.hub.getTreeById(this.sourceTreeId);
|
||||
if (tree) {
|
||||
return tree.multifileService.getEditorIdByFilename(sourcefile.file);
|
||||
}
|
||||
} else {
|
||||
if (sourcefile !== null && (sourcefile.file === null || sourcefile.mainsource)) {
|
||||
return this.sourceEditorId;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
Executor.prototype.initLangAndCompiler = function (state) {
|
||||
var langId = state.lang;
|
||||
var compilerId = state.compiler;
|
||||
@@ -181,6 +207,7 @@ Executor.prototype.compile = function (bypassCache) {
|
||||
},
|
||||
compilerOptions: {
|
||||
executorRequest: true,
|
||||
skipAsm: true,
|
||||
},
|
||||
filters: {execute: true},
|
||||
tools: [],
|
||||
@@ -194,12 +221,21 @@ Executor.prototype.compile = function (bypassCache) {
|
||||
});
|
||||
});
|
||||
|
||||
if (this.sourceTreeId) {
|
||||
this.compileFromTree(options, bypassCache);
|
||||
} else {
|
||||
this.compileFromEditorSource(options, bypassCache);
|
||||
}
|
||||
};
|
||||
|
||||
Executor.prototype.compileFromEditorSource = function (options, bypassCache) {
|
||||
this.compilerService.expand(this.source).then(_.bind(function (expanded) {
|
||||
var request = {
|
||||
source: expanded || '',
|
||||
compiler: this.compiler ? this.compiler.id : '',
|
||||
options: options,
|
||||
lang: this.currentLangId,
|
||||
files: [],
|
||||
};
|
||||
if (bypassCache) request.bypassCache = true;
|
||||
if (!this.compiler) {
|
||||
@@ -210,6 +246,68 @@ Executor.prototype.compile = function (bypassCache) {
|
||||
}, this));
|
||||
};
|
||||
|
||||
Executor.prototype.compileFromTree = function (options, bypassCache) {
|
||||
var tree = this.hub.getTreeById(this.sourceTreeId);
|
||||
|
||||
var mainsource = tree.multifileService.getMainSource();
|
||||
|
||||
var request = {
|
||||
source: mainsource,
|
||||
compiler: this.compiler ? this.compiler.id : '',
|
||||
options: options,
|
||||
lang: this.currentLangId,
|
||||
files: tree.multifileService.getFiles(),
|
||||
};
|
||||
|
||||
var treeState = tree.currentState();
|
||||
var cmakeProject = treeState.isCMakeProject;
|
||||
|
||||
if (bypassCache) request.bypassCache = true;
|
||||
if (!this.compiler) {
|
||||
this.onCompileResponse(request, errorResult('<Please select a compiler>'), false);
|
||||
} else if (cmakeProject && request.source === '') {
|
||||
this.onCompileResponse(request, errorResult('<Please supply a CMakeLists.txt>'), false);
|
||||
} else {
|
||||
if (cmakeProject) {
|
||||
request.options.compilerOptions.cmakeArgs = treeState.cmakeArgs;
|
||||
request.options.compilerOptions.customOutputFilename = treeState.customOutputFilename;
|
||||
this.sendCMakeCompile(request);
|
||||
} else {
|
||||
this.sendCompile(request);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Executor.prototype.sendCMakeCompile = function (request) {
|
||||
var onCompilerResponse = _.bind(this.onCMakeResponse, this);
|
||||
|
||||
if (this.pendingCMakeRequestSentAt) {
|
||||
// If we have a request pending, then just store this request to do once the
|
||||
// previous request completes.
|
||||
this.nextCMakeRequest = request;
|
||||
return;
|
||||
}
|
||||
// this.eventHub.emit('compiling', this.id, this.compiler);
|
||||
// Display the spinner
|
||||
this.handleCompilationStatus({code: 4});
|
||||
this.pendingCMakeRequestSentAt = Date.now();
|
||||
// After a short delay, give the user some indication that we're working on their
|
||||
// compilation.
|
||||
this.compilerService.submitCMake(request)
|
||||
.then(function (x) {
|
||||
onCompilerResponse(request, x.result, x.localCacheHit);
|
||||
})
|
||||
.catch(function (x) {
|
||||
var message = 'Unknown error';
|
||||
if (_.isString(x)) {
|
||||
message = x;
|
||||
} else if (x) {
|
||||
message = x.error || x.code || x;
|
||||
}
|
||||
onCompilerResponse(request, errorResult(message), false);
|
||||
});
|
||||
};
|
||||
|
||||
Executor.prototype.sendCompile = function (request) {
|
||||
var onCompilerResponse = _.bind(this.onCompileResponse, this);
|
||||
|
||||
@@ -240,21 +338,27 @@ Executor.prototype.sendCompile = function (request) {
|
||||
});
|
||||
};
|
||||
|
||||
Executor.prototype.addCompilerOutputLine = function (msg, container, lineNum, column) {
|
||||
Executor.prototype.addCompilerOutputLine = function (msg, container, lineNum/*, column*/) {
|
||||
var elem = $('<div/>').appendTo(container);
|
||||
if (lineNum) {
|
||||
elem.html(
|
||||
$('<span class="linked-compiler-output-line"></span>')
|
||||
.html(msg)
|
||||
.click(_.bind(function (e) {
|
||||
this.eventHub.emit('editorLinkLine', this.sourceEditorId, lineNum, column, column + 1, true);
|
||||
// var editorId = this.getEditorIdBySourcefile(source);
|
||||
// if (editorId) {
|
||||
// this.eventHub.emit('editorLinkLine', editorId, lineNum, column, column + 1, true);
|
||||
// }
|
||||
// do not bring user to the top of index.html
|
||||
// http://stackoverflow.com/questions/3252730
|
||||
e.preventDefault();
|
||||
return false;
|
||||
}, this))
|
||||
.on('mouseover', _.bind(function () {
|
||||
this.eventHub.emit('editorLinkLine', this.sourceEditorId, lineNum, column, column + 1, false);
|
||||
// var editorId = this.getEditorIdBySourcefile(source);
|
||||
// if (editorId) {
|
||||
// this.eventHub.emit('editorLinkLine', editorId, lineNum, column, column + 1, false);
|
||||
// }
|
||||
}, this))
|
||||
);
|
||||
} else {
|
||||
@@ -282,14 +386,68 @@ Executor.prototype.handleOutput = function (output, element, ansiParser) {
|
||||
return outElem;
|
||||
};
|
||||
|
||||
Executor.prototype.onCompileResponse = function (request, result, cached) {
|
||||
// Save which source produced this change. It should probably be saved earlier though
|
||||
Executor.prototype.getBuildStdoutFromResult = function (result) {
|
||||
var arr = [];
|
||||
|
||||
if (result.buildResult) {
|
||||
arr = arr.concat(result.buildResult.stdout);
|
||||
}
|
||||
|
||||
if (result.buildsteps) {
|
||||
_.each(result.buildsteps, function (step) {
|
||||
arr = arr.concat(step.stdout);
|
||||
});
|
||||
}
|
||||
|
||||
return arr;
|
||||
};
|
||||
|
||||
Executor.prototype.getBuildStderrFromResult = function (result) {
|
||||
var arr = [];
|
||||
|
||||
if (result.buildResult) {
|
||||
arr = arr.concat(result.buildResult.stderr);
|
||||
}
|
||||
|
||||
if (result.buildsteps) {
|
||||
_.each(result.buildsteps, function (step) {
|
||||
arr = arr.concat(step.stderr);
|
||||
});
|
||||
}
|
||||
|
||||
return arr;
|
||||
};
|
||||
|
||||
Executor.prototype.onCMakeResponse = function (request, result, cached) {
|
||||
result.source = this.source;
|
||||
this.lastResult = result;
|
||||
var timeTaken = Math.max(0, Date.now() - this.pendingRequestSentAt);
|
||||
var timeTaken = Math.max(0, Date.now() - this.pendingCMakeRequestSentAt);
|
||||
this.lastTimeTaken = timeTaken;
|
||||
var wasRealReply = this.pendingRequestSentAt > 0;
|
||||
this.pendingRequestSentAt = 0;
|
||||
var wasRealReply = this.pendingCMakeRequestSentAt > 0;
|
||||
this.pendingCMakeRequestSentAt = 0;
|
||||
|
||||
this.handleCompileRequestAndResponse(request, result, cached, wasRealReply, timeTaken);
|
||||
|
||||
this.doNextCMakeRequest();
|
||||
};
|
||||
|
||||
Executor.prototype.doNextCompileRequest = function () {
|
||||
if (this.nextRequest) {
|
||||
var next = this.nextRequest;
|
||||
this.nextRequest = null;
|
||||
this.sendCompile(next);
|
||||
}
|
||||
};
|
||||
|
||||
Executor.prototype.doNextCMakeRequest = function () {
|
||||
if (this.nextCMakeRequest) {
|
||||
var next = this.nextCMakeRequest;
|
||||
this.nextCMakeRequest = null;
|
||||
this.sendCMakeCompile(next);
|
||||
}
|
||||
};
|
||||
|
||||
Executor.prototype.handleCompileRequestAndResponse = function (request, result, cached, wasRealReply, timeTaken) {
|
||||
ga.proxy('send', {
|
||||
hitType: 'event',
|
||||
eventCategory: 'Compile',
|
||||
@@ -305,15 +463,14 @@ Executor.prototype.onCompileResponse = function (request, result, cached) {
|
||||
});
|
||||
|
||||
this.clearPreviousOutput();
|
||||
var compileStdout = result.buildResult.stdout || [];
|
||||
var compileStderr = result.buildResult.stderr || [];
|
||||
var execStdout = result.stdout || [];
|
||||
var execStderr = result.stderr || [];
|
||||
var compileStdout = this.getBuildStdoutFromResult(result);
|
||||
var compileStderr = this.getBuildStderrFromResult(result);
|
||||
var execStdout = result.stdout || result.execResult.stdout || [];
|
||||
var execStderr = result.stderr || result.execResult.stderr || [];
|
||||
if (!result.didExecute) {
|
||||
this.executionStatusSection.append($('<div/>').text('Could not execute the program'));
|
||||
this.executionStatusSection.append($('<div/>').text('Compiler returned: ' + result.buildResult.code));
|
||||
}
|
||||
|
||||
if (compileStdout.length > 0) {
|
||||
this.compilerOutputSection.append($('<div/>').text('Compiler stdout'));
|
||||
this.handleOutput(compileStdout, this.compilerOutputSection, this.normalAnsiToHtml);
|
||||
@@ -323,7 +480,8 @@ Executor.prototype.onCompileResponse = function (request, result, cached) {
|
||||
this.handleOutput(compileStderr, this.compilerOutputSection, this.errorAnsiToHtml);
|
||||
}
|
||||
if (result.didExecute) {
|
||||
this.executionOutputSection.append($('<div/>').text('Program returned: ' + result.code));
|
||||
var exitCode = result.execResult ? result.execResult.code : result.code;
|
||||
this.executionOutputSection.append($('<div/>').text('Program returned: ' + exitCode));
|
||||
if (execStdout.length > 0) {
|
||||
this.executionOutputSection.append($('<div/>').text('Program stdout'));
|
||||
var outElem = this.handleOutput(execStdout, this.executionOutputSection, this.normalAnsiToHtml);
|
||||
@@ -348,12 +506,20 @@ Executor.prototype.onCompileResponse = function (request, result, cached) {
|
||||
result.buildResult.compilationOptions ? result.buildResult.compilationOptions.join(' ') : '');
|
||||
|
||||
this.eventHub.emit('executeResult', this.id, this.compiler, result, languages[this.currentLangId]);
|
||||
};
|
||||
|
||||
if (this.nextRequest) {
|
||||
var next = this.nextRequest;
|
||||
this.nextRequest = null;
|
||||
this.sendCompile(next);
|
||||
}
|
||||
Executor.prototype.onCompileResponse = function (request, result, cached) {
|
||||
// Save which source produced this change. It should probably be saved earlier though
|
||||
result.source = this.source;
|
||||
this.lastResult = result;
|
||||
var timeTaken = Math.max(0, Date.now() - this.pendingRequestSentAt);
|
||||
this.lastTimeTaken = timeTaken;
|
||||
var wasRealReply = this.pendingRequestSentAt > 0;
|
||||
this.pendingRequestSentAt = 0;
|
||||
|
||||
this.handleCompileRequestAndResponse(request, result, cached, wasRealReply, timeTaken);
|
||||
|
||||
this.doNextCompileRequest();
|
||||
};
|
||||
|
||||
Executor.prototype.resendResult = function () {
|
||||
@@ -371,6 +537,19 @@ Executor.prototype.onResendExecutionResult = function (id) {
|
||||
};
|
||||
|
||||
Executor.prototype.onEditorChange = function (editor, source, langId, compilerId) {
|
||||
if (this.sourceTreeId) {
|
||||
var tree = this.hub.getTreeById(this.sourceTreeId);
|
||||
if (tree) {
|
||||
if (tree.multifileService.isEditorPartOfProject(editor)) {
|
||||
if (this.settings.compileOnChange) {
|
||||
this.compile();
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (editor === this.sourceEditorId && langId === this.currentLangId &&
|
||||
(compilerId === undefined)) {
|
||||
this.source = source;
|
||||
@@ -623,8 +802,8 @@ Executor.prototype.onExecStdinChange = function (newStdin) {
|
||||
this.compile();
|
||||
};
|
||||
|
||||
Executor.prototype.onRequestCompilation = function (editorId) {
|
||||
if (editorId === this.sourceEditorId) {
|
||||
Executor.prototype.onRequestCompilation = function (editorId, treeId) {
|
||||
if ((editorId === this.sourceEditorId) || (treeId && treeId === this.sourceTreeId)) {
|
||||
this.compile();
|
||||
}
|
||||
};
|
||||
@@ -685,6 +864,7 @@ Executor.prototype.currentState = function () {
|
||||
id: this.id,
|
||||
compiler: this.compiler ? this.compiler.id : '',
|
||||
source: this.sourceEditorId,
|
||||
tree: this.sourceTreeId,
|
||||
options: this.options,
|
||||
execArgs: this.executionArguments,
|
||||
execStdin: this.executionStdin,
|
||||
@@ -714,10 +894,20 @@ Executor.prototype.getLanguageName = function () {
|
||||
return lang ? lang.name : '?';
|
||||
};
|
||||
|
||||
Executor.prototype.getLinkHint = function () {
|
||||
var linkhint = '';
|
||||
if (this.sourceTreeId) {
|
||||
linkhint = 'Tree #' + this.sourceTreeId;
|
||||
} else {
|
||||
linkhint = 'Editor #' + this.sourceEditorId;
|
||||
}
|
||||
return linkhint;
|
||||
};
|
||||
|
||||
Executor.prototype.getPaneName = function () {
|
||||
var langName = this.getLanguageName();
|
||||
var compName = this.getCompilerName();
|
||||
return 'Executor ' + compName + ' (' + langName + ', Editor #' + this.sourceEditorId + ')';
|
||||
return 'Executor ' + compName + ' (' + langName + ',' + this.getLinkHint() + ')';
|
||||
};
|
||||
|
||||
Executor.prototype.updateCompilerName = function () {
|
||||
|
||||
@@ -44,6 +44,8 @@ function Output(hub, container, state) {
|
||||
this.container = container;
|
||||
this.compilerId = state.compiler;
|
||||
this.editorId = state.editor;
|
||||
this.treeId = state.tree;
|
||||
this.hub = hub;
|
||||
this.eventHub = hub.createEventHub();
|
||||
this.domRoot = container.getElement();
|
||||
this.domRoot.html($('#compiler-output').html());
|
||||
@@ -109,6 +111,7 @@ Output.prototype.currentState = function () {
|
||||
var state = {
|
||||
compiler: this.compilerId,
|
||||
editor: this.editorId,
|
||||
tree: this.treeId,
|
||||
wrap: options.wrap,
|
||||
};
|
||||
this.fontScale.addState(state);
|
||||
@@ -126,7 +129,7 @@ Output.prototype.addOutputLines = function (result) {
|
||||
if (obj.text === '') {
|
||||
this.add('<br/>');
|
||||
} else {
|
||||
this.add(this.normalAnsiToHtml.toHtml(obj.text), lineNumber, columnNumber);
|
||||
this.add(this.normalAnsiToHtml.toHtml(obj.text), lineNumber, columnNumber, obj.tag ? obj.tag.file : false);
|
||||
}
|
||||
}, this);
|
||||
};
|
||||
@@ -143,15 +146,23 @@ Output.prototype.onCompileResult = function (id, compiler, result) {
|
||||
|
||||
this.contentRoot.empty();
|
||||
|
||||
this.addOutputLines(result);
|
||||
if (!result.execResult) {
|
||||
this.add('Compiler returned: ' + result.code);
|
||||
if (result.buildsteps) {
|
||||
_.each(result.buildsteps, _.bind(function (step) {
|
||||
this.add('Step ' + step.step + ' returned: ' + step.code);
|
||||
this.addOutputLines(step);
|
||||
}, this));
|
||||
} else {
|
||||
this.add('ASM generation compiler returned: ' + result.code);
|
||||
this.addOutputLines(result.execResult.buildResult);
|
||||
this.add('Execution build compiler returned: ' + result.execResult.buildResult.code);
|
||||
this.addOutputLines(result);
|
||||
if (!result.execResult) {
|
||||
this.add('Compiler returned: ' + result.code);
|
||||
} else {
|
||||
this.add('ASM generation compiler returned: ' + result.code);
|
||||
this.addOutputLines(result.execResult.buildResult);
|
||||
this.add('Execution build compiler returned: ' + result.execResult.buildResult.code);
|
||||
}
|
||||
}
|
||||
if (result.execResult && result.execResult.didExecute) {
|
||||
|
||||
if (result.execResult && (result.execResult.didExecute || result.didExecute)) {
|
||||
this.add('Program returned: ' + result.execResult.code);
|
||||
if (result.execResult.stderr.length || result.execResult.stdout.length) {
|
||||
_.each(result.execResult.stderr, function (obj) {
|
||||
@@ -186,21 +197,40 @@ Output.prototype.programOutput = function (msg, color) {
|
||||
elem.css('color', color);
|
||||
};
|
||||
|
||||
Output.prototype.add = function (msg, lineNum, column) {
|
||||
Output.prototype.getEditorIdByFilename = function (filename) {
|
||||
var tree = this.hub.getTreeById(this.treeId);
|
||||
if (tree) {
|
||||
return tree.multifileService.getEditorIdByFilename(filename);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
Output.prototype.emitEditorLinkLine = function (lineNum, column, filename, goto) {
|
||||
if (this.editorId) {
|
||||
this.eventHub.emit('editorLinkLine', this.editorId, lineNum, column, column + 1, goto);
|
||||
} else if (filename) {
|
||||
var editorId = this.getEditorIdByFilename(filename);
|
||||
if (editorId) {
|
||||
this.eventHub.emit('editorLinkLine', editorId, lineNum, column, column + 1, goto);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Output.prototype.add = function (msg, lineNum, column, filename) {
|
||||
var elem = $('<div/>').appendTo(this.contentRoot);
|
||||
if (lineNum) {
|
||||
elem.html(
|
||||
$('<span class="linked-compiler-output-line"></span>')
|
||||
.html(msg)
|
||||
.click(_.bind(function (e) {
|
||||
this.eventHub.emit('editorLinkLine', this.editorId, lineNum, column, column + 1, true);
|
||||
.on('click', _.bind(function (e) {
|
||||
this.emitEditorLinkLine(lineNum, column, filename, true);
|
||||
// do not bring user to the top of index.html
|
||||
// http://stackoverflow.com/questions/3252730
|
||||
e.preventDefault();
|
||||
return false;
|
||||
}, this))
|
||||
.on('mouseover', _.bind(function () {
|
||||
this.eventHub.emit('editorLinkLine', this.editorId, lineNum, column, column + 1, false);
|
||||
this.emitEditorLinkLine(lineNum, column, filename, false);
|
||||
}, this))
|
||||
);
|
||||
} else {
|
||||
|
||||
@@ -50,6 +50,7 @@ function Tool(hub, container, state) {
|
||||
this.container = container;
|
||||
this.compilerId = state.compiler;
|
||||
this.editorId = state.editor;
|
||||
this.treeId = state.tree;
|
||||
this.toolId = state.toolId;
|
||||
this.toolName = 'Tool';
|
||||
this.compilerService = hub.compilerService;
|
||||
@@ -146,7 +147,7 @@ Tool.prototype.initCallbacks = function () {
|
||||
};
|
||||
|
||||
Tool.prototype.onLanguageChange = function (editorId, newLangId) {
|
||||
if (this.editorId === editorId) {
|
||||
if (this.editorId && this.editorId === editorId) {
|
||||
var tools = ceoptions.tools[newLangId];
|
||||
this.toggleUsable(tools && tools[this.toolId]);
|
||||
}
|
||||
@@ -345,6 +346,7 @@ Tool.prototype.currentState = function () {
|
||||
var state = {
|
||||
compiler: this.compilerId,
|
||||
editor: this.editorId,
|
||||
tree: this.treeId,
|
||||
wrap: options.wrap,
|
||||
toolId: this.toolId,
|
||||
args: this.getInputArgs(),
|
||||
@@ -397,6 +399,10 @@ Tool.prototype.onCompileResult = function (id, compiler, result) {
|
||||
toolResult = _.find(result.tools, function (tool) {
|
||||
return (tool.id === this.toolId);
|
||||
}, this);
|
||||
} else if (result && result.result && result.result.tools) {
|
||||
toolResult = _.find(result.result.tools, function (tool) {
|
||||
return (tool.id === this.toolId);
|
||||
}, this);
|
||||
}
|
||||
|
||||
var toolInfo = null;
|
||||
@@ -446,7 +452,7 @@ Tool.prototype.onCompileResult = function (id, compiler, result) {
|
||||
this.toolName = toolResult.name;
|
||||
this.updateCompilerName();
|
||||
|
||||
if (toolResult.sourcechanged) {
|
||||
if (toolResult.sourcechanged && this.editorId) {
|
||||
this.eventHub.emit('newSource', this.editorId, toolResult.newsource);
|
||||
}
|
||||
} else {
|
||||
@@ -460,12 +466,12 @@ Tool.prototype.onCompileResult = function (id, compiler, result) {
|
||||
|
||||
Tool.prototype.add = function (msg, lineNum) {
|
||||
var elem = $('<div/>').appendTo(this.plainContentRoot);
|
||||
if (lineNum) {
|
||||
if (lineNum && this.editorId) {
|
||||
elem.html(
|
||||
$('<a></a>')
|
||||
.prop('href', 'javascript:;')
|
||||
.html(msg)
|
||||
.click(_.bind(function (e) {
|
||||
.on('click', _.bind(function (e) {
|
||||
this.eventHub.emit('editorSetDecoration', this.editorId, lineNum, true);
|
||||
e.preventDefault();
|
||||
return false;
|
||||
|
||||
631
static/panes/tree.ts
Normal file
631
static/panes/tree.ts
Normal file
@@ -0,0 +1,631 @@
|
||||
// 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.
|
||||
|
||||
import { MultifileFile, MultifileService, MultifileServiceState } from "../multifile-service";
|
||||
import { saveAs } from "file-saver";
|
||||
import { LineColouring } from "../line-colouring";
|
||||
|
||||
const _ = require('underscore');
|
||||
const $ = require('jquery');
|
||||
const Alert = require('../alert').Alert;
|
||||
const Components = require('../components');
|
||||
const local = require('../local');
|
||||
const ga = require('../analytics');
|
||||
const TomSelect = require('tom-select');
|
||||
const Toggles = require('../toggles');
|
||||
const options = require('../options');
|
||||
const languages = options.languages;
|
||||
const saveAs = require('file-saver').saveAs;
|
||||
|
||||
declare global {
|
||||
interface Window { httpRoot: any; }
|
||||
}
|
||||
|
||||
export class TreeState extends MultifileServiceState {
|
||||
id: number
|
||||
cmakeArgs: string;
|
||||
customOutputFilename: string;
|
||||
}
|
||||
|
||||
export class Tree {
|
||||
private id: number;
|
||||
private container: any;
|
||||
private domRoot: any;
|
||||
private hub: any;
|
||||
private eventHub: any;
|
||||
private settings: any;
|
||||
private httpRoot: any;
|
||||
private alertSystem: any;
|
||||
private root: any;
|
||||
private rowTemplate: any;
|
||||
private namedItems: any;
|
||||
private unnamedItems: any;
|
||||
private langKeys: string[];
|
||||
private cmakeArgsInput: any;
|
||||
private customOutputFilenameInput: any;
|
||||
public multifileService: MultifileService;
|
||||
private lineColouring: LineColouring;
|
||||
private ourCompilers: {};
|
||||
private busyCompilers: {};
|
||||
private asmByCompiler: {};
|
||||
private selectize: any;
|
||||
private languageBtn: any;
|
||||
private toggleCMakeButton: any;
|
||||
private debouncedEmitChange: () => void;
|
||||
private hideable: any;
|
||||
private topBar: any;
|
||||
|
||||
constructor(hub, state: TreeState, container) {
|
||||
this.id = state.id || hub.nextTreeId();
|
||||
this.container = container;
|
||||
this.domRoot = container.getElement();
|
||||
this.domRoot.html($('#tree').html());
|
||||
this.hub = hub;
|
||||
this.eventHub = hub.createEventHub();
|
||||
this.settings = JSON.parse(local.get('settings', '{}'));
|
||||
|
||||
this.httpRoot = window.httpRoot;
|
||||
|
||||
this.alertSystem = new Alert();
|
||||
this.alertSystem.prefixMessage = 'Tree #' + this.id + ': ';
|
||||
|
||||
this.root = this.domRoot.find('.tree');
|
||||
this.rowTemplate = $('#tree-editor-tpl');
|
||||
this.namedItems = this.domRoot.find('.named-editors');
|
||||
this.unnamedItems = this.domRoot.find('.unnamed-editors');
|
||||
this.hideable = this.domRoot.find('.hideable');
|
||||
this.topBar = this.domRoot.find('.top-bar.mainbar');
|
||||
|
||||
this.langKeys = _.keys(languages);
|
||||
|
||||
this.cmakeArgsInput = this.domRoot.find('.cmake-arguments');
|
||||
this.customOutputFilenameInput = this.domRoot.find('.cmake-customOutputFilename');
|
||||
|
||||
const usableLanguages = _.filter(languages, (language) => {
|
||||
return hub.compilerService.compilersByLang[language.id];
|
||||
});
|
||||
|
||||
if (state) {
|
||||
if (!state.compilerLanguageId) {
|
||||
state.compilerLanguageId = this.settings.defaultLanguage;
|
||||
}
|
||||
} else {
|
||||
state = {
|
||||
id: this.id,
|
||||
customOutputFilename: '',
|
||||
cmakeArgs: '',
|
||||
compilerLanguageId: this.settings.defaultLanguage,
|
||||
isCMakeProject: false,
|
||||
files: [],
|
||||
newFileId: 1,
|
||||
};
|
||||
}
|
||||
|
||||
this.multifileService = new MultifileService(this.hub, this.alertSystem, state);
|
||||
this.lineColouring = new LineColouring(this.multifileService);
|
||||
this.ourCompilers = {};
|
||||
this.busyCompilers = {};
|
||||
this.asmByCompiler = {};
|
||||
|
||||
this.initInputs(state);
|
||||
this.initButtons(state);
|
||||
this.initCallbacks();
|
||||
this.onSettingsChange(this.settings);
|
||||
|
||||
this.selectize = new TomSelect(this.languageBtn, {
|
||||
sortField: 'name',
|
||||
valueField: 'id',
|
||||
labelField: 'name',
|
||||
searchField: ['name'],
|
||||
options: _.map(usableLanguages, _.identity),
|
||||
items: [this.multifileService.getLanguageId()],
|
||||
dropdownParent: 'body',
|
||||
plugins: ['input_autogrow'],
|
||||
onChange: _.bind(this.onLanguageChange, this),
|
||||
});
|
||||
|
||||
this.updateTitle();
|
||||
this.onLanguageChange(this.multifileService.getLanguageId());
|
||||
|
||||
ga.proxy('send', {
|
||||
hitType: 'event',
|
||||
eventCategory: 'OpenViewPane',
|
||||
eventAction: 'Tree',
|
||||
});
|
||||
|
||||
this.refresh();
|
||||
this.eventHub.emit('findEditors');
|
||||
}
|
||||
|
||||
private initInputs(state: TreeState) {
|
||||
if (state) {
|
||||
if (state.cmakeArgs) {
|
||||
this.cmakeArgsInput.val(state.cmakeArgs);
|
||||
}
|
||||
|
||||
if (state.customOutputFilename) {
|
||||
this.customOutputFilenameInput.val(state.customOutputFilename);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private getCmakeArgs(): string {
|
||||
return this.cmakeArgsInput.val();
|
||||
}
|
||||
|
||||
private getCustomOutputFilename(): string {
|
||||
return this.customOutputFilenameInput.val();
|
||||
}
|
||||
|
||||
public currentState(): TreeState {
|
||||
return {
|
||||
id: this.id,
|
||||
cmakeArgs: this.getCmakeArgs(),
|
||||
customOutputFilename: this.getCustomOutputFilename(),
|
||||
... this.multifileService.getState()
|
||||
}
|
||||
};
|
||||
|
||||
private updateState() {
|
||||
const state = this.currentState();
|
||||
this.container.setState(state);
|
||||
|
||||
this.updateButtons(state);
|
||||
}
|
||||
|
||||
private initCallbacks() {
|
||||
this.container.on('resize', this.resize, this);
|
||||
this.container.on('shown', this.resize, this);
|
||||
this.container.on('open', () => {
|
||||
this.eventHub.emit('treeOpen', this.id);
|
||||
});
|
||||
this.container.on('destroy', this.close, this);
|
||||
|
||||
this.eventHub.on('editorOpen', this.onEditorOpen, this);
|
||||
this.eventHub.on('editorClose', this.onEditorClose, this);
|
||||
this.eventHub.on('compilerOpen', this.onCompilerOpen, this);
|
||||
this.eventHub.on('compilerClose', this.onCompilerClose, this);
|
||||
|
||||
this.eventHub.on('compileResult', this.onCompileResponse, this);
|
||||
|
||||
this.toggleCMakeButton.on('change', _.bind(this.onToggleCMakeChange, this));
|
||||
|
||||
this.cmakeArgsInput.on('change', _.bind(this.updateCMakeArgs, this));
|
||||
this.customOutputFilenameInput.on('change', _.bind(this.updateCustomOutputFilename, this));
|
||||
}
|
||||
|
||||
private updateCMakeArgs() {
|
||||
this.updateState();
|
||||
|
||||
this.debouncedEmitChange();
|
||||
}
|
||||
|
||||
private updateCustomOutputFilename() {
|
||||
this.updateState();
|
||||
|
||||
this.debouncedEmitChange();
|
||||
}
|
||||
|
||||
private onToggleCMakeChange() {
|
||||
const isOn = this.toggleCMakeButton.state.isCMakeProject;
|
||||
this.multifileService.setAsCMakeProject(isOn);
|
||||
|
||||
this.domRoot.find('.cmake-project').prop('title',
|
||||
'[' + (isOn ? 'ON' : 'OFF') + '] CMake project');
|
||||
this.updateState();
|
||||
}
|
||||
|
||||
private onLanguageChange(newLangId: string) {
|
||||
if (languages[newLangId]) {
|
||||
this.multifileService.setLanguageId(newLangId);
|
||||
this.eventHub.emit('languageChange', false, newLangId, this.id);
|
||||
}
|
||||
|
||||
this.toggleCMakeButton.enableToggle('isCMakeProject', this.multifileService.isCompatibleWithCMake());
|
||||
|
||||
this.refresh();
|
||||
}
|
||||
|
||||
private sendCompilerChangesToEditor(compilerId: number) {
|
||||
this.multifileService.forEachOpenFile((file: MultifileFile) => {
|
||||
if (file.isIncluded) {
|
||||
this.eventHub.emit('treeCompilerEditorIncludeChange', this.id, file.editorId, compilerId);
|
||||
} else {
|
||||
this.eventHub.emit('treeCompilerEditorExcludeChange', this.id, file.editorId, compilerId);
|
||||
}
|
||||
});
|
||||
|
||||
this.eventHub.emit('resendCompilation', compilerId);
|
||||
}
|
||||
|
||||
private sendCompileRequests() {
|
||||
this.eventHub.emit('requestCompilation', false, this.id);
|
||||
}
|
||||
|
||||
private sendChangesToAllEditors() {
|
||||
_.each(this.ourCompilers, (unused, compilerId: string) => {
|
||||
this.sendCompilerChangesToEditor(parseInt(compilerId));
|
||||
});
|
||||
}
|
||||
|
||||
private onCompilerOpen(compilerId: number, unused, treeId: number) {
|
||||
if (treeId === this.id) {
|
||||
this.ourCompilers[compilerId] = true;
|
||||
this.sendCompilerChangesToEditor(compilerId);
|
||||
}
|
||||
}
|
||||
|
||||
private onCompilerClose(compilerId: number, unused, treeId: number) {
|
||||
if (treeId === this.id) {
|
||||
delete this.ourCompilers[compilerId];
|
||||
}
|
||||
}
|
||||
|
||||
private onEditorOpen(editorId: number) {
|
||||
const file = this.multifileService.getFileByEditorId(editorId);
|
||||
if (file) return;
|
||||
|
||||
this.multifileService.addFileForEditorId(editorId);
|
||||
this.refresh();
|
||||
this.sendChangesToAllEditors();
|
||||
}
|
||||
|
||||
private onEditorClose(editorId: number) {
|
||||
const file = this.multifileService.getFileByEditorId(editorId);
|
||||
|
||||
if (file) {
|
||||
file.isOpen = false;
|
||||
const editor = this.hub.getEditorById(editorId);
|
||||
file.langId = editor.currentLanguage.id;
|
||||
file.content = editor.getSource();
|
||||
file.editorId = -1;
|
||||
}
|
||||
|
||||
this.refresh();
|
||||
}
|
||||
|
||||
private removeFile(fileId: number) {
|
||||
const file = this.multifileService.removeFileByFileId(fileId);
|
||||
if (file) {
|
||||
if (file.isOpen) {
|
||||
const editor = this.hub.getEditorById(file.editorId);
|
||||
if (editor) {
|
||||
editor.container.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.refresh();
|
||||
}
|
||||
|
||||
private addRowToTreelist(file: MultifileFile) {
|
||||
const item = $(this.rowTemplate.children()[0].cloneNode(true));
|
||||
const stagingButton = item.find('.stage-file');
|
||||
const renameButton = item.find('.rename-file');
|
||||
const deleteButton = item.find('.delete-file');
|
||||
|
||||
item.data('fileId', file.fileId);
|
||||
if (file.filename) {
|
||||
item.find('.filename').html(file.filename);
|
||||
} else if (file.editorId > 0) {
|
||||
const editor = this.hub.getEditorById(file.editorId);
|
||||
if (editor) {
|
||||
item.find('.filename').html(editor.getPaneName());
|
||||
} else {
|
||||
// wait for editor to appear first
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
item.find('.filename').html('Unknown file');
|
||||
}
|
||||
|
||||
item.on('click', (e) => {
|
||||
const fileId = $(e.currentTarget).data('fileId');
|
||||
this.editFile(fileId);
|
||||
});
|
||||
|
||||
renameButton.on('click', async (e) => {
|
||||
const fileId = $(e.currentTarget).parent('li').data('fileId');
|
||||
await this.multifileService.renameFile(fileId);
|
||||
this.refresh();
|
||||
});
|
||||
|
||||
deleteButton.on('click', (e) => {
|
||||
const fileId = $(e.currentTarget).parent('li').data('fileId');
|
||||
const file = this.multifileService.getFileByFileId(fileId);
|
||||
if (file) {
|
||||
this.alertSystem.ask('Delete file', 'Are you sure you want to delete ' + file.filename, {
|
||||
yes: () => {
|
||||
this.removeFile(fileId);
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
if (file.isIncluded) {
|
||||
stagingButton.removeClass('fa-plus').addClass('fa-minus');
|
||||
stagingButton.on('click', async (e) => {
|
||||
const fileId = $(e.currentTarget).parent('li').data('fileId');
|
||||
await this.moveToExclude(fileId);
|
||||
});
|
||||
this.namedItems.append(item);
|
||||
} else {
|
||||
stagingButton.removeClass('fa-minus').addClass('fa-plus');
|
||||
stagingButton.on('click', async (e) => {
|
||||
const fileId = $(e.currentTarget).parent('li').data('fileId');
|
||||
await this.moveToInclude(fileId);
|
||||
});
|
||||
this.unnamedItems.append(item);
|
||||
}
|
||||
}
|
||||
|
||||
private refresh() {
|
||||
this.updateState();
|
||||
|
||||
this.namedItems.html('');
|
||||
this.unnamedItems.html('');
|
||||
|
||||
this.multifileService.forEachFile((file: MultifileFile) => this.addRowToTreelist(file));
|
||||
}
|
||||
|
||||
private editFile(fileId: number) {
|
||||
const file = this.multifileService.getFileByFileId(fileId);
|
||||
if (!file.isOpen) {
|
||||
const dragConfig = this.getConfigForNewEditor(file);
|
||||
file.isOpen = true;
|
||||
|
||||
this.hub.addInEditorStackIfPossible(dragConfig);
|
||||
} else {
|
||||
const editor = this.hub.getEditorById(file.editorId);
|
||||
this.hub.activateTabForContainer(editor.container);
|
||||
}
|
||||
|
||||
this.sendChangesToAllEditors();
|
||||
}
|
||||
|
||||
private async moveToInclude(fileId: number) {
|
||||
await this.multifileService.includeByFileId(fileId);
|
||||
|
||||
this.refresh();
|
||||
this.sendChangesToAllEditors();
|
||||
}
|
||||
|
||||
private async moveToExclude(fileId: number) {
|
||||
await this.multifileService.excludeByFileId(fileId);
|
||||
this.refresh();
|
||||
this.sendChangesToAllEditors();
|
||||
}
|
||||
|
||||
private bindClickToOpenPane(dragSource, dragConfig) {
|
||||
dragSource.on('click', () => {
|
||||
this.hub.addInEditorStackIfPossible(_.bind(dragConfig, this));
|
||||
});
|
||||
}
|
||||
|
||||
private getConfigForNewCompiler() {
|
||||
return Components.getCompilerForTree(this.id, this.currentState().compilerLanguageId);
|
||||
}
|
||||
|
||||
private getConfigForNewExecutor() {
|
||||
return Components.getExecutorForTree(this.id, this.currentState().compilerLanguageId);
|
||||
}
|
||||
|
||||
private getConfigForNewEditor(file: MultifileFile) {
|
||||
let editor;
|
||||
const editorId = this.hub.nextEditorId();
|
||||
|
||||
if (file) {
|
||||
file.editorId = editorId;
|
||||
editor = Components.getEditor(
|
||||
editorId,
|
||||
file.langId);
|
||||
|
||||
editor.componentState.source = file.content;
|
||||
if (file.filename) {
|
||||
editor.componentState.filename = file.filename;
|
||||
}
|
||||
} else {
|
||||
editor = Components.getEditor(
|
||||
editorId,
|
||||
this.multifileService.getLanguageId());
|
||||
}
|
||||
|
||||
return editor;
|
||||
}
|
||||
|
||||
private getFormattedDateTime() {
|
||||
const d = new Date();
|
||||
|
||||
let datestring = d.getFullYear() +
|
||||
('0' + (d.getMonth() + 1)).slice(-2) +
|
||||
('0' + d.getDate()).slice(-2);
|
||||
datestring += ('0' + d.getHours()).slice(-2) +
|
||||
('0' + d.getMinutes()).slice(-2) +
|
||||
('0' + d.getSeconds()).slice(-2);
|
||||
|
||||
return datestring;
|
||||
}
|
||||
|
||||
private triggerSaveAs(blob) {
|
||||
const dt = this.getFormattedDateTime();
|
||||
saveAs(blob, `project-${dt}.zip`);
|
||||
}
|
||||
|
||||
private initButtons(state: TreeState) {
|
||||
const addCompilerButton = this.domRoot.find('.add-compiler');
|
||||
const addExecutorButton = this.domRoot.find('.add-executor');
|
||||
const addEditorButton = this.domRoot.find('.add-editor');
|
||||
const saveProjectButton = this.domRoot.find('.save-project-to-file');
|
||||
|
||||
saveProjectButton.on('click', () => {
|
||||
this.multifileService.saveProjectToZipfile(_.bind(this.triggerSaveAs, this));
|
||||
});
|
||||
|
||||
const loadProjectFromFile = this.domRoot.find('.load-project-from-file');
|
||||
loadProjectFromFile.on('change', (e) => {
|
||||
const files = e.target.files;
|
||||
if (files.length > 0) {
|
||||
this.multifileService.forEachFile((file: MultifileFile) => {
|
||||
this.removeFile(file.fileId);
|
||||
});
|
||||
|
||||
this.multifileService.loadProjectFromFile(files[0], (file: MultifileFile) => {
|
||||
this.refresh();
|
||||
if (file.filename === 'CMakeLists.txt') {
|
||||
// todo: find a way to toggle on CMake checkbox...
|
||||
this.editFile(file.fileId);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
this.bindClickToOpenPane(addCompilerButton, this.getConfigForNewCompiler);
|
||||
this.bindClickToOpenPane(addExecutorButton, this.getConfigForNewExecutor);
|
||||
this.bindClickToOpenPane(addEditorButton, this.getConfigForNewEditor);
|
||||
|
||||
this.languageBtn = this.domRoot.find('.change-language');
|
||||
|
||||
if (this.langKeys.length <= 1) {
|
||||
this.languageBtn.prop('disabled', true);
|
||||
}
|
||||
|
||||
this.toggleCMakeButton = new Toggles(this.domRoot.find('.options'), state);
|
||||
}
|
||||
|
||||
private numberUsedLines() {
|
||||
if (_.any(this.busyCompilers)) return;
|
||||
|
||||
if (!this.settings.colouriseAsm) {
|
||||
this.updateColoursNone();
|
||||
return;
|
||||
}
|
||||
|
||||
this.lineColouring.clear();
|
||||
|
||||
_.each(this.asmByCompiler, (asm: any, compilerId: string) => {
|
||||
if (asm) this.lineColouring.addFromAssembly(parseInt(compilerId), asm);
|
||||
});
|
||||
|
||||
this.lineColouring.calculate();
|
||||
|
||||
this.updateColours();
|
||||
}
|
||||
|
||||
private updateColours() {
|
||||
_.each(this.ourCompilers, (unused, compilerId: string) => {
|
||||
const id: number = parseInt(compilerId);
|
||||
this.eventHub.emit('coloursForCompiler', id,
|
||||
this.lineColouring.getColoursForCompiler(id), this.settings.colourScheme);
|
||||
});
|
||||
|
||||
this.multifileService.forEachOpenFile((file: MultifileFile) => {
|
||||
this.eventHub.emit('coloursForEditor', file.editorId,
|
||||
this.lineColouring.getColoursForEditor(file.editorId), this.settings.colourScheme);
|
||||
});
|
||||
}
|
||||
|
||||
private updateColoursNone() {
|
||||
_.each(this.ourCompilers, (unused, compilerId: string) => {
|
||||
this.eventHub.emit('coloursForCompiler', parseInt(compilerId), {}, this.settings.colourScheme);
|
||||
});
|
||||
|
||||
this.multifileService.forEachOpenFile((file: MultifileFile) => {
|
||||
this.eventHub.emit('coloursForEditor', file.editorId, {}, this.settings.colourScheme);
|
||||
});
|
||||
}
|
||||
|
||||
private onCompileResponse(compilerId: number, compiler, result) {
|
||||
if (!this.ourCompilers[compilerId]) return;
|
||||
|
||||
this.busyCompilers[compilerId] = false;
|
||||
|
||||
// todo: parse errors and warnings and relate them to lines in the code
|
||||
// note: requires info about the filename, do we currently have that?
|
||||
|
||||
// eslint-disable-next-line max-len
|
||||
// {"text":"/tmp/compiler-explorer-compiler2021428-7126-95g4xc.zfo8p/example.cpp:4:21: error: expected ‘;’ before ‘}’ token"}
|
||||
|
||||
if (result.result && result.result.asm) {
|
||||
this.asmByCompiler[compilerId] = result.result.asm;
|
||||
} else {
|
||||
this.asmByCompiler[compilerId] = result.asm;
|
||||
}
|
||||
|
||||
this.numberUsedLines();
|
||||
}
|
||||
|
||||
private updateButtons(state: TreeState) {
|
||||
if (state.isCMakeProject) {
|
||||
this.cmakeArgsInput.parent().removeClass('d-none');
|
||||
this.customOutputFilenameInput.parent().removeClass('d-none');
|
||||
} else {
|
||||
this.cmakeArgsInput.parent().addClass('d-none');
|
||||
this.customOutputFilenameInput.parent().addClass('d-none');
|
||||
}
|
||||
}
|
||||
|
||||
private updateHideables() {
|
||||
var topBar = this.topBar;
|
||||
if (!topBar.hasClass('d-none')) {
|
||||
this.hideable.show();
|
||||
var topBarHeightMax = topBar.outerHeight(true);
|
||||
this.hideable.hide();
|
||||
var topBarHeightMin = topBar.outerHeight(true);
|
||||
if (topBarHeightMin === topBarHeightMax) {
|
||||
this.hideable.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private resize() {
|
||||
this.updateHideables();
|
||||
|
||||
const mainbarHeight = this.topBar.outerHeight(true);
|
||||
const argsHeight = this.domRoot.find('.panel-args').outerHeight(true);
|
||||
const outputfileHeight = this.domRoot.find('.panel-outputfile').outerHeight(true);
|
||||
|
||||
this.root.height(this.domRoot.innerHeight() - mainbarHeight - argsHeight - outputfileHeight);
|
||||
}
|
||||
|
||||
private onSettingsChange(newSettings) {
|
||||
this.debouncedEmitChange = _.debounce(() => {
|
||||
this.sendCompileRequests();
|
||||
}, newSettings.delayAfterChange);
|
||||
}
|
||||
|
||||
private getPaneName() {
|
||||
return `Tree #${this.id}`;
|
||||
}
|
||||
|
||||
private updateTitle() {
|
||||
this.container.setTitle(this.getPaneName());
|
||||
}
|
||||
|
||||
private close() {
|
||||
this.eventHub.unsubscribe();
|
||||
this.eventHub.emit('treeClose', this.id);
|
||||
this.hub.removeTree(this.id);
|
||||
$('#add-tree').prop('disabled', false);
|
||||
}
|
||||
}
|
||||
@@ -242,7 +242,9 @@ function setupSettings(root, settings, onChange, subLangId) {
|
||||
}
|
||||
add(root.find('.useSpaces'), 'useSpaces', true, Checkbox);
|
||||
add(root.find('.tabWidth'), 'tabWidth', 4, Numeric, {min: 1, max: 80});
|
||||
// note: this is the ctrl+s "Save option"
|
||||
add(root.find('.enableCtrlS'), 'enableCtrlS', true, Checkbox);
|
||||
add(root.find('.enableCtrlStree'), 'enableCtrlStree', true, Checkbox);
|
||||
add(root.find('.editorsFFont'), 'editorsFFont', 'Consolas, "Liberation Mono", Courier, monospace', Textbox);
|
||||
add(root.find('.editorsFLigatures'), 'editorsFLigatures', false, Checkbox);
|
||||
add(root.find('.allowStoreCodeDebug'), 'allowStoreCodeDebug', true, Checkbox);
|
||||
|
||||
@@ -491,3 +491,17 @@ a {
|
||||
.conformance-wrapper .compiler-list .form-row {
|
||||
border-bottom: 1px solid #3e3e3e;
|
||||
}
|
||||
|
||||
.tree ul, .tree li {
|
||||
background-color: #222222 !important;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.tree li.tree-editor-file {
|
||||
background-color: #303030 !important;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.tree li.tree-editor-file:hover {
|
||||
background-color: #333 !important;
|
||||
}
|
||||
|
||||
@@ -291,3 +291,16 @@ div.argmenuitem span.argdescription {
|
||||
.lm_header .lm_tab:last-child {
|
||||
border-bottom: 1px solid #ccc !important;
|
||||
}
|
||||
|
||||
.lm_content .tree {
|
||||
background-color: #fff;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.lm_content .tree span.filename {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.tree li.tree-editor-file:hover {
|
||||
background-color: #dae5e0 !important;
|
||||
}
|
||||
|
||||
@@ -94,58 +94,25 @@ function initializeChartDataFromResult(compileResult, totalTime) {
|
||||
pushTimingInfo(data, 'Execution', compileResult.execResult.execTime);
|
||||
}
|
||||
} else {
|
||||
addBuildResultToTimings(data, compileResult);
|
||||
|
||||
if (compileResult.packageDownloadAndUnzipTime) {
|
||||
pushTimingInfo(data, 'Download binary from cache', compileResult.execTime);
|
||||
} else {
|
||||
if (compileResult.execResult) {
|
||||
if (compileResult.execResult.buildResult) {
|
||||
addBuildResultToTimings(data, compileResult.execResult.buildResult);
|
||||
}
|
||||
if (!compileResult.packageDownloadAndUnzipTime) {
|
||||
if (compileResult.objdumpTime) {
|
||||
pushTimingInfo(data, 'Disassembly', compileResult.objdumpTime);
|
||||
}
|
||||
|
||||
if (compileResult.objdumpTime) {
|
||||
pushTimingInfo(data, 'Disassembly', compileResult.objdumpTime);
|
||||
}
|
||||
|
||||
if (compileResult.parsingTime) {
|
||||
pushTimingInfo(data, 'ASM parsing', compileResult.parsingTime);
|
||||
}
|
||||
|
||||
if (compileResult.execResult.execTime) {
|
||||
pushTimingInfo(data, 'Execution', compileResult.execResult.execTime);
|
||||
}
|
||||
|
||||
} else {
|
||||
if (compileResult.downloads) {
|
||||
concatTimings(data, compileResult.downloads);
|
||||
}
|
||||
|
||||
if (!compileResult.didExecute && compileResult.execTime) {
|
||||
pushTimingInfo(data, 'Compilation', compileResult.execTime);
|
||||
}
|
||||
|
||||
if (compileResult.objdumpTime) {
|
||||
pushTimingInfo(data, 'Disassembly', compileResult.objdumpTime);
|
||||
}
|
||||
|
||||
if (compileResult.parsingTime) {
|
||||
pushTimingInfo(data, 'ASM parsing', compileResult.parsingTime);
|
||||
}
|
||||
if (compileResult.parsingTime) {
|
||||
pushTimingInfo(data, 'ASM parsing', compileResult.parsingTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (compileResult.didExecute) {
|
||||
if (compileResult.buildResult) {
|
||||
if (compileResult.buildResult.packageDownloadAndUnzipTime) {
|
||||
pushTimingInfo(data,
|
||||
'Download binary from cache',
|
||||
compileResult.buildResult.packageDownloadAndUnzipTime);
|
||||
}
|
||||
} else if (compileResult.execResult && compileResult.execResult.buildResult) {
|
||||
addBuildResultToTimings(data, compileResult.execResult.buildResult);
|
||||
if (compileResult.execResult.execTime) {
|
||||
pushTimingInfo(data, 'Execution', compileResult.execResult.execTime);
|
||||
} else {
|
||||
pushTimingInfo(data, 'Execution', compileResult.execTime);
|
||||
}
|
||||
pushTimingInfo(data, 'Execution', compileResult.execTime);
|
||||
}
|
||||
|
||||
var stepsTotal = data.steps;
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
"esModuleInterop": true
|
||||
},
|
||||
"files": [
|
||||
"multifile-service.ts",
|
||||
"line-colouring.ts",
|
||||
"panes/tree.ts",
|
||||
"alert.ts"
|
||||
]
|
||||
}
|
||||
@@ -488,7 +488,7 @@ describe('Compiler execution', function () {
|
||||
return Promise.resolve({
|
||||
code: 0,
|
||||
filenameTransform: x => x,
|
||||
stdout: 'the output',
|
||||
stdout: '<No output file output>',
|
||||
stderr: '',
|
||||
});
|
||||
});
|
||||
@@ -499,7 +499,7 @@ describe('Compiler execution', function () {
|
||||
123456,
|
||||
true,
|
||||
true);
|
||||
result.asm.should.deep.equal('the output');
|
||||
result.asm.should.deep.equal('<No output file output>');
|
||||
}
|
||||
|
||||
it('should run default objdump properly', async () => {
|
||||
@@ -565,7 +565,7 @@ Args: []
|
||||
|
||||
try {
|
||||
compiler.getExtraFilepath('/tmp/somefolder', '../test.h');
|
||||
throw 'Should throw exception';
|
||||
throw 'Should throw exception 1';
|
||||
} catch (error) {
|
||||
if (!(error instanceof Error)) {
|
||||
throw error;
|
||||
@@ -574,7 +574,7 @@ Args: []
|
||||
|
||||
try {
|
||||
compiler.getExtraFilepath('/tmp/somefolder', './../test.h');
|
||||
throw 'Should throw exception';
|
||||
throw 'Should throw exception 2';
|
||||
} catch (error) {
|
||||
if (!(error instanceof Error)) {
|
||||
throw error;
|
||||
@@ -582,8 +582,7 @@ Args: []
|
||||
}
|
||||
|
||||
try {
|
||||
compiler.getExtraFilepath('/tmp/somefolder', '/tmp/someotherfolder/test.h');
|
||||
throw 'Should throw exception';
|
||||
compiler.getExtraFilepath('/tmp/somefolder', '/tmp/someotherfolder/test.h').should.equal('/tmp/somefolder/tmp/someotherfolder/test.h');
|
||||
} catch (error) {
|
||||
if (!(error instanceof Error)) {
|
||||
throw error;
|
||||
@@ -591,8 +590,7 @@ Args: []
|
||||
}
|
||||
|
||||
try {
|
||||
compiler.getExtraFilepath('/tmp/somefolder', '\\test.h');
|
||||
throw 'Should throw exception';
|
||||
compiler.getExtraFilepath('/tmp/somefolder', '\\test.h').should.equal('/tmp/somefolder/test.h');
|
||||
} catch (error) {
|
||||
if (!(error instanceof Error)) {
|
||||
throw error;
|
||||
@@ -601,7 +599,7 @@ Args: []
|
||||
|
||||
try {
|
||||
compiler.getExtraFilepath('/tmp/somefolder', 'test_hello/../../etc/passwd');
|
||||
throw 'Should throw exception';
|
||||
throw 'Should throw exception 5';
|
||||
} catch (error) {
|
||||
if (!(error instanceof Error)) {
|
||||
throw error;
|
||||
@@ -614,10 +612,8 @@ Args: []
|
||||
compiler.getExtraFilepath('/tmp/somefolder', 'test.txt').should.equal('/tmp/somefolder/test.txt');
|
||||
}
|
||||
|
||||
// note: subfolders currently not supported, but maybe in the future?
|
||||
try {
|
||||
compiler.getExtraFilepath('/tmp/somefolder', 'subfolder/hello.h');
|
||||
throw 'Should throw exception';
|
||||
compiler.getExtraFilepath('/tmp/somefolder', 'subfolder/hello.h').should.equal('/tmp/somefolder/subfolder/hello.h');
|
||||
} catch (error) {
|
||||
if (!(error instanceof Error)) {
|
||||
throw error;
|
||||
|
||||
@@ -252,4 +252,112 @@ describe('Execution tests', () => {
|
||||
args.should.include('--env=ENV2=2');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Subdirectory execution', () => {
|
||||
before(() => {
|
||||
props.initialize(path.resolve('./test/test-properties/execution'), ['test']);
|
||||
});
|
||||
after(() => {
|
||||
props.reset();
|
||||
});
|
||||
|
||||
it('Normal situation without customCwd', () => {
|
||||
const {args, options} = exec.getSandboxNsjailOptions(
|
||||
'/tmp/hellow/output.s',
|
||||
[],
|
||||
{},
|
||||
);
|
||||
|
||||
options.should.deep.equals({});
|
||||
args.should.deep.equals([
|
||||
'--config',
|
||||
'etc/nsjail/sandbox.cfg',
|
||||
'--cwd',
|
||||
'/app',
|
||||
'--bindmount',
|
||||
'/tmp/hellow:/app',
|
||||
'--env=HOME=/app',
|
||||
'--',
|
||||
'./output.s',
|
||||
]);
|
||||
});
|
||||
|
||||
it('Normal situation', () => {
|
||||
const {args, options} = exec.getSandboxNsjailOptions(
|
||||
'/tmp/hellow/output.s',
|
||||
[],
|
||||
{
|
||||
customCwd: '/tmp/hellow',
|
||||
},
|
||||
);
|
||||
|
||||
options.should.deep.equals({});
|
||||
args.should.deep.equals([
|
||||
'--config',
|
||||
'etc/nsjail/sandbox.cfg',
|
||||
'--cwd',
|
||||
'/app',
|
||||
'--bindmount',
|
||||
'/tmp/hellow:/app',
|
||||
'--env=HOME=/app',
|
||||
'--',
|
||||
'./output.s',
|
||||
]);
|
||||
});
|
||||
|
||||
it('Subdirectory', () => {
|
||||
const {args, options} = exec.getSandboxNsjailOptions(
|
||||
'/tmp/hellow/subdir/output.s',
|
||||
[],
|
||||
{
|
||||
customCwd: '/tmp/hellow',
|
||||
},
|
||||
);
|
||||
|
||||
options.should.deep.equals({});
|
||||
if (process.platform !== 'win32') {
|
||||
args.should.deep.equals([
|
||||
'--config',
|
||||
'etc/nsjail/sandbox.cfg',
|
||||
'--cwd',
|
||||
'/app',
|
||||
'--bindmount',
|
||||
'/tmp/hellow:/app',
|
||||
'--env=HOME=/app',
|
||||
'--',
|
||||
'subdir/output.s',
|
||||
]);
|
||||
}
|
||||
});
|
||||
|
||||
it('CMake outside tree building', () => {
|
||||
const {args, options} = exec.getNsJailOptions(
|
||||
'execute',
|
||||
'/opt/compiler-explorer/cmake/bin/cmake',
|
||||
['..'],
|
||||
{
|
||||
customCwd: '/tmp/hellow/build',
|
||||
appHome: '/tmp/hellow',
|
||||
},
|
||||
);
|
||||
|
||||
options.should.deep.equals({
|
||||
appHome: '/tmp/hellow',
|
||||
});
|
||||
if (process.platform !== 'win32') {
|
||||
args.should.deep.equals([
|
||||
'--config',
|
||||
'etc/nsjail/execute.cfg',
|
||||
'--cwd',
|
||||
'/app/build',
|
||||
'--bindmount',
|
||||
'/tmp/hellow:/app',
|
||||
'--env=HOME=/app',
|
||||
'--',
|
||||
'/opt/compiler-explorer/cmake/bin/cmake',
|
||||
'..',
|
||||
]);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -901,7 +901,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 1
|
||||
"line": 1,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " push rbp"
|
||||
},
|
||||
@@ -915,7 +916,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 1
|
||||
"line": 1,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov rbp,rsp"
|
||||
},
|
||||
@@ -931,7 +933,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 2
|
||||
"line": 2,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov eax,0x2"
|
||||
},
|
||||
@@ -943,7 +946,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 3
|
||||
"line": 3,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " pop rbp"
|
||||
},
|
||||
@@ -955,7 +959,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 3
|
||||
"line": 3,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ret"
|
||||
},
|
||||
@@ -972,7 +977,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 5
|
||||
"line": 5,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " push rbp"
|
||||
},
|
||||
@@ -986,7 +992,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 5
|
||||
"line": 5,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov rbp,rsp"
|
||||
},
|
||||
@@ -1004,7 +1011,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov DWORD PTR [rbp-0x4],0x2"
|
||||
},
|
||||
@@ -1022,7 +1030,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov DWORD PTR [rbp-0x8],0x3"
|
||||
},
|
||||
@@ -1037,7 +1046,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 7
|
||||
"line": 7,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " add DWORD PTR [rbp-0x8],0x1"
|
||||
},
|
||||
@@ -1051,7 +1061,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 8
|
||||
"line": 8,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " shl DWORD PTR [rbp-0x4],1"
|
||||
},
|
||||
@@ -1063,7 +1074,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 9
|
||||
"line": 9,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " nop"
|
||||
},
|
||||
@@ -1075,7 +1087,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 9
|
||||
"line": 9,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " pop rbp"
|
||||
},
|
||||
@@ -1087,7 +1100,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 9
|
||||
"line": 9,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ret"
|
||||
},
|
||||
@@ -1104,7 +1118,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 11
|
||||
"line": 11,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " push rbp"
|
||||
},
|
||||
@@ -1118,7 +1133,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 11
|
||||
"line": 11,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov rbp,rsp"
|
||||
},
|
||||
@@ -1142,7 +1158,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 12
|
||||
"line": 12,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " call 401102 <fun🤔()>"
|
||||
},
|
||||
@@ -1154,7 +1171,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 12
|
||||
"line": 12,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " nop"
|
||||
},
|
||||
@@ -1166,7 +1184,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " pop rbp"
|
||||
},
|
||||
@@ -1178,7 +1197,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ret"
|
||||
},
|
||||
@@ -1199,7 +1219,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " nop WORD PTR cs:[rax+rax*1+0x0]"
|
||||
},
|
||||
@@ -1211,7 +1232,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " nop"
|
||||
},
|
||||
@@ -1231,7 +1253,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " endbr64"
|
||||
},
|
||||
@@ -1244,7 +1267,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " push r15"
|
||||
},
|
||||
@@ -1262,7 +1286,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " lea r15,[rip+0x2cb3] # 403e00 <__frame_dummy_init_array_entry>"
|
||||
},
|
||||
@@ -1275,7 +1300,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " push r14"
|
||||
},
|
||||
@@ -1289,7 +1315,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov r14,rdx"
|
||||
},
|
||||
@@ -1302,7 +1329,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " push r13"
|
||||
},
|
||||
@@ -1316,7 +1344,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov r13,rsi"
|
||||
},
|
||||
@@ -1329,7 +1358,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " push r12"
|
||||
},
|
||||
@@ -1343,7 +1373,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov r12d,edi"
|
||||
},
|
||||
@@ -1355,7 +1386,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " push rbp"
|
||||
},
|
||||
@@ -1373,7 +1405,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " lea rbp,[rip+0x2ca4] # 403e08 <__do_global_dtors_aux_fini_array_entry>"
|
||||
},
|
||||
@@ -1385,7 +1418,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " push rbx"
|
||||
},
|
||||
@@ -1399,7 +1433,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " sub rbp,r15"
|
||||
},
|
||||
@@ -1414,7 +1449,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " sub rsp,0x8"
|
||||
},
|
||||
@@ -1438,7 +1474,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " call 401000 <_init>"
|
||||
},
|
||||
@@ -1453,7 +1490,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " sar rbp,0x3"
|
||||
},
|
||||
@@ -1474,7 +1512,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " je 401196 <__libc_csu_init+0x56>"
|
||||
},
|
||||
@@ -1487,7 +1526,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " xor ebx,ebx"
|
||||
},
|
||||
@@ -1505,7 +1545,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " nop DWORD PTR [rax+0x0]"
|
||||
},
|
||||
@@ -1519,7 +1560,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov rdx,r14"
|
||||
},
|
||||
@@ -1533,7 +1575,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov rsi,r13"
|
||||
},
|
||||
@@ -1547,7 +1590,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " mov edi,r12d"
|
||||
},
|
||||
@@ -1562,7 +1606,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " call QWORD PTR [r15+rbx*8]"
|
||||
},
|
||||
@@ -1577,7 +1622,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " add rbx,0x1"
|
||||
},
|
||||
@@ -1591,7 +1637,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " cmp rbp,rbx"
|
||||
},
|
||||
@@ -1612,7 +1659,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " jne 401180 <__libc_csu_init+0x40>"
|
||||
},
|
||||
@@ -1627,7 +1675,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " add rsp,0x8"
|
||||
},
|
||||
@@ -1639,7 +1688,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " pop rbx"
|
||||
},
|
||||
@@ -1651,7 +1701,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " pop rbp"
|
||||
},
|
||||
@@ -1664,7 +1715,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " pop r12"
|
||||
},
|
||||
@@ -1677,7 +1729,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " pop r13"
|
||||
},
|
||||
@@ -1690,7 +1743,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " pop r14"
|
||||
},
|
||||
@@ -1703,7 +1757,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " pop r15"
|
||||
},
|
||||
@@ -1715,7 +1770,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ret"
|
||||
},
|
||||
@@ -1737,7 +1793,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " data16 nop WORD PTR cs:[rax+rax*1+0x0]"
|
||||
},
|
||||
@@ -1757,7 +1814,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " endbr64"
|
||||
},
|
||||
@@ -1769,7 +1827,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ret"
|
||||
},
|
||||
@@ -1789,7 +1848,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " endbr64"
|
||||
},
|
||||
@@ -1804,7 +1864,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " sub rsp,0x8"
|
||||
},
|
||||
@@ -1819,7 +1880,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " add rsp,0x8"
|
||||
},
|
||||
@@ -1831,7 +1893,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 13
|
||||
"line": 13,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ret"
|
||||
}
|
||||
|
||||
172
test/filters-cases/bug-1229.asm.directives.approved.txt
generated
172
test/filters-cases/bug-1229.asm.directives.approved.txt
generated
@@ -57,7 +57,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 32], 0"
|
||||
@@ -66,7 +66,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 24], 0"
|
||||
@@ -80,7 +80,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], offset .L.str"
|
||||
@@ -154,7 +154,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 24]"
|
||||
@@ -163,7 +163,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rax"
|
||||
@@ -172,7 +172,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 32]"
|
||||
@@ -181,7 +181,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], al"
|
||||
@@ -190,7 +190,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 33]"
|
||||
@@ -199,7 +199,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -208,7 +208,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 37]"
|
||||
@@ -217,7 +217,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -226,7 +226,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 39]"
|
||||
@@ -235,7 +235,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -259,7 +259,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -268,7 +268,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -277,7 +277,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -286,7 +286,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -295,7 +295,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " lea rdi, [rsp + 64]"
|
||||
@@ -354,7 +354,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " xor esi, esi"
|
||||
@@ -363,7 +363,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov edx, offset .L.str"
|
||||
@@ -382,7 +382,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov ecx, offset .L.str+1"
|
||||
@@ -401,7 +401,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov r8d, offset .L.str+5"
|
||||
@@ -428,7 +428,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -485,7 +485,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " mov rdi, rax"
|
||||
@@ -502,7 +502,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " call __clang_call_terminate"
|
||||
@@ -620,7 +620,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " push rbx"
|
||||
@@ -628,7 +628,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " sub rsp, 80"
|
||||
@@ -761,7 +761,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " mov rbx, rdi"
|
||||
@@ -825,7 +825,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 57,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 241
|
||||
},
|
||||
"text": " mov rdi, qword ptr [rsp + 96]"
|
||||
@@ -889,7 +889,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 104]"
|
||||
@@ -898,7 +898,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movaps xmmword ptr [rsp + 64], xmm0"
|
||||
@@ -912,7 +912,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 10,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 65
|
||||
},
|
||||
"text": " cmp r8, rcx"
|
||||
@@ -934,7 +934,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 6,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 65
|
||||
},
|
||||
"text": " je .LBB2_3"
|
||||
@@ -1038,7 +1038,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 32,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 67
|
||||
},
|
||||
"text": " add rcx, 1"
|
||||
@@ -1082,7 +1082,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 79]"
|
||||
@@ -1091,7 +1091,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 38], al"
|
||||
@@ -1100,7 +1100,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 77]"
|
||||
@@ -1109,7 +1109,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov word ptr [rsp + 36], ax"
|
||||
@@ -1118,7 +1118,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 73]"
|
||||
@@ -1127,7 +1127,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 32], eax"
|
||||
@@ -1156,7 +1156,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 46,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " add rsi, 1"
|
||||
@@ -1170,7 +1170,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], rdi"
|
||||
@@ -1179,7 +1179,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rcx"
|
||||
@@ -1188,7 +1188,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], 0"
|
||||
@@ -1197,7 +1197,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 32]"
|
||||
@@ -1206,7 +1206,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -1215,7 +1215,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 36]"
|
||||
@@ -1224,7 +1224,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -1233,7 +1233,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 38]"
|
||||
@@ -1242,7 +1242,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -1251,7 +1251,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -1260,7 +1260,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -1269,7 +1269,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -1278,7 +1278,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -1287,7 +1287,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov rdi, rbx"
|
||||
@@ -1309,7 +1309,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -1323,7 +1323,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 11,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 54
|
||||
},
|
||||
"text": " cmp byte ptr [rbx + 16], 0"
|
||||
@@ -1345,7 +1345,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 13,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " je .LBB2_2"
|
||||
@@ -1364,7 +1364,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -1373,7 +1373,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -1382,7 +1382,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -1391,7 +1391,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
@@ -1445,7 +1445,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 0
|
||||
},
|
||||
"text": " lea rax, [rsp + 96]"
|
||||
@@ -1484,7 +1484,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 39,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 251
|
||||
},
|
||||
"text": " mov rax, qword ptr [rax + 16]"
|
||||
@@ -1498,7 +1498,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 54,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 38
|
||||
},
|
||||
"text": " mov qword ptr [rbx], rdi"
|
||||
@@ -1507,7 +1507,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 54,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 38
|
||||
},
|
||||
"text": " mov qword ptr [rbx + 8], r8"
|
||||
@@ -1531,7 +1531,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 16], 1"
|
||||
@@ -1540,7 +1540,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov rcx, rax"
|
||||
@@ -1554,7 +1554,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rcx, 8"
|
||||
@@ -1563,7 +1563,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov rdx, rax"
|
||||
@@ -1577,7 +1577,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rdx, 56"
|
||||
@@ -1586,7 +1586,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 23], dl"
|
||||
@@ -1595,7 +1595,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rax, 40"
|
||||
@@ -1604,7 +1604,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov word ptr [rbx + 21], ax"
|
||||
@@ -1613,7 +1613,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov dword ptr [rbx + 17], ecx"
|
||||
@@ -1627,7 +1627,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -1636,7 +1636,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -1645,7 +1645,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -1654,7 +1654,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
@@ -1673,7 +1673,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " xorps xmm0, xmm0"
|
||||
@@ -1682,7 +1682,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " movups xmmword ptr [rbx], xmm0"
|
||||
@@ -1691,7 +1691,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 16], 0"
|
||||
@@ -1705,7 +1705,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -1714,7 +1714,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -1723,7 +1723,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -1732,7 +1732,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 32], 0"
|
||||
@@ -36,7 +36,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 24], 0"
|
||||
@@ -50,7 +50,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], offset .L.str"
|
||||
@@ -64,7 +64,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 24]"
|
||||
@@ -73,7 +73,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rax"
|
||||
@@ -82,7 +82,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 32]"
|
||||
@@ -91,7 +91,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], al"
|
||||
@@ -100,7 +100,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 33]"
|
||||
@@ -109,7 +109,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -118,7 +118,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 37]"
|
||||
@@ -127,7 +127,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -136,7 +136,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 39]"
|
||||
@@ -145,7 +145,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -164,7 +164,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -173,7 +173,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -182,7 +182,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -191,7 +191,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -200,7 +200,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " lea rdi, [rsp + 64]"
|
||||
@@ -214,7 +214,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " xor esi, esi"
|
||||
@@ -223,7 +223,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov edx, offset .L.str"
|
||||
@@ -237,7 +237,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov ecx, offset .L.str+1"
|
||||
@@ -251,7 +251,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov r8d, offset .L.str+5"
|
||||
@@ -273,7 +273,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -325,7 +325,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " mov rdi, rax"
|
||||
@@ -342,7 +342,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " call __clang_call_terminate"
|
||||
@@ -430,7 +430,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " push rbx"
|
||||
@@ -438,7 +438,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " sub rsp, 80"
|
||||
@@ -451,7 +451,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " mov rbx, rdi"
|
||||
@@ -465,7 +465,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 57,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 241
|
||||
},
|
||||
"text": " mov rdi, qword ptr [rsp + 96]"
|
||||
@@ -479,7 +479,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 104]"
|
||||
@@ -488,7 +488,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movaps xmmword ptr [rsp + 64], xmm0"
|
||||
@@ -502,7 +502,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 10,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 65
|
||||
},
|
||||
"text": " cmp r8, rcx"
|
||||
@@ -524,7 +524,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 6,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 65
|
||||
},
|
||||
"text": " je .LBB2_3"
|
||||
@@ -538,7 +538,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 32,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 67
|
||||
},
|
||||
"text": " add rcx, 1"
|
||||
@@ -552,7 +552,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 79]"
|
||||
@@ -561,7 +561,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 38], al"
|
||||
@@ -570,7 +570,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 77]"
|
||||
@@ -579,7 +579,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov word ptr [rsp + 36], ax"
|
||||
@@ -588,7 +588,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 73]"
|
||||
@@ -597,7 +597,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 32], eax"
|
||||
@@ -611,7 +611,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 46,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " add rsi, 1"
|
||||
@@ -625,7 +625,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], rdi"
|
||||
@@ -634,7 +634,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rcx"
|
||||
@@ -643,7 +643,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], 0"
|
||||
@@ -652,7 +652,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 32]"
|
||||
@@ -661,7 +661,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -670,7 +670,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 36]"
|
||||
@@ -679,7 +679,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -688,7 +688,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 38]"
|
||||
@@ -697,7 +697,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -706,7 +706,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -715,7 +715,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -724,7 +724,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -733,7 +733,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -742,7 +742,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov rdi, rbx"
|
||||
@@ -764,7 +764,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -778,7 +778,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 11,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 54
|
||||
},
|
||||
"text": " cmp byte ptr [rbx + 16], 0"
|
||||
@@ -800,7 +800,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 13,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " je .LBB2_2"
|
||||
@@ -814,7 +814,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -823,7 +823,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -832,7 +832,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -841,7 +841,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
@@ -860,7 +860,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 0
|
||||
},
|
||||
"text": " lea rax, [rsp + 96]"
|
||||
@@ -874,7 +874,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 39,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 251
|
||||
},
|
||||
"text": " mov rax, qword ptr [rax + 16]"
|
||||
@@ -888,7 +888,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 54,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 38
|
||||
},
|
||||
"text": " mov qword ptr [rbx], rdi"
|
||||
@@ -897,7 +897,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 54,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 38
|
||||
},
|
||||
"text": " mov qword ptr [rbx + 8], r8"
|
||||
@@ -911,7 +911,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 16], 1"
|
||||
@@ -920,7 +920,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov rcx, rax"
|
||||
@@ -934,7 +934,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rcx, 8"
|
||||
@@ -943,7 +943,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov rdx, rax"
|
||||
@@ -957,7 +957,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rdx, 56"
|
||||
@@ -966,7 +966,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 23], dl"
|
||||
@@ -975,7 +975,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rax, 40"
|
||||
@@ -984,7 +984,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov word ptr [rbx + 21], ax"
|
||||
@@ -993,7 +993,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov dword ptr [rbx + 17], ecx"
|
||||
@@ -1007,7 +1007,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -1016,7 +1016,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -1025,7 +1025,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -1034,7 +1034,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
@@ -1053,7 +1053,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " xorps xmm0, xmm0"
|
||||
@@ -1062,7 +1062,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " movups xmmword ptr [rbx], xmm0"
|
||||
@@ -1071,7 +1071,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 16], 0"
|
||||
@@ -1085,7 +1085,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -1094,7 +1094,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -1103,7 +1103,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -1112,7 +1112,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 32], 0"
|
||||
@@ -56,7 +56,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 24], 0"
|
||||
@@ -65,7 +65,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], offset .L.str"
|
||||
@@ -134,7 +134,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 24]"
|
||||
@@ -143,7 +143,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rax"
|
||||
@@ -152,7 +152,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 32]"
|
||||
@@ -161,7 +161,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], al"
|
||||
@@ -170,7 +170,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 33]"
|
||||
@@ -179,7 +179,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -188,7 +188,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 37]"
|
||||
@@ -197,7 +197,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -206,7 +206,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 39]"
|
||||
@@ -215,7 +215,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -229,7 +229,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -238,7 +238,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -247,7 +247,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -256,7 +256,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -265,7 +265,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " lea rdi, [rsp + 64]"
|
||||
@@ -319,7 +319,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " xor esi, esi"
|
||||
@@ -328,7 +328,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov edx, offset .L.str"
|
||||
@@ -342,7 +342,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov ecx, offset .L.str+1"
|
||||
@@ -356,7 +356,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov r8d, offset .L.str+5"
|
||||
@@ -378,7 +378,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -410,7 +410,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " mov rdi, rax"
|
||||
@@ -427,7 +427,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " call __clang_call_terminate"
|
||||
@@ -490,7 +490,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " push rbx"
|
||||
@@ -498,7 +498,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " sub rsp, 80"
|
||||
@@ -626,7 +626,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " mov rbx, rdi"
|
||||
@@ -685,7 +685,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 57,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 241
|
||||
},
|
||||
"text": " mov rdi, qword ptr [rsp + 96]"
|
||||
@@ -744,7 +744,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 104]"
|
||||
@@ -753,7 +753,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movaps xmmword ptr [rsp + 64], xmm0"
|
||||
@@ -762,7 +762,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 10,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 65
|
||||
},
|
||||
"text": " cmp r8, rcx"
|
||||
@@ -779,7 +779,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 6,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 65
|
||||
},
|
||||
"text": " je .LBB2_3"
|
||||
@@ -878,7 +878,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 32,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 67
|
||||
},
|
||||
"text": " add rcx, 1"
|
||||
@@ -917,7 +917,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 79]"
|
||||
@@ -926,7 +926,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 38], al"
|
||||
@@ -935,7 +935,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 77]"
|
||||
@@ -944,7 +944,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov word ptr [rsp + 36], ax"
|
||||
@@ -953,7 +953,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 73]"
|
||||
@@ -962,7 +962,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 32], eax"
|
||||
@@ -986,7 +986,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 46,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " add rsi, 1"
|
||||
@@ -995,7 +995,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], rdi"
|
||||
@@ -1004,7 +1004,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rcx"
|
||||
@@ -1013,7 +1013,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], 0"
|
||||
@@ -1022,7 +1022,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 32]"
|
||||
@@ -1031,7 +1031,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -1040,7 +1040,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 36]"
|
||||
@@ -1049,7 +1049,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -1058,7 +1058,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 38]"
|
||||
@@ -1067,7 +1067,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -1076,7 +1076,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -1085,7 +1085,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -1094,7 +1094,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -1103,7 +1103,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -1112,7 +1112,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov rdi, rbx"
|
||||
@@ -1129,7 +1129,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -1138,7 +1138,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 11,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 54
|
||||
},
|
||||
"text": " cmp byte ptr [rbx + 16], 0"
|
||||
@@ -1155,7 +1155,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 13,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " je .LBB2_2"
|
||||
@@ -1169,7 +1169,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -1178,7 +1178,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -1187,7 +1187,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -1196,7 +1196,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
@@ -1245,7 +1245,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 0
|
||||
},
|
||||
"text": " lea rax, [rsp + 96]"
|
||||
@@ -1279,7 +1279,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 39,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 251
|
||||
},
|
||||
"text": " mov rax, qword ptr [rax + 16]"
|
||||
@@ -1288,7 +1288,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 54,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 38
|
||||
},
|
||||
"text": " mov qword ptr [rbx], rdi"
|
||||
@@ -1297,7 +1297,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 54,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 38
|
||||
},
|
||||
"text": " mov qword ptr [rbx + 8], r8"
|
||||
@@ -1316,7 +1316,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 16], 1"
|
||||
@@ -1325,7 +1325,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov rcx, rax"
|
||||
@@ -1334,7 +1334,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rcx, 8"
|
||||
@@ -1343,7 +1343,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov rdx, rax"
|
||||
@@ -1352,7 +1352,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rdx, 56"
|
||||
@@ -1361,7 +1361,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 23], dl"
|
||||
@@ -1370,7 +1370,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rax, 40"
|
||||
@@ -1379,7 +1379,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov word ptr [rbx + 21], ax"
|
||||
@@ -1388,7 +1388,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov dword ptr [rbx + 17], ecx"
|
||||
@@ -1397,7 +1397,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -1406,7 +1406,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -1415,7 +1415,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -1424,7 +1424,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
@@ -1438,7 +1438,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " xorps xmm0, xmm0"
|
||||
@@ -1447,7 +1447,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " movups xmmword ptr [rbx], xmm0"
|
||||
@@ -1456,7 +1456,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 16], 0"
|
||||
@@ -1465,7 +1465,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -1474,7 +1474,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -1483,7 +1483,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -1492,7 +1492,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 32], 0"
|
||||
@@ -26,7 +26,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 24], 0"
|
||||
@@ -35,7 +35,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], offset .L.str"
|
||||
@@ -44,7 +44,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 24]"
|
||||
@@ -53,7 +53,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rax"
|
||||
@@ -62,7 +62,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 32]"
|
||||
@@ -71,7 +71,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], al"
|
||||
@@ -80,7 +80,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 33]"
|
||||
@@ -89,7 +89,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -98,7 +98,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 37]"
|
||||
@@ -107,7 +107,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -116,7 +116,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 39]"
|
||||
@@ -125,7 +125,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -134,7 +134,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -143,7 +143,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -152,7 +152,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -161,7 +161,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -170,7 +170,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " lea rdi, [rsp + 64]"
|
||||
@@ -179,7 +179,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " xor esi, esi"
|
||||
@@ -188,7 +188,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov edx, offset .L.str"
|
||||
@@ -197,7 +197,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov ecx, offset .L.str+1"
|
||||
@@ -206,7 +206,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov r8d, offset .L.str+5"
|
||||
@@ -223,7 +223,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -250,7 +250,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " mov rdi, rax"
|
||||
@@ -267,7 +267,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " call __clang_call_terminate"
|
||||
@@ -300,7 +300,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " push rbx"
|
||||
@@ -308,7 +308,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " sub rsp, 80"
|
||||
@@ -316,7 +316,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " mov rbx, rdi"
|
||||
@@ -325,7 +325,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 57,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 241
|
||||
},
|
||||
"text": " mov rdi, qword ptr [rsp + 96]"
|
||||
@@ -334,7 +334,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 104]"
|
||||
@@ -343,7 +343,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movaps xmmword ptr [rsp + 64], xmm0"
|
||||
@@ -352,7 +352,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 10,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 65
|
||||
},
|
||||
"text": " cmp r8, rcx"
|
||||
@@ -369,7 +369,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 6,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 65
|
||||
},
|
||||
"text": " je .LBB2_3"
|
||||
@@ -378,7 +378,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 32,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 67
|
||||
},
|
||||
"text": " add rcx, 1"
|
||||
@@ -387,7 +387,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 79]"
|
||||
@@ -396,7 +396,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 38], al"
|
||||
@@ -405,7 +405,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 77]"
|
||||
@@ -414,7 +414,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov word ptr [rsp + 36], ax"
|
||||
@@ -423,7 +423,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 73]"
|
||||
@@ -432,7 +432,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 32], eax"
|
||||
@@ -441,7 +441,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 46,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " add rsi, 1"
|
||||
@@ -450,7 +450,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], rdi"
|
||||
@@ -459,7 +459,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rcx"
|
||||
@@ -468,7 +468,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], 0"
|
||||
@@ -477,7 +477,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 32]"
|
||||
@@ -486,7 +486,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -495,7 +495,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 36]"
|
||||
@@ -504,7 +504,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -513,7 +513,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 38]"
|
||||
@@ -522,7 +522,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -531,7 +531,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -540,7 +540,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -549,7 +549,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -558,7 +558,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -567,7 +567,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov rdi, rbx"
|
||||
@@ -584,7 +584,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -593,7 +593,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 11,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 54
|
||||
},
|
||||
"text": " cmp byte ptr [rbx + 16], 0"
|
||||
@@ -610,7 +610,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 13,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " je .LBB2_2"
|
||||
@@ -619,7 +619,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -628,7 +628,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -637,7 +637,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -646,7 +646,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
@@ -660,7 +660,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 0
|
||||
},
|
||||
"text": " lea rax, [rsp + 96]"
|
||||
@@ -669,7 +669,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 39,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 251
|
||||
},
|
||||
"text": " mov rax, qword ptr [rax + 16]"
|
||||
@@ -678,7 +678,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 54,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 38
|
||||
},
|
||||
"text": " mov qword ptr [rbx], rdi"
|
||||
@@ -687,7 +687,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 54,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 38
|
||||
},
|
||||
"text": " mov qword ptr [rbx + 8], r8"
|
||||
@@ -696,7 +696,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 16], 1"
|
||||
@@ -705,7 +705,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov rcx, rax"
|
||||
@@ -714,7 +714,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rcx, 8"
|
||||
@@ -723,7 +723,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov rdx, rax"
|
||||
@@ -732,7 +732,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rdx, 56"
|
||||
@@ -741,7 +741,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 23], dl"
|
||||
@@ -750,7 +750,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rax, 40"
|
||||
@@ -759,7 +759,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov word ptr [rbx + 21], ax"
|
||||
@@ -768,7 +768,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov dword ptr [rbx + 17], ecx"
|
||||
@@ -777,7 +777,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -786,7 +786,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -795,7 +795,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -804,7 +804,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
@@ -818,7 +818,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " xorps xmm0, xmm0"
|
||||
@@ -827,7 +827,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " movups xmmword ptr [rbx], xmm0"
|
||||
@@ -836,7 +836,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 16], 0"
|
||||
@@ -845,7 +845,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -854,7 +854,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -863,7 +863,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -872,7 +872,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 32], 0"
|
||||
@@ -26,7 +26,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 24], 0"
|
||||
@@ -35,7 +35,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], offset .L.str"
|
||||
@@ -44,7 +44,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 24]"
|
||||
@@ -53,7 +53,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rax"
|
||||
@@ -62,7 +62,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 32]"
|
||||
@@ -71,7 +71,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], al"
|
||||
@@ -80,7 +80,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 33]"
|
||||
@@ -89,7 +89,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -98,7 +98,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 37]"
|
||||
@@ -107,7 +107,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -116,7 +116,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 39]"
|
||||
@@ -125,7 +125,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -134,7 +134,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -143,7 +143,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -152,7 +152,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -161,7 +161,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -170,7 +170,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " lea rdi, [rsp + 64]"
|
||||
@@ -179,7 +179,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " xor esi, esi"
|
||||
@@ -188,7 +188,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov edx, offset .L.str"
|
||||
@@ -197,7 +197,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov ecx, offset .L.str+1"
|
||||
@@ -206,7 +206,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov r8d, offset .L.str+5"
|
||||
@@ -215,7 +215,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -242,7 +242,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " mov rdi, rax"
|
||||
@@ -259,7 +259,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " call __clang_call_terminate"
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 32], 0"
|
||||
@@ -66,7 +66,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 24], 0"
|
||||
@@ -80,7 +80,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], offset .L.str"
|
||||
@@ -154,7 +154,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 24]"
|
||||
@@ -163,7 +163,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rax"
|
||||
@@ -172,7 +172,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 32]"
|
||||
@@ -181,7 +181,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], al"
|
||||
@@ -190,7 +190,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 33]"
|
||||
@@ -199,7 +199,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -208,7 +208,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 37]"
|
||||
@@ -217,7 +217,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -226,7 +226,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 39]"
|
||||
@@ -235,7 +235,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -259,7 +259,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -268,7 +268,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -277,7 +277,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -286,7 +286,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -295,7 +295,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " lea rdi, [rsp + 64]"
|
||||
@@ -354,7 +354,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " xor esi, esi"
|
||||
@@ -363,7 +363,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov edx, offset .L.str"
|
||||
@@ -382,7 +382,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov ecx, offset .L.str+1"
|
||||
@@ -401,7 +401,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov r8d, offset .L.str+5"
|
||||
@@ -428,7 +428,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -485,7 +485,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " mov rdi, rax"
|
||||
@@ -502,7 +502,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " call __clang_call_terminate"
|
||||
|
||||
172
test/filters-cases/bug-1229.asm.none.approved.txt
generated
172
test/filters-cases/bug-1229.asm.none.approved.txt
generated
@@ -336,7 +336,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 32], 0"
|
||||
@@ -345,7 +345,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 24], 0"
|
||||
@@ -369,7 +369,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], offset .L.str"
|
||||
@@ -443,7 +443,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 24]"
|
||||
@@ -452,7 +452,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rax"
|
||||
@@ -461,7 +461,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 32]"
|
||||
@@ -470,7 +470,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], al"
|
||||
@@ -479,7 +479,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 33]"
|
||||
@@ -488,7 +488,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -497,7 +497,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 37]"
|
||||
@@ -506,7 +506,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -515,7 +515,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 39]"
|
||||
@@ -524,7 +524,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -553,7 +553,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -562,7 +562,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -571,7 +571,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -580,7 +580,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -589,7 +589,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " lea rdi, [rsp + 64]"
|
||||
@@ -648,7 +648,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " xor esi, esi"
|
||||
@@ -657,7 +657,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov edx, offset .L.str"
|
||||
@@ -676,7 +676,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov ecx, offset .L.str+1"
|
||||
@@ -695,7 +695,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " mov r8d, offset .L.str+5"
|
||||
@@ -722,7 +722,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 267
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -799,7 +799,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " mov rdi, rax"
|
||||
@@ -816,7 +816,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 298
|
||||
},
|
||||
"text": " call __clang_call_terminate"
|
||||
@@ -1289,7 +1289,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " push rbx"
|
||||
@@ -1302,7 +1302,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " sub rsp, 80"
|
||||
@@ -1445,7 +1445,7 @@
|
||||
{
|
||||
"labels": [],
|
||||
"source": {
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 235
|
||||
},
|
||||
"text": " mov rbx, rdi"
|
||||
@@ -1514,7 +1514,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 57,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 241
|
||||
},
|
||||
"text": " mov rdi, qword ptr [rsp + 96]"
|
||||
@@ -1583,7 +1583,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 104]"
|
||||
@@ -1592,7 +1592,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 55,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 64
|
||||
},
|
||||
"text": " movaps xmmword ptr [rsp + 64], xmm0"
|
||||
@@ -1611,7 +1611,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 10,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 65
|
||||
},
|
||||
"text": " cmp r8, rcx"
|
||||
@@ -1638,7 +1638,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 6,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 65
|
||||
},
|
||||
"text": " je .LBB2_3"
|
||||
@@ -1747,7 +1747,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 32,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 67
|
||||
},
|
||||
"text": " add rcx, 1"
|
||||
@@ -1796,7 +1796,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 79]"
|
||||
@@ -1805,7 +1805,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 38], al"
|
||||
@@ -1814,7 +1814,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 77]"
|
||||
@@ -1823,7 +1823,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov word ptr [rsp + 36], ax"
|
||||
@@ -1832,7 +1832,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 73]"
|
||||
@@ -1841,7 +1841,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 57
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 32], eax"
|
||||
@@ -1875,7 +1875,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 46,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " add rsi, 1"
|
||||
@@ -1894,7 +1894,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 40], rdi"
|
||||
@@ -1903,7 +1903,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 48], rcx"
|
||||
@@ -1912,7 +1912,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 56], 0"
|
||||
@@ -1921,7 +1921,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov eax, dword ptr [rsp + 32]"
|
||||
@@ -1930,7 +1930,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov dword ptr [rsp + 57], eax"
|
||||
@@ -1939,7 +1939,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movzx eax, word ptr [rsp + 36]"
|
||||
@@ -1948,7 +1948,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov word ptr [rsp + 61], ax"
|
||||
@@ -1957,7 +1957,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov al, byte ptr [rsp + 38]"
|
||||
@@ -1966,7 +1966,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 95,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov byte ptr [rsp + 63], al"
|
||||
@@ -1980,7 +1980,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov rax, qword ptr [rsp + 56]"
|
||||
@@ -1989,7 +1989,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov qword ptr [rsp + 16], rax"
|
||||
@@ -1998,7 +1998,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movups xmm0, xmmword ptr [rsp + 40]"
|
||||
@@ -2007,7 +2007,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " movups xmmword ptr [rsp], xmm0"
|
||||
@@ -2016,7 +2016,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " mov rdi, rbx"
|
||||
@@ -2038,7 +2038,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 26,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " call _ZN4ctre18evaluate_recursiveINS_13regex_resultsIPKcJEEES3_S3_Lm0ELm0EJNS_3anyEEJNS_10assert_endENS_8end_markENS_6acceptEEEET_mT0_SA_T1_S9_N4ctll4listIJNS_6repeatIXT2_EXT3_EJDpT4_EEEDpT5_EEE"
|
||||
@@ -2057,7 +2057,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 11,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 54
|
||||
},
|
||||
"text": " cmp byte ptr [rbx + 16], 0"
|
||||
@@ -2084,7 +2084,7 @@
|
||||
],
|
||||
"source": {
|
||||
"column": 13,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 246
|
||||
},
|
||||
"text": " je .LBB2_2"
|
||||
@@ -2108,7 +2108,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -2117,7 +2117,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -2131,7 +2131,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -2145,7 +2145,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
@@ -2209,7 +2209,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 0
|
||||
},
|
||||
"text": " lea rax, [rsp + 96]"
|
||||
@@ -2253,7 +2253,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 39,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 251
|
||||
},
|
||||
"text": " mov rax, qword ptr [rax + 16]"
|
||||
@@ -2272,7 +2272,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 54,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 38
|
||||
},
|
||||
"text": " mov qword ptr [rbx], rdi"
|
||||
@@ -2281,7 +2281,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 54,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 38
|
||||
},
|
||||
"text": " mov qword ptr [rbx + 8], r8"
|
||||
@@ -2310,7 +2310,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 16], 1"
|
||||
@@ -2319,7 +2319,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov rcx, rax"
|
||||
@@ -2333,7 +2333,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rcx, 8"
|
||||
@@ -2342,7 +2342,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov rdx, rax"
|
||||
@@ -2356,7 +2356,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rdx, 56"
|
||||
@@ -2365,7 +2365,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 23], dl"
|
||||
@@ -2374,7 +2374,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " shr rax, 40"
|
||||
@@ -2383,7 +2383,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov word ptr [rbx + 21], ax"
|
||||
@@ -2392,7 +2392,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 9,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 39
|
||||
},
|
||||
"text": " mov dword ptr [rbx + 17], ecx"
|
||||
@@ -2411,7 +2411,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -2420,7 +2420,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -2434,7 +2434,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -2448,7 +2448,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
@@ -2477,7 +2477,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " xorps xmm0, xmm0"
|
||||
@@ -2486,7 +2486,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " movups xmmword ptr [rbx], xmm0"
|
||||
@@ -2495,7 +2495,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 12,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/return_type.hpp",
|
||||
"line": 18
|
||||
},
|
||||
"text": " mov byte ptr [rbx + 16], 0"
|
||||
@@ -2514,7 +2514,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " mov rax, rbx"
|
||||
@@ -2523,7 +2523,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " add rsp, 80"
|
||||
@@ -2537,7 +2537,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " pop rbx"
|
||||
@@ -2551,7 +2551,7 @@
|
||||
"labels": [],
|
||||
"source": {
|
||||
"column": 1,
|
||||
"file": "/tmp/compiler-explorer-compiler1181120-2080-yfo6a1.y1o4e//opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"file": "/opt/compiler-explorer/libs/ctre/master/include/ctre/evaluation.hpp",
|
||||
"line": 252
|
||||
},
|
||||
"text": " ret"
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 3
|
||||
"line": 3,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " MOV R1, c[0x0][0x44]"
|
||||
},
|
||||
@@ -25,7 +26,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 3
|
||||
"line": 3,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " S2R R0, SR_CTAID.X"
|
||||
},
|
||||
@@ -37,7 +39,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 4
|
||||
"line": 4,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ISETP.GE.AND P0, PT, R0, c[0x0][0x148], PT"
|
||||
},
|
||||
@@ -49,7 +52,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 4
|
||||
"line": 4,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " @P0 EXIT"
|
||||
},
|
||||
@@ -61,7 +65,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 5
|
||||
"line": 5,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ISCADD R2.CC, R0, c[0x0][0x140], 0x2"
|
||||
},
|
||||
@@ -73,7 +78,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 5
|
||||
"line": 5,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " MOV32I R3, 0x4"
|
||||
},
|
||||
@@ -85,7 +91,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 5
|
||||
"line": 5,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " IMAD.HI.X R3, R0, R3, c[0x0][0x144]"
|
||||
},
|
||||
@@ -97,7 +104,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 5
|
||||
"line": 5,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " LD.E R0, [R2]"
|
||||
},
|
||||
@@ -109,7 +117,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 5
|
||||
"line": 5,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " IMUL R4, R0, R0"
|
||||
},
|
||||
@@ -121,7 +130,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 5
|
||||
"line": 5,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ST.E [R2], R4"
|
||||
},
|
||||
@@ -133,7 +143,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " EXIT"
|
||||
},
|
||||
@@ -150,7 +161,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " BRA `(.L_1)"
|
||||
},
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 4
|
||||
"line": 4,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " MOV R1, c[0x0][0x44]"
|
||||
},
|
||||
@@ -25,7 +26,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 4
|
||||
"line": 4,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " S2R R0, SR_CTAID.X"
|
||||
},
|
||||
@@ -37,7 +39,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 5
|
||||
"line": 5,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ISETP.GE.AND P0, PT, R0, c[0x0][0x148], PT"
|
||||
},
|
||||
@@ -49,7 +52,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 5
|
||||
"line": 5,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " @!P0 BRA `(.L_1)"
|
||||
},
|
||||
@@ -61,7 +65,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 8
|
||||
"line": 8,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " MOV R0, c[0x0][0x148]"
|
||||
},
|
||||
@@ -73,7 +78,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 8
|
||||
"line": 8,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " MOV32I R3, 0x4"
|
||||
},
|
||||
@@ -85,7 +91,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 8
|
||||
"line": 8,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " IADD32I R0, R0, -0x1"
|
||||
},
|
||||
@@ -97,7 +104,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 8
|
||||
"line": 8,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ISCADD R2.CC, R0, c[0x0][0x140], 0x2"
|
||||
},
|
||||
@@ -109,7 +117,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 8
|
||||
"line": 8,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " IMAD.HI.X R3, R0, R3, c[0x0][0x144]"
|
||||
},
|
||||
@@ -121,7 +130,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 8
|
||||
"line": 8,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ST.E [R2], RZ"
|
||||
},
|
||||
@@ -133,7 +143,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 10
|
||||
"line": 10,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " EXIT"
|
||||
},
|
||||
@@ -150,7 +161,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ISCADD R2.CC, R0, c[0x0][0x140], 0x2"
|
||||
},
|
||||
@@ -162,7 +174,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " MOV32I R3, 0x4"
|
||||
},
|
||||
@@ -174,7 +187,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " IMAD.HI.X R3, R0, R3, c[0x0][0x144]"
|
||||
},
|
||||
@@ -186,7 +200,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " LD.E R0, [R2]"
|
||||
},
|
||||
@@ -198,7 +213,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 1
|
||||
"line": 1,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " IMAD R0, R0, R0, c[0x0][0x148]"
|
||||
},
|
||||
@@ -210,7 +226,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " IADD32I R4, R0, 0x1"
|
||||
},
|
||||
@@ -222,7 +239,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " ST.E [R2], R4"
|
||||
},
|
||||
@@ -234,7 +252,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " EXIT"
|
||||
},
|
||||
@@ -251,7 +270,8 @@
|
||||
],
|
||||
"source": {
|
||||
"file": null,
|
||||
"line": 6
|
||||
"line": 6,
|
||||
"mainsource": true
|
||||
},
|
||||
"text": " BRA `(.L_2)"
|
||||
},
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"source": "\ntemplate<typename T>\nconcept TheSameAndAddable = requires(T a, T b) {\n {a+b} -> T;\n};\n\ntemplate<TheSameAndAddable T>\nT sum(T x, T y) {\n return x + y;\n}\n\n#include <string>\n\nint main() {\n int z = 0;\n int w;\n\n return sum(z, w);\n}\n",
|
||||
"compilers": [
|
||||
{
|
||||
"_internalid": 1,
|
||||
"id": "clang_concepts",
|
||||
"options": "-std=c++1z -Wuninitialized -O3",
|
||||
"filters": {
|
||||
@@ -29,6 +30,7 @@
|
||||
"tools": []
|
||||
},
|
||||
{
|
||||
"_internalid": 2,
|
||||
"id": "g82",
|
||||
"options": "",
|
||||
"filters": {
|
||||
@@ -50,5 +52,6 @@
|
||||
],
|
||||
"executors": []
|
||||
}
|
||||
]
|
||||
],
|
||||
"trees": []
|
||||
}
|
||||
@@ -45,6 +45,7 @@
|
||||
},
|
||||
"compilers": [
|
||||
{
|
||||
"_internalid": 1,
|
||||
"id": "vc2017_64",
|
||||
"options": "",
|
||||
"filters": {
|
||||
@@ -62,6 +63,7 @@
|
||||
"tools": []
|
||||
},
|
||||
{
|
||||
"_internalid": 2,
|
||||
"id": "vc2017_32",
|
||||
"options": "-O3",
|
||||
"filters": {
|
||||
@@ -79,6 +81,7 @@
|
||||
"tools": []
|
||||
},
|
||||
{
|
||||
"_internalid": 3,
|
||||
"id": "vc2017_64",
|
||||
"options": "-O2",
|
||||
"filters": {
|
||||
@@ -98,5 +101,6 @@
|
||||
],
|
||||
"executors": []
|
||||
}
|
||||
]
|
||||
],
|
||||
"trees": []
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
"source": "// Type your code here, or load an example.\nint square(int num) {\n auto x = 344 + 5 + 1;\n return num * num + 234 + x;\n}\n\nint main() {\n return square(23);\n}\n",
|
||||
"compilers": [
|
||||
{
|
||||
"_internalid": 1,
|
||||
"filters": {
|
||||
"binary": false,
|
||||
"commentOnly": true,
|
||||
@@ -58,5 +59,6 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"trees": []
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
"conformanceview": false,
|
||||
"compilers": [
|
||||
{
|
||||
"_internalid": 1,
|
||||
"id": "g111",
|
||||
"options": "",
|
||||
"filters": {
|
||||
@@ -53,5 +54,6 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"trees": []
|
||||
}
|
||||
156
test/state/output-editor-id.json
Normal file
156
test/state/output-editor-id.json
Normal file
@@ -0,0 +1,156 @@
|
||||
{
|
||||
"settings": {
|
||||
"hasHeaders": true,
|
||||
"constrainDragToContainer": false,
|
||||
"reorderEnabled": true,
|
||||
"selectionEnabled": false,
|
||||
"popoutWholeStack": false,
|
||||
"blockedPopoutsThrowError": true,
|
||||
"closePopoutsOnUnload": true,
|
||||
"showPopoutIcon": true,
|
||||
"showMaximiseIcon": true,
|
||||
"showCloseIcon": true,
|
||||
"responsiveMode": "onload",
|
||||
"tabOverlapAllowance": 0,
|
||||
"reorderOnTabMenuClick": true,
|
||||
"tabControlOffset": 10,
|
||||
"theme": "dark"
|
||||
},
|
||||
"dimensions": {
|
||||
"borderWidth": 5,
|
||||
"borderGrabWidth": 15,
|
||||
"minItemHeight": 10,
|
||||
"minItemWidth": 10,
|
||||
"headerHeight": 20,
|
||||
"dragProxyWidth": 300,
|
||||
"dragProxyHeight": 200
|
||||
},
|
||||
"labels": {
|
||||
"close": "close",
|
||||
"maximise": "maximise",
|
||||
"minimise": "minimise",
|
||||
"popout": "open in new window",
|
||||
"popin": "pop in",
|
||||
"tabDropdown": "additional tabs"
|
||||
},
|
||||
"content": [
|
||||
{
|
||||
"type": "row",
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"content": [
|
||||
{
|
||||
"type": "stack",
|
||||
"width": 50,
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"activeItemIndex": 0,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"source": "#include <iostream>\n \nint main() {\n std::cout << \"Hello CE!\";\n}",
|
||||
"lang": "c++",
|
||||
"fontScale": 25,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "C++ source #1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "column",
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"width": 50,
|
||||
"content": [
|
||||
{
|
||||
"type": "stack",
|
||||
"height": 50,
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"activeItemIndex": 0,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "compiler",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"compiler": "g83",
|
||||
"source": 1,
|
||||
"options": "-O2 -march=haswell -Wall -Wextra -pedantic -Wno-unused-variable -Wno-unused-parameter",
|
||||
"filters": {
|
||||
"commentOnly": true,
|
||||
"directives": true,
|
||||
"intel": true,
|
||||
"labels": true,
|
||||
"trim": true,
|
||||
"execute": true,
|
||||
"binary": false,
|
||||
"demangle": true,
|
||||
"libraryCode": true
|
||||
},
|
||||
"libs": [],
|
||||
"lang": "c++",
|
||||
"selection": {
|
||||
"startLineNumber": 1,
|
||||
"startColumn": 1,
|
||||
"endLineNumber": 1,
|
||||
"endColumn": 1,
|
||||
"selectionStartLineNumber": 1,
|
||||
"selectionStartColumn": 1,
|
||||
"positionLineNumber": 1,
|
||||
"positionColumn": 1
|
||||
},
|
||||
"flagsViewOpen": false,
|
||||
"fontScale": 30,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "x86-64 gcc 8.3 (Editor #1, Compiler #1) C++"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "stack",
|
||||
"height": 50,
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"activeItemIndex": 0,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "output",
|
||||
"componentState": {
|
||||
"compiler": 1,
|
||||
"wrap": false,
|
||||
"fontScale": 14,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "Output of x86-64 gcc 8.3 (Compiler #1)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"openPopouts": [],
|
||||
"maximisedItemId": null
|
||||
}
|
||||
34
test/state/output-editor-id.normalized.json
Normal file
34
test/state/output-editor-id.normalized.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
"id": 1,
|
||||
"language": "c++",
|
||||
"source": "#include <iostream>\n \nint main() {\n std::cout << \"Hello CE!\";\n}",
|
||||
"conformanceview": false,
|
||||
"compilers": [
|
||||
{
|
||||
"_internalid": 1,
|
||||
"id": "g83",
|
||||
"options": "-O2 -march=haswell -Wall -Wextra -pedantic -Wno-unused-variable -Wno-unused-parameter",
|
||||
"filters": {
|
||||
"binary": false,
|
||||
"commentOnly": true,
|
||||
"demangle": true,
|
||||
"directives": true,
|
||||
"execute": true,
|
||||
"intel": true,
|
||||
"labels": true,
|
||||
"trim": true
|
||||
},
|
||||
"libs": [],
|
||||
"specialoutputs": [
|
||||
"compilerOutput"
|
||||
],
|
||||
"tools": []
|
||||
}
|
||||
],
|
||||
"executors": []
|
||||
}
|
||||
],
|
||||
"trees": []
|
||||
}
|
||||
240
test/state/tree-gl-outputpane.json
Normal file
240
test/state/tree-gl-outputpane.json
Normal file
@@ -0,0 +1,240 @@
|
||||
{
|
||||
"settings": {
|
||||
"hasHeaders": true,
|
||||
"constrainDragToContainer": false,
|
||||
"reorderEnabled": true,
|
||||
"selectionEnabled": false,
|
||||
"popoutWholeStack": false,
|
||||
"blockedPopoutsThrowError": true,
|
||||
"closePopoutsOnUnload": true,
|
||||
"showPopoutIcon": false,
|
||||
"showMaximiseIcon": true,
|
||||
"showCloseIcon": true,
|
||||
"responsiveMode": "onload",
|
||||
"tabOverlapAllowance": 0,
|
||||
"reorderOnTabMenuClick": true,
|
||||
"tabControlOffset": 10
|
||||
},
|
||||
"dimensions": {
|
||||
"borderWidth": 5,
|
||||
"borderGrabWidth": 15,
|
||||
"minItemHeight": 10,
|
||||
"minItemWidth": 10,
|
||||
"headerHeight": 20,
|
||||
"dragProxyWidth": 300,
|
||||
"dragProxyHeight": 200
|
||||
},
|
||||
"labels": {
|
||||
"close": "close",
|
||||
"maximise": "maximise",
|
||||
"minimise": "minimise",
|
||||
"popout": "open in new window",
|
||||
"popin": "pop in",
|
||||
"tabDropdown": "additional tabs"
|
||||
},
|
||||
"content": [
|
||||
{
|
||||
"type": "row",
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"content": [
|
||||
{
|
||||
"type": "stack",
|
||||
"header": {},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"activeItemIndex": 0,
|
||||
"width": 32.68232718579945,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "tree",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"cmakeArgs": "",
|
||||
"customOutputFilename": "hellow",
|
||||
"isCMakeProject": true,
|
||||
"compilerLanguageId": "c++",
|
||||
"files": [
|
||||
{
|
||||
"fileId": 1,
|
||||
"filename": "CMakeLists.txt",
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"editorId": 1,
|
||||
"isMainSource": true,
|
||||
"content": "project(hello)\n\nadd_executable(hellow\n example.cpp)\n\ntarget_link_libraries(hellow\n fmtd)\n",
|
||||
"langId": "cmake"
|
||||
},
|
||||
{
|
||||
"fileId": 2,
|
||||
"filename": "example.cpp",
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"editorId": 2,
|
||||
"isMainSource": false,
|
||||
"content": "#include \"fmt/core.h\"\n\nint main() {\n fmt::print(\"H€llo, world!\\n\");\n return 0;\n}",
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 3,
|
||||
"filename": "subdir/hello.txt",
|
||||
"isIncluded": true,
|
||||
"isOpen": false,
|
||||
"editorId": -1,
|
||||
"isMainSource": false,
|
||||
"content": "Hello, World!!!!\n",
|
||||
"langId": "cmake"
|
||||
}
|
||||
],
|
||||
"newFileId": 4
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "Tree #1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "column",
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"width": 33.984339480867234,
|
||||
"content": [
|
||||
{
|
||||
"type": "stack",
|
||||
"header": {},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"activeItemIndex": 0,
|
||||
"width": 34.10502675378526,
|
||||
"height": 50,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "compiler",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"compiler": "g103",
|
||||
"source": false,
|
||||
"tree": 1,
|
||||
"options": "-g -O3 -flto",
|
||||
"filters": {
|
||||
"binary": false,
|
||||
"execute": true,
|
||||
"intel": true,
|
||||
"demangle": true,
|
||||
"labels": true,
|
||||
"libraryCode": true,
|
||||
"directives": true,
|
||||
"commentOnly": true,
|
||||
"trim": false
|
||||
},
|
||||
"libs": [
|
||||
{
|
||||
"name": "fmt",
|
||||
"ver": "700"
|
||||
}
|
||||
],
|
||||
"lang": "c++",
|
||||
"selection": {
|
||||
"startLineNumber": 1,
|
||||
"startColumn": 1,
|
||||
"endLineNumber": 1,
|
||||
"endColumn": 1,
|
||||
"selectionStartLineNumber": 1,
|
||||
"selectionStartColumn": 1,
|
||||
"positionLineNumber": 1,
|
||||
"positionColumn": 1
|
||||
},
|
||||
"flagsViewOpen": false,
|
||||
"fontScale": 14,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "x86-64 gcc 10.3 (C++, Tree #1, Compiler #1)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "stack",
|
||||
"header": {},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"activeItemIndex": 0,
|
||||
"height": 50,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "output",
|
||||
"componentState": {
|
||||
"compiler": 1,
|
||||
"editor": false,
|
||||
"tree": 1,
|
||||
"wrap": false,
|
||||
"fontScale": 14,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "Output of x86-64 gcc 10.3 (Compiler #1)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "stack",
|
||||
"width": 33.33333333333333,
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"activeItemIndex": 1,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"source": "project(hello)\n\nadd_executable(hellow\n example.cpp)\n\ntarget_link_libraries(hellow\n fmtd)\n",
|
||||
"lang": "cmake",
|
||||
"filename": "CMakeLists.txt",
|
||||
"fontScale": 14,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "CMakeLists.txt"
|
||||
},
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 2,
|
||||
"source": "#include \"fmt/core.h\"\n\nint main() {\n fmt::print(\"H€llo, world!\\n\");\n return 0;\n}",
|
||||
"lang": "c++",
|
||||
"filename": "example.cpp",
|
||||
"fontScale": 14,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "example.cpp"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"openPopouts": [],
|
||||
"maximisedItemId": null
|
||||
}
|
||||
92
test/state/tree-gl-outputpane.normalized.json
Normal file
92
test/state/tree-gl-outputpane.normalized.json
Normal file
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
"id": 1,
|
||||
"language": "cmake",
|
||||
"source": "project(hello)\n\nadd_executable(hellow\n example.cpp)\n\ntarget_link_libraries(hellow\n fmtd)\n",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "CMakeLists.txt"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"language": "c++",
|
||||
"source": "#include \"fmt/core.h\"\n\nint main() {\n fmt::print(\"H€llo, world!\\n\");\n return 0;\n}",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "example.cpp"
|
||||
}
|
||||
],
|
||||
"trees": [
|
||||
{
|
||||
"id": 1,
|
||||
"cmakeArgs": "",
|
||||
"customOutputFilename": "hellow",
|
||||
"isCMakeProject": true,
|
||||
"compilerLanguageId": "c++",
|
||||
"files": [
|
||||
{
|
||||
"fileId": 1,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": true,
|
||||
"filename": "CMakeLists.txt",
|
||||
"content": "project(hello)\n\nadd_executable(hellow\n example.cpp)\n\ntarget_link_libraries(hellow\n fmtd)\n",
|
||||
"editorId": 1,
|
||||
"langId": "cmake"
|
||||
},
|
||||
{
|
||||
"fileId": 2,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "example.cpp",
|
||||
"content": "#include \"fmt/core.h\"\n\nint main() {\n fmt::print(\"H€llo, world!\\n\");\n return 0;\n}",
|
||||
"editorId": 2,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 3,
|
||||
"isIncluded": true,
|
||||
"isOpen": false,
|
||||
"isMainSource": false,
|
||||
"filename": "subdir/hello.txt",
|
||||
"content": "Hello, World!!!!\n",
|
||||
"editorId": -1,
|
||||
"langId": "cmake"
|
||||
}
|
||||
],
|
||||
"newFileId": 4,
|
||||
"compilers": [
|
||||
{
|
||||
"_internalid": 1,
|
||||
"id": "g103",
|
||||
"options": "-g -O3 -flto",
|
||||
"filters": {
|
||||
"binary": false,
|
||||
"commentOnly": true,
|
||||
"demangle": true,
|
||||
"directives": true,
|
||||
"execute": true,
|
||||
"intel": true,
|
||||
"labels": true,
|
||||
"trim": false
|
||||
},
|
||||
"libs": [
|
||||
{
|
||||
"name": "fmt",
|
||||
"ver": "700"
|
||||
}
|
||||
],
|
||||
"specialoutputs": [
|
||||
"compilerOutput"
|
||||
],
|
||||
"tools": []
|
||||
}
|
||||
],
|
||||
"executors": []
|
||||
}
|
||||
]
|
||||
}
|
||||
269
test/state/tree-gl.json
Normal file
269
test/state/tree-gl.json
Normal file
@@ -0,0 +1,269 @@
|
||||
{
|
||||
"settings": {
|
||||
"hasHeaders": true,
|
||||
"constrainDragToContainer": false,
|
||||
"reorderEnabled": true,
|
||||
"selectionEnabled": false,
|
||||
"popoutWholeStack": false,
|
||||
"blockedPopoutsThrowError": true,
|
||||
"closePopoutsOnUnload": true,
|
||||
"showPopoutIcon": false,
|
||||
"showMaximiseIcon": true,
|
||||
"showCloseIcon": true,
|
||||
"responsiveMode": "onload",
|
||||
"tabOverlapAllowance": 0,
|
||||
"reorderOnTabMenuClick": true,
|
||||
"tabControlOffset": 10
|
||||
},
|
||||
"dimensions": {
|
||||
"borderWidth": 5,
|
||||
"borderGrabWidth": 15,
|
||||
"minItemHeight": 10,
|
||||
"minItemWidth": 10,
|
||||
"headerHeight": 20,
|
||||
"dragProxyWidth": 300,
|
||||
"dragProxyHeight": 200
|
||||
},
|
||||
"labels": {
|
||||
"close": "close",
|
||||
"maximise": "maximise",
|
||||
"minimise": "minimise",
|
||||
"popout": "open in new window",
|
||||
"popin": "pop in",
|
||||
"tabDropdown": "additional tabs"
|
||||
},
|
||||
"content": [
|
||||
{
|
||||
"type": "row",
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"content": [
|
||||
{
|
||||
"type": "stack",
|
||||
"header": {},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"activeItemIndex": 0,
|
||||
"width": 23.193297464602633,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "tree",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"cmakeArgs": "",
|
||||
"customOutputFilename": "",
|
||||
"isCMakeProject": true,
|
||||
"compilerLanguageId": "c++",
|
||||
"files": [
|
||||
{
|
||||
"fileId": 1,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "example.cpp",
|
||||
"content": "// Type your code here, or load an example.\nint square(int num) {\n return num * num;\n}",
|
||||
"editorId": 1,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 2,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "square.h",
|
||||
"content": "#pragma once\n\nint square(int num);\n",
|
||||
"editorId": 2,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 3,
|
||||
"isIncluded": true,
|
||||
"isOpen": false,
|
||||
"isMainSource": true,
|
||||
"filename": "CMakeLists.txt",
|
||||
"content": "project(hello)\n\nadd_executable(output.s\n example.cpp\n square.cpp)\n",
|
||||
"editorId": -1,
|
||||
"langId": "cmake"
|
||||
},
|
||||
{
|
||||
"fileId": 4,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "square.cpp",
|
||||
"content": "",
|
||||
"editorId": 4,
|
||||
"langId": ""
|
||||
},
|
||||
{
|
||||
"fileId": 6,
|
||||
"isIncluded": false,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "",
|
||||
"content": "",
|
||||
"editorId": 3,
|
||||
"langId": ""
|
||||
}
|
||||
],
|
||||
"newFileId": 7
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "Tree #1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "stack",
|
||||
"width": 37.22445710458798,
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"activeItemIndex": 3,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"source": "#include \"square.h\"\n\nint main(int argc, char **argv) {\n return square(argc);\n}\n",
|
||||
"lang": "c++",
|
||||
"selection": {
|
||||
"startLineNumber": 6,
|
||||
"startColumn": 1,
|
||||
"endLineNumber": 6,
|
||||
"endColumn": 1,
|
||||
"selectionStartLineNumber": 6,
|
||||
"selectionStartColumn": 1,
|
||||
"positionLineNumber": 6,
|
||||
"positionColumn": 1
|
||||
},
|
||||
"filename": "example.cpp",
|
||||
"fontScale": 14,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "example.cpp"
|
||||
},
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 2,
|
||||
"source": "#pragma once\n\nint square(int num);\n",
|
||||
"lang": "c++",
|
||||
"filename": "square.h",
|
||||
"fontScale": 14,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "square.h"
|
||||
},
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 4,
|
||||
"source": "#include \"square.h\"\n\nint square(int num) {\n return num * num;\n}\n",
|
||||
"lang": "c++",
|
||||
"selection": {
|
||||
"startLineNumber": 6,
|
||||
"startColumn": 1,
|
||||
"endLineNumber": 6,
|
||||
"endColumn": 1,
|
||||
"selectionStartLineNumber": 6,
|
||||
"selectionStartColumn": 1,
|
||||
"positionLineNumber": 6,
|
||||
"positionColumn": 1
|
||||
},
|
||||
"filename": "square.cpp",
|
||||
"fontScale": 14,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "square.cpp"
|
||||
},
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 3,
|
||||
"source": "project(hello)\n\nadd_executable(output.s\n example.cpp\n square.cpp)\n",
|
||||
"lang": "cmake",
|
||||
"filename": "CMakeLists.txt",
|
||||
"fontScale": 14,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "CMakeLists.txt"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "stack",
|
||||
"header": {},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"activeItemIndex": 0,
|
||||
"width": 39.5822454308094,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "compiler",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"compiler": "g103",
|
||||
"source": false,
|
||||
"tree": 1,
|
||||
"options": "-g -O3 -flto",
|
||||
"filters": {
|
||||
"binary": true,
|
||||
"execute": false,
|
||||
"intel": true,
|
||||
"demangle": true,
|
||||
"labels": true,
|
||||
"libraryCode": true,
|
||||
"directives": true,
|
||||
"commentOnly": true,
|
||||
"trim": false
|
||||
},
|
||||
"libs": [],
|
||||
"lang": "c++",
|
||||
"selection": {
|
||||
"startLineNumber": 1,
|
||||
"startColumn": 1,
|
||||
"endLineNumber": 1,
|
||||
"endColumn": 1,
|
||||
"selectionStartLineNumber": 1,
|
||||
"selectionStartColumn": 1,
|
||||
"positionLineNumber": 1,
|
||||
"positionColumn": 1
|
||||
},
|
||||
"flagsViewOpen": false,
|
||||
"fontScale": 14,
|
||||
"fontUsePx": true
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "x86-64 gcc 10.3 (Tree #1, Compiler #1) C++"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "",
|
||||
"openPopouts": [],
|
||||
"maximisedItemId": null
|
||||
}
|
||||
154
test/state/tree-mobile.goldenified.json
Normal file
154
test/state/tree-mobile.goldenified.json
Normal file
@@ -0,0 +1,154 @@
|
||||
[
|
||||
{
|
||||
"settings": {
|
||||
"hasHeaders": true,
|
||||
"constrainDragToContainer": false,
|
||||
"reorderEnabled": true,
|
||||
"selectionEnabled": false,
|
||||
"popoutWholeStack": false,
|
||||
"blockedPopoutsThrowError": true,
|
||||
"closePopoutsOnUnload": true,
|
||||
"showPopoutIcon": false,
|
||||
"showMaximiseIcon": true,
|
||||
"showCloseIcon": false,
|
||||
"responsiveMode": "onload",
|
||||
"tabOverlapAllowance": 0,
|
||||
"reorderOnTabMenuClick": true,
|
||||
"tabControlOffset": 10
|
||||
},
|
||||
"dimensions": {
|
||||
"borderWidth": 5,
|
||||
"borderGrabWidth": 15,
|
||||
"minItemHeight": 10,
|
||||
"minItemWidth": 10,
|
||||
"headerHeight": 20,
|
||||
"dragProxyWidth": 300,
|
||||
"dragProxyHeight": 200
|
||||
},
|
||||
"labels": {
|
||||
"close": "close",
|
||||
"maximise": "maximise",
|
||||
"minimise": "minimise",
|
||||
"popout": "open in new window",
|
||||
"popin": "pop in",
|
||||
"tabDropdown": "additional tabs"
|
||||
},
|
||||
"content": [
|
||||
{
|
||||
"type": "column",
|
||||
"content": [
|
||||
{
|
||||
"type": "column",
|
||||
"width": 100,
|
||||
"content": [
|
||||
{
|
||||
"type": "row",
|
||||
"height": 50,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "tree",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"cmakeArgs": "",
|
||||
"customOutputFilename": "hellow",
|
||||
"isCMakeProject": true,
|
||||
"compilerLanguageId": "c++",
|
||||
"files": [
|
||||
{
|
||||
"fileId": 1,
|
||||
"isIncluded": true,
|
||||
"isOpen": false,
|
||||
"isMainSource": true,
|
||||
"filename": "CMakeLists.txt",
|
||||
"content": "project(hello)\n\nadd_executable(hellow\n example.cpp)\n\ntarget_link_libraries(hellow\n fmtd)\n",
|
||||
"editorId": -1,
|
||||
"langId": "cmake"
|
||||
},
|
||||
{
|
||||
"fileId": 2,
|
||||
"isIncluded": true,
|
||||
"isOpen": false,
|
||||
"isMainSource": false,
|
||||
"filename": "example.cpp",
|
||||
"content": "#include \"fmt/core.h\"\n\nint main() {\n fmt::print(\"H€llo, world!\\n\");\n return 0;\n}",
|
||||
"editorId": -1,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 3,
|
||||
"isIncluded": true,
|
||||
"isOpen": false,
|
||||
"isMainSource": false,
|
||||
"filename": "subdir/hello.txt",
|
||||
"content": "Hello, World!!!!\n",
|
||||
"editorId": -1,
|
||||
"langId": "cmake"
|
||||
}
|
||||
],
|
||||
"newFileId": 4
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "row",
|
||||
"height": 50,
|
||||
"content": [
|
||||
{
|
||||
"type": "stack",
|
||||
"width": 100,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "compiler",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"compiler": "g103",
|
||||
"tree": 1,
|
||||
"options": "-g -O3 -flto",
|
||||
"filters": {
|
||||
"binary": false,
|
||||
"commentOnly": true,
|
||||
"demangle": true,
|
||||
"directives": true,
|
||||
"execute": false,
|
||||
"intel": true,
|
||||
"labels": true,
|
||||
"trim": false
|
||||
},
|
||||
"libs": [
|
||||
{
|
||||
"name": "fmt",
|
||||
"ver": "700"
|
||||
}
|
||||
],
|
||||
"lang": "c++"
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true
|
||||
},
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "output",
|
||||
"componentState": {
|
||||
"compiler": 1,
|
||||
"wrap": false,
|
||||
"fontScale": 14
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
92
test/state/tree-mobile.json
Normal file
92
test/state/tree-mobile.json
Normal file
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
"id": 1,
|
||||
"language": "cmake",
|
||||
"source": "project(hello)\n\nadd_executable(hellow\n example.cpp)\n\ntarget_link_libraries(hellow\n fmtd)\n",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "CMakeLists.txt"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"language": "c++",
|
||||
"source": "#include \"fmt/core.h\"\n\nint main() {\n fmt::print(\"H€llo, world!\\n\");\n return 0;\n}",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "example.cpp"
|
||||
}
|
||||
],
|
||||
"trees": [
|
||||
{
|
||||
"id": 1,
|
||||
"cmakeArgs": "",
|
||||
"customOutputFilename": "hellow",
|
||||
"isCMakeProject": true,
|
||||
"compilerLanguageId": "c++",
|
||||
"files": [
|
||||
{
|
||||
"fileId": 1,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": true,
|
||||
"filename": "CMakeLists.txt",
|
||||
"content": "project(hello)\n\nadd_executable(hellow\n example.cpp)\n\ntarget_link_libraries(hellow\n fmtd)\n",
|
||||
"editorId": 1,
|
||||
"langId": "cmake"
|
||||
},
|
||||
{
|
||||
"fileId": 2,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "example.cpp",
|
||||
"content": "#include \"fmt/core.h\"\n\nint main() {\n fmt::print(\"H€llo, world!\\n\");\n return 0;\n}",
|
||||
"editorId": 2,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 3,
|
||||
"isIncluded": true,
|
||||
"isOpen": false,
|
||||
"isMainSource": false,
|
||||
"filename": "subdir/hello.txt",
|
||||
"content": "Hello, World!!!!\n",
|
||||
"editorId": -1,
|
||||
"langId": "cmake"
|
||||
}
|
||||
],
|
||||
"newFileId": 4,
|
||||
"compilers": [
|
||||
{
|
||||
"_internalid": 1,
|
||||
"id": "g103",
|
||||
"options": "-g -O3 -flto",
|
||||
"filters": {
|
||||
"binary": false,
|
||||
"commentOnly": true,
|
||||
"demangle": true,
|
||||
"directives": true,
|
||||
"execute": false,
|
||||
"intel": true,
|
||||
"labels": true,
|
||||
"trim": false
|
||||
},
|
||||
"libs": [
|
||||
{
|
||||
"name": "fmt",
|
||||
"ver": "700"
|
||||
}
|
||||
],
|
||||
"specialoutputs": [
|
||||
"compilerOutput"
|
||||
],
|
||||
"tools": []
|
||||
}
|
||||
],
|
||||
"executors": []
|
||||
}
|
||||
]
|
||||
}
|
||||
202
test/state/tree.goldenified.json
Normal file
202
test/state/tree.goldenified.json
Normal file
@@ -0,0 +1,202 @@
|
||||
{
|
||||
"settings": {
|
||||
"hasHeaders": true,
|
||||
"constrainDragToContainer": false,
|
||||
"reorderEnabled": true,
|
||||
"selectionEnabled": false,
|
||||
"popoutWholeStack": false,
|
||||
"blockedPopoutsThrowError": true,
|
||||
"closePopoutsOnUnload": true,
|
||||
"showPopoutIcon": false,
|
||||
"showMaximiseIcon": true,
|
||||
"showCloseIcon": true,
|
||||
"responsiveMode": "onload",
|
||||
"tabOverlapAllowance": 0,
|
||||
"reorderOnTabMenuClick": true,
|
||||
"tabControlOffset": 10
|
||||
},
|
||||
"dimensions": {
|
||||
"borderWidth": 5,
|
||||
"borderGrabWidth": 15,
|
||||
"minItemHeight": 10,
|
||||
"minItemWidth": 10,
|
||||
"headerHeight": 20,
|
||||
"dragProxyWidth": 300,
|
||||
"dragProxyHeight": 200
|
||||
},
|
||||
"labels": {
|
||||
"close": "close",
|
||||
"maximise": "maximise",
|
||||
"minimise": "minimise",
|
||||
"popout": "open in new window",
|
||||
"popin": "pop in",
|
||||
"tabDropdown": "additional tabs"
|
||||
},
|
||||
"content": [
|
||||
{
|
||||
"type": "row",
|
||||
"content": [
|
||||
{
|
||||
"type": "stack",
|
||||
"width": 25,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "tree",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"cmakeArgs": "",
|
||||
"customOutputFilename": "",
|
||||
"isCMakeProject": true,
|
||||
"newFileId": 7,
|
||||
"compilerLanguageId": "c++",
|
||||
"files": [
|
||||
{
|
||||
"fileId": 1,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "example.cpp",
|
||||
"content": "#include \"square.h\"\n\nint main(int argc, char **argv) {\n return square(argc);\n}\n",
|
||||
"editorId": 1,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 2,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "square.h",
|
||||
"content": "#pragma once\n\nint square(int num);\n",
|
||||
"editorId": 2,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 3,
|
||||
"isIncluded": true,
|
||||
"isOpen": false,
|
||||
"isMainSource": true,
|
||||
"filename": "CMakeLists.txt",
|
||||
"content": "project(hello)\n\nadd_executable(output.s\n example.cpp\n square.cpp)\n",
|
||||
"editorId": -1,
|
||||
"langId": "cmake"
|
||||
},
|
||||
{
|
||||
"fileId": 4,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "square.cpp",
|
||||
"content": "#include \"square.h\"\n\nint square(int num) {\n return num * num;\n}\n",
|
||||
"editorId": 4,
|
||||
"langId": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "stack",
|
||||
"width": 40,
|
||||
"content": [
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 1,
|
||||
"source": "#include \"square.h\"\n\nint main(int argc, char **argv) {\n return square(argc);\n}\n",
|
||||
"lang": "c++",
|
||||
"filename": "example.cpp"
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "example.cpp"
|
||||
},
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 2,
|
||||
"source": "#pragma once\n\nint square(int num);\n",
|
||||
"lang": "c++",
|
||||
"filename": "square.h"
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "square.h"
|
||||
},
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 4,
|
||||
"source": "#include \"square.h\"\n\nint square(int num) {\n return num * num;\n}\n",
|
||||
"lang": "c++",
|
||||
"filename": "square.cpp"
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "square.cpp"
|
||||
},
|
||||
{
|
||||
"type": "component",
|
||||
"componentName": "codeEditor",
|
||||
"componentState": {
|
||||
"id": 3,
|
||||
"source": "project(hello)\n\nadd_executable(output.s\n example.cpp\n square.cpp)\n",
|
||||
"lang": "cmake",
|
||||
"filename": "CMakeLists.txt"
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"title": "CMakeLists.txt"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "stack",
|
||||
"width": 40,
|
||||
"content": [
|
||||
{
|
||||
"componentName": "compiler",
|
||||
"componentState": {
|
||||
"compiler": "g103",
|
||||
"filters": {
|
||||
"binary": true,
|
||||
"commentOnly": true,
|
||||
"demangle": true,
|
||||
"directives": true,
|
||||
"execute": false,
|
||||
"intel": true,
|
||||
"labels": true,
|
||||
"trim": false
|
||||
},
|
||||
"lang": "c++",
|
||||
"libs": [],
|
||||
"options": "-g -O3 -flto",
|
||||
"tree": 1
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"type": "component"
|
||||
},
|
||||
{
|
||||
"componentName": "output",
|
||||
"componentState": {
|
||||
"compiler": 1,
|
||||
"fontScale": 14,
|
||||
"wrap": false
|
||||
},
|
||||
"isClosable": true,
|
||||
"reorderEnabled": true,
|
||||
"type": "component"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
114
test/state/tree.json
Normal file
114
test/state/tree.json
Normal file
@@ -0,0 +1,114 @@
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
"id": 1,
|
||||
"language": "c++",
|
||||
"source": "#include \"square.h\"\n\nint main(int argc, char **argv) {\n return square(argc);\n}\n",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "example.cpp"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"language": "c++",
|
||||
"source": "#pragma once\n\nint square(int num);\n",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "square.h"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"language": "c++",
|
||||
"source": "#include \"square.h\"\n\nint square(int num) {\n return num * num;\n}\n",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "square.cpp"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"language": "cmake",
|
||||
"source": "project(hello)\n\nadd_executable(output.s\n example.cpp\n square.cpp)\n",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "CMakeLists.txt"
|
||||
}
|
||||
],
|
||||
"trees": [
|
||||
{
|
||||
"id": 1,
|
||||
"cmakeArgs": "",
|
||||
"customOutputFilename": "",
|
||||
"isCMakeProject": true,
|
||||
"compilerLanguageId": "c++",
|
||||
"files": [
|
||||
{
|
||||
"fileId": 1,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "example.cpp",
|
||||
"content": "#include \"square.h\"\n\nint main(int argc, char **argv) {\n return square(argc);\n}\n",
|
||||
"editorId": 1,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 2,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "square.h",
|
||||
"content": "#pragma once\n\nint square(int num);\n",
|
||||
"editorId": 2,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 3,
|
||||
"isIncluded": true,
|
||||
"isOpen": false,
|
||||
"isMainSource": true,
|
||||
"filename": "CMakeLists.txt",
|
||||
"content": "project(hello)\n\nadd_executable(output.s\n example.cpp\n square.cpp)\n",
|
||||
"editorId": -1,
|
||||
"langId": "cmake"
|
||||
},
|
||||
{
|
||||
"fileId": 4,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "square.cpp",
|
||||
"content": "#include \"square.h\"\n\nint square(int num) {\n return num * num;\n}\n",
|
||||
"editorId": 4,
|
||||
"langId": ""
|
||||
}
|
||||
],
|
||||
"newFileId": 7,
|
||||
"compilers": [
|
||||
{
|
||||
"id": "g103",
|
||||
"options": "-g -O3 -flto",
|
||||
"filters": {
|
||||
"binary": true,
|
||||
"commentOnly": true,
|
||||
"demangle": true,
|
||||
"directives": true,
|
||||
"execute": false,
|
||||
"intel": true,
|
||||
"labels": true,
|
||||
"trim": false
|
||||
},
|
||||
"libs": [],
|
||||
"specialoutputs": [
|
||||
"compilerOutput"
|
||||
],
|
||||
"tools": []
|
||||
}
|
||||
],
|
||||
"executors": []
|
||||
}
|
||||
]
|
||||
}
|
||||
113
test/state/tree.normalized.json
Normal file
113
test/state/tree.normalized.json
Normal file
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
"id": 1,
|
||||
"language": "c++",
|
||||
"source": "#include \"square.h\"\n\nint main(int argc, char **argv) {\n return square(argc);\n}\n",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "example.cpp"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"language": "c++",
|
||||
"source": "#pragma once\n\nint square(int num);\n",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "square.h"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"language": "c++",
|
||||
"source": "#include \"square.h\"\n\nint square(int num) {\n return num * num;\n}\n",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "square.cpp"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"language": "cmake",
|
||||
"source": "project(hello)\n\nadd_executable(output.s\n example.cpp\n square.cpp)\n",
|
||||
"conformanceview": false,
|
||||
"compilers": [],
|
||||
"executors": [],
|
||||
"filename": "CMakeLists.txt"
|
||||
}
|
||||
],
|
||||
"trees": [
|
||||
{
|
||||
"id": 1,
|
||||
"cmakeArgs": "",
|
||||
"customOutputFilename": "",
|
||||
"isCMakeProject": true,
|
||||
"compilerLanguageId": "c++",
|
||||
"files": [
|
||||
{
|
||||
"fileId": 1,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "example.cpp",
|
||||
"content": "#include \"square.h\"\n\nint main(int argc, char **argv) {\n return square(argc);\n}\n",
|
||||
"editorId": 1,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 2,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "square.h",
|
||||
"content": "#pragma once\n\nint square(int num);\n",
|
||||
"editorId": 2,
|
||||
"langId": "c++"
|
||||
},
|
||||
{
|
||||
"fileId": 3,
|
||||
"isIncluded": true,
|
||||
"isOpen": false,
|
||||
"isMainSource": true,
|
||||
"filename": "CMakeLists.txt",
|
||||
"content": "project(hello)\n\nadd_executable(output.s\n example.cpp\n square.cpp)\n",
|
||||
"editorId": -1,
|
||||
"langId": "cmake"
|
||||
},
|
||||
{
|
||||
"fileId": 4,
|
||||
"isIncluded": true,
|
||||
"isOpen": true,
|
||||
"isMainSource": false,
|
||||
"filename": "square.cpp",
|
||||
"content": "#include \"square.h\"\n\nint square(int num) {\n return num * num;\n}\n",
|
||||
"editorId": 4,
|
||||
"langId": ""
|
||||
}
|
||||
],
|
||||
"newFileId": 7,
|
||||
"compilers": [
|
||||
{
|
||||
"_internalid": 1,
|
||||
"id": "g103",
|
||||
"options": "-g -O3 -flto",
|
||||
"filters": {
|
||||
"binary": true,
|
||||
"commentOnly": true,
|
||||
"demangle": true,
|
||||
"directives": true,
|
||||
"execute": false,
|
||||
"intel": true,
|
||||
"labels": true,
|
||||
"trim": false
|
||||
},
|
||||
"libs": [],
|
||||
"specialoutputs": [],
|
||||
"tools": []
|
||||
}
|
||||
],
|
||||
"executors": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
"source": "// Type your code here, or load an example.\r\nint square(int num) {\r\n return num * num + 3;\r\n}\r\n\r\n",
|
||||
"compilers": [
|
||||
{
|
||||
"_internalid": 1,
|
||||
"id": "vc2017_64",
|
||||
"options": "-O2",
|
||||
"filters": {
|
||||
@@ -33,6 +34,7 @@
|
||||
"source": "// Type your code here, or load an example.\r\nint square(int num) {\r\n return num * num;\r\n}",
|
||||
"compilers": [
|
||||
{
|
||||
"_internalid": 2,
|
||||
"id": "vc2017_32",
|
||||
"options": "-O3",
|
||||
"filters": {
|
||||
@@ -52,5 +54,6 @@
|
||||
],
|
||||
"executors": []
|
||||
}
|
||||
]
|
||||
],
|
||||
"trees": []
|
||||
}
|
||||
@@ -23,7 +23,7 @@
|
||||
// POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import { ClientState } from '../lib/clientstate';
|
||||
import { ClientStateNormalizer } from '../lib/clientstate-normalizer';
|
||||
import { ClientStateGoldenifier, ClientStateNormalizer } from '../lib/clientstate-normalizer';
|
||||
|
||||
import { fs } from './utils';
|
||||
|
||||
@@ -32,12 +32,14 @@ describe('Normalizing clientstate', () => {
|
||||
const normalizer = new ClientStateNormalizer();
|
||||
|
||||
const data = JSON.parse(fs.readFileSync('test/state/twocompilers.json'));
|
||||
|
||||
normalizer.fromGoldenLayout(data);
|
||||
|
||||
const resultdata = JSON.parse(fs.readFileSync('test/state/twocompilers.json.normalized'));
|
||||
|
||||
normalizer.normalized.should.deep.equal(resultdata);
|
||||
// note: this trick is to get rid of undefined parameters
|
||||
const normalized = JSON.parse(JSON.stringify(normalizer.normalized));
|
||||
|
||||
normalized.should.deep.equal(resultdata);
|
||||
});
|
||||
|
||||
it('Should recognize everything and kitchensink as well', () => {
|
||||
@@ -49,7 +51,9 @@ describe('Normalizing clientstate', () => {
|
||||
|
||||
const resultdata = JSON.parse(fs.readFileSync('test/state/andthekitchensink.json.normalized'));
|
||||
|
||||
normalizer.normalized.should.deep.equal(resultdata);
|
||||
const normalized = JSON.parse(JSON.stringify(normalizer.normalized));
|
||||
|
||||
normalized.should.deep.equal(resultdata);
|
||||
});
|
||||
|
||||
it('Should support conformanceview', () => {
|
||||
@@ -61,7 +65,9 @@ describe('Normalizing clientstate', () => {
|
||||
|
||||
const resultdata = JSON.parse(fs.readFileSync('test/state/conformanceview.json.normalized'));
|
||||
|
||||
normalizer.normalized.should.deep.equal(resultdata);
|
||||
const normalized = JSON.parse(JSON.stringify(normalizer.normalized));
|
||||
|
||||
normalized.should.deep.equal(resultdata);
|
||||
});
|
||||
|
||||
it('Should support executors', () => {
|
||||
@@ -73,7 +79,9 @@ describe('Normalizing clientstate', () => {
|
||||
|
||||
const resultdata = JSON.parse(fs.readFileSync('test/state/executor.json.normalized'));
|
||||
|
||||
normalizer.normalized.should.deep.equal(resultdata);
|
||||
const normalized = JSON.parse(JSON.stringify(normalizer.normalized));
|
||||
|
||||
normalized.should.deep.equal(resultdata);
|
||||
});
|
||||
|
||||
it('Should support newer features', () => {
|
||||
@@ -85,7 +93,21 @@ describe('Normalizing clientstate', () => {
|
||||
|
||||
const resultdata = JSON.parse(fs.readFileSync('test/state/executorwrap.json.normalized'));
|
||||
|
||||
normalizer.normalized.should.deep.equal(resultdata);
|
||||
const normalized = JSON.parse(JSON.stringify(normalizer.normalized));
|
||||
|
||||
normalized.should.deep.equal(resultdata);
|
||||
});
|
||||
|
||||
it('Allow output without editor id', () => {
|
||||
const normalizer = new ClientStateNormalizer();
|
||||
const data = JSON.parse(fs.readFileSync('test/state/output-editor-id.json'));
|
||||
normalizer.fromGoldenLayout(data);
|
||||
|
||||
const resultdata = JSON.parse(fs.readFileSync('test/state/output-editor-id.normalized.json'));
|
||||
|
||||
const normalized = JSON.parse(JSON.stringify(normalizer.normalized));
|
||||
|
||||
normalized.should.deep.equal(resultdata);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -127,3 +149,62 @@ describe('ClientState parsing', () => {
|
||||
state.sessions[0].compilers.length.should.equal(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Trees', () => {
|
||||
it('ClientState to GL', () => {
|
||||
const jsonStr = fs.readFileSync('test/state/tree.json');
|
||||
const state = new ClientState(JSON.parse(jsonStr));
|
||||
state.trees.length.should.equal(1);
|
||||
|
||||
const gl = new ClientStateGoldenifier();
|
||||
gl.fromClientState(state);
|
||||
|
||||
const golden = JSON.parse(JSON.stringify(gl.golden));
|
||||
|
||||
const resultdata = JSON.parse(fs.readFileSync('test/state/tree.goldenified.json'));
|
||||
golden.should.deep.equal(resultdata);
|
||||
});
|
||||
|
||||
it('GL to ClientState', () => {
|
||||
const jsonStr = fs.readFileSync('test/state/tree-gl.json');
|
||||
const gl = JSON.parse(jsonStr);
|
||||
|
||||
const normalizer = new ClientStateNormalizer();
|
||||
normalizer.fromGoldenLayout(gl);
|
||||
|
||||
const normalized = JSON.parse(JSON.stringify(normalizer.normalized));
|
||||
|
||||
const resultdata = JSON.parse(fs.readFileSync('test/state/tree.normalized.json'));
|
||||
|
||||
normalized.should.deep.equal(resultdata);
|
||||
});
|
||||
|
||||
it('GL to ClientState with correct output pane', () => {
|
||||
const jsonStr = fs.readFileSync('test/state/tree-gl-outputpane.json');
|
||||
const gl = JSON.parse(jsonStr);
|
||||
|
||||
const normalizer = new ClientStateNormalizer();
|
||||
normalizer.fromGoldenLayout(gl);
|
||||
|
||||
const normalized = JSON.parse(JSON.stringify(normalizer.normalized));
|
||||
|
||||
const resultdata = JSON.parse(fs.readFileSync('test/state/tree-gl-outputpane.normalized.json'));
|
||||
|
||||
normalized.should.deep.equal(resultdata);
|
||||
});
|
||||
|
||||
it('ClientState to Mobile GL', () => {
|
||||
const jsonStr = fs.readFileSync('test/state/tree-mobile.json');
|
||||
const state = new ClientState(JSON.parse(jsonStr));
|
||||
state.trees.length.should.equal(1);
|
||||
|
||||
const gl = new ClientStateGoldenifier();
|
||||
const slides = gl.generatePresentationModeMobileViewerSlides(state);
|
||||
|
||||
const golden = JSON.parse(JSON.stringify(slides));
|
||||
//fs.writeFileSync('test/state/tree-mobile.goldenified.json', JSON.stringify(golden));
|
||||
|
||||
const resultdata = JSON.parse(fs.readFileSync('test/state/tree-mobile.goldenified.json'));
|
||||
golden.should.deep.equal(resultdata);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -16,6 +16,9 @@ block prepend content
|
||||
a.dropdown-item#add-diff(href="javascript:;" title="Click or drag to desired destination")
|
||||
span.dropdown-icon.fas.fa-exchange-alt
|
||||
| Diff View
|
||||
button.dropdown-item.btn.btn-sm.btn-light#add-tree(href="javascript:;" title="Click or drag to desired destination")
|
||||
span.dropdown-icon.fa.fa-list-alt
|
||||
| Tree (IDE Mode)
|
||||
li.nav-item.dropdown
|
||||
a.nav-link.dropdown-toggle#moreDropdown(href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false") More
|
||||
div.dropdown-menu(aria-labelledby="moreDropdown")
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
.checkbox
|
||||
input.useVim(type="checkbox")
|
||||
label Vim editor mode
|
||||
.checkbox
|
||||
.checkbox.the-save-option-to-auto-share
|
||||
input.enableCtrlS(type="checkbox")
|
||||
label
|
||||
| Make
|
||||
@@ -135,6 +135,14 @@
|
||||
| +
|
||||
kbd S
|
||||
| save to local file instead of creating a share link
|
||||
.checkbox.the-save-option-to-tree-save
|
||||
input.enableCtrlStree(type="checkbox")
|
||||
label
|
||||
| Make
|
||||
kbd Ctrl
|
||||
| +
|
||||
kbd S
|
||||
| include and save the file to a Tree if that's added to the UI
|
||||
.card
|
||||
.card-header
|
||||
.card-title
|
||||
|
||||
@@ -430,3 +430,54 @@
|
||||
span.lib-fav
|
||||
button.btn.btn-sm.lib-fav-button
|
||||
span.lib-fav-btn-icon.far.fa-star
|
||||
|
||||
#tree
|
||||
.top-bar.btn-toolbar.bg-light.mainbar(role="toolbar")
|
||||
.btn-group.btn-group-sm.menu(role="group" aria-label="Menu")
|
||||
button.dropdown-toggle.btn.btn-sm.btn-light.file-menu(type="button" title="File" aria-label="File" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false")
|
||||
span.fa.fa-save
|
||||
span.hideable Project
|
||||
.dropdown-menu
|
||||
input.dropdown-item.btn.btn-sm.btn-light.load-project-from-file(type="file" title="Load project from ZIP" aria-label="Load project from ZIP")
|
||||
button.dropdown-item.btn.btn-sm.btn-light.save-project-to-file(type="file" title="Save project" aria-label="Save project")
|
||||
span.dropdown-icon.fa.fa-save
|
||||
| Save
|
||||
.btn-group.btn-group-sm.options(role="group" aria-label="Tree settings")
|
||||
button.dropdown-toggle.btn.btn-sm.btn-light.add-pane(type="button" title="Add a new pane" aria-label="Add a new pane" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false")
|
||||
span.fa.fa-plus
|
||||
span.hideable Add new...
|
||||
.dropdown-menu
|
||||
button.dropdown-item.btn.btn-sm.btn-light.add-editor(title="Add a new source editor view" aria-label="New source editor")
|
||||
span.dropdown-icon.fa.fa-code
|
||||
| Source editor
|
||||
button.dropdown-item.btn.btn-sm.btn-light.add-compiler(title="Add a new compiler for this source" aria-label="New compiler")
|
||||
span.dropdown-icon.fa.fa-cogs
|
||||
| Compiler
|
||||
button.dropdown-item.btn.btn-sm.btn-light.add-executor(title="Add a new executor for this source" aria-label="New executor")
|
||||
span.dropdown-icon.fas.fa-microchip
|
||||
| Execution only
|
||||
.button-checkbox
|
||||
button.btn.btn-sm.btn-light.cmake-project(type="button" title="CMake project" data-bind="isCMakeProject" aria-pressed="false" aria-label="CMake project")
|
||||
span CMake
|
||||
input.d-none(type="checkbox" checked=false)
|
||||
.btn-group.btn-group-sm.ml-auto(role="group" aria-label="Language")
|
||||
select.change-language(title="Change the language" placeholder="Language" disabled=embedded && readOnly)
|
||||
.top-bar.btn-toolbar.bg-light.panel-args.d-none(role="toolbar")
|
||||
input.cmake-arguments.form-control(type="text" placeholder="CMake arguments..." size="256" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false")
|
||||
.top-bar.btn-toolbar.bg-light.panel-outputfile.d-none(role="toolbar")
|
||||
input.cmake-customOutputFilename.form-control(type="text" placeholder="output.s" size="256" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false")
|
||||
.tree.v-scroll
|
||||
ul.list-group
|
||||
li.root.list-group-item.far-fa-folder
|
||||
.group-header Included files
|
||||
ul.list-group.named-editors
|
||||
li.root.list-group-item.far-fa-folder
|
||||
.group-header Excluded files
|
||||
ul.list-group.unnamed-editors
|
||||
|
||||
#tree-editor-tpl
|
||||
li.list-group-item.tree-editor-file.input-group-append
|
||||
span.filename someresource.txt
|
||||
button.btn.delete-file.fa.fa-trash
|
||||
button.btn.rename-file.fa.fa-tag
|
||||
button.btn.stage-file.fa.fa-plus
|
||||
|
||||
Reference in New Issue
Block a user