1
0
mirror of https://github.com/dart-lang/sdk synced 2024-07-08 12:06:26 +00:00
Commit Graph

87884 Commits

Author SHA1 Message Date
Joshua Litt
1ed2a07022 [dart2wasm] Build product snapshot when building for the SDK.
The `dartaotruntime` is built in `product` mode even when we do a release build. This CL wires up a product flag so we always build the Dart2Wasm product snapshot when creating the SDK.

Change-Id: Ic8c6a6da180a47a19ba818d7c449f712c9e60123
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264887
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
2022-10-26 17:04:17 +00:00
Ömer Sinan Ağacan
478f2bb34c [dart2wasm] Handle switches with just a default case
Currently switch compiler looks at literals in alternatives to determine
how to check for equality.

When a switch statement only has a default case (no literals) the code
fails to determine the type of the expression in case statement and
assumes `bool`. Fixed by checking for these cases.

These tests now pass:

- co19/Language/Statements/Switch/syntax_t01
- co19/Language/Statements/Switch/execution_t02
- language/nnbd/flow_analysis/write_promoted_value_in_switch_test

Change-Id: If277b5a2dd04dd84d8d4ab6227d95c049d71f0e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264681
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
2022-10-26 16:50:28 +00:00
Srujan Gaddam
81ba8a2583 [pkg:js] Add documentation for @staticInterop, @JSExport, and export APIs
Adds information and examples of usage and limitations for
@staticInterop classes, the new @JSExport annotation, createDartExport,
and createStaticInteropMock.

Change-Id: I2b4cafc8ff2a201ab2057399e638babbebe151a2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265004
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Riley Porter <rileyporter@google.com>
2022-10-26 16:34:38 +00:00
Srujan Gaddam
380b8f96ad [pkg:js] Remove extraneous export prefix from export tests
Change-Id: If56b0be65150d4115aef4aa41a71eb27358492eb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264893
Reviewed-by: Riley Porter <rileyporter@google.com>
2022-10-26 16:34:38 +00:00
Srujan Gaddam
3bd2b4dd35 [pkg:js] Move mock tests into subfolder of export
Change-Id: I7ad17638b468dcdf749b2ea4441e7c5f5dd0a8cd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264892
Reviewed-by: Riley Porter <rileyporter@google.com>
2022-10-26 16:34:38 +00:00
Srujan Gaddam
35cae2d4da [pkg:js] Rename export and mock transformers and separate them
Per previous review comment - this separates the three components into
separate files.

Change-Id: I601bd9ac29ddd032e913a60ce2b5b7dd81e39efc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264603
Reviewed-by: Riley Porter <rileyporter@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
2022-10-26 16:34:38 +00:00
Srujan Gaddam
c14c0fdda3 [pkg:js] Refactor export and mock tests to use Strings
Allows for tests to pass with dart2wasm. This CL also adds these
tests to the test_matrix.json.

Change-Id: I970ef26b0fb377095c3889e6f52bef256d618850
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264604
Reviewed-by: Joshua Litt <joshualitt@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
2022-10-26 16:34:38 +00:00
Srujan Gaddam
6efce3b407 [pkg:js] Enable modular compilation for exports
Requires making caches use references instead of TreeNodes, and
classes are revisited if needed due to deserializing another module.
Extensions are stored in a library to extensions map so they can be
invalidated easier. Modular tests are added.

Change-Id: Ic33e1190f02f201591616d988de6cc6c8ddad89d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/263540
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Riley Porter <rileyporter@google.com>
2022-10-26 16:34:38 +00:00
Ryan Macnak
2d6037a144 [vm, service] Include Smis in heap snapshots.
TEST=ci
Change-Id: Iadb3bb749da0d065c46bc723c7f5a8a8951b68bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265562
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-10-26 16:04:29 +00:00
Ryan Macnak
6d5c966e68 [observatory] Don't repeat storage of identity hashes in loaded heap snapshots.
TEST=ci
Change-Id: I4696f0e943f4b0dd5716ece285650aed85056c37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265521
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-10-26 16:02:50 +00:00
Johnni Winther
b11dc51c0d [cfe] Handle function calls and null shorting on record types
Closes #50135

Change-Id: If25f01cf1c1749d48c05550df7de8bb381cbb245
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265740
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2022-10-26 14:44:56 +00:00
Danny Tuppeny
37be66028b [dds/dap] Allow debug adapters to register multiple mappings for org-dartland-sdk URIs
Change-Id: Ibcb0f145d64c7cd7712c031737741b2dbc4aaab8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265500
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2022-10-26 14:26:01 +00:00
Johnni Winther
142bf69440 [cfe] Pass on guard in if-case statement
Change-Id: Ic7c201bd90b2cf67a2b7526fc4ac035b21f34cc6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265720
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2022-10-26 10:19:58 +00:00
Ömer Sinan Ağacan
7e87efd2e7 [dart2wasm] Check bounds in list [] and []=
These tests now pass:

