Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(945)

Unified Diff: utils/kernel-service/kernel-service.dart

Issue 2721543003: Remove dartk and DFE workers support from testing scripts and kernel-service. (Closed)
Patch Set: Remove preArguments Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/testing/dart/test_runner.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/kernel-service/kernel-service.dart
diff --git a/utils/kernel-service/kernel-service.dart b/utils/kernel-service/kernel-service.dart
index cef18297350402cc30c15ecae58686aeec80320c..d8fdbd0885645ceeb19bc034d176df59a41c4d9c 100644
--- a/utils/kernel-service/kernel-service.dart
+++ b/utils/kernel-service/kernel-service.dart
@@ -10,30 +10,13 @@
/// This is either invoked as the root script of the Kernel isolate when used
/// as a part of
///
-/// dart --dfe=utils/kernel-service/kernel-service.dart ...
+/// dart --dfe=utils/kernel-service/kernel-service.dart ...
///
-/// invocation or it is invoked as a standalone script to perform batch mode
-/// compilation requested via an HTTP interface
+/// invocation or it is invoked as a standalone script to perform training for
+/// the app-jit snapshot
///
-/// dart utils/kernel-service/kernel-service.dart --batch
+/// dart utils/kernel-service/kernel-service.dart --train <source-file>
///
-/// The port for the batch mode worker is controlled by DFE_WORKER_PORT
-/// environment declarations (set by -DDFE_WORKER_PORT=... command line flag).
-/// When not set (or set to 0) an ephemeral port returned by the OS is used
-/// instead.
-///
-/// When this script is used as a Kernel isolate root script and DFE_WORKER_PORT
-/// is set to non-zero value then Kernel isolate will forward all compilation
-/// requests it receives to the batch worker on the given port.
-///
-/// Set DFE_USE_FASTA environment declaration to true to use fasta front-end
-/// instead of dartk. Note: we expect patched_sdk folder to contain
-/// platform.dill file that contains patched SDK in the Kernel binary form.
-/// This file can be created using the following command line:
-///
-/// export DART_AOT_SDK=<path-to-patched_sdk>
-/// dart pkg/front_end/lib/src/fasta/bin/compile_platform.dart \
-/// ${DART_AOT_SDK}/platform.dill
///
library runtime.tools.kernel_service;
@@ -43,7 +26,6 @@ import 'dart:io';
import 'dart:isolate';
import 'dart:typed_data';
-import 'package:kernel/analyzer/loader.dart';
import 'package:kernel/binary/ast_to_binary.dart';
import 'package:kernel/kernel.dart';
import 'package:kernel/target/targets.dart';
@@ -57,8 +39,6 @@ import 'package:front_end/src/fasta/ast_kind.dart' show AstKind;
import 'package:front_end/src/fasta/errors.dart' show InputError;
const bool verbose = const bool.fromEnvironment('DFE_VERBOSE');
-const int workerPort = const int.fromEnvironment('DFE_WORKER_PORT') ?? 0;
-const bool useFasta = const bool.fromEnvironment('DFE_USE_FASTA');
class DataSink implements Sink<List<int>> {
final BytesBuilder builder = new BytesBuilder();
@@ -93,19 +73,6 @@ class CompilationOk extends CompilationResult {
abstract class CompilationFail extends CompilationResult {
String get errorString;
-
- Map<String, dynamic> toJson();
-
- static CompilationFail fromJson(Map m) {
- switch (m['status']) {
- case STATUS_ERROR:
- return new CompilationError(m['errors']);
- case STATUS_CRASH:
- return new CompilationCrash(m['exception'], m['stack']);
- default:
- throw "Can't deserialize CompilationFail from ${m}.";
- }
- }
}
class CompilationError extends CompilationFail {
@@ -115,11 +82,6 @@ class CompilationError extends CompilationFail {
List toResponse() => [STATUS_ERROR, errorString];
- Map<String, dynamic> toJson() => {
- "status": STATUS_ERROR,
- "errors": errors,
- };
-
String get errorString => errors.take(10).join('\n');
String toString() => "CompilationError(${errorString})";
@@ -133,18 +95,12 @@ class CompilationCrash extends CompilationFail {
List toResponse() => [STATUS_CRASH, errorString];
- Map<String, dynamic> toJson() => {
- "status": STATUS_CRASH,
- "exception": exception,
- "stack": stack,
- };
-
String get errorString => "${exception}\n${stack}";
String toString() => "CompilationCrash(${errorString})";
}
-Future<CompilationResult> parseScriptImpl(DartLoaderBatch batch_loader,
+Future<CompilationResult> parseScriptImpl(
Uri fileName, String packageConfig, String sdkPath) async {
if (!FileSystemEntity.isFileSync(fileName.path)) {
throw "Input file '${fileName.path}' does not exist.";
@@ -157,42 +113,24 @@ Future<CompilationResult> parseScriptImpl(DartLoaderBatch batch_loader,
Target target = getTarget("vm", new TargetFlags(strongMode: false));
Program program;
- if (useFasta) {
- final uriTranslator = await TranslateUri.parse(new Uri.file(packageConfig));
- final Ticker ticker = new Ticker(isVerbose: verbose);
- final DillTarget dillTarget = new DillTarget(ticker, uriTranslator);
- dillTarget.read(new Uri.directory(sdkPath).resolve('platform.dill'));
- final KernelTarget kernelTarget =
- new KernelTarget(dillTarget, uriTranslator);
- try {
- kernelTarget.read(fileName);
- await dillTarget.writeOutline(null);
- program = await kernelTarget.writeOutline(null);
- program = await kernelTarget.writeProgram(null, AstKind.Kernel);
- if (kernelTarget.errors.isNotEmpty) {
- return new CompilationError(kernelTarget.errors
- .map((err) => err.toString())
- .toList(growable: false));
- }
- } on InputError catch (e) {
- return new CompilationError(<String>[e.format()]);
- }
- } else {
- DartOptions dartOptions = new DartOptions(
- strongMode: false,
- strongModeSdk: false,
- sdk: sdkPath,
- packagePath: packageConfig,
- customUriMappings: const {},
- declaredVariables: const {});
- program = new Program();
- DartLoader loader =
- await batch_loader.getLoader(program, dartOptions);
- loader.loadProgram(fileName, target: target);
-
- if (loader.errors.isNotEmpty) {
- return new CompilationError(loader.errors.toList(growable: false));
+ final uriTranslator = await TranslateUri.parse(new Uri.file(packageConfig));
+ final Ticker ticker = new Ticker(isVerbose: verbose);
+ final DillTarget dillTarget = new DillTarget(ticker, uriTranslator);
+ dillTarget.read(new Uri.directory(sdkPath).resolve('platform.dill'));
+ final KernelTarget kernelTarget =
+ new KernelTarget(dillTarget, uriTranslator);
+ try {
+ kernelTarget.read(fileName);
+ await dillTarget.writeOutline(null);
+ program = await kernelTarget.writeOutline(null);
+ program = await kernelTarget.writeProgram(null, AstKind.Kernel);
+ if (kernelTarget.errors.isNotEmpty) {
+ return new CompilationError(kernelTarget.errors
+ .map((err) => err.toString())
+ .toList(growable: false));
}
+ } on InputError catch (e) {
+ return new CompilationError(<String>[e.format()]);
}
// Perform target-specific transformations.
@@ -205,10 +143,10 @@ Future<CompilationResult> parseScriptImpl(DartLoaderBatch batch_loader,
return new CompilationOk(sink.builder.takeBytes());
}
-Future<CompilationResult> parseScript(DartLoaderBatch loader, Uri fileName,
- String packageConfig, String sdkPath) async {
+Future<CompilationResult> parseScript(
+ Uri fileName, String packageConfig, String sdkPath) async {
try {
- return await parseScriptImpl(loader, fileName, packageConfig, sdkPath);
+ return await parseScriptImpl(fileName, packageConfig, sdkPath);
} catch (err, stack) {
return new CompilationCrash(err.toString(), stack.toString());
}
@@ -249,12 +187,7 @@ Future _processLoadRequestImpl(String inputFileUrl) async {
}""");
}
- if (workerPort != 0) {
- return await requestParse(scriptUri, packagesUri, patchedSdk);
- } else {
- return await parseScript(
- new DartLoaderBatch(), scriptUri, packagesUri.path, patchedSdk.path);
- }
+ return await parseScript(scriptUri, packagesUri.path, patchedSdk.path);
}
// Process a request from the runtime. See KernelIsolate::CompileToKernel in
@@ -296,66 +229,6 @@ Future _processLoadRequest(request) async {
}
}
-Future<CompilationResult> requestParse(
- Uri scriptUri, Uri packagesUri, Uri patchedSdk) async {
- if (verbose) {
- print(
- "DFE: forwarding request to worker at http://localhost:${workerPort}/");
- }
-
- HttpClient client = new HttpClient();
- final rq = await client
- .postUrl(new Uri(host: 'localhost', port: workerPort, scheme: 'http'));
- rq.headers.contentType = ContentType.JSON;
- rq.write(JSON.encode({
- "inputFileUrl": scriptUri.toString(),
- "packagesUri": packagesUri.toString(),
- "patchedSdk": patchedSdk.toString(),
- }));
- final rs = await rq.close();
- try {
- if (rs.statusCode == HttpStatus.OK) {
- final BytesBuilder bb = new BytesBuilder();
- await rs.forEach(bb.add);
- return new CompilationOk(bb.takeBytes());
- } else {
- return CompilationFail.fromJson(JSON.decode(await UTF8.decodeStream(rs)));
- }
- } finally {
- await client.close();
- }
-}
-
-void startBatchServer() {
- final loader = new DartLoaderBatch();
- HttpServer.bind('localhost', workerPort).then((server) {
- print('READY ${server.port}');
- server.listen((HttpRequest request) async {
- final rq = JSON.decode(await UTF8.decodeStream(request));
-
- final Uri scriptUri = Uri.parse(rq['inputFileUrl']);
- final Uri packagesUri = Uri.parse(rq['packagesUri']);
- final Uri patchedSdk = Uri.parse(rq['patchedSdk']);
-
- final CompilationResult result = await parseScript(
- loader, scriptUri, packagesUri.path, patchedSdk.path);
-
- if (result is CompilationOk) {
- request.response.statusCode = HttpStatus.OK;
- request.response.headers.contentType = ContentType.BINARY;
- request.response.add(result.binary);
- request.response.close();
- } else {
- request.response.statusCode = HttpStatus.INTERNAL_SERVER_ERROR;
- request.response.headers.contentType = ContentType.TEXT;
- request.response.write(JSON.encode(result));
- request.response.close();
- }
- });
- ProcessSignal.SIGTERM.watch().first.then((_) => server.close());
- });
-}
-
train(String scriptUri) {
// TODO(28532): Enable on Windows.
if (Platform.isWindows) return;
@@ -378,9 +251,7 @@ train(String scriptUri) {
}
main([args]) {
- if (args?.length == 1 && args[0] == '--batch') {
- startBatchServer();
- } else if (args?.length == 2 && args[0] == '--train') {
+ if (args?.length == 2 && args[0] == '--train') {
// This entry point is used when creating an app snapshot. The argument
// provides a script to compile to warm-up generated code.
train(args[1]);
« no previous file with comments | « tools/testing/dart/test_runner.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698