Add DartSdk.languageVersion

Bug: https://github.com/dart-lang/build/issues/2763#issuecomment-666707445
Change-Id: I8232bd395abc9efea0e5c27716450d6a5442b3bb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/156489
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
Konstantin Shcheglov
2020-08-04 21:01:09 +00:00
committed by commit-bot@chromium.org
parent a99edb8ac5
commit ebd5b622ba
19 changed files with 212 additions and 54 deletions
@@ -470,13 +470,14 @@ class Driver implements ServerStarter {
MulticastInstrumentationService(allInstrumentationServices);
instrumentationService.logVersion(
results[TRAIN_USING] != null
? 'training-0'
: _readUuid(instrumentationService),
analysisServerOptions.clientId,
analysisServerOptions.clientVersion,
PROTOCOL_VERSION,
defaultSdk.sdkVersion);
results[TRAIN_USING] != null
? 'training-0'
: _readUuid(instrumentationService),
analysisServerOptions.clientId,
analysisServerOptions.clientVersion,
PROTOCOL_VERSION,
defaultSdk.languageVersion.toString(),
);
AnalysisEngine.instance.instrumentationService = instrumentationService;
int diagnosticServerPort;
@@ -1591,7 +1591,7 @@ abstract class ContextManagerTest with ResourceProviderMixin {
resourceProvider.newFolder(projPath);
// Create an SDK in the mock file system.
MockSdk(resourceProvider: resourceProvider);
var sdkManager = DartSdkManager(convertPath('/sdk'));
var sdkManager = DartSdkManager(convertPath(sdkRoot));
manager = ContextManagerImpl(
resourceProvider,
sdkManager,
@@ -29,6 +29,8 @@ class AnalysisDomainGetErrorsTest
Directory(path.join(sdkPath, 'lib', 'async')).createSync(recursive: true);
Directory(path.join(sdkPath, 'lib', 'fake')).createSync(recursive: true);
File(path.join(sdkPath, 'version')).writeAsStringSync('2.10.0');
File(path.join(sdkPath, 'lib', 'core', 'core.dart')).writeAsStringSync(r'''
library dart.core;
import 'dart:async';
@@ -22,6 +22,7 @@ import 'package:analyzer/src/summary2/link.dart';
import 'package:analyzer/src/summary2/linked_element_factory.dart';
import 'package:analyzer/src/summary2/reference.dart';
import 'package:meta/meta.dart';
import 'package:pub_semver/pub_semver.dart';
import 'package:yaml/yaml.dart';
/// Build summary for SDK at the given [sdkPath].
@@ -44,7 +45,11 @@ Uint8List buildSdkSummary({
var file = resourceProvider.getFile(embedderYamlPath);
var content = file.readAsStringSync();
var map = loadYaml(content) as YamlMap;
var embedderSdk = EmbedderSdk(resourceProvider, {file.parent: map});
var embedderSdk = EmbedderSdk(
resourceProvider,
{file.parent: map},
languageVersion: sdk.languageVersion,
);
for (var library in embedderSdk.sdkLibraries) {
var uriStr = library.shortName;
if (sdk.libraryMap.getLibrary(uriStr) == null) {
@@ -60,6 +65,7 @@ Uint8List buildSdkSummary({
return _Builder(
sdk.context,
sdk.allowedExperimentsJson,
sdk.languageVersion,
librarySources,
).build();
}
@@ -73,11 +79,13 @@ class _Builder {
final List<LinkInputLibrary> inputLibraries = [];
AllowedExperiments allowedExperiments;
Version languageVersion;
final PackageBundleAssembler bundleAssembler = PackageBundleAssembler();
_Builder(
this.context,
this.allowedExperimentsJson,
this.languageVersion,
this.librarySources,
) {
allowedExperiments = _parseAllowedExperiments(allowedExperimentsJson);
@@ -100,6 +108,10 @@ class _Builder {
bundle2: linkResult.bundle,
sdk: PackageBundleSdkBuilder(
allowedExperimentsJson: allowedExperimentsJson,
languageVersion: LinkedLanguageVersionBuilder(
major: languageVersion.major,
minor: languageVersion.minor,
),
),
).toBuffer();
+4 -1
View File
@@ -18,6 +18,7 @@ import 'package:analyzer/src/generated/sdk_io.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/source_io.dart' show FileBasedSource;
import 'package:analyzer/src/summary/idl.dart' show PackageBundle;
import 'package:pub_semver/src/version.dart';
import 'package:yaml/yaml.dart';
export 'package:analyzer/src/context/builder.dart' show EmbedderYamlLocator;
@@ -38,12 +39,14 @@ class EmbedderSdk extends AbstractDartSdk {
embedderYamls?.forEach(_processEmbedderYaml);
}
// TODO(danrubel) Determine SDK version
@override
String get allowedExperimentsJson {
return null;
}
@override
Version get languageVersion => throw UnimplementedError();
@override
String get sdkVersion => '0';
+20 -11
View File
@@ -225,6 +225,20 @@ class ContextBuilder {
resourceProvider: resourceProvider);
}
DartSdk folderSdk;
{
String sdkPath = sdkManager.defaultSdkDirectory;
SdkDescription description = SdkDescription(sdkPath);
folderSdk = sdkManager.getSdk(description, () {
var sdk = FolderBasedDartSdk(
resourceProvider,
resourceProvider.getFolder(sdkPath),
);
sdk.analysisOptions = analysisOptions;
return sdk;
});
}
if (workspace != null) {
var partialSourceFactory = workspace.createSourceFactory(null, null);
var embedderYamlSource = partialSourceFactory.forUri(
@@ -237,22 +251,17 @@ class ContextBuilder {
EmbedderYamlLocator.forLibFolder(libFolder);
Map<Folder, YamlMap> embedderMap = locator.embedderYamls;
if (embedderMap.isNotEmpty) {
EmbedderSdk embedderSdk = EmbedderSdk(resourceProvider, embedderMap);
EmbedderSdk embedderSdk = EmbedderSdk(
resourceProvider,
embedderMap,
languageVersion: folderSdk.languageVersion,
);
return embedderSdk;
}
}
}
String sdkPath = sdkManager.defaultSdkDirectory;
SdkDescription description = SdkDescription(sdkPath);
return sdkManager.getSdk(description, () {
var sdk = FolderBasedDartSdk(
resourceProvider,
resourceProvider.getFolder(sdkPath),
);
sdk.analysisOptions = analysisOptions;
return sdk;
});
return folderSdk;
}
/// Return the analysis options that should be used to analyze code in the
+38 -1
View File
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
import 'dart:collection';
import 'dart:io' as io;
import 'package:analyzer/dart/analysis/features.dart';
import 'package:analyzer/dart/analysis/utilities.dart';
@@ -14,8 +15,16 @@ import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/java_engine_io.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source_io.dart';
import 'package:pub_semver/pub_semver.dart';
import 'package:yaml/yaml.dart';
Version languageVersionFromSdkVersion(String sdkVersionStr) {
var sdkVersionParts = sdkVersionStr.split('.');
var sdkVersionMajor = int.parse(sdkVersionParts[0]);
var sdkVersionMinor = int.parse(sdkVersionParts[1]);
return Version(sdkVersionMajor, sdkVersionMinor, 0);
}
/// An abstract implementation of a Dart SDK in which the available libraries
/// are stored in a library map. Subclasses are responsible for populating the
/// library map.
@@ -197,11 +206,21 @@ class EmbedderSdk extends AbstractDartSdk {
static const String _DART_COLON_PREFIX = 'dart:';
static const String _EMBEDDED_LIB_MAP_KEY = 'embedded_libs';
Version _languageVersion;
final Map<String, String> _urlMappings = HashMap<String, String>();
/// TODO(scheglov) Make [languageVersion] required.
/// https://github.com/dart-lang/sdk/issues/42890
EmbedderSdk(
ResourceProvider resourceProvider, Map<Folder, YamlMap> embedderYamls) {
ResourceProvider resourceProvider,
Map<Folder, YamlMap> embedderYamls, {
Version languageVersion,
}) {
this.resourceProvider = resourceProvider;
this._languageVersion =
languageVersion ?? languageVersionFromSdkVersion(io.Platform.version);
embedderYamls?.forEach(_processEmbedderYaml);
}
@@ -221,6 +240,9 @@ class EmbedderSdk extends AbstractDartSdk {
return null;
}
@override
Version get languageVersion => _languageVersion;
@override
// TODO(danrubel) Determine SDK version
String get sdkVersion => '0';
@@ -364,6 +386,9 @@ class FolderBasedDartSdk extends AbstractDartSdk {
/// discovered.
String _sdkVersion;
/// The cached language version of this SDK.
Version _languageVersion;
/// The file containing the pub executable.
File _pubExecutable;
@@ -395,6 +420,18 @@ class FolderBasedDartSdk extends AbstractDartSdk {
Folder get docDirectory =>
_sdkDirectory.getChildAssumingFolder(_DOCS_DIRECTORY_NAME);
@override
Version get languageVersion {
if (_languageVersion == null) {
var sdkVersionStr = _sdkDirectory
.getChildAssumingFile(_VERSION_FILE_NAME)
.readAsStringSync();
_languageVersion = languageVersionFromSdkVersion(sdkVersionStr);
}
return _languageVersion;
}
/// Return the directory within the SDK directory that contains the libraries.
Folder get libraryDirectory {
return _libraryDirectory ??=
+7
View File
@@ -8,6 +8,7 @@ import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
import 'package:analyzer/src/generated/source.dart' show Source;
import 'package:pub_semver/pub_semver.dart';
/// A Dart SDK installed in a specified location.
abstract class DartSdk {
@@ -34,6 +35,12 @@ abstract class DartSdk {
/// Return the analysis context used for all of the sources in this [DartSdk].
AnalysisContext get context;
/// Return the language version of this SDK, or throws an exception.
///
/// The language version has only major/minor components, the patch number
/// is always zero, because the patch number does not change the language.
Version get languageVersion;
/// Return a list containing all of the libraries defined in this SDK.
List<SdkLibrary> get sdkLibraries;
+38 -3
View File
@@ -17792,6 +17792,7 @@ class PackageBundleSdkBuilder extends Object
with _PackageBundleSdkMixin
implements idl.PackageBundleSdk {
String _allowedExperimentsJson;
LinkedLanguageVersionBuilder _languageVersion;
@override
String get allowedExperimentsJson => _allowedExperimentsJson ??= '';
@@ -17801,27 +17802,49 @@ class PackageBundleSdkBuilder extends Object
this._allowedExperimentsJson = value;
}
PackageBundleSdkBuilder({String allowedExperimentsJson})
: _allowedExperimentsJson = allowedExperimentsJson;
@override
LinkedLanguageVersionBuilder get languageVersion => _languageVersion;
/// The language version of the SDK.
set languageVersion(LinkedLanguageVersionBuilder value) {
this._languageVersion = value;
}
PackageBundleSdkBuilder(
{String allowedExperimentsJson,
LinkedLanguageVersionBuilder languageVersion})
: _allowedExperimentsJson = allowedExperimentsJson,
_languageVersion = languageVersion;
/// Flush [informative] data recursively.
void flushInformative() {}
void flushInformative() {
_languageVersion?.flushInformative();
}
/// Accumulate non-[informative] data into [signature].
void collectApiSignature(api_sig.ApiSignature signature) {
signature.addString(this._allowedExperimentsJson ?? '');
signature.addBool(this._languageVersion != null);
this._languageVersion?.collectApiSignature(signature);
}
fb.Offset finish(fb.Builder fbBuilder) {
fb.Offset offset_allowedExperimentsJson;
fb.Offset offset_languageVersion;
if (_allowedExperimentsJson != null) {
offset_allowedExperimentsJson =
fbBuilder.writeString(_allowedExperimentsJson);
}
if (_languageVersion != null) {
offset_languageVersion = _languageVersion.finish(fbBuilder);
}
fbBuilder.startTable();
if (offset_allowedExperimentsJson != null) {
fbBuilder.addOffset(0, offset_allowedExperimentsJson);
}
if (offset_languageVersion != null) {
fbBuilder.addOffset(1, offset_languageVersion);
}
return fbBuilder.endTable();
}
}
@@ -17843,6 +17866,7 @@ class _PackageBundleSdkImpl extends Object
_PackageBundleSdkImpl(this._bc, this._bcOffset);
String _allowedExperimentsJson;
idl.LinkedLanguageVersion _languageVersion;
@override
String get allowedExperimentsJson {
@@ -17850,6 +17874,13 @@ class _PackageBundleSdkImpl extends Object
const fb.StringReader().vTableGet(_bc, _bcOffset, 0, '');
return _allowedExperimentsJson;
}
@override
idl.LinkedLanguageVersion get languageVersion {
_languageVersion ??=
const _LinkedLanguageVersionReader().vTableGet(_bc, _bcOffset, 1, null);
return _languageVersion;
}
}
abstract class _PackageBundleSdkMixin implements idl.PackageBundleSdk {
@@ -17859,12 +17890,16 @@ abstract class _PackageBundleSdkMixin implements idl.PackageBundleSdk {
if (allowedExperimentsJson != '') {
_result["allowedExperimentsJson"] = allowedExperimentsJson;
}
if (languageVersion != null) {
_result["languageVersion"] = languageVersion.toJson();
}
return _result;
}
@override
Map<String, Object> toMap() => {
"allowedExperimentsJson": allowedExperimentsJson,
"languageVersion": languageVersion,
};
@override
+3
View File
@@ -1274,6 +1274,9 @@ table PackageBundle {
table PackageBundleSdk {
/// The content of the `allowed_experiments.json` from SDK.
allowedExperimentsJson:string (id: 0);
/// The language version of the SDK.
languageVersion:LinkedLanguageVersion (id: 1);
}
/// Summary information about a top-level type inference error.
+4
View File
@@ -1912,6 +1912,10 @@ abstract class PackageBundleSdk extends base.SummaryClass {
/// The content of the `allowed_experiments.json` from SDK.
@Id(0)
String get allowedExperimentsJson;
/// The language version of the SDK.
@Id(1)
LinkedLanguageVersion get languageVersion;
}
/// Summary information about a top-level type inference error.
@@ -10,11 +10,12 @@ import 'package:analyzer/src/generated/source.dart'
show DartUriResolver, Source, SourceFactory;
import 'package:analyzer/src/summary/idl.dart';
import 'package:analyzer/src/summary/package_bundle_reader.dart';
import 'package:pub_semver/pub_semver.dart';
/// An implementation of [DartSdk] which provides analysis results for `dart:`
/// libraries from the given summary file. This implementation is limited and
/// suitable only for command-line tools, but not for IDEs - it does not
/// implement [sdkLibraries], [sdkVersion], [uris] and [fromFileUri].
/// implement [sdkLibraries], [uris] and [fromFileUri].
class SummaryBasedDartSdk implements DartSdk {
SummaryDataStore _dataStore;
InSummaryUriResolver _uriResolver;
@@ -41,7 +42,7 @@ class SummaryBasedDartSdk implements DartSdk {
@override
String get allowedExperimentsJson {
return _bundle.sdk?.allowedExperimentsJson;
return _bundle.sdk.allowedExperimentsJson;
}
/// Return the [PackageBundle] for this SDK, not `null`.
@@ -57,6 +58,12 @@ class SummaryBasedDartSdk implements DartSdk {
return _analysisContext;
}
@override
Version get languageVersion {
var version = _bundle.sdk.languageVersion;
return Version(version.major, version.minor, 0);
}
@override
List<SdkLibrary> get sdkLibraries {
throw UnimplementedError();
@@ -5,10 +5,12 @@
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/src/context/context.dart';
import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:meta/meta.dart';
import 'package:pub_semver/src/version.dart';
const String sdkRoot = '/sdk';
@@ -1084,6 +1086,8 @@ class MockSdk implements DartSdk {
@override
final List<SdkLibrary> sdkLibraries = [];
File _versionFile;
/// Optional [additionalLibraries] should have unique URIs, and paths in
/// their units are relative (will be put into `sdkRoot/lib`).
MockSdk({
@@ -1091,6 +1095,11 @@ class MockSdk implements DartSdk {
AnalysisOptionsImpl analysisOptions,
List<MockSdkLibrary> additionalLibraries = const [],
}) : _analysisOptions = analysisOptions ?? AnalysisOptionsImpl() {
_versionFile = resourceProvider
.getFolder(resourceProvider.convertPath(sdkRoot))
.getChildAssumingFile('version');
_versionFile.writeAsStringSync('2.10.0');
for (MockSdkLibrary library in _LIBRARIES) {
var convertedLibrary = library._toProvider(resourceProvider);
sdkLibraries.add(convertedLibrary);
@@ -1179,6 +1188,12 @@ class MockSdk implements DartSdk {
return _analysisContext;
}
@override
Version get languageVersion {
var sdkVersionStr = _versionFile.readAsStringSync();
return languageVersionFromSdkVersion(sdkVersionStr);
}
@override
String get sdkVersion => throw UnimplementedError();
@@ -67,19 +67,9 @@ class ContextBuilderTest with ResourceProviderMixin {
windows: resourceProvider.pathContext.style == path.windows.style);
}
void createDefaultSdk(Folder sdkDir) {
defaultSdkPath = join(sdkDir.path, 'default', 'sdk');
String librariesFilePath = join(defaultSdkPath, 'lib', '_internal',
'sdk_library_metadata', 'lib', 'libraries.dart');
newFile(librariesFilePath, content: r'''
const Map<String, LibraryInfo> libraries = const {
"async": const LibraryInfo("async/async.dart"),
"core": const LibraryInfo("core/core.dart"),
};
''');
sdkManager = DartSdkManager(defaultSdkPath);
builder = ContextBuilder(resourceProvider, sdkManager, contentCache,
options: builderOptions);
void createDefaultSdk() {
defaultSdkPath = convertPath(sdkRoot);
MockSdk(resourceProvider: resourceProvider);
}
void setUp() {
@@ -347,8 +337,7 @@ bar:${toUriStr('/pkg/bar')}
void test_createSourceFactory_noProvider_packages_embedder_noExtensions() {
String rootPath = convertPath('/root');
Folder rootFolder = getFolder(rootPath);
createDefaultSdk(rootFolder);
createDefaultSdk();
String projectPath = join(rootPath, 'project');
String packageFilePath = join(projectPath, '.packages');
@@ -387,8 +376,7 @@ b:${resourceProvider.pathContext.toUri(packageB)}
void test_createSourceFactory_noProvider_packages_noEmbedder_noExtensions() {
String rootPath = convertPath('/root');
Folder rootFolder = getFolder(rootPath);
createDefaultSdk(rootFolder);
createDefaultSdk();
String projectPath = join(rootPath, 'project');
String packageFilePath = join(projectPath, '.packages');
String packageA = join(rootPath, 'pkgs', 'a');
+26 -5
View File
@@ -10,6 +10,7 @@ import 'package:analyzer/src/generated/java_engine_io.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
import 'package:pub_semver/pub_semver.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -30,7 +31,11 @@ class EmbedderSdkTest extends EmbedderRelatedTest {
EmbedderYamlLocator locator = EmbedderYamlLocator({
'fox': <Folder>[pathTranslator.getResource(foxLib)]
});
EmbedderSdk sdk = EmbedderSdk(resourceProvider, locator.embedderYamls);
EmbedderSdk sdk = EmbedderSdk(
resourceProvider,
locator.embedderYamls,
languageVersion: Version.parse('2.10.0'),
);
expect(sdk.allowedExperimentsJson, isNull);
@@ -45,7 +50,11 @@ class EmbedderSdkTest extends EmbedderRelatedTest {
EmbedderYamlLocator locator = EmbedderYamlLocator({
'fox': <Folder>[pathTranslator.getResource(foxLib)]
});
EmbedderSdk sdk = EmbedderSdk(resourceProvider, locator.embedderYamls);
EmbedderSdk sdk = EmbedderSdk(
resourceProvider,
locator.embedderYamls,
languageVersion: Version.parse('2.10.0'),
);
expect(sdk.urlMappings, hasLength(5));
}
@@ -54,7 +63,11 @@ class EmbedderSdkTest extends EmbedderRelatedTest {
EmbedderYamlLocator locator = EmbedderYamlLocator({
'fox': <Folder>[pathTranslator.getResource(foxLib)]
});
EmbedderSdk sdk = EmbedderSdk(resourceProvider, locator.embedderYamls);
EmbedderSdk sdk = EmbedderSdk(
resourceProvider,
locator.embedderYamls,
languageVersion: Version.parse('2.10.0'),
);
expectSource(String posixPath, String dartUri) {
Uri uri = Uri.parse(posixToOSFileUri(posixPath));
@@ -73,7 +86,11 @@ class EmbedderSdkTest extends EmbedderRelatedTest {
EmbedderYamlLocator locator = EmbedderYamlLocator({
'fox': <Folder>[pathTranslator.getResource(foxLib)]
});
EmbedderSdk sdk = EmbedderSdk(resourceProvider, locator.embedderYamls);
EmbedderSdk sdk = EmbedderSdk(
resourceProvider,
locator.embedderYamls,
languageVersion: Version.parse('2.10.0'),
);
SdkLibrary lib = sdk.getSdkLibrary('dart:fox');
expect(lib, isNotNull);
@@ -85,7 +102,11 @@ class EmbedderSdkTest extends EmbedderRelatedTest {
EmbedderYamlLocator locator = EmbedderYamlLocator({
'fox': <Folder>[pathTranslator.getResource(foxLib)]
});
EmbedderSdk sdk = EmbedderSdk(resourceProvider, locator.embedderYamls);
EmbedderSdk sdk = EmbedderSdk(
resourceProvider,
locator.embedderYamls,
languageVersion: Version.parse('2.10.0'),
);
void expectSource(String dartUri, String posixPath) {
Source source = sdk.mapDartUri(dartUri);
+5 -1
View File
@@ -441,7 +441,11 @@ class Driver with HasContextMixin implements CommandLineStarter {
// Setup embedding.
if (includeSdkResolver) {
var embedderSdk = EmbedderSdk(resourceProvider, embedderMap);
var embedderSdk = EmbedderSdk(
resourceProvider,
embedderMap,
languageVersion: sdk.languageVersion,
);
if (embedderSdk.libraryMap.size() == 0) {
// The embedder uri resolver has no mappings. Use the default Dart SDK
// uri resolver.
+1 -1
View File
@@ -40,7 +40,7 @@ void main(List<String> argv) {
var outDir = resolveInputUri(outPath.endsWith('/') ? outPath : '$outPath/');
var outLibRoot = outDir.resolve('lib/');
var inputVersion = Platform.script.resolve('../../../tools/VERSION');
var inputVersion = Uri.file(Platform.executable).resolve('../version');
var outVersion = outDir.resolve('version');
var specification = LibrariesSpecification.parse(
+13 -1
View File
@@ -218,7 +218,7 @@ Future<Null> analyzeUris(
List<String> arguments = <String>[
"--packages=${toFilePath(packages)}",
"--format=machine",
"--dart-sdk=${Uri.base.resolve('sdk/').toFilePath()}",
"--dart-sdk=${_findSdkPath()}",
];
if (analysisOptions != null) {
arguments.add("--options=${toFilePath(analysisOptions)}");
@@ -274,6 +274,18 @@ Future<Null> analyzeUris(
}
}
String _findSdkPath() {
var executableUri = Uri.file(Platform.executable);
if (File.fromUri(executableUri.resolve('../version')).existsSync()) {
return executableUri.resolve('..').toFilePath();
} else if (File.fromUri(executableUri.resolve('dart-sdk/version'))
.existsSync()) {
return executableUri.resolve('dart-sdk').toFilePath();
} else {
throw StateError('Cannot find dart-sdk for $executableUri');
}
}
Future<String> git(String command, Iterable<String> arguments,
{String workingDirectory}) async {
ProcessResult result = await Process.run(
-2
View File
@@ -179,7 +179,6 @@ EOF
out/ReleaseIA32/dart pkg/front_end/tool/perf.dart scan hello.dart
out/ReleaseIA32/dart pkg/front_end/tool/fasta_perf.dart kernel_gen_e2e hello.dart
out/ReleaseIA32/dart pkg/front_end/tool/fasta_perf.dart scan hello.dart
out/ReleaseIA32/dart-sdk/bin/dart --print_metrics pkg/analyzer_cli/bin/analyzer.dart --dart-sdk=sdk hello.dart
out/ReleaseIA32/run_vm_tests --dfe=out/ReleaseIA32/kernel-service.dart.snapshot InitialRSS
out/ReleaseIA32/run_vm_tests --dfe=out/ReleaseIA32/kernel-service.dart.snapshot --sound-null-safety --enable-experiment=non-nullable InitialRSS
out/ReleaseIA32/run_vm_tests --dfe=out/ReleaseIA32/kernel-service.dart.snapshot GenKernelKernelLoadKernel
@@ -355,7 +354,6 @@ EOF
out/ReleaseX64/dart pkg/front_end/tool/fasta_perf.dart kernel_gen_e2e hello.dart
out/ReleaseX64/dart pkg/front_end/tool/fasta_perf.dart scan hello.dart
out/ReleaseX64/dart-sdk/bin/dart pkg/analysis_server/benchmark/benchmarks.dart run --quick --repeat 1 analysis-server-cold
out/ReleaseX64/dart-sdk/bin/dart --print_metrics pkg/analyzer_cli/bin/analyzer.dart --dart-sdk=sdk hello.dart
echo '[{"name":"foo","edits":[["pkg/compiler/lib/src/dart2js.dart","2016","2017"],["pkg/compiler/lib/src/options.dart","2016","2017"]]}]' > appjit_train_edits.json
out/ReleaseX64/dart --background-compilation=false --snapshot-kind=app-jit --snapshot=pkg/front_end/tool/incremental_perf.dart.appjit pkg/front_end/tool/incremental_perf.dart --target=vm --sdk-summary=out/ReleaseX64/vm_platform_strong.dill --sdk-library-specification=sdk/lib/libraries.json pkg/compiler/lib/src/dart2js.dart appjit_train_edits.json
out/ReleaseX64/dart --background-compilation=false pkg/front_end/tool/incremental_perf.dart.appjit --target=vm --sdk-summary=out/ReleaseX64/vm_platform_strong.dill --sdk-library-specification=sdk/lib/libraries.json pkg/front_end/benchmarks/ikg/hello.dart pkg/front_end/benchmarks/ikg/hello.edits.json