Commit Graph

855 Commits

Author SHA1 Message Date
Nate Bosch 2d82fb42ce Enforce and fix lint prefer_single_quotes
Change-Id: I7e7b18d90ae8518c700607ec383c73a0eda5a299
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130726
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Auto-Submit: Nate Bosch <nbosch@google.com>
2020-01-08 22:07:21 +00:00
Vijay Menon a21f295da9 [dartdevc] fix nnbd static errors on sdk
See https://github.com/dart-lang/sdk/issues/40022 - we get 30+ errors due to that.
Suppressing for now.

Change-Id: I7b14203c7b479e67fbbb0bc396162cdf23b38b3f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130741
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2020-01-08 20:09:20 +00:00
Nicholas Shahan 5f9346a2f5 [dartdevc] Add an nnbd runtime mode weak/strong option to ddb script
Cleaned up the help message printing and sorted the options alphabetically
since the list is getting longer.

Makes it easier to run a file in the various modes. Will automatically pass
the experiment flag to dartdevc if you run with weak or strong.

Added a verbose mode to print the commands being run with all the args and
environment.

Change-Id: I515d185d940b0a13ac74b8b58ae1510a5b203ae7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128775
Reviewed-by: Mark Zhou <markzipan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-12-19 00:02:31 +00:00
Nicholas Shahan c561a9eacc [dartdevc] Delete the legacy version of DDC
Change-Id: I2dc3999b0b7e93252402422d662fb5da4dcca3f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127840
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
2019-12-12 21:53:08 +00:00
Nicholas Shahan 2015c55277 [dartdevc] Remove ability to run analyzer based DDC
This is the first step in deleting legacy DDC!
* Default all invocations of DDC to run the kernel version.
* Disable all tests that run analyzer DDC.
* Detect the most likely case when invoked with an analyzer
  summary and print instruction to update build_web_compilers
  dependency.

I will follow up with deletions, and a rename of the test configurations/
builders to reclaim the names (ddc vs ddk, dartdevc vs dartdevk).

Issue #38777

Change-Id: I1477f0274b6b7f345a5e19d2b3f93797c454a09e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127067
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-12-09 22:11:22 +00:00
Nicholas Shahan 740af3c009 [dartdevc] Pass nnbd experiment to analyzer in check_nnbd_sdk.dart
Also add a help option to print the help text it already has.

Change-Id: Ifb5036ace762053b52ab7a5170da1bdb37b44ab7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126302
Auto-Submit: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-11-26 21:24:50 +00:00
Sigmund Cherem 42ec44a6a4 Reland "Revamp patch_sdk.dart mainly to use libraries.json."
This is a reland of 3c9e924073

Original change's description:
> Revamp patch_sdk.dart mainly to use libraries.json.
> 
> This will make it possible to use the script to create a patched sdk
> for dart2js and the vm (some followup needed), which will be useful
> to migrate their libraries to nnbd.
> 
> In the future, we should be able to leverage this new logic to
> write tests that ensure our sdk is warning-free (there are > 80 real
> warnings today even on the non-nnbd sdk)
> 
> In detail, this CL includes:
> 
> * loading the libraries data from libraries.json, this removes the need for a
>    hand-crafted libraries.dart that replicates the data in libraries.json.
> 
> * auto-generates a libraries.dart in the patched sdk that can be used to run
>  dartanalyzer or to compile an sdk with dartdevc-legacy.
> 
> * script simplifications in patch_sdk.dart
>     * removed tracking of modification stamps. This didn't appeared to be
>       used by the ninja rules. I believe it was used to reduce local
>       iteration cycles when we were first developing the sdk itself.
> 
>     * use Uri directly instead of package:path - this simplifies things,
>       especially since the libraries_specification is Uri-based as well.
> 
>     * switch to use package:args for parsing options
> 
>  * added an option to merge part files in a single file. I've noticed that the
>  analyzer provides some false positive errors in part files, but once merged
>  they are no longer shown. In particular, we are clearly hitting limitations of
>  dartanalyzer on the patched sdk. At this time the old patch-script generated
>  an sdk with 1500 warnings, this new script reduces it to 500 (not sure why),
>  with merging of part files it goes down to 80.
> 
> 
> Change-Id: I6bbaf92ef4554f00c8bf6b38d19bf79d44fb3e94
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125780
> Reviewed-by: Nicholas Shahan <nshahan@google.com>
> Commit-Queue: Sigmund Cherem <sigmund@google.com>

