Commit graph

99911 commits

Author SHA1 Message Date
Sam Rawlins
dac7f1686e Bump dartdoc to 7e171fc9d5ae2727ba2f7f7f78d3da5fb0dbbb1e
Change-Id: I8f905ceef84d44ed17eadfae089f597451c46f11
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352972
Reviewed-by: Kallen Tu <kallentu@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
Auto-Submit: Samuel Rawlins <srawlins@google.com>
2024-02-16 18:24:09 +00:00
Konstantin Shcheglov
90fc66fe69 Macro. Code optimizer. Update initializers of constants.
Change-Id: I2f8ae7fc44e8593218b541b1945f6f386889eb1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352993
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-02-16 18:19:19 +00:00
Sam Rawlins
39ac9ff614 linter: Allow necessary parens in ctor initializer case
Fixes https://github.com/dart-lang/linter/issues/4871

Change-Id: Id294bd4cbfd5af22d9201509210664fb16c31616
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352965
Auto-Submit: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2024-02-16 18:02:17 +00:00
Nicholas Shahan
528e1092bc [ddc] Cleanup dead code from the compiler
This code is no longer used now that the new runtime types are always
enabled.

Change-Id: Ic8e59ed43931fc89efeee48269c7da388a6c6553
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/344606
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2024-02-16 17:40:08 +00:00
Danny Tuppeny
cb578498f7 [analysis_server] Fix some additional tests failing on Windows
Change-Id: I4f03ecb28f4e440faecc75bc5a99d8fedd0dc402
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352865
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2024-02-16 17:32:34 +00:00
Sam Rawlins
1b1117929d analyzer: Replace traverseNodesInDFS in LeakDetectorProcesors with visitor.
Work towards https://github.com/dart-lang/linter/issues/3745

This markedly improves the runtime of the `close_sinks` rule. The other rule that uses LeakDetectorProcessors, `cancel_subscriptions`, is maybe slightly slower, or the same speed. The change in the benchmark below may be within the margin of error.

Here's what we change:

* Replace the `predicates` field in the `cancel_subscriptions` and `close_sinks` visitors with a static field and getter; reduces memory.

* The diff of leak_detector_visitor.dart shows pretty cleanly what changed: the `_buildVariableReporter` function is simplified, with all of the complexity of visiting nodes going into a new `_ValidUseVisitor`, which determines whether there is a valid "use" of a variable, which might be a subscription cancelation, etc. Each of the top-level functions like `_hasConstructorFieldInitializers` and `_hasReturn` is moved into visit methods in that visitor.

* The implementation is overhauled, but the logic should not be changed in this code; this should be functionally a no-op.

* Performance benefits come from the removal of `traverseNodesInDFS` as well as node-specific visitors. Previously, `_hasReturn` was called for _every node in the tree_! Now it is only called with ReturnStatements.

* Remove the list of `_PredicateBuilder`s needed by a LeakDetectorProcessors instance, replacing it with an enum, `_VariableType`, which has two values, `field` or `local`. Previously, the predicate builders were rather complex lambdas of logic that were hard to reason about, but really boiled down to "apply this filter to fields" and "apply this filter to locals." So using `_VariableType` as a signal, the logic can just be written into the new Visitor, along with all of the other filtering logic.


Benchmarks

| test   | cancel_subscriptions | close_sinks |
|--------|----------------------|-------------|
| base 1 |              15   ms |     54   ms |
| base 2 |              14   ms |     52   ms |
| base 3 |              15   ms |     59   ms |
| avg    |              14.7 ms |     55.0 ms |
|--------|----------------------|-------------|
| PR 1   |              15   ms |     32   ms |
| PR 2   |              14   ms |     32   ms |
| PR 3   |              18   ms |     29   ms |
| avg    |              15.7 ms |     31.0 ms |

Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try
Change-Id: Ie3c6af8b3c94992d45279a2430559fd6b4cedb8e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/348980
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2024-02-16 17:22:11 +00:00
David Morgan
4be3368d73 [macros] Fix flakiness on socket macro executor shutdown.
There is a race between closing the socket and killing the process that
causes the socket close to fail ~1% of the time on my machine.

R=jakemac@google.com

Change-Id: I16d337534956194a11cc46f29cb722ac1bda5538
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352905
Auto-Submit: Morgan :) <davidmorgan@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
2024-02-16 16:50:08 +00:00
Sam Rawlins
0f83de7eda linter: Migrate the curly_braces_in_flow_control_structures tests
Work towards https://github.com/dart-lang/linter/issues/4870

Change-Id: I0e52227496d3ea26e498501c59e3b2af0e9c67fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352982
Auto-Submit: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2024-02-16 16:42:55 +00:00
Daco Harkes
ca9eb4af0f [gardening/test] Cleanup AOT checks in tests
Change-Id: I5235c5ba9824f72806214528ed86ecca2f3a7630
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352863
Auto-Submit: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2024-02-16 16:39:09 +00:00
Sam Rawlins
ee39f45f76 linter: avoid a crash when running benchmarks w/o internet
Change-Id: Idda61b9632ac2127e58ca85627bc712fba7e7d25
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352986
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Auto-Submit: Samuel Rawlins <srawlins@google.com>
2024-02-16 15:41:20 +00:00
Devon Carew
c19c48d362 Revert "[deps] rev http, markdown, web_socket_channel"
This reverts commit 8d703d1371.

