Skip to content

Commit

Permalink
[ddc] Update flags in ddb script
Browse files Browse the repository at this point in the history
* Start using --sound-null-safety in ddb script To be more consistent
with the finalized naming.
Legacy mode: No flags
Weak mode: --enable-experiment=non-nullable
Sound mode: --enable-experiment=non-nullable --sound-null-safety

* Remove --kernel flag. It's been ignored since analyzer based DDC
was removed.

Change-Id: I1349f7852927e65b1574637a96f68123f1f9741a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153387
Auto-Submit: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
  • Loading branch information
nshahan authored and commit-bot@chromium.org committed Jul 7, 2020
1 parent 62ff05b commit 7ac8f42
Showing 1 changed file with 23 additions and 30 deletions.
53 changes: 23 additions & 30 deletions pkg/dev_compiler/tool/ddb
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,11 @@ void main(List<String> args) async {
help: 'Option to (compile|run|all). Default is all (compile and run).',
allowed: ['compile', 'run', 'all'],
defaultsTo: 'all')
..addOption('nnbd',
help: 'Runtime null safety mode (strong|weak|disabled). When enabled '
'will automatically enable the "non-nullable" experiment. Defaults '
'to strong if the experiment is also passed manually, otherwise '
'to disabled.',
allowed: ['strong', 'weak', 'disabled'],
defaultsTo: 'disabled')
..addFlag('sound-null-safety',
help: 'Compile for sound null safety at runtime. Passed through to the '
'DDC binary. Defaults to false.',
defaultsTo: false,
negatable: true)
..addFlag('observe',
help:
'Run the compiler in the Dart VM with --observe. Implies --debug.',
Expand Down Expand Up @@ -77,10 +75,7 @@ void main(List<String> args) async {
negatable: false,
defaultsTo: false)
..addOption('vm-service-port',
help: 'Specify the observatory port. Implied --observe.')
..addSeparator('Deprecated and will be removed:')
..addFlag('kernel',
abbr: 'k', help: 'Ignored. The kernel based DDC is always used.');
help: 'Specify the observatory port. Implied --observe.');

var options = parser.parse(args);
if (options['help'] as bool) {
Expand All @@ -107,14 +102,13 @@ void main(List<String> args) async {
var run = mode == 'run' || mode == 'all';
var verbose = options['verbose'] as bool;

// Enable null-safety either by passing the experiment flag
// or by requesting an nnbd mode:
var nnbd =
experiments.contains('non-nullable') || options['nnbd'] != 'disabled';
// Unless weak-mode is specified, default to strict checks
var isNnbdStrong = nnbd && options['nnbd'] != 'weak';
// Ensure non-nullable is passed as a flag
if (nnbd && !experiments.contains('non-nullable')) {
var soundNullSafety = options['sound-null-safety'] as bool;
// Enable null safety either by passing the `non-nullable` experiment flag or
// `sound-null-safety`.
var nnbd = experiments.contains('non-nullable') || soundNullSafety;

// Ensure non-nullable is passed as a flag.
if (soundNullSafety && !experiments.contains('non-nullable')) {
experiments.add('non-nullable');
}

Expand Down Expand Up @@ -210,14 +204,14 @@ void main(List<String> args) async {
String ddcSdk;
String sdkJsPath;
String requirePath;
var suffix = isNnbdStrong ? p.join('sound', mod) : p.join('kernel', mod);
var suffix = soundNullSafety ? p.join('sound', mod) : p.join('kernel', mod);
if (debug) {
var sdkRoot = p.dirname(p.dirname(ddcPath));
var buildDir =
p.join(sdkRoot, Platform.isMacOS ? 'xcodebuild' : 'out', 'ReleaseX64');
dartSdk = p.join(buildDir, 'dart-sdk');
ddcSdk = p.join(
buildDir, isNnbdStrong ? 'ddc_outline_sound.dill' : 'ddc_outline.dill');
ddcSdk = p.join(buildDir,
soundNullSafety ? 'ddc_outline_sound.dill' : 'ddc_outline.dill');
sdkJsPath = p.join(buildDir, 'gen', 'utils', 'dartdevc', suffix);
requirePath = p.join(sdkRoot, 'third_party', 'requirejs');
} else {
Expand All @@ -233,13 +227,12 @@ void main(List<String> args) async {

if (compile) {
var ddcArgs = [
'--kernel',
if (summarizeText) '--summarize-text',
'--modules=$mod',
'--dart-sdk-summary=$ddcSdk',
for (var summary in summaries) '--summary=$summary',
for (var experiment in experiments) '--enable-experiment=$experiment',
if (isNnbdStrong) '--sound-null-safety',
if (soundNullSafety) '--sound-null-safety',
if (options['packages'] != null) '--packages=${options['packages']}',
'-o',
out,
Expand Down Expand Up @@ -277,8 +270,8 @@ void main(List<String> args) async {
function(sdk, app) {
'use strict';
if ($nnbd) {
sdk.dart.nullSafety($isNnbdStrong);
sdk.dart.weakNullSafetyWarnings(!$isNnbdStrong);
sdk.dart.nullSafety($soundNullSafety);
sdk.dart.weakNullSafetyWarnings(!$soundNullSafety);
}
sdk._debugger.registerDevtoolsFormatter();
app.$libname.main();
Expand Down Expand Up @@ -310,8 +303,8 @@ let sdk = require(\"dart_sdk\");
let main = require(\"./$basename\").$libname.main;
try {
if ($nnbd) {
sdk.dart.nullSafety($isNnbdStrong);
sdk.dart.weakNullSafetyWarnings(!$isNnbdStrong);
sdk.dart.nullSafety($soundNullSafety);
sdk.dart.weakNullSafetyWarnings(!$soundNullSafety);
}
sdk._isolate_helper.startRootIsolate(main, []);
} catch(e) {
Expand Down Expand Up @@ -344,8 +337,8 @@ import { $libname } from '$basename.js';
let main = $libname.main;
try {
if ($nnbd) {
dart.nullSafety($isNnbdStrong);
dart.weakNullSafetyWarnings(!$isNnbdStrong);
dart.nullSafety($soundNullSafety);
dart.weakNullSafetyWarnings(!$soundNullSafety);
}
_isolate_helper.startRootIsolate(() => {}, []);
main();
Expand Down

0 comments on commit 7ac8f42

Please sign in to comment.