- co19/Language/Expressions/Lists/indices_t01
- co19/LibTest/collection/UnmodifiableListView/operator_subscript_A02_t01
- co19/LibTest/core/List/List_A01_t01
- corelib/iterable_element_at_test/none
- corelib/list_growable_test
- corelib/list_unmodifiable_test
- corelib/range_error_test
- language/no_such_method/empty_selector_test
- language/unsorted/range_analysis2_test
- language/unsorted/value_range2_test
- language/unsorted/value_range3_test
- language/unsorted/value_range_test

Change-Id: Ia96ebf6490e01e647c482406639accbfe40d44fc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264700
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
2022-10-26 08:39:19 +00:00
Joshua Litt
1a7df42224 [dart2wasm] Trivial fix for safeToString.
Change-Id: I286b821dbe2a2a406263bfeed4036070c0af0d00
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265580
Reviewed-by: Ömer Ağacan <omersa@google.com>
Auto-Submit: Joshua Litt <joshualitt@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2022-10-26 08:03:20 +00:00
Ömer Sinan Ağacan
b048fa3cfb [dart2wasm] Simplify a null check
Change-Id: I556cbbdc6aaa806e769af6fc2c7b45f5fa05d88d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265323
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
2022-10-26 07:39:25 +00:00
Joshua Litt
97bcffb7c7 [dart2wasm] Fix string fromCharCodes for some unicode surrogate pairs.
Change-Id: Id6ceb12057a1e5a419eb7fc30b6995aed8159321
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265620
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
2022-10-26 07:36:50 +00:00
DEPS Autoroller
79405df629 Roll Dart Documentation Generator from 8878245e0766 to 4902beaa24bd (1 revision)
https://dart.googlesource.com/dartdoc/+log/8878245e0766..4902beaa24bd

