Commit Graph

593 Commits

Author SHA1 Message Date
Ben Konyi 6eb85949fd [ VM / DDS ] Add --print-dtd-uri flag and launch DTD from the correct snapshot for AOT
This adds support for printing the DTD connection information to stdout
when --print-dtd-uri is passed.

This change also fixes an issue where DDS would fail to spawn an isolate
with the DTD snapshot when DDS was running in AOT mode. This means the
SDK must be shipped with both AppJIT and AOT DTD snapshots, at least
until dartdev is moved to run from AOT.

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

TEST=run_test.dart

Change-Id: I788ef9bfe76297a8d594992a2aac440ed9e2ecac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/358541
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Kenzie Davisson <kenzieschmoll@google.com>
2024-03-21 19:50:46 +00:00
Devon Carew 87df8c4691 rev to the latest package:args; update pkg/dartdev
Change-Id: I7535e4c9cd9afb78905525fc0986dc6d60894362
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/358225
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2024-03-21 17:15:58 +00:00
Derek Xu 889bd483d4 [CLI] Make --resident-server-info-file option handle relative paths correctly
TEST=Test cases added to pkg/dartdev/test/commands/run_test.dart and
pkg/dartdev/test/commands/compilation_server_test.dart

Issue: https://github.com/dart-lang/sdk/issues/54245
Change-Id: Iebd20c82dd9aeac44fd9ec76206a5a3a15403829
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/358543
Commit-Queue: Derek Xu <derekx@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2024-03-20 22:42:19 +00:00
Johnni Winther 4b21f58d39 [cfe] Don't emit warnings on null-aware access on non-nullable
Change-Id: I94f3011f69330f5b2d8998f29eb9511517e1fffa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357301
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2024-03-20 14:04:29 +00:00
Daco Harkes d243eb1254 [deps] Roll dart-lang/native
https://github.com/dart-lang/native/pull/1018
https://github.com/dart-lang/native/pull/1019

Change-Id: I0371ebbbba872bf90514f0f2e255957f6a89c8c5
Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-linux-release-arm64-try,pkg-linux-release-try,pkg-mac-release-arm64-try,pkg-mac-release-try,pkg-win-release-arm64-try,pkg-win-release-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357605
Reviewed-by: Moritz Sümmermann <mosum@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2024-03-19 14:58:26 +00:00
Vyacheslav Egorov 80d8f1d03f [vm] Make dart run --resident work in SDK checkout
Resident runner used to look either for pubspec.yaml
or .dart_tool/package_config.json to find package root.

However it does not make much sense to look for pubspec.yaml
you can't resolve packages using just pubspec anyway - you
need package_config.json. This was making it impossible
to use resident runner with packages in Dart SDK checkout:
each package contains pubspec.yaml, but package_config.json
is generated at the root of SDK checkout instead.

This CL also removes support for .packages file - we have
deprecated and removed this file in 2022.

R=kustermann@google.com

TEST=manually

Change-Id: I18ce7a1a82bc72bbc944d8ab2d40f40cdb15cc1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357620
Commit-Queue: Slava Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2024-03-19 11:58:05 +00:00
Kenzie Schmoll 408918d6f5 [dds] Start DTD from DevTools server if it is not already started.
Fixes https://github.com/dart-lang/sdk/issues/54937.

Tested: pkg/dartdev test for `dart devtools` command, and new `dtd_test.dart` in pkg/dds.
Change-Id: I530ba2fe4d5809082378b61c282ba7856974e21e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/354460
Commit-Queue: Kenzie Davisson <kenzieschmoll@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Dan Chevalier <danchevalier@google.com>
2024-03-18 21:50:09 +00:00
Parker Lougheed c78eb9b38f [dartdev] Update web template for package:web updates and docs
- Updates dependency constraints, primarily package:web to 0.5.1
- Uses named import for package:web as a good practice
- Updates README with a few links to relevant documentation resurces

Change-Id: Id36c27808887e11e0d620b8e3554b5e8333500e6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357861
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
2024-03-18 16:49:59 +00:00
asiva 1a5db159f2 [VM/dartdev] Remove all unsound null safety tests running on the VM
1. Remove all unsound null safety tests on the VM
2. Do not pass the --sound-null-safety flag on VM runs as it is the
   default and this option is going to be removed soon.

