Commit Graph

96 Commits

Author SHA1 Message Date
Alexander Thomas ff3f629d4b [3xH] Migrate apply.sh to python 3.12
See https://docs.python.org/dev/whatsnew/3.12.html#imp

Fixes: https://github.com/dart-lang/sdk/issues/55973
Change-Id: I0ac6e60104bddc17cfe5cd537a409c4ded3eb1a9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/371302
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2024-06-14 06:52:12 +00:00
William Hesse 5c156f2fcd Update scripts with new location of Dart SDK checkout in Flutter engine
Bug: https://github.com/flutter/flutter/issues/143335
Change-Id: Iceb2e968be78fae82789d6b13a28b8d5e3cb3dc6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361820
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2024-04-09 14:45:10 +00:00
Daco Harkes fe39068928 [tool] Delete unsupported patches system
The old patches system in tools/patches is not supported in the 3H
infra.

Currently, Golem still uses the DEPS updating logic. This should be
deleted when Golem also moves over to the 3H infra.

Change-Id: Id42d8499a0fa42d18061908e9d1a18b687582ba7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/349640
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2024-02-01 12:02:08 +00:00
Josh Soref aee77b9a33 Spelling tools
Closes https://github.com/dart-lang/sdk/pull/50880

TEST=ci

GitOrigin-RevId: ea8ecf4b7b921de0549df325be1a1f7879e86b72
Change-Id: I39315609a8390b012196a08c9ce4a9a6a50b1558
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278061
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Michael Thomsen <mit@google.com>
Reviewed-by: Michael Thomsen <mit@google.com>
2023-01-09 15:48:57 +00:00
Alexander Thomas 248de89e8c [3xH] Use gclient wrapper script to invoke gclient correctly
gclient now needs to be run with vpython3. Using the wrapper script will
always give us the right wrapper. Running gclient.py directly means that
python3 would be invoked and gclient's dependencies are assumed to be
installed already.

Fixes: https://github.com/dart-lang/sdk/issues/48486
Change-Id: Id62507965ac4f2d18e26dbc7907fcbc563af8e98
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234721
Reviewed-by: William Hesse <whesse@google.com>
2022-03-01 09:39:45 +00:00
Alexander Aprelev b7ecafe495 [infra] Ensure that only git dependencies are pulled/updated via git.
There could be also 'cipd' dependencies which are not compatible with git cloning/checking-out logic

Change-Id: I25243a07e119e73176857e19a83b3e9e632346c1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199560
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2021-05-12 22:31:40 +00:00
Alexander Thomas b5c63ce757 [infra] Migrate scripts to python3
* Migrate to python3; drop python support.
* Update Windows toolchain support.
* Remove some unused methods.
* Python 2.7 is still needed on Windows.
* Update gsutil to a version that supports python3.

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

TEST=Manually tested common user journeys.

Change-Id: I663a22b237a548bb82dc2e601e399e3bc3649211
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192182
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2021-04-15 10:10:20 +00:00
Jake Macdonald 85174e4d8c Revert "Reland "update Glob in the sdk, also adds package:file to the sdk""
This reverts commit c62709e87b.

Reason for revert: Still breaking flutter HHH bots