Change-Id: Ifcb9dbef36452e41e8e96e086761d76b5a3d988e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125998
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Auto-Submit: Sigmund Cherem <sigmund@google.com>
2019-11-26 01:40:53 +00:00
Sigmund Cherem 603fd7881f (ddc) Fix deps tracking for the ddc sdk.
The compile_platform template assumes that the output will be in the root-out-dir, and because of that the generated .deps file contains relative paths that only work if the output is in that folder.

It would be nice to fix compile_platform to be more flexible about this, but for now moving the output up fixes the issue that modifications in the sdk were not triggering a rebuild.

Change-Id: Ifc1e7adb23d6911a9f71c341b7968e0a9b1d4973
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126122
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2019-11-23 00:21:58 +00:00
Vijay Menon 8295efc541 Revert "Revamp patch_sdk.dart mainly to use libraries.json."
This reverts commit 3c9e924073.

This CL was breaking the internal build.

Change-Id: Ic4e6df070f2a87ac88ef97f0e6b07d53c13ceadc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125925
Auto-Submit: Vijay Menon <vsm@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
Commit-Queue: David Morgan <davidmorgan@google.com>
Reviewed-by: David Morgan <davidmorgan@google.com>
2019-11-21 14:36:55 +00:00
Sigmund Cherem 5a8c52e06a Add script that performs the tasks of creating and checking the nnbd sdk
usage: dart pkg/dev_compiler/tool/check_nnbd_sdk.dart

Now we no longer need to remember what are the individual commands, this will
generate the patched sdk and run analyzer on it. In the future I can see us
adding a flag to select the target.

Change-Id: I991668743765252411d415de4bdef5a180644afa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125840
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
2019-11-20 23:41:34 +00:00
Sigmund Cherem 3c9e924073 Revamp patch_sdk.dart mainly to use libraries.json.
This will make it possible to use the script to create a patched sdk
for dart2js and the vm (some followup needed), which will be useful
to migrate their libraries to nnbd.

In the future, we should be able to leverage this new logic to
write tests that ensure our sdk is warning-free (there are > 80 real
warnings today even on the non-nnbd sdk)

In detail, this CL includes:

* loading the libraries data from libraries.json, this removes the need for a
   hand-crafted libraries.dart that replicates the data in libraries.json.

* auto-generates a libraries.dart in the patched sdk that can be used to run
 dartanalyzer or to compile an sdk with dartdevc-legacy.

* script simplifications in patch_sdk.dart
    * removed tracking of modification stamps. This didn't appeared to be
      used by the ninja rules. I believe it was used to reduce local
      iteration cycles when we were first developing the sdk itself.

    * use Uri directly instead of package:path - this simplifies things,
      especially since the libraries_specification is Uri-based as well.

    * switch to use package:args for parsing options

 * added an option to merge part files in a single file. I've noticed that the
 analyzer provides some false positive errors in part files, but once merged
 they are no longer shown. In particular, we are clearly hitting limitations of
 dartanalyzer on the patched sdk. At this time the old patch-script generated
 an sdk with 1500 warnings, this new script reduces it to 500 (not sure why),
 with merging of part files it goes down to 80.


Change-Id: I6bbaf92ef4554f00c8bf6b38d19bf79d44fb3e94
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125780
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2019-11-20 22:51:42 +00:00
Vijay Menon ae34d6e233 [dartdevc] rename legacy to ddc
The old name is still supported as an arg.

Change-Id: I864c54b977f5ef0cc1be4779422efbd539b67a2b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125545
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-11-20 17:52:19 +00:00
Sigmund Cherem bcc77d8605 (ddc) Generate the sdk.js files by reading a dill file directly
This is to align how we pipeline each step in the build with other tools. It
will also help with caching and incremental rebuilds when doing local development
in ddc.