Change-Id: I33d646cea4b6da8d144f3abe9fbc1b60a20e635b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357741
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2024-03-14 21:23:37 +00:00
Daco Harkes 6270a46469 [deps] Roll package:native_assets_builder
Manual roll of https://github.com/dart-lang/native/pull/946.

Change-Id: I6d4fd28f4174307024526dd73ff29b63e570bfd7
Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-linux-release-arm64-try,pkg-linux-release-try,pkg-mac-release-arm64-try,pkg-win-release-try,pkg-mac-release-try,pkg-win-release-arm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357623
Reviewed-by: Moritz Sümmermann <mosum@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2024-03-14 18:06:13 +00:00
Ben Konyi 9c78c8f14b [ CLI ] Strip --observe and --enable-vm-service from dartdev argument list
The dart run argument parser was incorrectly parsing any argument following an
option that the VM treats as having a default (e.g., --observe and
--enable-vm-service), resulting in a "File not found ''" error and the
VM failing to start the user program. The following invocations would
fail due to 'foo.dart' being treated as the value for the option to the
left:

- dart run --observe foo.dart
- dart run --enable-vm-service foo.dart

This change strips these two options from the arguments sent to dartdev
as both are handled directly in the VM and are only included in the dart
run argument parser for the help message.

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

TEST=regression test added to run_test.dart.

Fixed: 55185
Change-Id: I1c89fec3ee46296ee4ebb847eb47a7845dfdb399
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357360
Reviewed-by: Derek Xu <derekx@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-03-13 17:08:39 +00:00
Ben Konyi d58f6a1ce3 [ DDS ] Create an arg parser for the DDS snapshot
Preparation for shipping DDS as part of the SDK instead of as a Pub
package.

TEST=Existing VM service, DDS, and dartdev tests

Change-Id: I38ec47f4ebf003d3d3c813af40a313403f23280c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/356580
Reviewed-by: Derek Xu <derekx@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-03-11 19:54:47 +00:00
Ben Konyi 0728ffbf53 [ CLI ] Add --write-service-info flag to dart run
This was already a valid VM option, but since it wasn't listed as an
option for the `dart run` command, it was treated as an unexpected
argument when provided after the `run` command.

Change-Id: If05c3e4c8465ab0b5a088a9c5f4cf5386c231f42
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/354981
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2024-02-28 21:38:27 +00:00
Ömer Sinan Ağacan 94e653fe0e [dart2wasm] Implement --omit-bounds-checks flag
Similar to dart2js --trust-primitives, with --omit-bounds-checks
(implied by -O4) we omit bounds checks in standard library list and
typed array indexing methods, such as `operator []` and `[]=`.

For now this flag does not omit range checks in functions like
`setRange` and `setAll`:

- Functions like `setRange` do more work than functions like `[]` and
  `[]=`, and bounds checks are a smaller part of the whole operation.

- For the same reason, and also because they either don't return any
  values or have to return boxed (i.e. `getRange` needs to return an
  `Iterator`), inlining them is not as crucial as inlining an
  `Uint8List.[]` implementation (which avoids boxing when inlined).

Closes #54962.

Tested: dart2wasm change with small refactoring in VM, tested with existing tests.
Change-Id: Idd5f11ee85c7e67ba8de621b305c413e7e7f7ebb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/353982
Reviewed-by: Martin Kustermann <kustermann@google.com>
2024-02-27 08:07:00 +00:00
Ben Konyi ce642d040f [ CLI ] Add support for passing VM options to Dart runtimes via DART_VM_OPTIONS
The DART_VM_OPTIONS environment variable allows for users to specify a
set of VM options to be processed by the Dart runtime in a
self-contained executable created by `dart compile exe`.

DART_VM_OPTIONS should be a comma separated list of options and flags
with no whitespace. Options that accept multiple values as a list of
comma separated values are not supported and will result in argument
parsing failing.

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

TEST=compile_test.dart

Change-Id: I1d94ab1b992753a7dd69da722c051c9464d6d1cf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/353820
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-02-26 21:07:40 +00:00
asiva 58098d3414 [VM/Service] - Launch dds from vmservice code instead of dartdev code
Currently the dds process is being launched from dartdev and
this causes problems when the dartdev commands 'run' and 'test'
are implemented by spawning child processes (this is needed
to make dartdev an AOT snapshot).
This CL attempts to lauch dds from the service isolate code.