Original change's description:
> Reland "update Glob in the sdk, also adds package:file to the sdk"
>
> This reverts commit ce614d33c4.
>
> Original change's description:
> > Revert "update Glob in the sdk, also adds package:file to the sdk"
> >
> > This reverts commit 18b19db300.
> >
> > Reason for revert: Breaks Flutter 3H/Golem. Tried making an appropriate patch for 3H that would pull file into its dependencies (see https://dart-review.googlesource.com/c/sdk/+/173960/), but that still failed, so reverting.
> >
> > Original change's description:
> > > update Glob in the sdk, also adds package:file to the sdk
> > >
> > > Change-Id: Ia8628c28bfaf6343c19eecfef391339968cd57e9
> > > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/172063
> > > Commit-Queue: Jake Macdonald <jakemac@google.com>
> > > Reviewed-by: Nate Bosch <nbosch@google.com>
> >
> > TBR=jakemac@google.com,nbosch@google.com
> >
> > Change-Id: I0616e3df7505f348edeefee40cbaf4adc59487cd
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173963
> > Reviewed-by: Tess Strickland <sstrickl@google.com>
> > Commit-Queue: Tess Strickland <sstrickl@google.com>
>
> TBR=jakemac@google.com,nbosch@google.com,sstrickl@google.com
>
> # Not skipping CQ checks because this is a reland.
>
> Change-Id: Ia85fe3b81214ca4ef2bed8e08ecc1b617927a579
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173981
> Reviewed-by: Nate Bosch <nbosch@google.com>
> Commit-Queue: Jake Macdonald <jakemac@google.com>

TBR=jakemac@google.com,nbosch@google.com,sstrickl@google.com

Change-Id: Iaff06dcbc3ef813ee9edb5ca8de163fdcc2041e2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174060
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
2020-11-26 00:11:11 +00:00
Jake Macdonald c62709e87b Reland "update Glob in the sdk, also adds package:file to the sdk"
This reverts commit ce614d33c4.

Original change's description:
> Revert "update Glob in the sdk, also adds package:file to the sdk"
>
> This reverts commit 18b19db300.
>
> Reason for revert: Breaks Flutter 3H/Golem. Tried making an appropriate patch for 3H that would pull file into its dependencies (see https://dart-review.googlesource.com/c/sdk/+/173960/), but that still failed, so reverting.
>
> Original change's description:
> > update Glob in the sdk, also adds package:file to the sdk
> >
> > Change-Id: Ia8628c28bfaf6343c19eecfef391339968cd57e9
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/172063
> > Commit-Queue: Jake Macdonald <jakemac@google.com>
> > Reviewed-by: Nate Bosch <nbosch@google.com>
>
> TBR=jakemac@google.com,nbosch@google.com
>
> Change-Id: I0616e3df7505f348edeefee40cbaf4adc59487cd
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173963
> Reviewed-by: Tess Strickland <sstrickl@google.com>
> Commit-Queue: Tess Strickland <sstrickl@google.com>

TBR=jakemac@google.com,nbosch@google.com,sstrickl@google.com

# Not skipping CQ checks because this is a reland.

Change-Id: Ia85fe3b81214ca4ef2bed8e08ecc1b617927a579
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173981
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
2020-11-25 19:52:08 +00:00
Daco Harkes d9d0cc61c4 [vm] Remove old flutter_engine patches
Dart has rolled beyond these Dart SDK hashes in flutter/engine/DEPS.

Change-Id: Ib7dc7b7f746b8485348cef09d30f67bf3b965bac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/170426
Auto-Submit: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Clement Skau <cskau@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2020-11-05 11:34:13 +00:00
Daco Harkes 5278383736 [vm] Native API: Make Dart_NewWeakPersistentHandle not auto delete
Changes Dart_NewWeakPersistentHandle to no longer auto delete the
weak persistent handle.

Changes the signatures of WeakPersistentHandleFinalizers to no longer
have access to the handle.

Flutter PR: https://github.com/flutter/engine/pull/19843
g3 presubmit: cl/318028238

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

TEST=runtime/vm/dart_api_impl_test.cc

Change-Id: I3f77db9954d9486759f903b78c03a494f73c68ba
Cq-Include-Trybots:dart/try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-msan-linux-release-x64-try,vm-kernel-precomp-msan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-mac-debug-x64-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-kernel-nnbd-linux-debug-x64-try,analyzer-nnbd-linux-release-try,front-end-nnbd-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151525
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-11-03 10:27:44 +00:00
Karl Klose 7af5788a5f [infra] Call create_updated_flutter deps from patches/flutter-engine/apply.sh
Change-Id: I2396539662212f15f8115ec8c5df522d35520d7d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/158902
Commit-Queue: Karl Klose <karlklose@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2020-08-18 09:32:10 +00:00
William Hesse 08663c20ab Change flutter patch to match existing DEPS on master branch
Change-Id: Idb0fd43ed680839f24e8be03e6703e3be31b8802
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155445
Reviewed-by: Jonas Termansen <sortie@google.com>
2020-07-22 15:48:22 +00:00
William Hesse ba20edd7be Add patch for flutter-engine when changing to version 2.10
Change-Id: I4e17161abd7d8c390821a5e19a102a45de01a2ba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155442
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-07-22 14:22:39 +00:00
William Hesse c54f38f2c1 [build] Change flutter-engine patch for async to use updated Dart SDK hash
Change-Id: Ied50a96ba3bf7c1d9ca7bdf06f793822cb86167d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154011
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-07-14 09:32:07 +00:00
Jacob MacDonald 05c7980fff update async in the sdk, add flutter engine patch
Change-Id: I17e088df3024992c4ea19a6dc2bcd63ba0dbb11b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153620
Reviewed-by: William Hesse <whesse@google.com>
Auto-Submit: Jake Macdonald <jakemac@google.com>
2020-07-14 08:40:34 +00:00
Jacob MacDonald 51ac86c753 update collection dep, and add flutter-engine patch
Change-Id: I5e8b0eb2b161b71734feebb6e13d039082ad6bc5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152860
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
2020-07-01 20:50:38 +00:00
Jacob MacDonald 25d8ae53c1 add fixnum deps patch for flutter hhh bots
Change-Id: Ib028d99923c52d06a7b43f223d3abfe469820b20
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152611
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
2020-06-26 19:16:10 +00:00
Ryan Macnak df5036eb6e [vm] Require only an isolate group, not an isolate, in Dart_Delete[Weak]PersistentHandle.
Remove the now-misleading isolate parameter of Dart_DeleteWeakPersistentHandle.

Bug: https://github.com/dart-lang/sdk/issues/40836
Change-Id: I784f1ecf564484b59f60ebef53ddb975aff1bd23
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138015
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-03-04 18:56:16 +00:00
Lasse R.H. Nielsen 3f28a3496c Change SDK to use package_config v1.9 (unreleased).
Change-Id: I405ac5e59d0b330c6fc6c63fab48d2d303734e59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136123
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2020-02-18 10:56:59 +00:00
Vyacheslav Egorov c096f9d6e5 [gardening] Fix 3H patching logic with respect to newly added dependencies.
Dependency might reside in path with one name but come from a repository
with completely different name.

Change-Id: Ic96ba2d5e32a8a5eeb3fdc44cae732ae35eac22d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135643
Reviewed-by: Jens Johansen <jensj@google.com>
2020-02-13 09:05:36 +00:00
Jens Johansen 0a8484ca20 [CFE/VM] Add patch after 'Use package config v2'
After 81d4ac07d4 ([CFE] Use package config v2)
landed the HHH bot hasn't been able to compile.
Hopefully this CL fixes that issue.

Change-Id: Ia3bb983f5a2ccf2539e59452b58058970bb6af1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135641
Reviewed-by: Jens Johansen <jensj@google.com>
2020-02-13 08:19:57 +00:00
Ryan Macnak 635c47b1c9 Reland "Update BoringSSL to 4dfd5af70191b068aebe567b8e29ce108cee85ce."
This reverts commit 7eeaeade6b.

Change-Id: I6e2d9f5b3f9a43b70db321d15c81e568857f303e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122488
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-10-23 18:08:16 +00:00
Ryan Macnak 6a65ea9cad [vm] Remove shared snapshot and reused instructions features.
Shared snapshots have been disused by Fuchsia deduping.
Reused instruction has been disused by Flutter code push.

Change-Id: Ia4cb570935c233a9365d521ca04a477c5550ef83
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122421
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-10-22 19:02:26 +00:00
Alexander Aprelev 9293e26fc9 [gardening] Fix flutter hhh patch.
This is follow-up to https://dart-review.googlesource.com/c/sdk/+/120321.

Change-Id: If05df96d68ddecc1d4a6acc64e376ee720755fdd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120632
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-10-08 06:21:40 +00:00
jonahwilliams 13fbf569f6 [flutter] split frontend_server from vm package
To support JavaScript compilation, the frontend_server will require a dependency on the dev_compiler. To avoid conflating this with the vm specific functionality, the frontend server will be split from its current location.

This change will require a small corresponding update in flutter/engine, documented in the patches directory
Change-Id: I47923765546f7f6fa43e36ef38f8f466d3a7b2fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120321
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-10-08 05:32:59 +00:00
Jens Johansen 2a94546f94 Fix flutter-frontend bot and future problems in flutter HHH bot
Two things before this CL was wrong:
* The script didn't apply paches
* The patch we needed to apply wasn't applied because a dart roll in the
  engine was done basically at the same time that the change requiring
  the patch was landed. The dart-roll did not include it, but the change
  applied the patch the the before-dart-roll-dart-version.

This CL fixes it by applying patches in the flutter-frontend script,
and copying the patch to apply to both dart-revisions.

Change-Id: If3187090778c59cf0ebdf7ab4858189c6b8904b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117941
Reviewed-by: Jens Johansen <jensj@google.com>
2019-09-19 06:59:21 +00:00
asiva 7c1821c4aa [NNBD/VM] Restructure VM patch files for the NNBD dart sdk split
- Move all VM patch files from the lib directory to
sdk/lib/_internal/vm/lib
- Move all VM patch files from the bin directory to
sdk/lib/_internal/vm/bin
- Fixed paths for above patch files in libraries.yaml file.
- Created copies of these patch files in sdk_nnbd directory
- Cleaned up *.gni files by removing the unused dart patch files lists.

Change-Id: I3109d22f3b729a073a6b40175a0d29162a455830
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117685
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2019-09-19 03:57:30 +00:00
Jens Johansen fc16f8aa58 Apply flutter-engine patch to dump dart_package_config_tag version
Change-Id: Ie877cb35e9784804a4d7a39ef7bc95a6bb7bcf06
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113823
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-08-20 14:22:40 +00:00
Alexander Aprelev 00ec685089 [gardening] Fix flutter hhh apply.sh so it clones dependencies added in patch files
Change-Id: Ib63d2cbaececda336c805651a38b88bc086117b9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111343
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-07-30 17:43:35 +00:00
Alexander Aprelev 6e48c00c46 [gardening] Fix hhh patch apply.sh so it skips newly added, non-existent dependency folders
Change-Id: Ia2e4639294b5cfb0a33c672c4eb8beea16ce677f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111121
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-07-30 17:12:49 +00:00
Alexander Aprelev 0b9668d3c5 [gardening] Follow-up to 038250d99e - fix patch file
Change-Id: Idd6736f578034d4ed60e673aba8b9f75c73f7e56
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111306
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-07-30 16:47:58 +00:00
Alexander Aprelev 038250d99e [gardening] Fix flutter hhh with patch for https://github.com/dart-lang/sdk/commit/5d5a0c0164fa013ebcfa7a14bdfce59d8e11f043
Change-Id: I332c00726ea58b045b2ded59a0c500b11e41c8f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111304
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-07-30 16:11:55 +00:00
Martin Kustermann e3b3c6fa28 [vm] Rename 3head flutter patch after re-land of concurrency change
Change-Id: Ie36a2a9f33d9f39e8b8ef14197c9f02476f3e031
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108402
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-07-09 09:16:39 +00:00
Alexander Aprelev 0425997b31 Second attempt to reland "[vm/concurrency] Introduce concept of Isolate Groups"
This reverts commit 3d14b75f97.

An Isolate Group (IG) is a collection of isolates which were spawned from the
same source. This allows the VM to:

  * have a guarantee that all isolates within one IG can safely exchange
    structured objects (currently we rely on embedder for this
    guarantee)

  * hot-reload all isolates together (currently we only reload one
    isolate, leaving same-source isolates in inconsistent state)

  * make a shared heap for all isolates from the same IG, which paves
    the way for faster communication and sharing of immutable objects.

All isolates within one IG will share the same IsolateGroupSource.

**Embedder changes**

This change makes breaking embedder API changes to support this new
concept of Isolate Groups: The existing isolate lifecycle callbacks
given to Dart_Initialize will become Isolate Group lifecycle callbacks.
A new callback `initialize_isolate` callback will be added which can
initialize a new isolate within an existing IG.

Existing embedders can be updated by performing the following renames

  Dart_CreateIsolate -> Dart_CreateIsolateGroup
  Dart_IsolateCreateCallback -> Dart_IsolateGroupCreateCallback
  Dart_IsolateCleanupCallback -> Dart_IsolateGroupShutdownCallback
  Dart_CreateIsolateFromKernel -> Dart_CreateIsolateGroupFromKernel
  Dart_CurrentIsolateData -> Dart_CurrentIsolateGroupData
  Dart_IsolateData -> Dart_IsolateGroupData
  Dart_GetNativeIsolateData -> Dart_GetNativeIsolateGroupData
  Dart_InitializeParams.create -> Dart_InitializeParams.create_group
  Dart_InitializeParams.cleanup -> Dart_InitializeParams.shutdown_group
  Dart_InitializeParams.shutdown -> Dart_InitializeParams.shutdown_isolate

By default `Isolate.spawn` will cause the creation of a new IG.

Though an embedder can opt-into supporting multiple isolates within one IG by
providing a callback to the newly added `Dart_InitializeParams.initialize_isolate`.
The responsibility of this new callback is to initialize an existing
isolate (which was setup by re-using source code from the spawning
isolate - i.e. the one which used `Isolate.spawn`) by setting native
resolvers, initializing global state, etc.

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

Original review: https://dart-review.googlesource.com/c/sdk/+/105241

Difference to original review:

  * Give each isolate it's own [Loader] (for now)
  * Sort classes during initialization for spawned isolates if app-jit is used (to match main isolate)
  * Fix IsolateData memory leak if isolate startup fails

Difference to first reland(Patchset 2):

  * Fix typo where memory was freed twice.

Change-Id: Ib1c83fe83b629cd50ae6af90ee99fdd44da882d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108367
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-07-08 23:49:05 +00:00
Vyacheslav Egorov 372bcae536 [gardening] Fix 3xHEAD Flutter build after revert
Change-Id: I2ec9d048465d641b33554e15fc9a76fde4abf848
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108141
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2019-07-03 16:23:09 +00:00
Vyacheslav Egorov 3d14b75f97 Revert "Reland "[vm/concurrency] Introduce concept of Isolate Groups""
This reverts commit 67ab3be10d.

Reason for revert: Causes non-deterministic failures on front-end bots on Windows with "Isolate creation failed" error. See https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket.appspot.com/8909292129328681248/+/steps/unit_tests/0/stdout

Original change's description:
> Reland "[vm/concurrency] Introduce concept of Isolate Groups"
> 
> An Isolate Group (IG) is a collection of isolates which were spawned from the
> same source. This allows the VM to:
> 
>   * have a guarantee that all isolates within one IG can safely exchange
>     structured objects (currently we rely on embedder for this
>     guarantee)
> 
>   * hot-reload all isolates together (currently we only reload one
>     isolate, leaving same-source isolates in inconsistent state)
> 
>   * make a shared heap for all isolates from the same IG, which paves
>     the way for faster communication and sharing of immutable objects.
> 
> All isolates within one IG will share the same IsolateGroupSource.
> 
> **Embedder changes**
> 
> This change makes breaking embedder API changes to support this new
> concept of Isolate Groups: The existing isolate lifecycle callbacks
> given to Dart_Initialize will become Isolate Group lifecycle callbacks.
> A new callback `initialize_isolate` callback will be added which can
> initialize a new isolate within an existing IG.
> 
> Existing embedders can be updated by performing the following renames
> 
>   Dart_CreateIsolate -> Dart_CreateIsolateGroup
>   Dart_IsolateCreateCallback -> Dart_IsolateGroupCreateCallback
>   Dart_IsolateCleanupCallback -> Dart_IsolateGroupShutdownCallback
>   Dart_CreateIsolateFromKernel -> Dart_CreateIsolateGroupFromKernel
>   Dart_CurrentIsolateData -> Dart_CurrentIsolateGroupData
>   Dart_IsolateData -> Dart_IsolateGroupData
>   Dart_GetNativeIsolateData -> Dart_GetNativeIsolateGroupData
>   Dart_InitializeParams.create -> Dart_InitializeParams.create_group
>   Dart_InitializeParams.cleanup -> Dart_InitializeParams.shutdown_group
>   Dart_InitializeParams.shutdown -> Dart_InitializeParams.shutdown_isolate
> 
> By default `Isolate.spawn` will cause the creation of a new IG.
> 
> Though an embedder can opt-into supporting multiple isolates within one IG by
> providing a callback to the newly added `Dart_InitializeParams.initialize_isolate`.
> The responsibility of this new callback is to initialize an existing
> isolate (which was setup by re-using source code from the spawning
> isolate - i.e. the one which used `Isolate.spawn`) by setting native
> resolvers, initializing global state, etc.
> 
> Issue https://github.com/dart-lang/sdk/issues/36648
> Issue https://github.com/dart-lang/sdk/issues/36097
> 
> Original review: https://dart-review.googlesource.com/c/sdk/+/105241
> 
> Difference to original review:
> 
>   * Give each isolate it's own [Loader] (for now)
>   * Sort classes during initialization for spawned isolates if app-jit is used (to match main isolate)
>   * Fix IsolateData memory leak if isolate startup fails
> 
> Change-Id: I98277d3d10fe275aa9b8a16b6bdd446bbea0b100
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107506
> Commit-Queue: Martin Kustermann <kustermann@google.com>
> Reviewed-by: Ryan Macnak <rmacnak@google.com>

TBR=kustermann@google.com,aam@google.com,rmacnak@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: Ia4e0f4f9fc317499d3570a371c5bdf9aed799e77
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108101
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2019-07-03 12:19:15 +00:00
Martin Kustermann 67ab3be10d Reland "[vm/concurrency] Introduce concept of Isolate Groups"
An Isolate Group (IG) is a collection of isolates which were spawned from the
same source. This allows the VM to:

  * have a guarantee that all isolates within one IG can safely exchange
    structured objects (currently we rely on embedder for this
    guarantee)

  * hot-reload all isolates together (currently we only reload one
    isolate, leaving same-source isolates in inconsistent state)

  * make a shared heap for all isolates from the same IG, which paves
    the way for faster communication and sharing of immutable objects.

All isolates within one IG will share the same IsolateGroupSource.

**Embedder changes**

This change makes breaking embedder API changes to support this new
concept of Isolate Groups: The existing isolate lifecycle callbacks
given to Dart_Initialize will become Isolate Group lifecycle callbacks.
A new callback `initialize_isolate` callback will be added which can
initialize a new isolate within an existing IG.

Existing embedders can be updated by performing the following renames

  Dart_CreateIsolate -> Dart_CreateIsolateGroup
  Dart_IsolateCreateCallback -> Dart_IsolateGroupCreateCallback
  Dart_IsolateCleanupCallback -> Dart_IsolateGroupShutdownCallback
  Dart_CreateIsolateFromKernel -> Dart_CreateIsolateGroupFromKernel
  Dart_CurrentIsolateData -> Dart_CurrentIsolateGroupData
  Dart_IsolateData -> Dart_IsolateGroupData
  Dart_GetNativeIsolateData -> Dart_GetNativeIsolateGroupData
  Dart_InitializeParams.create -> Dart_InitializeParams.create_group
  Dart_InitializeParams.cleanup -> Dart_InitializeParams.shutdown_group
  Dart_InitializeParams.shutdown -> Dart_InitializeParams.shutdown_isolate

By default `Isolate.spawn` will cause the creation of a new IG.

Though an embedder can opt-into supporting multiple isolates within one IG by
providing a callback to the newly added `Dart_InitializeParams.initialize_isolate`.
The responsibility of this new callback is to initialize an existing
isolate (which was setup by re-using source code from the spawning
isolate - i.e. the one which used `Isolate.spawn`) by setting native
resolvers, initializing global state, etc.

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

Original review: https://dart-review.googlesource.com/c/sdk/+/105241

Difference to original review:

  * Give each isolate it's own [Loader] (for now)
  * Sort classes during initialization for spawned isolates if app-jit is used (to match main isolate)
  * Fix IsolateData memory leak if isolate startup fails

Change-Id: I98277d3d10fe275aa9b8a16b6bdd446bbea0b100
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107506
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-06-29 18:45:11 +00:00
Martin Kustermann b2171f16f1 Revert "[vm/concurrency] Introduce concept of Isolate Groups"
This reverts commit b75057b687.

Reason for revert: Caused some failures on app-jit builders

Original change's description:
> [vm/concurrency] Introduce concept of Isolate Groups
> 
> An Isolate Group (IG) is a collection of isolates which were spawned from the
> same source. This allows the VM to:
> 
>   * have a guarantee that all isolates within one IG can safely exchange
>     structured objects (currently we rely on embedder for this
>     guarantee)
> 
>   * hot-reload all isolates together (currently we only reload one
>     isolate, leaving same-source isolates in inconsistent state)
> 
>   * make a shared heap for all isolates from the same IG, which paves
>     the way for faster communication and sharing of immutable objects.
> 
> All isolates within one IG will share the same IsolateGroupSource.
> 
> **Embedder changes**
> 
> This change makes breaking embedder API changes to support this new
> concept of Isolate Groups: The existing isolate lifecycle callbacks
> given to Dart_Initialize will become Isolate Group lifecycle callbacks.
> A new callback `initialize_isolate` callback will be added which can
> initialize a new isolate within an existing IG.
> 
> Existing embedders can be updated by performing the following renames
> 
>   Dart_CreateIsolate -> Dart_CreateIsolateGroup
>   Dart_IsolateCreateCallback -> Dart_IsolateGroupCreateCallback
>   Dart_IsolateCleanupCallback -> Dart_IsolateGroupShutdownCallback
>   Dart_CreateIsolateFromKernel -> Dart_CreateIsolateGroupFromKernel
>   Dart_CurrentIsolateData -> Dart_CurrentIsolateGroupData
>   Dart_IsolateData -> Dart_IsolateGroupData
>   Dart_GetNativeIsolateData -> Dart_GetNativeIsolateGroupData
>   Dart_InitializeParams.create -> Dart_InitializeParams.create_group
>   Dart_InitializeParams.cleanup -> Dart_InitializeParams.shutdown_group
>   Dart_InitializeParams.shutdown -> Dart_InitializeParams.shutdown_isolate
> 
> By default `Isolate.spawn` will cause the creation of a new IG.
> 
> Though an embedder can opt-into supporting multiple isolates within one IG by
> providing a callback to the newly added `Dart_InitializeParams.initialize_isolate`.
> The responsibility of this new callback is to initialize an existing
> isolate (which was setup by re-using source code from the spawning
> isolate - i.e. the one which used `Isolate.spawn`) by setting native
> resolvers, initializing global state, etc.
> 
> Issue https://github.com/dart-lang/sdk/issues/36648
> Issue https://github.com/dart-lang/sdk/issues/36097
> 
> Change-Id: I82437ac017ca33018d45e02f353b0672db155f6a
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105241
> Commit-Queue: Martin Kustermann <kustermann@google.com>
> Reviewed-by: Ryan Macnak <rmacnak@google.com>
> Reviewed-by: Alexander Aprelev <aam@google.com>

TBR=kustermann@google.com,aam@google.com,rmacnak@google.com

Change-Id: Ibd90992a01d61188f27b445c21532e0c46f996ea
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107405
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2019-06-26 16:04:27 +00:00
Martin Kustermann b75057b687 [vm/concurrency] Introduce concept of Isolate Groups
An Isolate Group (IG) is a collection of isolates which were spawned from the
same source. This allows the VM to:

  * have a guarantee that all isolates within one IG can safely exchange
    structured objects (currently we rely on embedder for this
    guarantee)

  * hot-reload all isolates together (currently we only reload one
    isolate, leaving same-source isolates in inconsistent state)

  * make a shared heap for all isolates from the same IG, which paves
    the way for faster communication and sharing of immutable objects.

All isolates within one IG will share the same IsolateGroupSource.

**Embedder changes**

This change makes breaking embedder API changes to support this new
concept of Isolate Groups: The existing isolate lifecycle callbacks
given to Dart_Initialize will become Isolate Group lifecycle callbacks.
A new callback `initialize_isolate` callback will be added which can
initialize a new isolate within an existing IG.

Existing embedders can be updated by performing the following renames

  Dart_CreateIsolate -> Dart_CreateIsolateGroup
  Dart_IsolateCreateCallback -> Dart_IsolateGroupCreateCallback
  Dart_IsolateCleanupCallback -> Dart_IsolateGroupShutdownCallback
  Dart_CreateIsolateFromKernel -> Dart_CreateIsolateGroupFromKernel
  Dart_CurrentIsolateData -> Dart_CurrentIsolateGroupData
  Dart_IsolateData -> Dart_IsolateGroupData
  Dart_GetNativeIsolateData -> Dart_GetNativeIsolateGroupData
  Dart_InitializeParams.create -> Dart_InitializeParams.create_group
  Dart_InitializeParams.cleanup -> Dart_InitializeParams.shutdown_group
  Dart_InitializeParams.shutdown -> Dart_InitializeParams.shutdown_isolate

By default `Isolate.spawn` will cause the creation of a new IG.

Though an embedder can opt-into supporting multiple isolates within one IG by
providing a callback to the newly added `Dart_InitializeParams.initialize_isolate`.
The responsibility of this new callback is to initialize an existing
isolate (which was setup by re-using source code from the spawning
isolate - i.e. the one which used `Isolate.spawn`) by setting native
resolvers, initializing global state, etc.

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

Change-Id: I82437ac017ca33018d45e02f353b0672db155f6a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105241
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-06-26 11:34:48 +00:00
Alexander Aprelev 436c8d8a79 [gardening] Remove flutter patch as the original cl was indeed identified as a culprit and will be reverted.
Change-Id: I79788eb6e42ea14e7ed0d26acd9e70d07485fd80
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104181
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-05-29 23:44:01 +00:00
Alexander Aprelev ebe6146781 [gardening] Fix patch name so it matches dart sdk hash.
Change-Id: I51852a003b43b127c0754d5a730c8deac8663514
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104163
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-05-29 22:16:34 +00:00
Alexander Aprelev 19a8886a8a [gardening] Attempt to troubleshoot failing hhh buildbot.
Create a patch that reverts https://github.com/flutter/engine/pull/9085 from which redness started.

Change-Id: Id975eb3023cf6c2634a81e4e81eab30e21851581
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104120
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-05-29 20:37:40 +00:00
Vyacheslav Egorov 00ed6b21fb [gardening] Update 3xHEAD apply script.
It is currently failing because it is trying to cd in non-existent directory.

Change-Id: I29f3947db6aa0e34d747309b310da565dc0c010d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103137
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Auto-Submit: Vyacheslav Egorov <vegorov@google.com>
2019-05-21 14:35:32 +00:00
Vyacheslav Egorov b08397c658 [gardening] Fix Flutter 3xHEAD build
Change-Id: Ie8fb3abe542db6432bd4e862010c714cd7126c8b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103135
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Auto-Submit: Vyacheslav Egorov <vegorov@google.com>
2019-05-21 12:23:22 +00:00
Vyacheslav Egorov f4bc1c12e7 [gardening] Update 3xHEAD patch after DEPS update
Change-Id: Ic1ca7d3fa208b7ed7b2ea423a38affa339608694
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98853
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2019-04-09 12:44:18 +00:00
Alexander Aprelev 2ebdb0890f [gardening] Update flutter engine patch as DART_CHECK_VALID change is no longer needed.
Change-Id: If1c8f42d8c27c9fa38cb2863d1a411b9c519838b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98605
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-04-03 17:49:20 +00:00
Alexander Aprelev 1dd72d4309 Revert "[vm/build] Expose is_release/is_profile so they are available in third_party gn scripts." and different fix.
Patchset 1 reverts commit f3aaf8a770 as it will
present problems in other embedders which will have to deal with is_profile argument.

Patchset 2 fixes the build by switching from is_product to dart_runtime_mode

Change-Id: I167e6f531af3b0fb0f3e006b074ebdf1b69f3fe5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98601
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2019-04-03 17:06:47 +00:00
Alexander Aprelev efa9b9da99 [gardening] Patch flutter engine to fix flutter hhh build.
Change-Id: I38500c3f234e7fb9ccbb7fc0ddefa6fcdfbf676b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98526
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-04-03 04:57:55 +00:00
Alexander Aprelev 3782887c37 [gardening] Update flutter glfw-disabling patch
Change-Id: Id6b242751fe8ef8fec3fe3d1de89363da4550b6e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98452
Reviewed-by: Alexander Aprelev <aam@google.com>
2019-04-02 20:01:21 +00:00