Reason for revert: HHH bot is broken

Original change's description:
> [deps] rev http, markdown, web_socket_channel
>
> Revisions updated by `dart tools/rev_sdk_deps.dart`.
>
> http (f0a02f9..d8b237d):
>   d8b237d  2024-02-15  Kevin Moore  [http] Migrate to the latest pkg:web, require Dart 3.3 (dart-lang/http#1132)
>   5179d1c  2024-02-01  dependabot[bot]  Bump actions/cache from 3.3.2 to 4.0.0 (dart-lang/http#1125)
>   0b803e8  2024-02-01  dependabot[bot]  Bump dart-lang/setup-dart from 1.6.0 to 1.6.2 (dart-lang/http#1124)
>   82e0424  2024-01-29  Brian Quinlan  Use preferred flutter version constraints (dart-lang/http#1119)
>   ccefa7c  2024-01-17  Brian Quinlan  Support `BaseResponseWithUrl` in `package:cupertino_http` and `package:cronet_http` (dart-lang/http#1110)
>   e7a8e25  2024-01-16  Brian Quinlan  Add `BaseResponseWithUrl.url` (dart-lang/http#1109)
>   c8f17a6  2024-01-12  Brian Quinlan  Add a contributing guide (dart-lang/http#1115)
>   ebd86b9  2024-01-12  Brian Quinlan  Add the ability to get response headers as a `Map<String, List<String>>` (dart-lang/http#1114)
>   5c75da6  2024-01-12  Brian Quinlan  Add tests for sending "cookie" and receiving "set-cookie" headers (dart-lang/http#1113)
>   c2a6d64  2024-01-12  Alex Li  [cronet_http] ⬇️ Downgrade `minSdkVersion` to 21 (dart-lang/http#1104)
>   661f5d6  2024-01-08  Brian Quinlan  Use `package:http_image_provider` in all `Client` implementation examples (dart-lang/http#1089)
>   473a892  2024-01-04  Brian Quinlan  Remove the "play-services-cronet" dependency in the example app when building `package:cronet_http_embedded` (dart-lang/http#1103)
>   e79ebe1  2024-01-03  Moritz  Fix `labeler.yml` (dart-lang/http#1099)
>   73b0b1c  2024-01-01  dependabot[bot]  Bump actions/labeler from 4.3.0 to 5.0.0 (dart-lang/http#1096)
>   15ec3ba  2023-12-21  Brian Quinlan  Prepare to publish `package:cronet_http` as 1.0.0 (dart-lang/http#1087)
>   26e55c3  2023-12-21  Brian Quinlan  cronet_http: require android API level 28 (dart-lang/http#1088)
>   b10f448  2023-12-22  Alex Li  [cronet_http] Enables CI for `cronet_http_embedded` (dart-lang/http#1070)
>   a5b8eec  2023-12-18  Brian Quinlan  Prepare to publish cupertino 1.2.0 (dart-lang/http#1080)
>   c114aa0  2023-12-15  Brian Quinlan  Add a fake response for PNG images (dart-lang/http#1081)
>   db2cb76  2023-12-14  Kevin Moore  Run web tests with wasm with dev Dart sdk (dart-lang/http#1078)
>   36f98e9  2023-12-12  Brian Quinlan  Fix a bug where BrowserClient was listed as requiring Flutter (dart-lang/http#1077)
>   db7f165  2023-12-07  Brian Quinlan  Provide an example of configuring IOClient with an HttpClient. (dart-lang/http#1074)
>   cd748b6  2023-12-04  Brian Quinlan  Document that runWithClient must be called for every isolate (dart-lang/http#1069)
>   f585947  2023-12-04  Brian Quinlan  Test persistentConnection with large request bodies (dart-lang/http#984)
>   7c05dde  2023-12-04  Brian Quinlan  Add documentation for "no_default_http_client" (dart-lang/http#1068)
>   d8983fa  2023-12-04  Brian Quinlan  Add support for setting headers for all requests (dart-lang/http#1060)
>   c90496e  2023-12-04  Brian Quinlan  Document how to use replacement `Client` implementations (dart-lang/http#1063)
>   c8536e4  2023-12-01  Kevin Moore  [http_client_conformance_tests] Updates to support wasm compilation (dart-lang/http#1064)
>   5dd5140  2023-12-01  dependabot[bot]  Bump actions/setup-java from 3 to 4 (dart-lang/http#1065)
>   064f510  2023-11-30  Devon Carew  misc cleanup of yaml files (dart-lang/http#1061)
>   22f52e2  2023-11-30  Brian Quinlan  Update pubspec.yaml to 0.4.2 (dart-lang/http#1059)
>   40a46d8  2023-11-29  Brian Quinlan  Fix a bug where cronet_http sends incorrect HTTP request methods (dart-lang/http#1058)
>   c125ed5  2023-11-27  Kevin Moore  [http] Allow pkg:web v0.3.0 (dart-lang/http#1055)
>   9fb4cfa  2023-11-22  Kevin Moore  Update lints to latest, etc (dart-lang/http#1048)
>   5e84d9f  2023-11-21  Kevin Moore  Update platform-specific imports for wasm (dart-lang/http#1051)
>   8c9feb5  2023-11-21  Kevin Moore  [http] Fix type cast for dart2wasm (dart-lang/http#1050)
>   a2f0b25  2023-11-21  Kevin Moore  [http] use pkg:web, require Dart 3.2 (dart-lang/http#1049)
>
> markdown (c2b8429..6efe141):
>   6efe141  2024-02-14  Kevin Moore  Migrate example to pkg:web, update minimum required Dart version (dart-lang/markdown#582)
>
> web_socket_channel (5241175..3db86bc):
>   3db86bc  2024-02-15  Kevin Moore  Require Dart 3.3 and the latest pkg:web (dart-lang/web_socket_channel#326)
>   1c4a923  2024-02-01  dependabot[bot]  Bump dart-lang/setup-dart from 1.6.0 to 1.6.2 (dart-lang/web_socket_channel#323)
>   041aa3c  2024-01-08  Devon Carew  adjust the HtmlWebSocketChannel ctor parameter type; rev to 2.4.3 (dart-lang/web_socket_channel#320)
>   0e8bedc  2024-01-04  Tyler Dunn  Allow pkg:web v0.3.0 (dart-lang/web_socket_channel#306)
>   62370cc  2024-01-01  dependabot[bot]  Bump actions/stale from 8.0.0 to 9.0.0 (dart-lang/web_socket_channel#312)
>   2a0563f  2023-12-18  Kevin Moore  Prepare release v2.4.1 (dart-lang/web_socket_channel#301)
>   906c944  2023-12-14  Kevin Moore  CI: test dev SDK with dart2wasm (dart-lang/web_socket_channel#304)
>   a316c53  2023-12-13  Kevin Moore  Rename helper extensions to not collide with pkg:web unreleased (dart-lang/web_socket_channel#303)
>   547184a  2023-12-11  Kevin Moore  blast_repo fixes (dart-lang/web_socket_channel#302)
>   969bc6c  2023-12-09  Ömer Sinan Ağacan  Fix JS value to Dart conversion when receiving from a web socket (dart-lang/web_socket_channel#298)
>   df096a9  2023-11-30  Ömer Sinan Ağacan  Remove removed lints (dart-lang/web_socket_channel#299)
>   67bf9a3  2023-11-23  Nate Bosch  Drop some use of ! (dart-lang/web_socket_channel#296)
>   d4a8d70  2023-11-22  Kevin Moore  Small tweak (dart-lang/web_socket_channel#295)
>   9e80b8d  2023-11-22  Kevin Moore  migrate to pkg web (dart-lang/web_socket_channel#294)
>
> Change-Id: I87c4baa07efc5fc2bb283c7b32e69ad69c5a02aa
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352960
> Reviewed-by: Kevin Moore <kevmoo@google.com>
> Commit-Queue: Devon Carew <devoncarew@google.com>

Change-Id: I8723a343908227e39604cba7827c0f99912a10f4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352967
Reviewed-by: Siva Annamalai <asiva@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
Auto-Submit: Devon Carew <devoncarew@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
2024-02-16 15:33:01 +00:00
Martin Kustermann
95a61f6392 Roll flute to new version which removes legacy interop usages
Issue https://github.com/dart-lang/sdk/issues/54908

Change-Id: Ia89ed9a145b33ee7e4a4719df09465fc98f6064c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352906
Reviewed-by: Ömer Ağacan <omersa@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-02-16 13:10:04 +00:00
Vyacheslav Egorov
2280b06202 [vm] Improve detection of handled async errors
Improve the handling of code where the async flow forks:
e.g. for `fut.whenComplete(c.complete)` we might proceed
unwinding through awaiters of `c.future` and forget about the
future returned from `whenComplete`. This happens because
we choose to present result of the unwinding as a single
stack and not a tree. In this situation the error will only
propagate into that future and whether or not the error will be
handled depends on that future alone.

As part of this change also start respecting ignored bit on
futures without listeners.

TEST=pkg/vm_service/test/pause_on_unhandled_async_exceptions7_test.dart

CoreLibraryReviewExempt: Comment only changes to core library
Change-Id: I27b689ab07a725e8faa8d91cf40e88ebc8c441a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352904
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2024-02-16 12:55:22 +00:00
Alexander Thomas
2c11ad08bb [dartdoc] Modernize header and footer
Change-Id: I842b8d96fc0ab005990a15b74e001990a7710633
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352864
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2024-02-16 12:16:32 +00:00
Vyacheslav Egorov
6cd8c4eb8f [gardening] Mark test as slow on simulator.
It parses DWARF debugging information to symbolize
its own stack trace which is rather slow when
running on a simulator.

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

R=kustermann@google.com

Change-Id: I40721e3c6b68b26f75052ad7975388c3748f5733
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352902
Commit-Queue: Slava Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2024-02-16 11:50:28 +00:00
David Morgan
a626c89b6a [analyzer] Fix golden test.
R=lrn@google.com

Change-Id: I1b35204ff11a119a9899d0485f3040bae065aee9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352903
Reviewed-by: Alexander Thomas <athom@google.com>
Auto-Submit: Morgan :) <davidmorgan@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Emmanuel Pellereau <emmanuelp@google.com>
2024-02-16 10:07:56 +00:00
Jake Macdonald
1e0223e6d8 Clean up VariableDeclaration and MemberDeclaration APIs.
- Adds hasInitializer and hasConst to VariableDeclaration.
- Renames isStatic to hasStatic to be consistent with other members.
- Improves serialization tests by randomizing some values, which
  should help to catch ordering errors in serialization.

Change-Id: I44199b1b058444510b9fa55afe0611187b90fc95
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352540
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Morgan :) <davidmorgan@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Auto-Submit: Jake Macdonald <jakemac@google.com>
2024-02-16 07:42:53 +00:00
Keerti Parthasarathy
5394052641 Use the test file to check for navigation results.
Had added the ability to check navigation for a second file, but tests that use that are timing out on the windows bot. This is an attempt to fix it.

Change-Id: I5b9bbe81edb675442b7d58aa04df335284073fd3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352981
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-02-16 04:04:57 +00:00
Konstantin Shcheglov
774caf2c8b Update ConstVariableElement to 'ExpressionImpl? constantInitializer'.
Change-Id: I43a4c318254346c089a203234809fb39e18dfd78
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/353020
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-02-16 01:56:27 +00:00
Alexander Markov
9c34f96822 [vm] Fix deallocation of compressed heap
When VirtualMemory object for the whole compressed pointers heap
region is destroyed in VirtualMemory::~VirtualMemory(), it tests
if the reservation address belongs to a compressed heap via

  VirtualMemoryCompressedHeap::Contains(reserved_.pointer())

If the heap region happens to be reserved at the 4GB aligned address
by the O/S, then reservation address would match base address of
the compressed pointers heap, and this check would pass and
the whole reserved heap region would be passed to
VirtualMemoryCompressedHeap::Free.

However, the reservation size of the whole heap region is
(8GB - 1 page) which is not aligned to kCompressedPageSize (512K).
This would trigger assertion

  ASSERT(Utils::IsAligned(size, kCompressedPageSize));

inside VirtualMemoryCompressedHeap::Free.

The fix is to detect when the whole compressed heap region is being
destroyed and avoid calling VirtualMemoryCompressedHeap::Free
as the region reserved for the whole heap is not managed by
the compressed heap itself.

TEST=python3 tools/test.py -n vm-win-debug-x64c --repeat 10000 co19/LibTest/typed_data/Uint32List/Uint32List.view_A01_t01
Fixes https://github.com/dart-lang/sdk/issues/51170

Change-Id: Icdf02eb0e2e3f39e435cba76fa647726bb383928
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352962
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2024-02-16 01:05:49 +00:00
Ryan Macnak
688917045f [vm] Use AT_HWCAP instead of /proc/cpuinfo for most ARM feature detection.
Under user-space emulation or 32-bit ARM on a 64-bit ARM system, /proc/cpuinfo describes the host CPU instead of the emulated ARM CPU.

Also fix the encoding of sdiv. Apparently QEMU is stricter than hardware.

TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/29270
Bug: https://github.com/dart-lang/sdk/issues/54909
Change-Id: Icadf1a276e468dbb8142da49f961f33bca499d27
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352680
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2024-02-15 23:08:48 +00:00
Ryan Macnak
19aa44bd10 [vm] Remove dead copy_parent_code flag.
TEST=ci
Change-Id: Ib167a667f03179f9bc0f38d8b33d08f867ee9423
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352700
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2024-02-15 23:02:45 +00:00
Vyacheslav Egorov
df6fd34f75 [vm] Improve asynchronous unwinding through Stream methods
This CL adds @pragma('vm:awaiter-link') in various places in
Stream implementation to facilitate unwinding and expands
async unwinding logic with more information about
Stream internals.

At the same time be more conservative when checking if an
exception thrown from async method handled: failing to unwind
the stack fully creates situations when we incorrectly report
caught exceptions as uncaught, which frustrates users.

To distinguish stream subscriptions with and without error
handlers we add a state bit. Otherwise, it looks like all
subscriptions have error handlers because if no error
handler is installed we eagerly install error handler forwarding
the error to `Zone.handleUncaughtError`.

Fixes https://github.com/dart-lang/sdk/issues/53334
Fixes https://github.com/dart-lang/sdk/issues/54788
Fixes https://github.com/dart-lang/sdk/issues/47985

TEST=runtime/vm/dart/awaiter_stacks/stream_methods_test.dart,pkg/vm_service/test/pause_on_unhandled_async_exceptions6_test.dart,pkg/vm_service/test/pause_on_unhandled_async_exceptions7_test.dart

CoreLibraryReviewExempt: No behavioral change. Async changes reviewed by lrhn@
Cq-Include-Trybots: luci.dart.try:vm-aot-android-release-arm64c-try,vm-aot-android-release-arm_x64-try,vm-aot-dwarf-linux-product-x64-try,vm-aot-obfuscate-linux-release-x64-try,vm-aot-optimization-level-linux-release-x64-try
Change-Id: Ic51f926867092dd0adbe801b753f57c357c7ace2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/322720
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2024-02-15 23:00:44 +00:00
Konstantin Shcheglov
25407d3f32 Macro. Include 'correctionMessage' into reported diagnostics.
Change-Id: Ie70c9b33c95a8368ff135613143e0da2a88730f3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352983
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-02-15 22:54:43 +00:00
Polina Cherkasova
f3d587f890 Add flags to opt out from some data parsing, to save time and memory.
Change-Id: I8144478175e1de103fcf5dc67deafe067ed72570
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/351301
Commit-Queue: Polina Cherkasova <polinach@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2024-02-15 22:52:41 +00:00
Nicholas Shahan
48dd473c21 [ddc] Delete new runtime types flag from compiler
Cleanup branches that are no longer reachable.

Change-Id: If53a80915f3c7dc444e7027a8287395add23165b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/344605
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2024-02-15 22:24:27 +00:00
Brian Wilkerson
b204f82059 Disable fixes, assists, and refactorings in generated files
Change-Id: I5c9f36b0edc270cab774f355eec9183940b7e6ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352380
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2024-02-15 22:20:58 +00:00
Konstantin Shcheglov
a6f8e62290 Macro. Update elements for more code optimized cases, tests.
We don't use `sync*` anymore, return pairs directly.

Support for multiple annotated fields and top-level variables.

Tests for `NamedType` and function reference.

Change-Id: I4713d0038e585f117631620bb902347182e8c43c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352980
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-02-15 22:13:59 +00:00
Devon Carew
8d703d1371 [deps] rev http, markdown, web_socket_channel
Revisions updated by `dart tools/rev_sdk_deps.dart`.

http (f0a02f9..d8b237d):
  d8b237d  2024-02-15  Kevin Moore  [http] Migrate to the latest pkg:web, require Dart 3.3 (dart-lang/http#1132)
  5179d1c  2024-02-01  dependabot[bot]  Bump actions/cache from 3.3.2 to 4.0.0 (dart-lang/http#1125)
  0b803e8  2024-02-01  dependabot[bot]  Bump dart-lang/setup-dart from 1.6.0 to 1.6.2 (dart-lang/http#1124)
  82e0424  2024-01-29  Brian Quinlan  Use preferred flutter version constraints (dart-lang/http#1119)
  ccefa7c  2024-01-17  Brian Quinlan  Support `BaseResponseWithUrl` in `package:cupertino_http` and `package:cronet_http` (dart-lang/http#1110)
  e7a8e25  2024-01-16  Brian Quinlan  Add `BaseResponseWithUrl.url` (dart-lang/http#1109)
  c8f17a6  2024-01-12  Brian Quinlan  Add a contributing guide (dart-lang/http#1115)
  ebd86b9  2024-01-12  Brian Quinlan  Add the ability to get response headers as a `Map<String, List<String>>` (dart-lang/http#1114)
  5c75da6  2024-01-12  Brian Quinlan  Add tests for sending "cookie" and receiving "set-cookie" headers (dart-lang/http#1113)
  c2a6d64  2024-01-12  Alex Li  [cronet_http] ⬇️ Downgrade `minSdkVersion` to 21 (dart-lang/http#1104)
  661f5d6  2024-01-08  Brian Quinlan  Use `package:http_image_provider` in all `Client` implementation examples (dart-lang/http#1089)
  473a892  2024-01-04  Brian Quinlan  Remove the "play-services-cronet" dependency in the example app when building `package:cronet_http_embedded` (dart-lang/http#1103)
  e79ebe1  2024-01-03  Moritz  Fix `labeler.yml` (dart-lang/http#1099)
  73b0b1c  2024-01-01  dependabot[bot]  Bump actions/labeler from 4.3.0 to 5.0.0 (dart-lang/http#1096)
  15ec3ba  2023-12-21  Brian Quinlan  Prepare to publish `package:cronet_http` as 1.0.0 (dart-lang/http#1087)
  26e55c3  2023-12-21  Brian Quinlan  cronet_http: require android API level 28 (dart-lang/http#1088)
  b10f448  2023-12-22  Alex Li  [cronet_http] Enables CI for `cronet_http_embedded` (dart-lang/http#1070)
  a5b8eec  2023-12-18  Brian Quinlan  Prepare to publish cupertino 1.2.0 (dart-lang/http#1080)
  c114aa0  2023-12-15  Brian Quinlan  Add a fake response for PNG images (dart-lang/http#1081)
  db2cb76  2023-12-14  Kevin Moore  Run web tests with wasm with dev Dart sdk (dart-lang/http#1078)
  36f98e9  2023-12-12  Brian Quinlan  Fix a bug where BrowserClient was listed as requiring Flutter (dart-lang/http#1077)
  db7f165  2023-12-07  Brian Quinlan  Provide an example of configuring IOClient with an HttpClient. (dart-lang/http#1074)
  cd748b6  2023-12-04  Brian Quinlan  Document that runWithClient must be called for every isolate (dart-lang/http#1069)
  f585947  2023-12-04  Brian Quinlan  Test persistentConnection with large request bodies (dart-lang/http#984)
  7c05dde  2023-12-04  Brian Quinlan  Add documentation for "no_default_http_client" (dart-lang/http#1068)
  d8983fa  2023-12-04  Brian Quinlan  Add support for setting headers for all requests (dart-lang/http#1060)
  c90496e  2023-12-04  Brian Quinlan  Document how to use replacement `Client` implementations (dart-lang/http#1063)
  c8536e4  2023-12-01  Kevin Moore  [http_client_conformance_tests] Updates to support wasm compilation (dart-lang/http#1064)
  5dd5140  2023-12-01  dependabot[bot]  Bump actions/setup-java from 3 to 4 (dart-lang/http#1065)
  064f510  2023-11-30  Devon Carew  misc cleanup of yaml files (dart-lang/http#1061)
  22f52e2  2023-11-30  Brian Quinlan  Update pubspec.yaml to 0.4.2 (dart-lang/http#1059)
  40a46d8  2023-11-29  Brian Quinlan  Fix a bug where cronet_http sends incorrect HTTP request methods (dart-lang/http#1058)
  c125ed5  2023-11-27  Kevin Moore  [http] Allow pkg:web v0.3.0 (dart-lang/http#1055)
  9fb4cfa  2023-11-22  Kevin Moore  Update lints to latest, etc (dart-lang/http#1048)
  5e84d9f  2023-11-21  Kevin Moore  Update platform-specific imports for wasm (dart-lang/http#1051)
  8c9feb5  2023-11-21  Kevin Moore  [http] Fix type cast for dart2wasm (dart-lang/http#1050)
  a2f0b25  2023-11-21  Kevin Moore  [http] use pkg:web, require Dart 3.2 (dart-lang/http#1049)

markdown (c2b8429..6efe141):
  6efe141  2024-02-14  Kevin Moore  Migrate example to pkg:web, update minimum required Dart version (dart-lang/markdown#582)

web_socket_channel (5241175..3db86bc):
  3db86bc  2024-02-15  Kevin Moore  Require Dart 3.3 and the latest pkg:web (dart-lang/web_socket_channel#326)
  1c4a923  2024-02-01  dependabot[bot]  Bump dart-lang/setup-dart from 1.6.0 to 1.6.2 (dart-lang/web_socket_channel#323)
  041aa3c  2024-01-08  Devon Carew  adjust the HtmlWebSocketChannel ctor parameter type; rev to 2.4.3 (dart-lang/web_socket_channel#320)
  0e8bedc  2024-01-04  Tyler Dunn  Allow pkg:web v0.3.0 (dart-lang/web_socket_channel#306)
  62370cc  2024-01-01  dependabot[bot]  Bump actions/stale from 8.0.0 to 9.0.0 (dart-lang/web_socket_channel#312)
  2a0563f  2023-12-18  Kevin Moore  Prepare release v2.4.1 (dart-lang/web_socket_channel#301)
  906c944  2023-12-14  Kevin Moore  CI: test dev SDK with dart2wasm (dart-lang/web_socket_channel#304)
  a316c53  2023-12-13  Kevin Moore  Rename helper extensions to not collide with pkg:web unreleased (dart-lang/web_socket_channel#303)
  547184a  2023-12-11  Kevin Moore  blast_repo fixes (dart-lang/web_socket_channel#302)
  969bc6c  2023-12-09  Ömer Sinan Ağacan  Fix JS value to Dart conversion when receiving from a web socket (dart-lang/web_socket_channel#298)
  df096a9  2023-11-30  Ömer Sinan Ağacan  Remove removed lints (dart-lang/web_socket_channel#299)
  67bf9a3  2023-11-23  Nate Bosch  Drop some use of ! (dart-lang/web_socket_channel#296)
  d4a8d70  2023-11-22  Kevin Moore  Small tweak (dart-lang/web_socket_channel#295)
  9e80b8d  2023-11-22  Kevin Moore  migrate to pkg web (dart-lang/web_socket_channel#294)

Change-Id: I87c4baa07efc5fc2bb283c7b32e69ad69c5a02aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352960
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2024-02-15 21:16:04 +00:00
Nate Biggs
276aa29762 [dart2js] Clone call receiver for protobuf replacement placeholder.
Adding a reference to node.receiver in the replacement placeholder was modifying its parent pointer eagerly. When running Dart2js with serialization the pointers were reset by the serialization process after the closed world phase. However, when running without serialization the pointer stayed corrupted and lead to a malfomed tree in later phases. This manifested as an error trying to lookup the location (i.e. the kernel Location) of the receiver.

This fixes the issue by cloning the receiver of the call for the placeholder. This avoids updating the original receiver's parent pointer.

Today the receiver is always a VariableGet referencing a variable defined in a surrounding Let scope (this is how the CFE encodes x..a()..b()). We could cast the receiver but to be a bit more resilient I've opted to clone the node. The cloner in the kernel package fails on free variable (i.e. if the variable is not declared in the cloning scope). But in this case we want to simply use the same declaration reference from the cloned node. I've added a cloner that provides that fallback behavior.

I also considered using a closure to lazily create the replacement but closures are expensive and we'd be creating one per field per proto which would be a considerable cost for large programs. There wasn't really a clean way to do the same with a static tearoff.

Change-Id: I7ef0e24a9457cfa9f2e116eb3569b0652d321c08
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352563
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2024-02-15 21:01:02 +00:00
Ryan Macnak
6cfb95ce7c [standalone] Fix setting up the kernel isolate's namespace differently.
TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/54914
Change-Id: I92b4016df7fcc81b7e2bd94e9124574c419cecfb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352686
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2024-02-15 20:58:28 +00:00
Konstantin Shcheglov
6b6f78212f Macro. Apply code optimizer, update constants.
Change-Id: I3d7958121d4b3dbdd32b5b960b55baa2632b54ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352723
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-02-15 19:58:39 +00:00
Konstantin Shcheglov
6a5d541645 Macro. Fix test_macroGeneratedFile_existedBeforeLinking on Windows.
Change-Id: I91ea4dffa3c318b25a74e9d479abe9accb2326a8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352942
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-02-15 19:53:29 +00:00
Mayank Patke
d727cb045a [dart2js] Pass closed world to SSA builder.
Issue: #48820
Change-Id: Ifc4e400ff61b610a6b3c3ec40a10dd96e32e4d19
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352782
Reviewed-by: Nate Biggs <natebiggs@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2024-02-15 19:44:48 +00:00
Mayank Patke
37363c83c9 [dart2js] Fix type of RandomAccessFileOutputProvider.onFailure.
Issue: #48820
Change-Id: I62e182a5fd974a5dc488c3dc1b08ff8c1aaae9d1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352781
Reviewed-by: Nate Biggs <natebiggs@google.com>
2024-02-15 19:44:48 +00:00
Mayank Patke
117cdfd52d [dart2js] Add type arguments to uses of ConstantValueVisitor.
Issue: #48820
Change-Id: Ie655940c3b44f9be5d113a24c9e4221d7181518a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352780
Reviewed-by: Nate Biggs <natebiggs@google.com>
2024-02-15 19:44:48 +00:00
Mayank Patke
44fedd4dbd [dart2js] Improve HInstruction typing.
Some assorted cleanup, mostly to reduce writing `as HPhi`:
* Add HPhi-specific versions of .previous/.next which perform the cast
* Similarly, add an HPhiList subclass of HInstructionList with casting
  getters for the first and last phi
* Shorten some while loops to for loops

It would be nice to improve the typing further, but it's difficult to
do so without incurring overhead from virtual dispatch or
generic/covariant parameter checks - see #54920.

Issue: #29302
Issue: #48820
Issue: #54920
Change-Id: I7af8eceb1538031460207e049014e58776942c03
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352684
Reviewed-by: Stephen Adams <sra@google.com>
2024-02-15 19:44:48 +00:00
Sigmund Cherem
9a4d8b47cf [presubmit] first check for formatting errors in bulk.
The motivation behind this CL is performance: currently
PRESUBMIT.py checks for formatting errors a file at a time.
This can be very slow when a CL modifies a lot of files. For
reference, a command-line invocation of `dart format`
takes 2s to check 100 files at once, vs 70s if you run the
command one file at a time.

This change updates PRESUBMIT.py to run `dart format` first
on all the changed files in bulk to determine whether any
has formatting errors. If any formatting error is found, it
goes through the process of checking each file individually
again for formatting errors and compares the result against
the state before a CL's changes (same process as today).
However, if no errors are found, we bypass the slow check
entirely!

To validate the implementation I created a pretend CL with
100 modifications. I leveraged
`tests/language/function_type/test_generator.dart` to touch
100 test files easily. The results were as expected:

  * if all files are formatted properly, the presubmit
    completes now in 4s (was 76s).

  * If all files have formatting errors, the presubmit
    didn't regress beyond the usual observable performance
    variances (150s in both cases).

Notes about the change itself:

  * refactored to compute the set of affected files before
    running the formatting checks

  * refactored to provide some information as data (e.g.
    `excluded_folders`) instead of lambdas (e.g.
    `should_skip`) to support the first change

  * added a bulk option to `HasFormatErrors` to take the
    fast pass

Eventually we could take this a step further and improve the
performance of the failure case. That would require parsing
the output of the bulk run in order to avoid the individual
runs on all files, and only check for the previous version
of the files that indeed required formatting changes.

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

Change-Id: I0cfbd84f6c62eca48ac91449599ef9ac4c1800f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352740
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2024-02-15 19:29:42 +00:00
Derek Xu
628d744391 [dart:developer][VM/Service] Add APIs to dart:developer for recording HTTP profiling information, and for later retrieving that information
The APIs mentioned above are `addHttpClientProfilingData` and
`getHttpClientProfilingData`.

This CL also makes it so that profiling information recorded using
`addHttpClientProfilingData` is included in dart:io service extension
responses.

TEST= pkg/vm_service/test/get_http_profile_test.dart

Change-Id: I892a7a8485369bb92cbb0c086b93498bcec25d5f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/341440
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Derek Xu <derekx@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2024-02-15 18:56:08 +00:00
Srujan Gaddam
9415aba059 Roll package:web to 0.5.0
The only real breaking change since the last roll should
be the IDL update.

Change-Id: I1cdcf2f6acae52d7b644025e9d0e05a5c1ca7609
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352941
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
2024-02-15 18:35:12 +00:00
Nicholas Shahan
f6ffe00f28 [ddc] Avoid calling addTypeCaches with new types
Some preparation for deleting all the old type system code.

Change-Id: I9319064100ce19a4122612c36781c7e4a71094aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352724
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2024-02-15 18:28:49 +00:00
Kenzie Schmoll
0cb3fcca48 [developer] Update dart doc for Service.getIsolateId
Change-Id: I487bdd22362c73051d62147bacb5fe35c3f0445b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352500
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Kenzie Davisson <kenzieschmoll@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
2024-02-15 17:48:00 +00:00
Danny Tuppeny
1e11807735 [analysis_server] Fix timeout in LSP-over-Legacy macro integration tests
Change-Id: I6f31fcf03600262a1e9c2af3ac0d1e2e327c3a9a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352860
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2024-02-15 17:34:57 +00:00
Ömer Sinan Ağacan
2bdcfb7035 [dart2wasm] Fix instantiation closure equality
We can't generate a virtual call to `Object.==` in generated code as
`Object.==` may not be added to the dispatch table, even with
`@pragma(wasm:entry-point)`.

Instead this adds a top-level `_runtimeTypeEquals` function that calls
`==` on the `_Type` argument. Effectively this forces adding `_Type.==`
to the dispatch table and calls it virtually.

Fixes #54926.

Change-Id: Ice3306ed00f66c8abedb3ef11b58c15296457eb0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352900
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2024-02-15 17:33:01 +00:00
osaxma
d6baf58b74 [pkg/analysis_server]: fix to ignore diagnostic in anylsis_options.yaml
Similar to `ignore for this line` or `ignore for the whole file`, this
adds a new fix to `ignore in analysis_options.yaml`.

The fix will update the `analyzer.errors` to ignore the selected label.

Related issue: https://github.com/dart-lang/sdk/issues/49572

Additionally, this change modified `createAnalysisOptionsFile` to allow
adding errors to the analysis options for testing purposes.

R=paulberry@google.com

Change-Id: I94b700395ce50417dc0411ff2913f9e4ca908c66
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352220
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Auto-Submit: Osama Alraddadi <osama.alraddadi@gmail.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2024-02-15 17:23:08 +00:00
Keerti Parthasarathy
3cb120b6d9 Add signature help test for augmentations.
Change-Id: I88dddfd92c48809067663dfee3ab26803f680fd6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352685
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-02-15 17:01:01 +00:00
Tess Strickland
d348c473b0 [vm] Refactor typed data cid handling.
No changes in cids, just defining kFirstTypedDataCid and
kLastTypedDataCid to avoid assumptions that kTypedDataInt8ArrayCid is
the first one and that kByteDataViewCid comes after the last one
(outside of compile-time checks for possible new typed data cids before
kTypedDataInt8ArrayCid and kByteDataViewCid).

Also defining kNumTypedDataCidRemainders to be used in the place of the
appropriate hardcoded 4s.

TEST=ci

Change-Id: Ic9f937ef0fa670b3331b9079090596d9a120ee15
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352862
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2024-02-15 15:32:11 +00:00
Parker Lougheed
b55ecc907e [sdk/lib] Update SystemHash.smear for improved parameters
The linked README(https://github.com/skeeto/hash-prospector#two-round-functions) has been updated with these parameters that result in a significantly lower bias that other projects have also began adapting.

For context, this function is used internally by `Object.hashAllUnordered`.

Change-Id: I7ca042196bbfdb5abdb28f8d6d9cbca69d21fb2b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/351920
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Auto-Submit: Parker Lougheed <parlough@gmail.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
2024-02-15 15:06:58 +00:00
Martin Kustermann
d3d83e639c [vm] Do not bundle dart.lib in the Dart SDK
Users of our standalone embedders we distribute in the Dart SDK should
be using `dart_api_dl.h` (and initialize it from
the `dart:ffi`s `NativeApi.initializeApiDLData`)

If there's any API functions missing, we can add them.

Though we should not Dart C API symbols that are only relevant for
embedders. It requires a custom embedder implementation (which is
outside the scope of what we distribute in Dart SDK)

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

TEST=ci

Change-Id: I6f3842668c59a5dd6fefc6857581995501b9b0e0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352820
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-02-15 14:09:37 +00:00
Jens Johansen
f8e58737eb [CFE] Add perf event lister tool; more visible warning for benchmarker when scaling is in effect
I do some benchmarking with our benchmarker tool which uses "perf stat"
under the hood.

"perf stat" uses hardware counters, but we have a limited amount of
those. The benchmarker tool asks for 3 event types that will use 3
hardware counters. If there aren't 3 available it will do "scaling" and
only measure what it's asked some percentage of the time so it can still
measure all of the stuff it's asked.

This should be fine. My computer has 4 hardware counters. I think.
Only today I still experienced scaling.
And previously I asked for 4 event types because I had 4 hardware
counters, but then suddenly 1 went missing.

As it turns out another process was using hardware counters.
This CL includes a tool that - at least seeems to - be able to find
other processes using perf events (although it might not be events that
use hardware counters), thus possibly allowing you to kill that or those
process(es). I did, and I now have 4 hardware counters again.

I also made scaling more visible if it happens when using the benchmark
tool. Before it was hidden between other output, not it's also printed
at the end, together with a hint to use the new tool to attempt to fix
it.

Change-Id: Ia51db04a4f25d1d82c3d32b3901cded7d980e7f5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352525
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2024-02-15 10:30:09 +00:00