Skip to content

Commit 7ac8f42

Browse files
nshahancommit-bot@chromium.org
authored andcommitted
[ddc] Update flags in ddb script
* 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 <[email protected]> Reviewed-by: Jonas Termansen <[email protected]> Commit-Queue: Nicholas Shahan <[email protected]>
1 parent 62ff05b commit 7ac8f42

File tree

1 file changed

+23
-30
lines changed
  • pkg/dev_compiler/tool

1 file changed

+23
-30
lines changed

pkg/dev_compiler/tool/ddb

+23-30
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,11 @@ void main(List<String> args) async {
4242
help: 'Option to (compile|run|all). Default is all (compile and run).',
4343
allowed: ['compile', 'run', 'all'],
4444
defaultsTo: 'all')
45-
..addOption('nnbd',
46-
help: 'Runtime null safety mode (strong|weak|disabled). When enabled '
47-
'will automatically enable the "non-nullable" experiment. Defaults '
48-
'to strong if the experiment is also passed manually, otherwise '
49-
'to disabled.',
50-
allowed: ['strong', 'weak', 'disabled'],
51-
defaultsTo: 'disabled')
45+
..addFlag('sound-null-safety',
46+
help: 'Compile for sound null safety at runtime. Passed through to the '
47+
'DDC binary. Defaults to false.',
48+
defaultsTo: false,
49+
negatable: true)
5250
..addFlag('observe',
5351
help:
5452
'Run the compiler in the Dart VM with --observe. Implies --debug.',
@@ -77,10 +75,7 @@ void main(List<String> args) async {
7775
negatable: false,
7876
defaultsTo: false)
7977
..addOption('vm-service-port',
80-
help: 'Specify the observatory port. Implied --observe.')
81-
..addSeparator('Deprecated and will be removed:')
82-
..addFlag('kernel',
83-
abbr: 'k', help: 'Ignored. The kernel based DDC is always used.');
78+
help: 'Specify the observatory port. Implied --observe.');
8479

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

110-
// Enable null-safety either by passing the experiment flag
111-
// or by requesting an nnbd mode:
112-
var nnbd =
113-
experiments.contains('non-nullable') || options['nnbd'] != 'disabled';
114-
// Unless weak-mode is specified, default to strict checks
115-
var isNnbdStrong = nnbd && options['nnbd'] != 'weak';
116-
// Ensure non-nullable is passed as a flag
117-
if (nnbd && !experiments.contains('non-nullable')) {
105+
var soundNullSafety = options['sound-null-safety'] as bool;
106+
// Enable null safety either by passing the `non-nullable` experiment flag or
107+
// `sound-null-safety`.
108+
var nnbd = experiments.contains('non-nullable') || soundNullSafety;
109+
110+
// Ensure non-nullable is passed as a flag.
111+
if (soundNullSafety && !experiments.contains('non-nullable')) {
118112
experiments.add('non-nullable');
119113
}
120114

@@ -210,14 +204,14 @@ void main(List<String> args) async {
210204
String ddcSdk;
211205
String sdkJsPath;
212206
String requirePath;
213-
var suffix = isNnbdStrong ? p.join('sound', mod) : p.join('kernel', mod);
207+
var suffix = soundNullSafety ? p.join('sound', mod) : p.join('kernel', mod);
214208
if (debug) {
215209
var sdkRoot = p.dirname(p.dirname(ddcPath));
216210
var buildDir =
217211
p.join(sdkRoot, Platform.isMacOS ? 'xcodebuild' : 'out', 'ReleaseX64');
218212
dartSdk = p.join(buildDir, 'dart-sdk');
219-
ddcSdk = p.join(
220-
buildDir, isNnbdStrong ? 'ddc_outline_sound.dill' : 'ddc_outline.dill');
213+
ddcSdk = p.join(buildDir,
214+
soundNullSafety ? 'ddc_outline_sound.dill' : 'ddc_outline.dill');
221215
sdkJsPath = p.join(buildDir, 'gen', 'utils', 'dartdevc', suffix);
222216
requirePath = p.join(sdkRoot, 'third_party', 'requirejs');
223217
} else {
@@ -233,13 +227,12 @@ void main(List<String> args) async {
233227

234228
if (compile) {
235229
var ddcArgs = [
236-
'--kernel',
237230
if (summarizeText) '--summarize-text',
238231
'--modules=$mod',
239232
'--dart-sdk-summary=$ddcSdk',
240233
for (var summary in summaries) '--summary=$summary',
241234
for (var experiment in experiments) '--enable-experiment=$experiment',
242-
if (isNnbdStrong) '--sound-null-safety',
235+
if (soundNullSafety) '--sound-null-safety',
243236
if (options['packages'] != null) '--packages=${options['packages']}',
244237
'-o',
245238
out,
@@ -277,8 +270,8 @@ void main(List<String> args) async {
277270
function(sdk, app) {
278271
'use strict';
279272
if ($nnbd) {
280-
sdk.dart.nullSafety($isNnbdStrong);
281-
sdk.dart.weakNullSafetyWarnings(!$isNnbdStrong);
273+
sdk.dart.nullSafety($soundNullSafety);
274+
sdk.dart.weakNullSafetyWarnings(!$soundNullSafety);
282275
}
283276
sdk._debugger.registerDevtoolsFormatter();
284277
app.$libname.main();
@@ -310,8 +303,8 @@ let sdk = require(\"dart_sdk\");
310303
let main = require(\"./$basename\").$libname.main;
311304
try {
312305
if ($nnbd) {
313-
sdk.dart.nullSafety($isNnbdStrong);
314-
sdk.dart.weakNullSafetyWarnings(!$isNnbdStrong);
306+
sdk.dart.nullSafety($soundNullSafety);
307+
sdk.dart.weakNullSafetyWarnings(!$soundNullSafety);
315308
}
316309
sdk._isolate_helper.startRootIsolate(main, []);
317310
} catch(e) {
@@ -344,8 +337,8 @@ import { $libname } from '$basename.js';
344337
let main = $libname.main;
345338
try {
346339
if ($nnbd) {
347-
dart.nullSafety($isNnbdStrong);
348-
dart.weakNullSafetyWarnings(!$isNnbdStrong);
340+
dart.nullSafety($soundNullSafety);
341+
dart.weakNullSafetyWarnings(!$soundNullSafety);
349342
}
350343
_isolate_helper.startRootIsolate(() => {}, []);
351344
main();

0 commit comments

Comments
 (0)