TEST=ci

Change-Id: Iad00a17473a630659f15a5c73be0f5385ea35bdd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/350688
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2024-02-22 06:22:12 +00:00
asiva 6ee5474a62 [dartdev/tests] Fix racy tests.
Fix vm service tests which are racy as dds is spawned as an external
process and the testee process might have exited before dds
connects to it.

Change-Id: I514e20c84c6041cb1b65854494698911a34eb50e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352464
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2024-02-20 19:14:44 +00:00
Daco Harkes 9968419f50 [deps] Roll dart-lang/native
Manuall roll for https://github.com/dart-lang/native/pull/964.

TEST=pkg/dartdev/test/native_assets/

Change-Id: Ie1e762ed57971db105cc9d6d5fa21e9f99e76453
Cq-Include-Trybots: luci.dart.try:pkg-win-release-try,pkg-win-release-arm64-try,pkg-mac-release-try,pkg-mac-release-arm64-try,pkg-linux-release-try,pkg-linux-release-arm64-try,pkg-linux-debug-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352642
Reviewed-by: Moritz Sümmermann <mosum@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2024-02-14 15:32:59 +00:00
Martin Kustermann af1b5b8044 [dart2wasm] Switch binaryen optimization levels from -O3 to -Os
We want dart2wasm be comparable to dart2js / dart2aot, the ladder two
are much more conservative with inlining compared to current dart2wasm.

The -O3 is described in the binaryen sources as agressive for
performance and therefore willing to compromise code size.

The -Os is more nuanced: It will perform many optimizations that are
done in -O3 (and e.g. not in -O2) but it will make inlining less
agressive.

This reduces flute compile-time by 10% and code size by 10%
This benchmark results are mixed (some things get faster, some things
slower). Naturally there'll be specialized micro benchmarks that
get hit hard by this.

Where performance matters we should rather make dart2wasm use better
inlining heuristics and annotate code with
`@pragma('wasm:prefer-inline')`

Change-Id: Idf7e75e4e385629c9cec66359efe0afe50db3e72
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352523
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-02-14 13:45:13 +00:00
kzrnm 47c93a9396 Fix path on Windows test
R=kustermann@google.com, mit@google.com, rmacnak@google.com

Bug: https://github.com/dart-lang/sdk/issues/54903
Change-Id: I132ef3385cdde03ab73df194414a38f9fd9927a9
Cq-Include-Trybots: luci.dart.try:pkg-win-release-try,pkg-win-release-arm64-try,pkg-mac-release-try,pkg-mac-release-arm64-try,pkg-linux-release-try,pkg-linux-release-arm64-try,pkg-linux-debug-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352240
Reviewed-by: Ben Konyi <bkonyi@google.com>
Auto-Submit: Kzrnm <gengesa@gmail.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2024-02-14 00:27:52 +00:00
Dan Chevalier 03f797a85a Solidify dtd lifecycle
- devtools server can now take the dtd uri as a parameter on startup
   - dtdUri is passed to the server handler so that devtools can request it.
- FileService is implemented inside the Dart Tooling Daemon (dtd_impl)
    - Added FileService.setProjectRoots
    - Added unit tests and rpc exceptions
- on startup dtd now prints { uri, secret } so that the caller has the secret that allows them to call FileService.setProjectRoots

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

Change-Id: I7a66aca2f8f06f6a611a46c727a9d5c2485fbe3e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/346922
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Dan Chevalier <danchevalier@google.com>
2024-02-13 16:17:18 +00:00
Devon Carew b6799fed19 [deps] rev crypto, dartdoc, ecosystem, lints, native, sse
Revisions updated by `dart tools/rev_sdk_deps.dart`.