Change-Id: I8ff9988927d5632301926fca173c01dd281f923f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125447
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2019-11-19 00:24:48 +00:00
Martin Kustermann e82fedc345 [vm] Remove deprecated (and untested) ARMv5 support from the VM
Since we have no CQ/CI test coverage of ARMv5 and none of our customers
uses it, a breaking change request was made (see issue further down).

The breaking change has been approved and a corresponding email has been
sent out:

https://groups.google.com/a/dartlang.org/forum/?nomobile=true#!topic/announce/vRQja7di3FQ

This CL removes any armv5 related code from our codebase.

Closes https://github.com/dart-lang/sdk/issues/36666

Change-Id: I9abf32f1980ca19a9cf882b43c9966b2127f89e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122540
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2019-10-23 14:44:33 +00:00
Nicholas Shahan 1451e9ee39 [dartdevc] Respect the NNBD experiment flag setting more often when patching SDK
Tested with the dart:math migration.
https://dart-review.googlesource.com/c/sdk/+/120060

Change-Id: Id62dd197dfa4d4e744ae581c6cd423444baeb1dc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122521
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-10-22 23:00:46 +00:00
Robert Nystrom ed0cc81e81 Get DDC and DDK test builds working with the forked NNBD SDK.
With these changes, I can run:

  ./tools/build.py -m release --nnbd dartdevc_test

In a checkout that also includes a migrated core library that uses
NNBD features.

I haven't verified if the resulting JS is *correct*, but the build
doesn't error out.

Change-Id: I7d89efe5da8c46e2a9805743e4e61858da8097dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122280
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
2019-10-21 17:19:59 +00:00
Konstantin Shcheglov 0dd6ea1354 Deprecate 'useDart2jsPaths' in SdkLibrariesReader_LibraryBuilder.
Change-Id: Id9a7bf06e270572d7df1dc4c78c2ea72c6e5eaf6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121145
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-10-10 21:13:03 +00:00
Jonas Termansen 8cbc4f3982 [benchmark] Add support for benchmarking DDC.
This change adds the required support to benchmark DDC just like dart2js.

The ddb tool gains the following options:

  --compile-vm-options=VM-OPTIONS
      The value of the DART_VM_OPTIONS environment variable set when running
      dartdevc. This option is required to measure the memory use of
      dartdevc while compiling.

  --packages=PACKAGES-FILE
      The .packages file to use when compiling. This option is required for
      special benchmarks with a .packages in a subdirectory and is generally
      useful.

  --out=OUTPUT-FILE
      Write the compiled javascript to this path and the other generated
      files along it. This option makes the benchmark configuration easier
      and is generally useful.

The dartdevc and dartdevc.bat scripts in the released Dart SDK now gains
support for the DART_VM_OPTIONS environment variable, just like the dart2js
scripts. This feature is needed to measure the memory usage of the Dart VM
executing dartdevc.

tools/bots/try_benchmarks.sh now tests that ddb can compile and run
benchmarks using the needed features.

Change-Id: Ib1ef07b0888a8c0cf900fe2fbb5697aab733db08
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118440
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Jonas Termansen <sortie@google.com>
2019-09-25 09:48:00 +00:00
Jens Johansen 37111633be [DDK] SDK should not contain full paths
If nothing else, it introduces nondeterminism to include the full path.

Change-Id: I6a1e116125cb25fde57db1bb0570b4e10a009b55
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117723
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-09-19 07:37:52 +00:00
Nate Bosch f1bff1b512 Add option to run ddb with observatory
- Add arg parsing for both `--observe` and `--vm-service-port` for the
  cases where we need to specify a port other than the default. We need
  both since we can't treat the same name as either a flag or an option
  based on whether a value was given, which is the behavior of the VM.
- Follow the `debug` paths when any of `--debug`, `--observe`, or
  `--vm-service-port` is used.
- Whenever using observatory always use `--pause-isolates-on-start`
  since the process would otherwise finish before getting a chance to
  use it.

Change-Id: I30c3f9136ba9a7e8bea4220f88026b13963efc21
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117595
Auto-Submit: Nate Bosch <nbosch@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
2019-09-19 00:25:46 +00:00
Nate Bosch 27c127db86 Use Process.start in ddb
Allows us to use `inheritStdio` and see output as it comes in rather
than waiting until the entire process has finished to see the output.

