| Index: tools/testing/dart/compiler_configuration.dart
|
| diff --git a/tools/testing/dart/compiler_configuration.dart b/tools/testing/dart/compiler_configuration.dart
|
| index 2ad03e4cab92b70a7f77fc6adc97de16626bdd58..49368ce1cc60234084f1e0b2310966c7de4bd1df 100644
|
| --- a/tools/testing/dart/compiler_configuration.dart
|
| +++ b/tools/testing/dart/compiler_configuration.dart
|
| @@ -89,19 +89,6 @@ abstract class CompilerConfiguration {
|
| arch: configuration['arch'],
|
| useBlobs: useBlobs,
|
| isAndroid: configuration['system'] == 'android');
|
| - case 'dartk':
|
| - return ComposedCompilerConfiguration.createDartKConfiguration(
|
| - isHostChecked: isHostChecked,
|
| - kernel_transformers: configuration['kernel_transformers'],
|
| - useSdk: useSdk);
|
| - case 'dartkp':
|
| - return ComposedCompilerConfiguration.createDartKPConfiguration(
|
| - isHostChecked: isHostChecked,
|
| - arch: configuration['arch'],
|
| - useBlobs: useBlobs,
|
| - isAndroid: configuration['system'] == 'android',
|
| - kernel_transformers: configuration['kernel_transformers'],
|
| - useSdk: useSdk);
|
| case 'none':
|
| return new NoneCompilerConfiguration(
|
| isDebug: isDebug,
|
| @@ -212,257 +199,6 @@ class NoneCompilerConfiguration extends CompilerConfiguration {
|
| }
|
| }
|
|
|
| -/// The "dartk" compiler.
|
| -class DartKCompilerConfiguration extends CompilerConfiguration {
|
| - DartKCompilerConfiguration({bool isHostChecked, bool useSdk})
|
| - : super._subclass(isHostChecked: isHostChecked, useSdk: useSdk);
|
| -
|
| - @override
|
| - String computeCompilerPath(String buildDir) {
|
| - return 'third_party/pkg/kernel/bin/dartk.dart';
|
| - }
|
| -
|
| - CompilationCommand computeCompilationCommand(
|
| - String outputFileName,
|
| - String buildDir,
|
| - CommandBuilder commandBuilder,
|
| - List arguments,
|
| - Map<String, String> environmentOverrides) {
|
| - var extraArguments = [
|
| - '--sdk',
|
| - '$buildDir/obj/gen/patched_sdk',
|
| - '--link',
|
| - '--target=vm',
|
| - '--out',
|
| - outputFileName
|
| - ];
|
| - return commandBuilder.getKernelCompilationCommand(
|
| - 'dartk',
|
| - outputFileName,
|
| - true,
|
| - bootstrapDependencies(buildDir),
|
| - computeCompilerPath(buildDir),
|
| - []..addAll(arguments)..addAll(extraArguments),
|
| - environmentOverrides);
|
| - }
|
| -
|
| - CommandArtifact computeCompilationArtifact(
|
| - String buildDir,
|
| - String tempDir,
|
| - CommandBuilder commandBuilder,
|
| - List arguments,
|
| - Map<String, String> environmentOverrides) {
|
| - return new CommandArtifact(<Command>[
|
| - this.computeCompilationCommand('$tempDir/out.dill', buildDir,
|
| - CommandBuilder.instance, arguments, environmentOverrides)
|
| - ], '$tempDir/out.dill', 'application/dart');
|
| - }
|
| -}
|
| -
|
| -typedef List<String> CompilerArgumentsFunction(
|
| - List<String> globalArguments,
|
| - String previousCompilerOutput);
|
| -
|
| -class PipelineCommand {
|
| - final CompilerConfiguration compilerConfiguration;
|
| - final CompilerArgumentsFunction _argumentsFunction;
|
| -
|
| - PipelineCommand._(this.compilerConfiguration, this._argumentsFunction);
|
| -
|
| - factory PipelineCommand.runWithGlobalArguments(CompilerConfiguration conf) {
|
| - return new PipelineCommand._(conf, (List<String> globalArguments,
|
| - String previousOutput) {
|
| - assert(previousOutput == null);
|
| - return globalArguments;
|
| - });
|
| - }
|
| -
|
| - factory PipelineCommand.runWithDartOrKernelFile(CompilerConfiguration conf) {
|
| - return new PipelineCommand._(conf, (List<String> globalArguments,
|
| - String previousOutput) {
|
| - var filtered = globalArguments
|
| - .where((String name) => name.endsWith('.dart') ||
|
| - name.endsWith('.dill'))
|
| - .toList();
|
| - assert(filtered.length == 1);
|
| - return filtered;
|
| - });
|
| - }
|
| -
|
| - factory PipelineCommand.runWithPreviousKernelOutput(
|
| - CompilerConfiguration conf) {
|
| - return new PipelineCommand._(conf, (List<String> globalArguments,
|
| - String previousOutput) {
|
| - assert(previousOutput.endsWith('.dill'));
|
| - return [previousOutput];
|
| - });
|
| - }
|
| -
|
| - List<String> extractArguments(List<String> globalArguments,
|
| - String previousOutput) {
|
| - return _argumentsFunction(globalArguments, previousOutput);
|
| - }
|
| -}
|
| -
|
| -class ComposedCompilerConfiguration extends CompilerConfiguration {
|
| - final List<PipelineCommand> pipelineCommands;
|
| -
|
| - ComposedCompilerConfiguration(this.pipelineCommands)
|
| - : super._subclass();
|
| -
|
| - CommandArtifact computeCompilationArtifact(
|
| - String buildDir,
|
| - String tempDir,
|
| - CommandBuilder commandBuilder,
|
| - List globalArguments,
|
| - Map<String, String> environmentOverrides) {
|
| -
|
| - List<Command> allCommands = [];
|
| -
|
| - // The first compilation command is as usual.
|
| - var arguments = pipelineCommands[0].extractArguments(globalArguments, null);
|
| - CommandArtifact artifact =
|
| - pipelineCommands[0].compilerConfiguration.computeCompilationArtifact(
|
| - buildDir, tempDir, commandBuilder, arguments, environmentOverrides);
|
| - allCommands.addAll(artifact.commands);
|
| -
|
| - // The following compilation commands are based on the output of the
|
| - // previous one.
|
| - for (int i = 1; i < pipelineCommands.length; i++) {
|
| - PipelineCommand pc = pipelineCommands[i];
|
| -
|
| - arguments = pc.extractArguments(globalArguments, artifact.filename);
|
| - artifact = pc.compilerConfiguration.computeCompilationArtifact(
|
| - buildDir, tempDir, commandBuilder, arguments, environmentOverrides);
|
| -
|
| - allCommands.addAll(artifact.commands);
|
| - }
|
| -
|
| - return new CommandArtifact(
|
| - allCommands, artifact.filename, artifact.mimeType);
|
| - }
|
| -
|
| - List<String> computeCompilerArguments(vmOptions, sharedOptions, args) {
|
| - // The result will be passed as an input to [extractArguments]
|
| - // (i.e. the arguments to the [PipelineCommand]).
|
| - return new List<String>.from(sharedOptions)..addAll(args);
|
| - }
|
| -
|
| - List<String> computeRuntimeArguments(
|
| - RuntimeConfiguration runtimeConfiguration,
|
| - String buildDir,
|
| - TestInformation info,
|
| - List<String> vmOptions,
|
| - List<String> sharedOptions,
|
| - List<String> originalArguments,
|
| - CommandArtifact artifact) {
|
| - return <String>[artifact.filename];
|
| - }
|
| -
|
| - static ComposedCompilerConfiguration createDartKPConfiguration(
|
| - {bool isHostChecked, String arch, bool useBlobs, bool isAndroid,
|
| - String kernel_transformers, bool useSdk}) {
|
| - var nested = [];
|
| -
|
| - // Compile with dartk.
|
| - nested.add(new PipelineCommand.runWithGlobalArguments(
|
| - new DartKCompilerConfiguration(isHostChecked: isHostChecked,
|
| - useSdk: useSdk)));
|
| -
|
| - // Run zero or more transformations.
|
| - addKernelTransformations(nested, kernel_transformers);
|
| -
|
| - // Run the normal precompiler.
|
| - nested.add(new PipelineCommand.runWithPreviousKernelOutput(
|
| - new PrecompilerCompilerConfiguration(
|
| - arch: arch, useBlobs: useBlobs, isAndroid: isAndroid)));
|
| -
|
| - return new ComposedCompilerConfiguration(nested);
|
| - }
|
| -
|
| - static ComposedCompilerConfiguration createDartKConfiguration(
|
| - {bool isHostChecked, bool useSdk, String kernel_transformers}) {
|
| - var nested = [];
|
| -
|
| - // Compile with dartk.
|
| - nested.add(new PipelineCommand.runWithGlobalArguments(
|
| - new DartKCompilerConfiguration(isHostChecked: isHostChecked,
|
| - useSdk: useSdk)));
|
| -
|
| - // Run zero or more transformations.
|
| - addKernelTransformations(nested, kernel_transformers);
|
| -
|
| - return new ComposedCompilerConfiguration(nested);
|
| - }
|
| -
|
| - static void addKernelTransformations(List<PipelineCommand> nested,
|
| - String kernel_transformers) {
|
| - if (kernel_transformers != null && kernel_transformers.length > 0) {
|
| - List<String> names = kernel_transformers.split(',');
|
| - for (var name in names) {
|
| - var transformation = new KernelTransformation(name);
|
| - nested.add(nested.isEmpty
|
| - ? new PipelineCommand.runWithDartOrKernelFile(transformation)
|
| - : new PipelineCommand.runWithPreviousKernelOutput(transformation));
|
| - }
|
| - }
|
| - }
|
| -}
|
| -
|
| -class KernelTransformation extends CompilerConfiguration {
|
| - final String transformation;
|
| -
|
| - KernelTransformation(this.transformation) : super._subclass();
|
| -
|
| - CommandArtifact computeCompilationArtifact(
|
| - String buildDir,
|
| - String tempDir,
|
| - CommandBuilder commandBuilder,
|
| - List arguments,
|
| - Map<String, String> environmentOverrides) {
|
| - assert(arguments.length == 1);
|
| - assert(arguments.last.contains('/'));
|
| - assert(arguments.last.endsWith('.dill'));
|
| -
|
| - // The --kernel-transformers=a,b can be specified as
|
| - // a = <name>
|
| - // a = <name>:<path-to-transformer-executable>
|
| - int colonIndex = transformation.indexOf(':');
|
| - String transformationName = transformation;
|
| - String executable;
|
| - if (colonIndex > 0) {
|
| - executable = transformation.substring(colonIndex + 1);
|
| - transformationName = transformation.substring(0, colonIndex);
|
| - }
|
| -
|
| - // The transformed output will be always written to a new file in the
|
| - // test-specific temporary directory.
|
| - var inputFile = arguments.last;
|
| - var baseInputFilename = inputFile.substring(
|
| - inputFile.lastIndexOf('/') + 1, inputFile.length - '.dill'.length);
|
| - var outputFile = '$tempDir/$baseInputFilename.$transformationName.dill';
|
| -
|
| - // Use the user-supplied transformer or fall back to `transformer.dart`.
|
| - List<String> transformerArguments;
|
| - bool useBatchMode = false;
|
| - if (executable == null) {
|
| - executable = 'third_party/pkg/kernel/bin/transform.dart';
|
| - transformerArguments =
|
| - ['-f', 'bin', '-t', transformation, '-o', outputFile, inputFile];
|
| - useBatchMode = true;
|
| - } else {
|
| - transformerArguments = [inputFile, outputFile];
|
| - }
|
| -
|
| - var command = commandBuilder.getKernelTransformationCommand(
|
| - transformationName, executable, transformerArguments, outputFile,
|
| - environmentOverrides, useBatchMode);
|
| -
|
| - return new CommandArtifact(
|
| - <Command>[ command ], outputFile, 'application/dart');
|
| - }
|
| -}
|
| -
|
| /// Common configuration for dart2js-based tools, such as, dart2js
|
| class Dart2xCompilerConfiguration extends CompilerConfiguration {
|
| final String moniker;
|
|
|