65 Commits

Author SHA1 Message Date
Ben Konyi
0a2869e5c3
Added support for authentication codes for the VM service (#8527) 2019-04-10 14:38:58 -07:00
Chinmay Garde
39e1d00f39
Remove redundant specification of the |flutter| namespace in the engine. (#8523) 2019-04-09 17:50:06 -07:00
Chinmay Garde
eec74e5c92
Rename the blink namespace to flutter. (#8517)
Some components in the Flutter engine were derived from the forked blink codebase. While the forked components have either been removed or rewritten, the use of the blink namespace has mostly (and inconsistently) remained. This renames the blink namesapce to flutter for consistency. There are no functional changes in this patch.
2019-04-09 12:44:42 -07:00
Chinmay Garde
424045c3f2
Enable shutting down all root isolates in a VM. (#8457)
This reverts commit 800ea0a40397d53311715e0de94f0340195bfcea.
2019-04-05 13:34:40 -07:00
Chinmay Garde
800ea0a403
Revert "Enable shutting down all root isolates in a VM. (#8402)" (#8431)
This reverts commit b59c4436ce9fb8aa09bad6eb5ca729350a3ab272.
2019-04-03 17:08:56 -07:00
Chinmay Garde
b59c4436ce
Enable shutting down all root isolates in a VM. (#8402) 2019-04-03 15:44:29 -07:00
Chinmay Garde
7e38b0aa23
Revert "Revert "Separate the data required to bootstrap the VM into its own class. (#8397)" (#8406)" (#8414)
This reverts commit f7b4903d7c9913447af3aaebc4308d1a1e2a4dde.
2019-04-03 13:38:12 -07:00
Zachary Anderson
f7b4903d7c
Revert "Separate the data required to bootstrap the VM into its own class. (#8397)" (#8406)
This reverts commit c991647404f8117dab2ca4ed49aa3ba48a634240.
2019-04-02 09:12:56 -07:00
Chinmay Garde
c991647404
Separate the data required to bootstrap the VM into its own class. (#8397)
When attempting to shutdown and subsequently restart the VM, having the
VM own this data introduces lifecycle issues due to circular references.
2019-04-01 14:58:05 -07:00
Chinmay Garde
131cc625a1
Allow native entrypoint registration for runtime unittests. (#8379) 2019-03-29 17:53:49 -07:00
Ben Konyi
f521df3839
Fixed service isolate not being initialized correctly due to bad name (#8251)
* Fixed service isolate not being initialized correctly due to bad name

The name for the service isolate was being set to the empty string,
causing the microtask loop to not be run on the service isolate leading
to the service hanging on the first 'await'. See
https://dart-review.googlesource.com/c/sdk/+/97107 for revert due to
this issue.

* Removed unnecessary params from DartCreateAndStartServiceIsolate
2019-03-26 14:36:51 -07:00
Dan Field
572fea361c
Revert "Shut down and restart the Dart VM as needed. (#7832)" (#7877)
This reverts commit 0d6ff1669c4a765774b91e37353b4392408d112a.
2019-02-19 16:14:18 -08:00
Chinmay Garde
0d6ff1669c
Shut down and restart the Dart VM as needed. (#7832)
The shell was already designed to cleanly shut down the VM but it couldnt
earlier as |Dart_Initialize| could never be called after a |Dart_Cleanup|. This
meant that shutting down an engine instance could not shut down the VM to save
memory because newly created engines in the process after that point couldn't
restart the VM. There can only be one VM running in a process at a time.

This patch separate the previous DartVM object into one that references a
running instance of the DartVM and a set of immutable dependencies that
components can reference even as the VM is shutting down.

Unit tests have been added to assert that non-overlapping engine launches use
difference VM instances.
2019-02-15 14:16:17 -08:00
Chinmay Garde
23b7e29f04
Re-land "Wrap the user entrypoint function in a zone with native exception callback. (#7512)" (#7551)
This reverts commit 4c135c298a8173bb9affafc1f92120a0158c1e6e and applies relevant fixes.
2019-01-24 13:42:51 -08:00
Vyacheslav Egorov
4c135c298a
Revert "Wrap the user entrypoint function in a zone with native exception callback. (#7512)" (#7522)
This reverts commit 25559ed0779604d56c47c5d2341ffd16b137cd10.

Reason for revert: broken in AOT mode.

@pragma('vm:entry-point') placed on a function only instructs
the compiler to retain the function itself, but does not tell
compiler to generate and retain tear-off for this function.

In this PR _runMainZoned was marked as an entry-point but C++
code was trying to tear it off and use a closure, instead of
invoking it directly, which is not supported.
2019-01-17 11:49:20 +01:00
Chinmay Garde
25559ed077
Wrap the user entrypoint function in a zone with native exception callback. (#7512) 2019-01-16 16:08:51 -08:00
Alexander Markov
840164b2bb
Cleanup Dart sticky errors API and roll tonic to 4634b29a24ccfc0fcfafcc8196ef30131185ad88 (#7492)
This PR prepares Flutter engine for the cleanup of Dart API Dart_GetStickyError/Dart_SetStickyError/Dart_HasStickyError.
2019-01-15 15:26:20 -08:00
Dan Field
43fa420b04
Make IOManager own resource context (#7272)
* Make IOManager own resource context
2019-01-14 13:46:38 -08:00
Alexander Aprelev
14ee957fb4
Set up secondary isolates with all kernel buffers rather than just one buffer. (#6832)
* Set up secondary isolates with all kernel buffers rather than just one buffer.
* Capture copy of the list
* Make sure child_isolate_preparer_ is initialized only once
2018-11-14 09:50:42 -08:00
Michael Goderbauer
09ef73ff6e
Fix code smells reported by chrome's clang plugin (#6833) 2018-11-12 19:59:29 -08:00
Michael Goderbauer
70a1106b50
Unify copyright lines (#6757) 2018-11-07 12:24:35 -08:00
Chinmay Garde
ba8f6aa71c
Handle Windows headers defining ERROR to 0 in log levels. (#6677) 2018-10-26 16:47:14 -07:00
Chinmay Garde
20c805c973
Ensure that Scene::toImage renders texture backed images. (#6636)
TL;DR: Offscreen surface is created on the render thread and device to host
transfer performed there before task completion on the UI thread.

While attempting to snapshot layer trees, the engine was attempting to use the
IO thread context. The reasoning was that this would be safe to do because any
textures uploaded to the GPU as a result of async texture upload would have
originated from this context and hence the handles would be valid in either
context. As it turns out, while the handles are valid, Skia does not support
this use-case because cross-context images transfer ownership of the image from
one context to another. So, when we made the hop from the UI thread to the IO
thread (for snapshotting), if either the UI or GPU threads released the last
reference to the texture backed image, the image would be invalid. This led to
such images being absent from the layer tree snapshot.

Simply referencing the images as they are being used on the IO thread is not
sufficient because accessing images on one context after their ownership has
already been transferred to another is not safe behavior (from Skia's
perspective, the handles are still valid in the sharegroup).

To work around these issues, it was decided that an offscreen render target
would be created on the render thread. The color attachment of this render
target could then be transferred as a cross context image to the IO thread for
the device to host tranfer.

Again, this is currently not quite possible because the only way to create
cross context images is from encoded data. Till Skia exposes the functionality
to create cross-context images from textures in one context, we do a device to
host transfer on the GPU thread. The side effect of this is that this is now
part of the frame workload (image compression, which dominate the wall time,
is still done of the IO thread).

A minor side effect of this patch is that the GPU latch needs to be waited on
before the UI thread tasks can be completed before shell initialization.
2018-10-22 17:40:24 -07:00
Chinmay Garde
8cc49cac3b
Ensure that the isolate shutdown callback occurs in an isolate scope. (#6572) 2018-10-17 13:37:18 -07:00
Jason Simmons
69ae5694de
Do not register UI-related native functions in secondary isolates (#6401)
Fixes https://github.com/flutter/flutter/issues/22478
2018-10-03 11:36:24 -07:00
Siva
2a22019a8d
Roll Dart to version 7f9a9feae181573cca609fd1b8760d7992176699 (#6366)
* Roll Dart to version 7f9a9feae181573cca609fd1b8760d7992176699

This contains the following commits:

7f9a9feae1 [vm, service] Rename 'invoke' parameter 'receiverId' to 'targetId'.
fa3d8fa567 Don't check for the file presence in transitive sets when we are just creating it.
6f3de544ed [ VM / Hot Reload ] Fixed tests which were crashing periodically. Fixes issue #34599
e811b29788 [vm, gc] Restore growth policy when concurrent marking is not enabled.
0518b334ba Address comments
7c46a28505 Update convert class to mixin assist to remove "abstract"
06744c68b2 Pull reporting for unimplemented inherited members, and declared abstract members from ErrorVerifier.
45c7e4365c Update dartfix to apply changes to file rather than displaying them
9ad59bada2 [dartdevc] fix #34358, int to double conversion for literals
edddc0ba58 Generate source changes for converting class to mixin
2742a5d558 [Gardening] Update test status
d9de98e164 [VM] Delete some dead code in gen_snapshot.cc
51b8fc7bb0 AwaitExpression.precedence => 14
2390b3605f Create a package for shared diagnostics
629d76eb46 Simple dartfix that suggests class to be converted to mixins
8a2cfd8613 Implement InheritanceManager2.getMember() and use it in some places.
71eaf3209b Fix broken 'fasta testing sdk'.
d79f7493b3 Test that type parameters of typedefs are properly bounds checked.
b36f4fffc4 Allow multiple analyzer codes
82b3501c3c Fix supermixin handling in dart2js
c9b05d3f1f Allow super calls in mixin declarations
225b8d5075 Specialize Object properties in static type computation
4a58112a7c Move kernel_impact.dart from ssa/ to kernel/
aaf3b709e6 [release] Prepare changelog for 2.1.0-dev.6.0
e9c949372e Remove unused parts of J/K*Env classes
4659cb9480 Fully split JsToElementMap and KernelToElementMap
a617700b17 Removes code that has become redundant since 98a9adf.
7c54fab8a5 Adjust status files.
76470aca47 [VM] use coresnapshot when initializing an Isolate

* Address review comments.
2018-09-27 16:55:44 -07:00
Ryan Macnak
60bb5da33c
Reapply "Some cleanups enabled by removing support for Dart 1" (#6250)
Following fixes in dart-lang/sdk@91cbb57cd5
2018-09-14 09:36:13 -07:00
Michael Goderbauer
6f459e2f10
Revert "Reapply "Some cleanups enabled by removing support for Dart 1" (#6216)" (#6232)
This reverts commit e3133e0e3f7cbbd57fa930c11f3640561d691eba.
2018-09-12 12:07:20 +02:00
Ryan Macnak
e3133e0e3f
Reapply "Some cleanups enabled by removing support for Dart 1." (#6216)
- Add missing Dart 2 flags to gen_snapshot invocation.
 - Disable brittle service test.
2018-09-10 17:03:54 -07:00
Ryan Macnak
bf96dbed38
Revert "Some cleanups enabled by removing support for Dart. (#5621)" (#6205)
This reverts commit 4c2448d1591a5fab033de3885ad34d1fdf5474f1.
2018-09-07 17:39:51 -07:00
Ryan Macnak
4c2448d159
Some cleanups enabled by removing support for Dart. (#5621)
- Switch core snapshot to Dart 2 and remove support for loading platform.dill.
 - Remove support for loading script snapshots.
 - Remove support for loading source.
 - Remove settings and fix names to reflect the above.
 - Remove support for loading the service isolate from source.
2018-09-07 15:44:46 -07:00
Jason Simmons
9d471063cb
Do not log unwind errors during isolate shutdown (#6008) 2018-08-13 16:31:54 -07:00
Siva
d90223fadf
Roll Dart to version 1be785ae2ddb1754a184cd638ab719e94d86b4e9 (#5985)
* Roll Dart to version 1be785ae2ddb1754a184cd638ab719e94d86b4e9

This rolls includes the following changes :

1be785ae2d Clean up some dead code
7b9fb893d2 [vm] Add a service method for 'invoke' as the dual to 'eval'.
099f1504fa Mention -O flag in CHANGELOG
79f69abace [vm/compiler] breakage fix: add missing break
96a1e9985f Fix the pkg bot
7818db20a7 Add analysis hint for invalid use of @visibleForTemplate code.
71d96019d1 [vm/compiler] Introduce 64-bit NEGATE - all archs.
5013a2ccc4 Remove spurious line.
ef2f777625 Mark some analyzer tests as being flaky
cf560fe17b Fix a couple of the tests failing on the analyzer with fasta parser bot
63c11693e6 [gardening] Fix language_2/type_variable_promotion_test.
d0f28884ff [VM] Fix expression evaluation implementation: Never register temporary/unused classes with the system.
e2a1807fc2 [gardening] Update status for io/compile_all_test in PRODUCT AOT mode
f7ff739448 Insert date of 2.0.0 release in Changelog
bcabad6014 [vm] Fix SIMARM64 build on Windows.
af02ccae83 [infra] Fix filesets for new vm-kernel-precomp builders
8e2f28e264 Update homebrew to drop the @2 tab and fix for 2.0
ba119d7292 [VM] Remove "$compiler == precompiler" sections from language_2_precompiler.status
f3a2c0e28f [release] Prepare changelog for 2.1.0-dev.0.0
88cba7d860 [vm/kernel/bytecode] Fix arguments descriptor for List._fromLiteral call in bytecode
bd45ec0c4b [vm, gc] Refactor PageSpace::CollectGarbage to ensure the safepoint and task count remain well-scoped even with early exits.
8195fd8c64 Repair dart2js/string_interpolation_test
a0b335ac6c Try no implicit casts in pkg/analyzer_cli.
3d25d3761b Update pub - leave packages directories alone
327db5e9ab [vm] Fix kernel_isolate use_field_guard flag for kbc
a1ca88f554 Resolve invocation arguments to parameters.

* Address source format error.
2018-08-09 16:24:16 -07:00
Chinmay Garde
9f8285ac6c
Remove all dependencies on Garnet. (#5869) 2018-07-26 12:49:34 -07:00
Chinmay Garde
33a4aef1d1
Fix build break caused by https://github.com/flutter/engine/pull/5830 (#5831) 2018-07-23 13:25:17 -07:00
Ryan Macnak
244ebd660c
Reapply "Fix Dart 2 reload when running from a snapshot instead of platform.dill." (#5830)
Without this flag, the VM will attempt to interpret a kernel file as source code.

Affects Fuchsia (FL-71) and code-push.
2018-07-23 12:28:17 -07:00
Jason Simmons
0bad812c72
Migrate to a standalone Tonic repository separated from Topaz (#5817) 2018-07-23 11:49:35 -07:00
Stanislav Baranov
5d0e13a45b
Fix starting isolate directly from CoreJIT snapshot. (#5798) 2018-07-19 08:55:04 -07:00
Ryan Macnak
e8d172cf30
Revert "Fix Dart 2 reload when running from a snapshot instead of platform.dill. (#5792)" (#5795)
This reverts commit 624cf7e25a2938c89975864fc2559ebcd839876e.
2018-07-18 13:18:05 -07:00
Ryan Macnak
624cf7e25a
Fix Dart 2 reload when running from a snapshot instead of platform.dill. (#5792)
Without this flag, the VM will attempt to interpret a kernel file as source code.

Affects Fuchsia (FL-71) and code-push.
2018-07-18 12:07:21 -07:00
Ben Konyi
672e587e74
Background Execution Implementation for iOS (#5539) 2018-07-13 10:55:24 -07:00
Ryan Macnak
ab1b0db966
No-copy kernel loading. (#5580)
Required by https://dart-review.googlesource.com/c/sdk/+/60202
2018-06-21 15:44:04 -07:00
Ben Konyi
8d8d91bfc3
IsolateNameServer reland (#5519)
* Reland "Added IsolateNameServer functionality (#5410)"

This reverts commit c3976b3c7183f479717bffed3f640fb92afbd3dc.

* Fixed issue with isolate_name_server_test which caused test to timeout

* Disabled thread_annotations on Android as they aren't supported in the
NDK headers for std::mutex. Readded thread annotations to
IsolateNameServer.
2018-06-13 11:57:10 -07:00
Ben Konyi
c3976b3c71
Revert "Added IsolateNameServer functionality (#5410)" (#5516)
This reverts commit 61a2d129cfc8c52cf1ff59b03bccf67d9b07af63.
2018-06-12 17:03:13 -07:00
Ben Konyi
61a2d129cf
Added IsolateNameServer functionality (#5410)
* Added IsolateNameServer functionality, which allows for the association
of string names with isolate SendPort ids that can be used to establish
inter-isolate communications.
2018-06-12 15:50:48 -07:00
Chris Bracken
be02d0cf09
Revert "Eliminate support for Dart 1 (#5504)" (#5505)
Broke runtime_unittests, which are still running directly from source.

This reverts commit 0ea93c3a3e40426fd222ba22c2f60756c8a32097.
2018-06-11 18:12:10 -07:00
Chris Bracken
0ea93c3a3e
Eliminate support for Dart 1 (#5504)
Eliminates support for running directly from sources or script snapshots. In
debug mode, we run from a kernel snapshot; in profile and release modes, we
link in AOT-compiled code.

Renames --dart-non-checked-mode to --disable-dart-asserts since checked mode
does not make sense in Dart 2.
2018-06-11 17:00:43 -07:00
Ryan Macnak
fb709e25e3
[fuchsia] Plumbing for sharing between AOT snapshots. (#5351) 2018-05-24 13:24:14 -07:00
Ryan Macnak
30c649dd74
[fuchsia] Teach engine how to set up an isolate from a list of kernel files. (#5210) 2018-05-16 10:09:53 -07:00
Ryan Macnak
e32e390328
Roll Dart to a5c11d7d0329432ca37e35bb249b20f60aa0aa31. (#5269)
Update engine for removal of Dart_ReadKernelBinary and refactored build targets.
2018-05-15 16:13:21 -07:00