[vm] Rename --null-safety option to --sound-null-safety

Deprecated option --null-safety still remains in order to allow
graceful migration.

Fixes https://github.com/dart-lang/sdk/issues/41853

Change-Id: Ie47b1bebc9dd6532658a60743ecb85dc7fdc108c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153660
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
Alexander Markov 2020-07-09 01:37:23 +00:00 committed by commit-bot@chromium.org
parent 7a87766f23
commit 6f6b1f8818
24 changed files with 97 additions and 83 deletions

View file

@ -574,7 +574,7 @@ class Run extends Step<ComponentResult, int, FastaContext> {
if (experimentalFlags[ExperimentalFlag.nonNullable]) {
args.add("--enable-experiment=non-nullable");
if (!context.weak) {
args.add("--null-safety");
args.add("--sound-null-safety");
}
}
args.add(generated.path);

View file

@ -154,9 +154,12 @@ ArgParser argParser = ArgParser(allowTrailingOptions: true)
help: 'Include only bytecode into the output file', defaultsTo: true)
..addFlag('enable-asserts',
help: 'Whether asserts will be enabled.', defaultsTo: false)
..addFlag('sound-null-safety',
help: 'Respect the nullability of types at runtime.', defaultsTo: null)
// TODO(alexmarkov) Remove obsolete --null-safety option.
..addFlag('null-safety',
help:
'Respect the nullability of types at runtime in casts and instance checks.',
help: 'Deprecated. Please use --sound-null-safety instead.',
hide: true,
defaultsTo: null)
..addMultiOption('enable-experiment',
help: 'Comma separated list of experimental features, eg set-literals.',
@ -407,6 +410,8 @@ class FrontendCompiler implements CompilerInterface {
final String platformKernelDill =
options['platform'] ?? 'platform_strong.dill';
final String packagesOption = _options['packages'];
final bool nullSafety =
_options['sound-null-safety'] ?? _options['null-safety'];
final CompilerOptions compilerOptions = CompilerOptions()
..sdkRoot = sdkRoot
..fileSystem = _fileSystem
@ -418,8 +423,7 @@ class FrontendCompiler implements CompilerInterface {
..experimentalFlags = parseExperimentalFlags(
parseExperimentalArguments(options['enable-experiment']),
onError: (msg) => errors.add(msg))
..nnbdMode =
(options['null-safety'] == true) ? NnbdMode.Strong : NnbdMode.Weak
..nnbdMode = (nullSafety == true) ? NnbdMode.Strong : NnbdMode.Weak
..onDiagnostic = _onDiagnostic;
if (options.wasParsed('libraries-spec')) {
@ -469,7 +473,7 @@ class FrontendCompiler implements CompilerInterface {
}
}
if (options['null-safety'] == null &&
if (nullSafety == null &&
compilerOptions.experimentalFlags[ExperimentalFlag.nonNullable]) {
await autoDetectNullSafetyMode(_mainSource, compilerOptions);
}

View file

@ -84,10 +84,10 @@ bool allowDartInternalImport = false;
// Null Safety command line options
//
// Note: The values of these constants must match the
// values of flag null_safety in ../../../../runtime/vm/flag_list.h.
// 0 - No null_safety option specified on the command line.
// 1 - '--no-null-safety' specified on the command line.
// 2 - '--null-safety' option specified on the command line.
// values of flag sound_null_safety in ../../../../runtime/vm/flag_list.h.
// 0 - No --[no-]sound-null-safety option specified on the command line.
// 1 - '--no-sound-null-safety' specified on the command line.
// 2 - '--sound-null-safety' option specified on the command line.
const int kNullSafetyOptionUnspecified = 0;
const int kNullSafetyOptionWeak = 1;
const int kNullSafetyOptionStrong = 2;

View file

@ -118,9 +118,12 @@ void declareCompilerOptions(ArgParser args) {
help: 'The values for the environment constants (e.g. -Dkey=value).');
args.addFlag('enable-asserts',
help: 'Whether asserts will be enabled.', defaultsTo: false);
args.addFlag('sound-null-safety',
help: 'Respect the nullability of types at runtime.', defaultsTo: null);
// TODO(alexmarkov) Remove obsolete --null-safety option.
args.addFlag('null-safety',
help:
'Respect the nullability of types at runtime in casts and instance checks.',
help: 'Deprecated. Please use --sound-null-safety instead.',
hide: true,
defaultsTo: null);
args.addFlag('split-output-by-packages',
help:
@ -189,7 +192,8 @@ Future<int> runCompiler(ArgResults options, String usage) async {
final bool genBytecode = options['gen-bytecode'];
final bool dropAST = options['drop-ast'];
final bool enableAsserts = options['enable-asserts'];
final bool nullSafety = options['null-safety'];
final bool nullSafety =
options['sound-null-safety'] ?? options['null-safety'];
final bool useProtobufTreeShaker = options['protobuf-tree-shaker'];
final bool useProtobufTreeShakerV2 = options['protobuf-tree-shaker-v2'];
final bool splitOutputByPackages = options['split-output-by-packages'];

View file

@ -26,8 +26,8 @@ for arg in "$@"; do
PACKAGES="$arg"
;;
--enable-asserts | \
--null-safety | \
--no-null-safety | \
--sound-null-safety | \
--no-sound-null-safety | \
--enable-experiment=*)
GEN_KERNEL_OPTIONS+=("$arg")
OPTIONS+=("$arg")

View file

@ -551,7 +551,7 @@ gen_snapshot_action("generate_snapshot_bin") {
]
args = [
"--enable-experiment=non-nullable",
"--null-safety",
"--sound-null-safety",
"--deterministic",
"--snapshot_kind=" + dart_core_snapshot_kind,
"--vm_snapshot_data=" + rebase_path(vm_snapshot_data, root_build_dir),

View file

@ -29,8 +29,8 @@ Future<void> main(List<String> args) async {
final extraGenKernelOptions = Platform.executableArguments
.where((arg) =>
arg.startsWith('--enable-experiment=') ||
arg == '--null-safety' ||
arg == '--no-null-safety')
arg == '--sound-null-safety' ||
arg == '--no-sound-null-safety')
.toList();
{

View file

@ -20,8 +20,8 @@ Future<void> runSplitAOTKernelGenerationTest(Uri testScriptUri) async {
final extraGenKernelOptions = Platform.executableArguments
.where((arg) =>
arg.startsWith('--enable-experiment=') ||
arg == '--null-safety' ||
arg == '--no-null-safety')
arg == '--sound-null-safety' ||
arg == '--no-sound-null-safety')
.toList();
await runGenKernel('BUILD INTERMEDIATE DILL FILE', [

View file

@ -20,7 +20,7 @@ runTest(String script, String output, String temp) async {
File.fromUri(Platform.script.resolve(script)).copySync(scriptInTemp);
// Do not add Platform.executableArguments into arguments to avoid passing
// --null-safety / --no-null-safety arguments.
// --sound-null-safety / --no-sound-null-safety arguments.
final result = await runBinary("RUN $script", Platform.executable, [
'--enable-experiment=non-nullable',
'--deterministic',

View file

@ -245,8 +245,8 @@ main() async {
platformDill,
...Platform.executableArguments.where((arg) =>
arg.startsWith('--enable-experiment=') ||
arg == '--null-safety' ||
arg == '--no-null-safety'),
arg == '--sound-null-safety' ||
arg == '--no-sound-null-safety'),
'-o',
dillPath,
_thisTestPath

View file

@ -20,8 +20,8 @@ Future<void> runSplitAOTKernelGenerationTest(Uri testScriptUri) async {
final extraGenKernelOptions = Platform.executableArguments
.where((arg) =>
arg.startsWith('--enable-experiment=') ||
arg == '--null-safety' ||
arg == '--no-null-safety')
arg == '--sound-null-safety' ||
arg == '--no-sound-null-safety')
.toList();
await runGenKernel('BUILD INTERMEDIATE DILL FILE', [

View file

@ -359,7 +359,7 @@ static Dart_NativeFunction NativeResolver(Dart_Handle name,
// Measure compile of all kernel Service(CFE) functions.
//
BENCHMARK(KernelServiceCompileAll) {
if (FLAG_null_safety == kNullSafetyOptionStrong) {
if (FLAG_sound_null_safety == kNullSafetyOptionStrong) {
// TODO(bkonyi): remove this check when we build the CFE in strong mode.
return;
}

View file

@ -6785,14 +6785,14 @@ char* SnapshotHeaderReader::InitializeGlobalVMFlagsFromSnapshot(
#undef SET_FLAG
#if defined(DART_PRECOMPILED_RUNTIME)
if (FLAG_null_safety == kNullSafetyOptionUnspecified) {
if (FLAG_sound_null_safety == kNullSafetyOptionUnspecified) {
if (strncmp(cursor, "null-safety", end - cursor) == 0) {
FLAG_null_safety = kNullSafetyOptionStrong;
FLAG_sound_null_safety = kNullSafetyOptionStrong;
cursor = end;
continue;
}
if (strncmp(cursor, "no-null-safety", end - cursor) == 0) {
FLAG_null_safety = kNullSafetyOptionWeak;
FLAG_sound_null_safety = kNullSafetyOptionWeak;
cursor = end;
continue;
}

View file

@ -763,7 +763,7 @@ bool Dart::DetectNullSafety(const char* script_uri,
// generating the kernel file
// - if loading from an appJIT, based on the mode used
// when generating the snapshot.
ASSERT(FLAG_null_safety == kNullSafetyOptionUnspecified);
ASSERT(FLAG_sound_null_safety == kNullSafetyOptionUnspecified);
// If snapshot is an appJIT/AOT snapshot we will figure out the mode by
// sniffing the feature string in the snapshot.
@ -1025,7 +1025,7 @@ const char* Dart::FeaturesString(Isolate* isolate,
buffer.AddString(" no-null-safety");
}
} else {
if (FLAG_null_safety == kNullSafetyOptionStrong) {
if (FLAG_sound_null_safety == kNullSafetyOptionStrong) {
buffer.AddString(" null-safety");
} else {
buffer.AddString(" no-null-safety");

View file

@ -3051,7 +3051,7 @@ DART_EXPORT Dart_Handle Dart_NewListOf(Dart_CoreType_Id element_type_id,
DARTSCOPE(Thread::Current());
if (T->isolate()->null_safety() && element_type_id != Dart_CoreType_Dynamic) {
return Api::NewError(
"Cannot use legacy types with --null-safety enabled. "
"Cannot use legacy types with --sound-null-safety enabled. "
"Use Dart_NewListOfType or Dart_NewListOfTypeFilled instead.");
}
CHECK_LENGTH(length, Array::kMaxElements);
@ -5599,7 +5599,7 @@ DART_EXPORT Dart_Handle Dart_GetType(Dart_Handle library,
Dart_Handle* type_arguments) {
if (Thread::Current()->isolate()->null_safety()) {
return Api::NewError(
"Cannot use legacy types with --null-safety enabled. "
"Cannot use legacy types with --sound-null-safety enabled. "
"Use Dart_GetNullableType or Dart_GetNonNullableType instead.");
}
return GetTypeCommon(library, class_name, number_of_type_arguments,
@ -6033,16 +6033,16 @@ DART_EXPORT bool Dart_DetectNullSafety(const char* script_uri,
const uint8_t* kernel_buffer,
intptr_t kernel_buffer_size) {
#if defined(DART_PRECOMPILED_RUNTIME)
ASSERT(FLAG_null_safety != kNullSafetyOptionUnspecified);
return (FLAG_null_safety == kNullSafetyOptionStrong);
ASSERT(FLAG_sound_null_safety != kNullSafetyOptionUnspecified);
return (FLAG_sound_null_safety == kNullSafetyOptionStrong);
#else
bool null_safety;
if (FLAG_null_safety == kNullSafetyOptionUnspecified) {
if (FLAG_sound_null_safety == kNullSafetyOptionUnspecified) {
null_safety = Dart::DetectNullSafety(
script_uri, snapshot_data, snapshot_instructions, kernel_buffer,
kernel_buffer_size, package_config, original_working_directory);
} else {
null_safety = (FLAG_null_safety == kNullSafetyOptionStrong);
null_safety = (FLAG_sound_null_safety == kNullSafetyOptionStrong);
}
return null_safety;
#endif // defined(DART_PRECOMPILED_RUNTIME)

View file

@ -5335,7 +5335,7 @@ TEST_CASE(DartAPI_NewListOf) {
EXPECT_STREQ("null", str);
} else {
EXPECT_ERROR(string_list,
"Cannot use legacy types with --null-safety enabled. "
"Cannot use legacy types with --sound-null-safety enabled. "
"Use Dart_NewListOfType or Dart_NewListOfTypeFilled instead.");
}
@ -5356,7 +5356,7 @@ TEST_CASE(DartAPI_NewListOf) {
EXPECT_STREQ("null", str);
} else {
EXPECT_ERROR(int_list,
"Cannot use legacy types with --null-safety enabled. "
"Cannot use legacy types with --sound-null-safety enabled. "
"Use Dart_NewListOfType or Dart_NewListOfTypeFilled instead.");
}
}
@ -6222,7 +6222,7 @@ TEST_CASE(DartAPI_TypeToNullability) {
if (Dart_IsError(type)) {
EXPECT_ERROR(
type,
"Cannot use legacy types with --null-safety enabled. "
"Cannot use legacy types with --sound-null-safety enabled. "
"Use Dart_GetNullableType or Dart_GetNonNullableType instead.");
nonNullableType = Dart_GetNonNullableType(lib, name, 0, nullptr);

View file

@ -88,15 +88,20 @@ DEFINE_FLAG_HANDLER(DeterministicModeHandler,
deterministic,
"Enable deterministic mode.");
int FLAG_null_safety = kNullSafetyOptionUnspecified;
static void NullSafetyHandler(bool value) {
FLAG_null_safety = value ? kNullSafetyOptionStrong : kNullSafetyOptionWeak;
int FLAG_sound_null_safety = kNullSafetyOptionUnspecified;
static void SoundNullSafetyHandler(bool value) {
FLAG_sound_null_safety =
value ? kNullSafetyOptionStrong : kNullSafetyOptionWeak;
}
DEFINE_FLAG_HANDLER(
NullSafetyHandler,
null_safety,
"Respect the nullability of types in casts and instance checks.");
DEFINE_FLAG_HANDLER(SoundNullSafetyHandler,
sound_null_safety,
"Respect the nullability of types at runtime.");
// TODO(alexmarkov) Remove obsolete --null-safety option.
DEFINE_FLAG_HANDLER(SoundNullSafetyHandler,
null_safety,
"Respect the nullability of types at runtime.");
DEFINE_FLAG(bool,
disable_thread_pool_limit,

View file

@ -99,7 +99,7 @@ class WeakTable;
constexpr int kNullSafetyOptionUnspecified = 0;
constexpr int kNullSafetyOptionWeak = 1;
constexpr int kNullSafetyOptionStrong = 2;
extern int FLAG_null_safety;
extern int FLAG_sound_null_safety;
class PendingLazyDeopt {
public:

View file

@ -777,7 +777,7 @@ class KernelCompilationRequest : public ValueObject {
null_safety.value.as_int32 =
(isolate != NULL) ? (isolate->null_safety() ? kNullSafetyOptionStrong
: kNullSafetyOptionWeak)
: FLAG_null_safety;
: FLAG_sound_null_safety;
intptr_t num_experimental_flags = experimental_flags->length();
Dart_CObject** experimental_flags_array =

View file

@ -1045,15 +1045,17 @@ LibraryPtr KernelLoader::LoadLibrary(intptr_t index) {
library_helper.GetNonNullableByDefaultCompiledMode();
if (!I->null_safety() && mode == NNBDCompiledMode::kStrong) {
H.ReportError(
"Library '%s' was compiled with null safety (in strong mode) and it "
"requires --null-safety option at runtime",
"Library '%s' was compiled with sound null safety (in strong mode) and "
"it "
"requires --sound-null-safety option at runtime",
String::Handle(library.url()).ToCString());
}
if (I->null_safety() && (mode == NNBDCompiledMode::kWeak ||
mode == NNBDCompiledMode::kDisabled)) {
H.ReportError(
"Library '%s' was compiled without null safety (in weak mode) and it "
"cannot be used with --null-safety at runtime",
"Library '%s' was compiled without sound null safety (in weak mode) "
"and it "
"cannot be used with --sound-null-safety at runtime",
String::Handle(library.url()).ToCString());
}
library.set_nnbd_compiled_mode(mode);

View file

@ -908,8 +908,7 @@ enum class TypeEquality {
};
// The NNBDMode reflects the opted-in status of libraries.
// Note that the weak or strong testing mode is not reflected in NNBDMode, but
// imposed globally by the value of --null-safety.
// Note that the weak or strong checking mode is not reflected in NNBDMode.
enum class NNBDMode {
// Status of the library:
kLegacyLib = 0, // Library is legacy.

View file

@ -26,8 +26,8 @@ void testModifiableList(l1) {
Expect.throwsRangeError(() => l1.removeAt(-1), "negative");
Expect.throwsRangeError(() => l1.removeAt(5), "too large");
Expect.throws(() => l1.removeAt(null),
// With --null-safety a TypeError is thrown
// With --no-null-safety an ArgumentError is thrown
// With sound null safety a TypeError is thrown.
// Without sound null safety an ArgumentError is thrown.
(e) => e is TypeError || e is ArgumentError, "is null");
Expect.equals(2, l1.removeAt(2), "l1-remove2");

View file

@ -711,11 +711,11 @@
"non-nullable"
],
"gen-kernel-options": [
"--no-null-safety"
"--no-sound-null-safety"
],
"enable-asserts": true,
"vm-options": [
"--no-null-safety"
"--no-sound-null-safety"
],
"builder-tag": "vm_nnbd"
}
@ -726,12 +726,12 @@
"non-nullable"
],
"gen-kernel-options": [
"--no-null-safety"
"--no-sound-null-safety"
],
"enable-asserts": true,
"use-elf": true,
"vm-options": [
"--no-null-safety"
"--no-sound-null-safety"
],
"builder-tag": "vm_nnbd"
}
@ -743,7 +743,7 @@
],
"enable-asserts": true,
"vm-options": [
"--no-null-safety"
"--no-sound-null-safety"
],
"builder-tag": "vm_nnbd"
}
@ -754,7 +754,7 @@
"non-nullable"
],
"vm-options": [
"--null-safety"
"--sound-null-safety"
],
"builder-tag": "vm_nnbd"
}
@ -765,10 +765,10 @@
"non-nullable"
],
"gen-kernel-options": [
"--null-safety"
"--sound-null-safety"
],
"vm-options": [
"--null-safety"
"--sound-null-safety"
],
"builder-tag": "vm_nnbd"
}
@ -780,10 +780,10 @@
"non-nullable"
],
"gen-kernel-options": [
"--null-safety"
"--sound-null-safety"
],
"vm-options": [
"--null-safety"
"--sound-null-safety"
],
"builder-tag": "vm_nnbd"
}

View file

@ -174,28 +174,28 @@ main() {
}
EOF
out/ReleaseIA32/dart --profile-period=10000 --packages=.packages hello.dart
out/ReleaseIA32/dart --null-safety --enable-experiment=non-nullable --profile-period=10000 --packages=.packages hello.dart
out/ReleaseIA32/dart --sound-null-safety --enable-experiment=non-nullable --profile-period=10000 --packages=.packages hello.dart
out/ReleaseIA32/dart pkg/front_end/tool/perf.dart parse hello.dart
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 --print_metrics pkg/analyzer_cli/bin/analyzer.dart --dart-sdk=sdk hello.dart
out/ReleaseIA32/run_vm_tests InitialRSS
out/ReleaseIA32/run_vm_tests --null-safety --enable-experiment=non-nullable InitialRSS
out/ReleaseIA32/run_vm_tests --sound-null-safety --enable-experiment=non-nullable InitialRSS
out/ReleaseIA32/run_vm_tests GenKernelKernelLoadKernel
out/ReleaseIA32/run_vm_tests --null-safety --enable-experiment=non-nullable GenKernelKernelLoadKernel
out/ReleaseIA32/run_vm_tests --sound-null-safety --enable-experiment=non-nullable GenKernelKernelLoadKernel
out/ReleaseIA32/run_vm_tests KernelServiceCompileAll
out/ReleaseIA32/run_vm_tests --null-safety --enable-experiment=non-nullable KernelServiceCompileAll
out/ReleaseIA32/run_vm_tests --sound-null-safety --enable-experiment=non-nullable KernelServiceCompileAll
out/ReleaseIA32/dart --profile-period=10000 --packages=.packages benchmarks/Example/dart2/Example.dart
out/ReleaseIA32/dart --null-safety --enable-experiment=non-nullable --profile-period=10000 --packages=.packages benchmarks/Example/dart/Example.dart
out/ReleaseIA32/dart --sound-null-safety --enable-experiment=non-nullable --profile-period=10000 --packages=.packages benchmarks/Example/dart/Example.dart
out/ReleaseIA32/dart benchmarks/FfiBoringssl/dart2/FfiBoringssl.dart
out/ReleaseIA32/dart --null-safety --enable-experiment=non-nullable benchmarks/FfiBoringssl/dart/FfiBoringssl.dart
out/ReleaseIA32/dart --sound-null-safety --enable-experiment=non-nullable benchmarks/FfiBoringssl/dart/FfiBoringssl.dart
out/ReleaseIA32/dart benchmarks/FfiCall/dart2/FfiCall.dart
out/ReleaseIA32/dart --null-safety --enable-experiment=non-nullable benchmarks/FfiCall/dart/FfiCall.dart
out/ReleaseIA32/dart --sound-null-safety --enable-experiment=non-nullable benchmarks/FfiCall/dart/FfiCall.dart
out/ReleaseIA32/dart benchmarks/FfiMemory/dart2/FfiMemory.dart
out/ReleaseIA32/dart --null-safety --enable-experiment=non-nullable benchmarks/FfiMemory/dart/FfiMemory.dart
out/ReleaseIA32/dart --sound-null-safety --enable-experiment=non-nullable benchmarks/FfiMemory/dart/FfiMemory.dart
out/ReleaseIA32/dart benchmarks/FfiStruct/dart2/FfiStruct.dart
out/ReleaseIA32/dart --null-safety --enable-experiment=non-nullable benchmarks/FfiStruct/dart/FfiStruct.dart
out/ReleaseIA32/dart --sound-null-safety --enable-experiment=non-nullable benchmarks/FfiStruct/dart/FfiStruct.dart
cd ..
rm -rf tmp
elif [ "$command" = linux-x64-build ]; then
@ -322,11 +322,11 @@ main() {
}
EOF
out/ReleaseX64/dart --profile-period=10000 --packages=.packages hello.dart
out/ReleaseX64/dart --null-safety --enable-experiment=non-nullable --profile-period=10000 --packages=.packages hello.dart
out/ReleaseX64/dart --sound-null-safety --enable-experiment=non-nullable --profile-period=10000 --packages=.packages hello.dart
DART_CONFIGURATION=ReleaseX64 pkg/vm/tool/precompiler2 --packages=.packages hello.dart blob.bin
DART_CONFIGURATION=ReleaseX64 pkg/vm/tool/dart_precompiled_runtime2 --profile-period=10000 blob.bin
DART_CONFIGURATION=ReleaseX64 pkg/vm/tool/precompiler2 --null-safety --enable-experiment=non-nullable --packages=.packages hello.dart blob.bin
DART_CONFIGURATION=ReleaseX64 pkg/vm/tool/dart_precompiled_runtime2 --null-safety --profile-period=10000 blob.bin
DART_CONFIGURATION=ReleaseX64 pkg/vm/tool/precompiler2 --sound-null-safety --enable-experiment=non-nullable --packages=.packages hello.dart blob.bin
DART_CONFIGURATION=ReleaseX64 pkg/vm/tool/dart_precompiled_runtime2 --sound-null-safety --profile-period=10000 blob.bin
out/ReleaseX64/dart --profile-period=10000 --packages=.packages --optimization-counter-threshold=-1 hello.dart
out/ReleaseX64/dart-sdk/bin/dart2js --packages=.packages --out=out.js -m hello.dart
third_party/d8/linux/x64/d8 --stack_size=1024 sdk/lib/_internal/js_runtime/lib/preambles/d8.js out.js
@ -355,13 +355,13 @@ EOF
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
out/ReleaseX64/dart --packages=.packages pkg/kernel/test/binary_bench.dart --golem AstFromBinaryLazy out/ReleaseX64/vm_platform_strong.dill
out/ReleaseX64/run_vm_tests InitialRSS
out/ReleaseX64/run_vm_tests --null-safety --enable-experiment=non-nullable InitialRSS
out/ReleaseX64/run_vm_tests --sound-null-safety --enable-experiment=non-nullable InitialRSS
out/ReleaseX64/run_vm_tests GenKernelKernelLoadKernel
out/ReleaseX64/run_vm_tests --null-safety --enable-experiment=non-nullable GenKernelKernelLoadKernel
out/ReleaseX64/run_vm_tests --sound-null-safety --enable-experiment=non-nullable GenKernelKernelLoadKernel
out/ReleaseX64/run_vm_tests KernelServiceCompileAll
out/ReleaseX64/run_vm_tests --null-safety --enable-experiment=non-nullable KernelServiceCompileAll
out/ReleaseX64/run_vm_tests --sound-null-safety --enable-experiment=non-nullable KernelServiceCompileAll
out/ReleaseX64/dart --profile-period=10000 --packages=.packages benchmarks/Example/dart2/Example.dart
out/ReleaseX64/dart --null-safety --enable-experiment=non-nullable --profile-period=10000 --packages=.packages benchmarks/Example/dart/Example.dart
out/ReleaseX64/dart --sound-null-safety --enable-experiment=non-nullable --profile-period=10000 --packages=.packages benchmarks/Example/dart/Example.dart
cd ..
rm -rf tmp
else