Refactor to support https://dart-review.googlesource.com/c/sdk/+/117595

Change-Id: Ic940d11b6b24c12aa23052c224d72c5365486ae5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117860
Auto-Submit: Nate Bosch <nbosch@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
2019-09-18 22:11:25 +00:00
Vijay Menon bd28bad820 [dartdevc] add modular tests for old ddc
Change-Id: Iff068cc4e737e9a6993c6f724fc0b6853ed1d5fc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113621
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2019-09-18 17:21:53 +00:00
Nate Bosch 765651b079 Fix some diagnostics in ddb tool
Renaming to `ddb.dart` exposes these in the analysis server.

Change-Id: I03485debcc2a0d6f8d2feca9418f910ade7cf10a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117590
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
2019-09-17 21:12:12 +00:00
Vijay Menon d2ad7d1f91 [dartdevc] support compile-only/run-only on ddb tool
Note, there is already an option to specify a binary (-b).

Change-Id: I72bf8734e1919f3a6725a830aa96a54a5d0a6053
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/114589
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
2019-08-27 14:23:55 +00:00
Aske Simon Christensen 202340f550 Reland "[dartdevc] Remove explicit calls of the constant evaluator in DDC."
Relands commit fb8df61606.

No changes. The call in Flutter engine that broke no longer exists, since
https://github.com/flutter/engine/pull/10814

Change-Id: I3f4824da512ff36b3757b05a3f3f5773e3b0135a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113980
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2019-08-27 09:26:43 +00:00
Ben Konyi 9f13d07670 Revert "[dartdevc] Remove explicit calls of the constant evaluator in DDC."
This reverts commit fb8df61606.

Reason for revert: Breaking Dart SDK -> Flutter engine build.

Original change's description:
> [dartdevc] Remove explicit calls of the constant evaluator in DDC.
> 
> These are unnecessary now that constant evaluation is performed as
> part of the front-end transformations.
> 
> Change-Id: I5de9bbf7ebab09528431f764895eb3e3b1b45379
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111430
> Commit-Queue: Aske Simon Christensen <askesc@google.com>
> Reviewed-by: Vijay Menon <vsm@google.com>

TBR=vsm@google.com,askesc@google.com

Change-Id: Ife7c6f207c38d86e390c98de8af81f9cc5b863c4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113746
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2019-08-19 19:41:15 +00:00
Aske Simon Christensen fb8df61606 [dartdevc] Remove explicit calls of the constant evaluator in DDC.
These are unnecessary now that constant evaluation is performed as
part of the front-end transformations.

Change-Id: I5de9bbf7ebab09528431f764895eb3e3b1b45379
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111430
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2019-08-19 08:29:45 +00:00
Vijay Menon a981bfe47b [dartdevc] fix virtual method computation due to nsm
Fixes https://github.com/dart-lang/sdk/issues/37855

Change-Id: I468d66fb8e88fa92a92eb99716a1a2d2d00f54ae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113124
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2019-08-14 22:07:41 +00:00
Vijay Menon ab55923918 [dartdevc] ddb fix for d8
Change-Id: I3d50e0572f269d36e50d8236507090d0e9a5531a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112560
Auto-Submit: Vijay Menon <vsm@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Mark Zhou <markzipan@google.com>
2019-08-09 16:48:24 +00:00
Johnni Winther 19654f30d0 [cfe+vm+ddc] Return ClassHierarchy and CoreTypes together with Component
Users of the CFE often need the ClassHierarchy and may CoreTypes after
invoking the CFE. This CL extends the result of `kernelForProgram` and
`kernelForComponent` to a `CompilerResult` that includes these objects.

Change-Id: I08491198fe876b6514e49993ad794388d6662c9c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112259
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2019-08-09 13:02:12 +00:00
Vijay Menon 7e486efea2 [dartdevc] fix lib name for ddb kernel
This appears related to recent kernel lib name changes.  I hit this if I run:
> ddb -k tests/language_2/some_test.dart

Looks like the lib name is now "tests__language_2__some_test".