2022-10-26 srawlins@google.com Bump to analyzer 5.2.0 (#3230)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-doc-dart-sdk
Please CC dart-ecosystem-gardener@grotations.appspotmail.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dart Documentation Generator: https://github.com/dart-lang/dartdoc/issues
To file a bug in Dart SDK: https://github.com/dart-lang/sdk/issues

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: dart-ecosystem-gardener@grotations.appspotmail.com
Change-Id: I573435527dc26c37e535921131c8242b43bf5b23
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265642
Commit-Queue: Nate Bosch <nbosch@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
2022-10-26 04:12:39 +00:00
Konstantin Shcheglov
9f35115b90 Use FooImpl in BarImpl getters/setters, property related.
I think we might get away with this now, because we don't let users
create elements manually.

Presubmit in google3 looks green.
https://fusion2.corp.google.com/presubmit/tap/483535261/OCL:483535261:BASE:483575659:1666678949553:5d26313d/targets

Change-Id: Id9618e2d8a15ab98c5919750461c508e87f76c7b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265405
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-10-26 03:49:43 +00:00
Nicholas Shahan
5f063cb155 [ddc] Update number classes
- Add two new number classes that are used to represent the internal
  runtime type of number values.
- Update the peer interface for the native number type so that is type
  tags get applied for both int and double. This requires a few tweaks
  to satisfy the Dart type checking of the library at compile time.

Change-Id: I913963a0763c46fb161eb0d599602c874c823b43
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265581
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2022-10-26 01:21:57 +00:00
Kevin Moore
e70ebf27f9 pkg:js - Update changelog and SDK constraint
Change-Id: I3b518169293f000cc4a1665c54d155dc4b33b070
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265640
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Auto-Submit: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
2022-10-26 00:24:38 +00:00
Nicholas Shahan
9d53b451ed [ddc] Add types to tearoffs in dart:async patch
These functions were never tagged with types but they do get used
in type tests. Adding the types ensures they work correctly in the
new runtime type system.

Change-Id: I01a2716504072c0b2148ba13167da9814253e9bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265566
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2022-10-25 21:55:27 +00:00
Sam Rawlins
9896f1c647 Enable the unnamed-libraries experiment by default in 2.19.0
TEST=tests/language/library/unnamed_library_test.dart

Bug: https://github.com/dart-lang/language/issues/1073
Change-Id: I1c7fa7b4ee4450e344a7613525765e4ab590cc8c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265381
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Michael Thomsen <mit@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2022-10-25 21:10:57 +00:00
Konstantin Shcheglov
f282fcfa35 Prepare to publish analyzer 5.2.0 and _fe_analyzer_shared 50.0.0
Change-Id: Iebf909af9e62322d898d6db79ee5fa6f8bfe3899
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265561
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-10-25 21:03:37 +00:00
Brian Wilkerson
87185a7e83 Extend change builder to support imports with a prefix
Change-Id: I7735ca52e7d34e876608460141e94693f3910f6d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265582
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-10-25 20:59:45 +00:00
Sam Rawlins
13529cac21 Add a few items to analyzer's 2.19 CHANGELOG entry
Change-Id: I71dadebcffed30331027ad9c4ba250d3103dcc62
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265563
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2022-10-25 20:04:28 +00:00
Nicholas Shahan
1e9445060a [test_runner] Use constructor to detect async main
This is needed to avoid the dependency on the current runtime
type representation. This is still not an ideal solution and should
be moved into a logic that DDC controls.

Issue: https://github.com/dart-lang/sdk/issues/46377
Change-Id: I6418bff546e63b01059841c1128b4ebeeacdcc39
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265564
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2022-10-25 19:33:38 +00:00
Mayank Patke
278815b192 [dart2js] Add abstract value domain to distinguish uncomputed values.
Normal dart2js invocations will continue using the existing abstract
value domains with `emptyType` as the initial type for type graph nodes.

When an appropriate debug flag is passed, all abstract values will be
wrapped so that the underlying empty type is only used when a value is
known to be empty. Abstract values which have not yet been computed will
print as "[uncomputed]" in order to aid in debugging but will otherwise
behave like the empty type during type graph construction.

Change-Id: I1ec41e42e8b566a0a6bfe969c2ff96f4e53d5f4e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/243844
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2022-10-25 19:24:19 +00:00
DEPS Autoroller
053c633d0b Roll Dart Documentation Generator from 51464a30fad5 to 8878245e0766 (4 revisions)
https://dart.googlesource.com/dartdoc/+log/51464a30fad5..8878245e0766

2022-10-25 49699333+dependabot[bot]@users.noreply.github.com Bump actions/upload-artifact from 3.1.0 to 3.1.1 (#3228)
2022-10-25 49699333+dependabot[bot]@users.noreply.github.com Bump ossf/scorecard-action from 2.0.4 to 2.0.6 (#3227)
2022-10-25 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 2.1.26 to 2.1.28 (#3226)
2022-10-24 srawlins@google.com Switch all references from pub.dartlang.org to pub.dev (#3229)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-doc-dart-sdk
Please CC dart-ecosystem-gardener@grotations.appspotmail.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dart Documentation Generator: https://github.com/dart-lang/dartdoc/issues
To file a bug in Dart SDK: https://github.com/dart-lang/sdk/issues

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: dart-ecosystem-gardener@grotations.appspotmail.com
Change-Id: I9f5b0f17075866c5416bf042013f7576d3c3308a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265365
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
2022-10-25 17:53:07 +00:00
Alexander Markov
6897b9e331 [benchmarks] Micro-benchmark for multiple returns
The new micro-benchmark measures performance of returning 2 values
via list, dedicated class, record and a record with named fields.
Requires '--enable-experiment=records' flag to run.

Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I895d955efb2fc4f1c04b31b113cd8e01db47132a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265121
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2022-10-25 17:02:21 +00:00
Kallen Tu
5caa8da9c4 Refactor event handlers in socket_patch to avoid dynamic calls.
Change-Id: I704da875a956cbf80793c7d4f9a755e718446cb2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264896
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
2022-10-25 17:00:46 +00:00
Sigmund Cherem
fa4851cd4e [dart2js] prepare additional files in inferrer folder (part 2)
This now breaks the cycle in this folder, so all libraries can be migrated in a
specific order.

Change-Id: Ib76d813804e2d0eac485bbeb84a1e0aac0027e7a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264360
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
2022-10-25 16:42:16 +00:00
Sigmund Cherem
ab0da67708 [dart2js] prepare inferrer folder for migration (part 1)
Change-Id: Ifd52acd8786f4b817158f569622b1333c48fe57d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264345
Reviewed-by: Nate Biggs <natebiggs@google.com>
2022-10-25 16:42:16 +00:00
Sigmund Cherem
04239b784f [dart2js] migrate runtime_types.dart
Change-Id: Ide7ac30296612be3b4208267dc9135f3361b5cf2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264344
Reviewed-by: Nate Biggs <natebiggs@google.com>
2022-10-25 16:42:16 +00:00
Danny Tuppeny
77a480ca49 [analysis_server] Handle type arguments on named type references for initial Call Hierarchy item
Change-Id: I5e30c808ddda7ff7817f7be7dd0ecff9a725854c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265501
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-10-25 16:31:10 +00:00
Konstantin Shcheglov
b848f4df59 Make most Token fields in AST final.
Change-Id: If3eb33ed2e0d92f94e9152524231975ab6c47a11
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265440
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-10-25 16:28:17 +00:00
Ryan Macnak
419d6381bb [graphexplorer] Use an explicit stack in forest compression to prevent JS stack overflow.
Compare Observatory's object_graph.dart.

TEST=load a large snapshot, such as from dart2js
Change-Id: Ifea2ff4c06f5103d6f1f709fa79183398df90687
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265404
Reviewed-by: Derek Xu <derekx@google.com>
2022-10-25 16:15:48 +00:00
Devon Carew
2e13c36077 [deps] rev boolean_selector, dartdoc, glob, oauth2
Revisions updated by `dart tools/rev_sdk_deps.dart`.

boolean_selector (1d3565e..ea0ad27):
  ea0ad27  2022-10-25  Devon Carew  use lints 2.0.0; prep for publishing (#39)

dartdoc (51464a3..8878245):
  8878245e  2022-10-24  dependabot[bot]  Bump actions/upload-artifact from 3.1.0 to 3.1.1 (#3228)
  85cfed81  2022-10-24  dependabot[bot]  Bump ossf/scorecard-action from 2.0.4 to 2.0.6 (#3227)
  d152444e  2022-10-24  dependabot[bot]  Bump github/codeql-action from 2.1.26 to 2.1.28 (#3226)
  46f5f0d8  2022-10-24  Sam Rawlins  Switch all references from pub.dartlang.org to pub.dev (#3229)

glob (ee81279..073007c):
  073007c  2022-10-24  Kevin Moore  Merge branch 'v1_x'
  5d3d512  2022-10-24  Kevin Moore  drop author field from pubspec
  5345d2e  2022-10-24  Rob Becker  Add empty list_local_fs.dart for 1.2.1 (#64)

oauth2 (199ebf1..ee5c9b1):
  ee5c9b1  2022-10-24  dependabot[bot]  Bump actions/checkout from 3.0.2 to 3.1.0 (#135)
  4172ae5  2022-10-25  Devon Carew  use package:lints; rev pubspec version (#134)

Change-Id: I7fb7e92445645281a854cc188bdfda65679d1e7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265540
Auto-Submit: Devon Carew <devoncarew@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
2022-10-25 16:02:19 +00:00
Danny Tuppeny
27ba8fce6c [analysis_server] Include type arguments in Type Hierarchy
Fixes https://github.com/Dart-Code/Dart-Code/issues/4217.

Change-Id: I8b8dec4ad25a9eb4a4f80dd036e8a9b61bb012d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264981
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-10-25 16:00:41 +00:00
Danny Tuppeny
96294014e3 [dds/dap] Allow debug adapters to override the org-dartlang-sdk URI for the Dart SDK
Change-Id: I74432315d4bfa8e9890e0bd86fa0fa67d591f7fb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265322
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2022-10-25 14:03:29 +00:00
Daco Harkes
762c507553 [vm/ffi] Outlining state transitions in AOT
For single argument FFI calls:
- reduces trampoline size significantly (up to 50%, 150-170 bytes),
- reduces the compressed size of GPay by 2.5kb on arm64,
- regresses performance on arm64 (up to 2.5%).
For more arguments, percentage-wise size gains and speed regressions
are smaller.

Only applied on arm and arm64, we care about code size for these.

Note: On Raspberry Pie (arm), the performance regression on single-
argument calls regresses up to 30%.

TEST=tests/ffi/*

Design doc: https://go/dart-ffi-outline-state-transitions
Closes: https://github.com/dart-lang/sdk/issues/50094
Change-Id: I8b8d7da45f69be6ac1432b11b695de71e56acfd1
Cq-Include-Trybots: luci.dart.try:vm-precomp-ffi-qemu-linux-release-arm-try,vm-ffi-android-debug-arm64c-try,vm-ffi-android-debug-arm-try,vm-kernel-nnbd-mac-debug-arm64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262343
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2022-10-25 13:07:34 +00:00
Lasse R.H. Nielsen
c13676f2b7 Deprecate FallThroughError.
The error has not been thrown since Dart 2.0,
where being able to reach the end of a switch case
became a compile-time error.

TEST=Removes tests depending on discontinued behavior.

Change-Id: I76292e7c73f2b3aaf071bbb290e97db493b75477
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261860
Reviewed-by: Michael Thomsen <mit@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
Auto-Submit: Lasse Nielsen <lrn@google.com>
Reviewed-by: Brian Quinlan <bquinlan@google.com>
2022-10-25 12:25:35 +00:00
Daco Harkes
f524ec74ce [vm/ffi] FfiNative process lookup
This CL makes `FfiNative`s use `DynamicLibrary.process()` lookup if
resolving with the resolver set by `Dart_SetFfiNativeResolver` fails.

Also moves the implementation over from ffi.cc to
ffi_dynamic_library.cc so the implementation can be shared with
`DynamicLibrary.process()`.

Moves the implementation behind non-simulator and non-precompiler.
However, the implementation is tested in vm/cc tests which are in
precompiler mode. So enables the implementation if TESTED is defined.

This CL massages the build files so that TESTED is properly
defined when compiling the runtime for the vm/cc tests, and links
the ole32 symbols on windows for vm/cc tests.

(And some unrelated small cleanup changes here and there.)

TEST=tests/ffi/native_assets/process_test.dart

Change-Id: I25395d381db1d9b4b7a5759171a798a1140a6140
Cq-Include-Trybots: luci.dart.try:vm-kernel-win-debug-x64c-try,vm-kernel-win-debug-x64-try,vm-kernel-nnbd-win-debug-x64-try,vm-kernel-precomp-win-debug-x64c-try,dart-sdk-win-try,vm-kernel-win-release-x64-try,vm-kernel-win-release-ia32-try,vm-kernel-precomp-win-product-x64-try,vm-kernel-reload-linux-debug-x64-try,vm-kernel-reload-rollback-linux-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264982
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2022-10-25 10:57:07 +00:00
Daco Harkes
89d769765a Revert "[tools] verify_docs don't error on library annotations"
This reverts commit 97eaded1ed.

Reason for revert: It was not erroring on the annotation on the
library, but on the implicit import statement above it due to
template:top.

https://github.com/dart-lang/sdk/issues/50291#issuecomment-1290158070

Original change's description:
> [tools] `verify_docs` don't error on library annotations
>
> Dartdoc code snippets should be able to have annotations before the
> `library` keyword.
>
> Bug: https://github.com/dart-lang/sdk/issues/49803#issuecomment-1287044157
>
> Change-Id: I7ec0b6db296274a1173d10d900f7af38a1f2b552
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265321
> Reviewed-by: Devon Carew <devoncarew@google.com>
> Auto-Submit: Daco Harkes <dacoharkes@google.com>
> Commit-Queue: Daco Harkes <dacoharkes@google.com>
> Commit-Queue: Devon Carew <devoncarew@google.com>

TBR=lrn@google.com,devoncarew@google.com,dacoharkes@google.com,dart-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I379a1871a1acd4d1c66804c3948f38e45691fd55
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/dart-lang/sdk/issues/49803#issuecomment-1287044157
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265324
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2022-10-25 09:35:18 +00:00
Joshua Litt
bd75b2c9e1 [dart2wasm] Minor fixes for double string functions.
Change-Id: Ia5165712ee8469699a7c9bf58b0fe86417b1b3d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265406
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
2022-10-25 07:06:38 +00:00
Alexander Markov
e70dec4e82 [vm] Allocation sinking of records
This change adds all necessary support for allocation sinking and
materialization of record instances.

TEST=vm/cc/AllocationSinking_Records

Issue: https://github.com/dart-lang/sdk/issues/49719
Change-Id: I040ce8b1ed3220f87a767b590050de3e50573170
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265380
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2022-10-24 23:00:47 +00:00
Konstantin Shcheglov
0ad53cbc7b Update all AST nodes setters to require XyzImpl values.
Change-Id: Iaabe077a27a3d7c1dd4660b5d4b3bb9ccb746b0d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265408
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-10-24 22:40:47 +00:00
Konstantin Shcheglov
afb9609261 Deprecate buildSdkSummary2(), use buildSdkSummary() instead.
Change-Id: Iaceb38251047ba4d2cb3e051c096f148b810fbb9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265407
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-10-24 22:32:48 +00:00
Konstantin Shcheglov
e46bade3d0 Remove a few 'is! MixinElement'.
MixinElement does not implement ClassElement anymore.

Change-Id: I0c05f8720b202ad79f3105a4638d8d3d4ff7a404
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265403
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-10-24 21:33:37 +00:00
Brian Wilkerson
8d925319ca Copy the file header comment when creating a new file
Change-Id: I5d864c0d138f6d9389c56a312c111da1f9671081
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265186
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-10-24 21:14:22 +00:00