crypto (https://github.com/dart-lang/crypto/compare/c954015..f059196):
  f059196  2024-02-08  Kevin Moore  Test dart2wasm (dart-lang/crypto#162)

dartdoc (https://github.com/dart-lang/dartdoc/compare/457c34e..f152c01):
  f152c013  2024-02-08  Sam Rawlins  Tidy spacing in templates (dart-lang/dartdoc#3652)
  d0c53b9f  2024-02-07  Sam Rawlins  Change all late final Iterable fields to Lists (dart-lang/dartdoc#3649)
  8c9c7790  2024-02-06  Sam Rawlins  Remove unnecessary ExtensionTarget mixin (dart-lang/dartdoc#3648)
  d2f90c5a  2024-02-06  Sam Rawlins  Fix the 'serve testing-package' task to generate docs (dart-lang/dartdoc#3647)

ecosystem (https://github.com/dart-lang/ecosystem/compare/7d8ec47..3e4f286):
  3e4f286  2024-02-08  Moritz  Add ignore flag for `publish.yaml` (dart-lang/ecosystem#237)

lints (https://github.com/dart-lang/lints/compare/90a61e4..ead7708):
  ead7708  2024-02-08  Devon Carew  add library_annotations; remove package_prefixed_library_names (dart-lang/lints#179)

native (https://github.com/dart-lang/native/compare/876f9a1..cb9bd7e):
  cb9bd7ef  2024-02-09  Daco Harkes  Build hook spec (dart-lang/native#955)

sse (https://github.com/dart-lang/sse/compare/e483b14..af7d8d0):
  af7d8d0  2024-02-09  Ilya Yanok  Make `SseConnection` extend `StreamChannelMixin<String>` (dart-lang/sse#102)

Change-Id: I2e85dbfae00eea8de7b6f7efce1993bf00e243f0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352046
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
Auto-Submit: Devon Carew <devoncarew@google.com>
2024-02-13 00:30:32 +00:00
kzrnm 72aceb7732 dart analyze --format=json print a machine readable output
`dart analyze --format=json` has extra output, which must be removed before it can be read by the machine.


R=dacoharkes@google.com, fishythefish@google.com, scheglov@google.com

Bug: https://github.com/dart-lang/sdk/issues/54877
Change-Id: I8047a987b65eb8309ef33603cdaf401a400d550b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/351840
Reviewed-by: Ben Konyi <bkonyi@google.com>
Auto-Submit: Kzrnm <gengesa@gmail.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-02-12 17:03:31 +00:00
Ben Konyi 670b9ba9cf [ CLI ] Make dart {compile,build} error exit codes consistent on Windows
Setting an error code of -1 on macOS and Linux results in an error code
of 255 being set since negative error codes are subtracted from 256.
However, an error code of -1 on Windows is not converted in the same
way, resulting in a difference of behavior between OSes.

This change updates -1 error codes to be 255 so they're the same on all
OSes.

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

Change-Id: Idcfbfab30d3cc31a9e4ca630b8d94caa03ef07b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/351500
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-02-09 22:47:39 +00:00
Martin Kustermann a46d59fe3b [dart2wasm] Allow --minify/--no-minify to override defaults from -O<level>
* Allow --minify/--no-minify to override defaults from -O<level>

* Remove the unused(!) --name-section option from pkg/dart2wasm/*
  => Stripping it only makes sense at the binaryen step

* Make pkg/dart2wasm/tool/compile_benchmark support -g/--no-minify
  => Only useful for dart2wasm developers

Issue https://github.com/dart-lang/sdk/issues/54675

Change-Id: I695e985897b212fc345dcfd776553a009723d3b6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/351121
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-02-08 16:46:19 +00:00
Ben Konyi 96b29d461c [ CLI ] Make tooling-daemon command visible with --verbose
Change-Id: I298302afb628cb67887e39f616482a2071d2bc52
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/349020
Reviewed-by: Dan Chevalier <danchevalier@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-02-07 17:23:52 +00:00
Ben Konyi 5a38644295 [ CLI ] Update dart compile {exe, aot-snapshot} to allow for compilation from kernel
Also updates `dart compile kernel` to use `gen_kernel_aot.dart.snapshot`
instead of the VM's `--snapshot` flag.

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

Change-Id: Ifa6afed2428e41fdcff97183f3f3a2ddefec5042
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/349280
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-02-07 02:39:02 +00:00
Ben Konyi 3495a21fc8 [ CLI ] Don't strip specific flags from argument list
Arguments matching the following patterns were being removed from the
argument list before being processed by DartDev's argument parser:

 --observe
 --enable-vm-service
 --devtools

This was due to these arguments having non-standard formats that caused
parsing issues in the past. However, these arguments are now completely
parsed by the VM and not actually decoded in the CLI, so there's no need
to blindly remove them. This was causing issues when passing arguments
to user processes (e.g., `dart run foo.dart --devtools-port` would drop
the `--devtools-port` argument due to this logic).

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

Change-Id: I09358d7f5004483ad3b457ba74229c940d9a0d75
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/350360
Reviewed-by: Kenzie Davisson <kenzieschmoll@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-02-05 19:12:50 +00:00
Martin Kustermann 83b7a57ef3 [dart2wasm] Add --extra-compiler-option to dart compile wasm command
By allowing a pass-through of arbitrary arguments to the dart2wasm
compiler we allow flutter to use options which

* aren't relevant for end-users of `dart compile wasm`
  (e.g. such as providing different platform dill file)

* we may break at any point in time (though in coordination with
  flutter)

Issue https://github.com/dart-lang/sdk/issues/54675

Change-Id: I7da2b69a8c642f8bfaa6546bf9c1a6c3833d55fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/349720
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-02-01 15:30:39 +00:00
Brian Wilkerson 2404a0cb4c Add a flag to disable debouncing of status notifications
I tried to find tests related to the server's command-line options, but
we don't appear to test them.

Change-Id: I0c840deca19402acc59fd5c126be46e4bb2de81d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/348765
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2024-01-27 16:08:10 +00:00
Daco Harkes f4c3572c18 [deps] Rev native packages.
`package:ffi` has moved from dart-lang/ffi to dart-lang/native.
Stop pulling in dart-lang/ffi and update the revision for
dart-lang/native to include a revision with `package:ffi`
`tools/generate_package_config.dart` should automatically update
the toplevel `.dart_tool/package_config.json` to point to the new
checkout location the Dart SDK.

Also rolls breaking change in native_assets_cli:
https://github.com/dart-lang/native/pull/885

And rolls the move of the test projects:
https://github.com/dart-lang/native/pull/938

Change-Id: Ibc1c88026487bece2580a7d3d4ceb7ee50cd76d0
Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-linux-release-arm64-try,pkg-mac-release-try,pkg-mac-release-arm64-try,pkg-win-release-try,pkg-win-release-arm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/346761
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Moritz Sümmermann <mosum@google.com>
2024-01-26 16:12:29 +00:00
Martin Kustermann b562998c14 [dart2wasm] Align semantics of -O3 with dart2js semantics
* Golem is now using -O3
   => remove `--omit-checks` from pkg/dart2wasm/tool/compile_benchmark.

* Dart CI is using -O1/-O2
  => remove `--optimize`/`--no-optimize` from
     pkg/dart2wasm/tool/compile_benchmark and `dart compile wasm`

* Align semantics of -3 with dartjs (enable `--minify`, enable
  `--omit-implicit-checks` disable  `--omit-explicit-checks`).
  => This will make us see changes in benchmarks.

What remains is

* Expose remaining flags in `dart compile wasm` that are needed for
  flutter (or add a generic `--extra-compiler-args` that forwards flags)

* Migrate flutter to use `dart compile wasm`.

* Remove `--omit-type-checks` from pkg/dart2wasm/lib/dart2wasm.dart

Issue https://github.com/dart-lang/sdk/issues/54675

Change-Id: I80654a3ae81bdc5f4c57e3fadccdf5612236102a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/348500
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-01-26 13:26:40 +00:00
Martin Kustermann 9e5c97dd4e [dart2wasm] Make dart2wasm bots use -O0 / -O1
We also temporarily make -O3 behave as --omit-type-checks (the current
golem behavior)

We can then make golem use -O3 and then make a Dart SDK CL that
reverts this change so we see the impact of e.g. --minify as change on
golem attributed to Dart SDK commit.

Change-Id: Ic74688de609e7ed720b1493a4236552963c53c2c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/348320
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-01-25 12:55:37 +00:00
Martin Kustermann 92d53c426f [dart2wasm] Add -O/--optimization-level flag to dart compile wasm
We make the meaning of -O{0,1,2,3,4} to be similar to what dart2js has.
We also make the pkg/dart2wasm/tool/compile_benchmark accept the same flags.

Follow-up CLs will migrate Dart CI / Golem / flutter to use -O flags.

Change-Id: Id37476c596ec7483e633c7db9eec96438315e919
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/348165
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-01-25 09:53:04 +00:00
asiva e00ab8c3ce [pkg/dartdev] Use isolates for running dart2js, analysis server and dtd
instead of VmInterop (bouncing back to the JIT VM).

This is a first step towards turning dartdev into an aot module.

TEST=ci

Change-Id: I2d963d2afb82f1cb486612ff6412b165cace3aa7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/346901
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2024-01-25 00:54:07 +00:00
Martin Kustermann 89060a64e9 [dart2wasm] Make dart compile wasm pass through -D & --minify flags to dart2wasm
This also fixes some code that was assuming the args parser returns
`Map<String, String>` for the `--define` multi-option, it's rather returning
a `List<String>`.

Forwarding these two flags will allow running some of our configurations
using `dart compile wasm` as opposed to
`pkg/dart2wasm/tool/compile_benchmark` (though the former is still
slower than the ladder).

Though since `dart compile wasm` is still a bit slower then the shell
script, we'll do that only for one configuration.

Issue https://github.com/dart-lang/sdk/issues/54675

Change-Id: I74e9edb2f635f48faade8d843857be2aa7c6066f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/347903
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: Michael Thomsen <mit@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-01-24 14:38:41 +00:00
Martin Kustermann 6788b733f3 [dart2wasm] Make dart compile wasm use AOT-compiled dart2wasm via subprocess
This reduces time for `dart compile wasm` on a hello world in

* `--no-optimize` mode from 8.2 to 1.8 seconds (0.6 sec via [0])
* `--optimize` mode from 9.2 to 3 seconds (1.6 sec via [0])

[0] pkg/dart2wasm/tool/compile_benchmark

Issue https://github.com/dart-lang/sdk/issues/54675

Change-Id: I47093e747f343b542bc7faa34e102c62657c7b81
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/347902
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-01-24 13:20:15 +00:00
Michael Thomsen 0a8b973959 Remove explicit enable of inline class
Change-Id: I77f42ccf07d18f1895333581a5c72bdf74a973bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/347300
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Michael Thomsen <mit@google.com>
2024-01-19 14:05:48 +00:00
Martin Kustermann 19caeb8604 [dart2wasm] Make dart compile exe use .unopt.wasm instead of .wasm.unopt
* It had already the assumption there's a `.` in the name but didn't
  check for it
  => Validate that the output file ends with `.wasm`

* Make the unoptimized wasm (if emitted) be `.unopt.wasm`
  => It's a wasm file, so it should have a .wasm extension

This is a step towards making flutter use `dart compile wasm`
directly without the AOT snapshot of pkg/dart2wasm/bin/dart2wasm
and wasm-opt separately. Which will allow removing of the duplicated
wasm-opt flag list in flutter.

Change-Id: I685bb1aaa9d95ab43936bab68add916a642eb296
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/347280
Reviewed-by: Michael Thomsen <mit@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-01-19 09:53:08 +00:00
Martin Kustermann 1d92908169 [dart2wasm] Have binaryen/wasm-opt flags in one place (dart compile exe), make all other places take it from there
Golem build configuration is setup in a way that includes the `pkg/`
folder entirely, so the shell scripts should have access to the
`dart compile exe` sources.

Change-Id: I5395413ce85f11098d14eacbd6ce392f665ddce5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/347021
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-01-19 07:47:52 +00:00
Ben Konyi 232f5d9325 [ CLI ] Fix devtools_test.dart on Windows
Fixes https://github.com/dart-lang/sdk/issues/54666

Change-Id: I7a2dd434734b92bd0554e2481f129da1d83f39bc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/347142
Reviewed-by: Kenzie Davisson <kenzieschmoll@google.com>
Commit-Queue: Kenzie Davisson <kenzieschmoll@google.com>
Auto-Submit: Ben Konyi <bkonyi@google.com>
2024-01-19 00:27:23 +00:00
Paul Berry eaf876865d Revert debugging prints added to dart analyze.
These prints were accidentally included in
https://dart-review.googlesource.com/c/sdk/+/345827, causing all runs
of `dart analyze` to output the communication with the analysis server
to standard output.

Change-Id: I6610ccc9d4b091d85809f8557daf6b96497d1c9a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/347067
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2024-01-18 22:13:39 +00:00
Ben Konyi 8db4393f1e [ CLI ] Start DDS instance if VM service URI passed to dart devtools doesn't have a DDS connection
This is can happen if a Dart or Flutter application is started in a
non-standard way (e.g., not through the `dart` or `flutter` CLI
tooling). Developers using custom embedders need to use `dart devtools`
to start a DevTools instance, so it's a good opportunity to check for a
DDS instance and launch DDS for the target application if one isn't
found.

Change-Id: I817ca0951c7839e8e9a0d1c78756caa45381cea1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/346820
Reviewed-by: Kenzie Davisson <kenzieschmoll@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-01-18 16:28:37 +00:00
Daco Harkes ae5db20deb [deps] Roll native_assets_cli to internal import
https://dart-review.googlesource.com/c/sdk/+/346761 can't land,
because then flutter_tools in g3 breaks.
flutter_tools in g3 can't be forwarded because
https://github.com/dart-lang/native/pull/886 isn't in g3 yet.

Landing https://github.com/dart-lang/native/pull/886 in g3
should work, because it shouldn't break flutter_tools.

Change-Id: Ida60ed22093ace535c00114fc8b088ba2100eb1a
Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-linux-release-arm64-try,pkg-mac-release-try,pkg-mac-release-arm64-try,pkg-win-release-try,pkg-win-release-arm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/346960
Reviewed-by: Moritz Sümmermann <mosum@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2024-01-18 12:50:21 +00:00
Konstantin Shcheglov 637ec97e42 AnalysisDriver. Produce results for all files of a library. #2
#1: https://dart-review.googlesource.com/c/sdk/+/345363
#1R: https://dart-review.googlesource.com/c/sdk/+/345780

Change-Id: I4fe2b4cb879aee6cdccef0ff233ac86e8d0765ec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345827
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-01-16 18:58:28 +00:00
Parker Lougheed 69dc29bc3e [dartdev] Update package:web usage for 0.4.1 release
Fixes https://github.com/dart-lang/sdk/issues/54591

Change-Id: I2469b28a85988c912fabb254ce774e1f83b01313
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345801
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Auto-Submit: Parker Lougheed <parlough@gmail.com>
2024-01-11 21:49:25 +00:00
Ben Konyi 3c42222b7e [ CLI ] Add tooling-daemon command to support launching the Dart Tooling Daemon (DTD)
This change includes the following:
 - A new `tooling-daemon` CLI command to launch DTD
 - Minor refactoring of package:dtd_impl to better match expected
   Dart package structure
 - Updated build rules to create dart_tooling_daemon.dart.snapshot

Change-Id: Idd91bc4ce64ce790db5bad323a50d9cf65523dc2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/344800
Reviewed-by: Dan Chevalier <danchevalier@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-01-08 17:07:55 +00:00
Parker Lougheed 5592a0fd5f [dartdev] Roll pub to a3689f03168c896dd1cb0db8a60c568b38ee16bf
It's been a few months since pub was updated and there are some good enhancements that would benefit from larger testing. Happy to close this if pub hasn't been updated in a while on purpose though!

Diff: https://github.com/dart-lang/pub/compare/1779628b386819675130f14326f1e8812901c48f...a3689f03168c896dd1cb0db8a60c568b38ee16bf/
Change-Id: I69ee1fcf8df8ed61fffa7729c36a214cb1871230
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345101
Auto-Submit: Parker Lougheed <parlough@gmail.com>
Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
Reviewed-by: Sigurd Meldgaard <sigurdm@google.com>
Reviewed-by: Sarah Zakarias <zarah@google.com>
2024-01-08 10:40:37 +00:00
Michael Thomsen 58209f70fd Update web tempate to use package:web
Change-Id: Ibe0e63abfd2390b92885110a4b22370c7425e231
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/344640
Commit-Queue: Michael Thomsen <mit@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
2024-01-03 22:29:09 +00:00
Michael Thomsen 82cab5041e Clean up dart run help:
1) shown only most used options when verbose is off
2) regroup the options a bit

Before and after comparisons:
https://gist.github.com/mit-mit/c8b1338dd4ed784fd235b37840cb462f

Change-Id: I6f62664b801b745d065d3673292425eb740642ed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/341962
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Michael Thomsen <mit@google.com>
2024-01-03 10:28:41 +00:00