Change-Id: I20a19c5542276df7321b0b4ea6284142fbcfd5d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112360
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
2019-08-08 17:03:51 +00:00
Nicholas Shahan dceeadae53 [dartdevc] Fix unevaluated constants when building SDK with kernel
Passing an empty map signals that the environment is empty and constants should
be evaluated.

Change-Id: I5611a2be81786aa7d42e24022198d52c60558cc8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/110748
Reviewed-by: Mark Zhou <markzipan@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-07-26 20:51:21 +00:00
Nicholas Shahan e1e3daa52d [dartdevc] Add --summarize-text flag to ddb script and pass through to DDK
Cleanup handling of paths with the aims to help the script work when run
from an arbitrary directory.

Change-Id: I1a319e7a16e5e021f06457d15807bc4c3245f677
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109521
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-07-18 16:35:35 +00:00
Vijay Menon d0cb753ebd [dartdevc] fix ddb directories and source maps
With this change, one can launch tests, e.g.,

> ddb -r chrome -d -k tests/compiler/dartdevc_native/subtype_test.dart

and step through Dart SDK code using source maps.

Change-Id: I1662a4df76d29e3ccb80a4754147839da784ebe6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107480
Auto-Submit: Vijay Menon <vsm@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2019-07-15 17:09:06 +00:00
Vijay Menon 11da803fe9 [dartdevc] build the ddk sdk with dartdevc
This:
(1) Uses dartdevc and kernel_worker directly to build ddk artifacts.

(2) Generates an outline file instead of a full dill file for ddc_sdk.dill.

(3) Fixes source maps in the shipped sdk so that urls from dart_sdk.js.map
have correct relative paths to dart files in the sdk.  This won't work with
webdev/build as that copies and serves dart_sdk.js, but it will now be
able to build the sdk directly.

Change-Id: I7b9470fe18cac9b4343c7c520fe6ffd7bd9246b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104842
Reviewed-by: Jake Macdonald <jakemac@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2019-07-11 02:05:37 +00:00
Nate Bosch 2a2d41658f Update DDC import prefix for path package
The docs recommend `as p` and it's consistent with usage in other
dart-lang packages.

Change-Id: I242387c5583ba01b0a7ec0287462dbc289b7df01
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108561
Commit-Queue: Nate Bosch <nbosch@google.com>
Auto-Submit: Nate Bosch <nbosch@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
2019-07-10 21:58:31 +00:00
Nicholas Shahan ac30ab12ab [dartdevc] Bump pedantic to v1.8.0 and apply new lints
Cleanup violations of:
* `prefer_iterable_whereType`
* `unnecessary_const`
* `unnecessary_new`

Ignore violations in lib/src/js_ast to avoid additional diffs when un-forking.

Change-Id: I7333903422bbf635cd0dea82116372f305f679d8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108182
Auto-Submit: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
2019-07-03 23:51:51 +00:00
Paul Berry a80b3279a9 Add more specific deprecation notices to package:analyzer/analyzer.dart.
Also fix dev_compiler and tools/patch_sdk.dart to stop using
deprecated functions from package:analyzer/analyzer.dart.

Change-Id: I623e2e5e9cfaed6f52b6126b4eb65d8b47dd3afb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107140
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2019-06-25 13:10:57 +00:00
Robert Nystrom ee8d2322d4 Remove support for ignoring cast failures in DDC.
Change-Id: I63aac10df5e26155f394623308a03c1977eba1e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106400
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
2019-06-19 21:50:21 +00:00
Nicholas Shahan 611ed823f0 [dartdevc] Add packages arg for creating the DDC SDK from kernel
Copied from a change by keertip@ from internal repo.
Original change ID: 253076358

Change-Id: I997ffe7c4fa0588689a2562b7b1dcd5c01837919
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106002
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-06-13 21:58:16 +00:00
Nate Bosch aa246f6588 Add return types on all main declarations
Reduces the noise when disallowing implicit dynamic.

Change-Id: I98b03cb675ecd4b9e7f4135efa274fb57eb87832
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104164
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
2019-06-11 00:19:00 +00:00
Sigmund Cherem fddecf659c Do not hide problems in kernel_sdk.dart
This addresses the most concerning problem in #37117

Change-Id: I38feb310023b066922a8049c5026a49572c3e399
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105461
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2019-06-07 22:51:49 +00:00
Vijay Menon 3b5a187726 [dartdevc] move ddc internal libraries under sdk
Note, this has the effect of including all DDC Dart sources with the
shipped SDK: we ship everything under sdk/lib.

This should enable https://github.com/dart-lang/build/issues/2262

Change-Id: If66bc7c620034e7f2acf7d2c3e9524a408417681
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104383
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-06-04 13:47:29 +00:00
Nate Bosch 0241e40c15 Track Library URI for classes
Closes #36771

- Add getLibraryUri and setLibraryUri runtime utility.
- When emitting classes add a statement to set the library URI.

Change-Id: I8974c7fdd4d9986f27a35f116d9881af043c0c9c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104641
Reviewed-by: Jake Macdonald <jakemac@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
2019-06-03 21:47:17 +00:00
Vijay Menon 69063ab552 [dartdevc] automatically find d8 in ddb
Also remove stale files

Change-Id: Ie3004a3c7f30148459caa1a4b08d909c08484eca
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104420
Commit-Queue: Vijay Menon <vsm@google.com>
Auto-Submit: Vijay Menon <vsm@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
2019-06-03 20:02:46 +00:00
Vijay Menon dd5530a73e [dartdevc] make ImmutableSet private
Patch files should not add public members to the underlying library.

Siggi was hitting this when wiring up modular testing for DDC:
https://dart-review.googlesource.com/c/sdk/+/103680/3/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/operations.dart#544

The ddk builder appears to have be swallowing this error - not yet sure why.

Change-Id: I86098b25a344b2bb8b69fe3dc386d01f6f7cb309
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103740
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2019-05-29 20:04:24 +00:00
Nicholas Shahan 694699c6e4 [dartdevc] Improve NSM errors when making dynamic calls
Add specific error text for the dynamic call failure cases:
* Calling null.
* Calling an object instance with a null `call()` method.
* Passing too few or too many arguments.
* Passing incorrect named arguments.
* Passing too few or too many type arguments.
* Passing type arguments to a non-generic method.

This does not address the issue of a missing name. The errors still just
reference 'call'. Tagging a name could be added in a future change.

Issue: #36165
Change-Id: I21592ef506908559da0bfe9aac5ed5bae7fcb84e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103645
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-05-29 16:57:30 +00:00
Vijay Menon 47e63b0eee [dartdevc] encode part file metadata
Fixes https://github.com/dart-lang/sdk/issues/37074

Hand-tested on flutter gallery.  E.g.,:
> dart.getParts('package:flutter_web_ui/ui.dart')
(15) ["src/ui/canvas.dart", "src/ui/compositing.dart", "src/ui/debug_canvas_reuse_overlay.dart", "src/ui/geometry.dart", "src/ui/hash_codes.dart", "src/ui/initialization.dart", "src/ui/lerp.dart", "src/ui/natives.dart", "src/ui/painting.dart", "src/ui/pointer.dart", "src/ui/semantics.dart", "src/ui/browser_location.dart", "src/ui/text.dart", "src/ui/tile_mode.dart", "src/ui/window.dart"]

Change-Id: Ied734d9f3739886d6679a9a9bbeae854e432bc52
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103602
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2019-05-29 14:48:40 +00:00
Vijay Menon 834587a78c [dartdevc] fix import/export declarations for es6 to add extension
d8 assumes a '.js' extension - e.g.,:
```
import { core, dart, dartx } from 'dart_sdk.js';
```

Note: this will enable Siggi's modular compilation framework to run DDC tests on d8.

Change-Id: I1167a36e1454950149fecb8abc793728a16e4591
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103780
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2019-05-28 18:48:55 +00:00
Nicholas Shahan d06592b532 [dartdevc] Add details to failed assertion messages
* Source file location
* Assertion source code

This change embeds the information as strings into the compiled source. In the
future we could reconstruct the source file location at runtime from the stack
trace.

In tests with various large applications this added roughly 1MB (0.1MB
compressed) or less to the compiled file size.

Fixes: #36995
Change-Id: I2634f7eab6e54eec209094b52429987dd62c0828
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103568
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-05-28 18:03:38 +00:00