Commit Graph

30 Commits

Author SHA1 Message Date
John McCutchan 99c6a18a1b Attempt 2 -- Fix updating packages map on reload and add a regression test
- [x] Update the isolate's .packages path when requested.
- [x] Always refresh package map when loader is initialized.
- [x] Add regression test.

Review-Url: https://codereview.chromium.org/2810223003 .
2017-04-12 14:02:19 -07:00
John McCutchan 94df115e4b Revert "Fix updating packages map on reload and add a regression test"
This reverts commit 7a2d67f3ba.

BUG=

Review-Url: https://codereview.chromium.org/2808953003 .
2017-04-10 12:30:38 -07:00
John McCutchan 7a2d67f3ba Fix updating packages map on reload and add a regression test
- [x] Update the isolate's .packages path when requested.
- [x] Always refresh package map when loader is initialized.
- [x] Add regression test.

BUG=
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2797923008 .
2017-04-10 08:59:10 -07:00
P.Y. Laligand 8f03520d2b New dart CLI option to create a snapshot depfile. (#29165) 2017-03-27 06:44:21 -07:00
Ryan Macnak 781fd36086 Add an option to gen_snapshot for creating a Makefile describing a snapshot's dependencies. This option may be used when generating any snapshot kind, or without generating a snapshot.
- Factor out MallocGrowableArray from vm to platform.
 - Add File::Print.

R=asiva@google.com

Review-Url: https://codereview.chromium.org/2715463003 .
2017-02-23 12:40:48 -08:00
Vyacheslav Egorov 9bae50bf47 VM: [Kernel] Revert changes to the native ports that introduced peers.
The problem with these changes was that closed ports still continue to receive
messages and as a result we start using dead peer objects.

Fixing that would require more intrusive changes into message handler implementation - so instead we are reverting the changes and restoring manual PORT -> PEER mapping.

BUG=
R=erikcorry@google.com

Review-Url: https://codereview.chromium.org/2666063002 .
2017-01-31 10:30:15 +01:00
Vyacheslav Egorov 43a0500e37 VM: [Kernel] Fix bootstraping when Kernel isolate is used.
We must bootstrap from Kernel instead of Source when running with --dfe

BUG=
R=asiva@google.com, kustermann@google.com

Review-Url: https://codereview.chromium.org/2651633002 .
2017-01-30 20:52:59 +01:00
Matthias Hausner f5ab173c77 Add Kernel Isolate, second attempt
To run a script with the Dart->Kernel parser, use the -dfe option:

dart --dfe=runtime/tools/kernel-service.dart  --packages=/src/d2/sdk/.packages  foo.dart

The front end expects a directory named patched_sdk in the build directory (patched_sdk should be a sibling of the directory that contains the dart executable.)

Warning: using a debug build dart executable is very slow. It takes 2 minutes to run Hello World in a debug build, and about 7 seconds in a release build.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/2558673002 .
2016-12-07 09:11:16 -08:00
Matthias Hausner 2ea399285a Revert "Add Kernel Isolate"
This reverts commit c9399fc557.

The change broke Dartium and Fuchsia.

BUG=

Review URL: https://codereview.chromium.org/2554953004 .
2016-12-06 14:17:09 -08:00
Matthias Hausner c9399fc557 Add Kernel Isolate
To run a script with the Dart->Kernel parser, use the -dfe option:

dart --dfe=runtime/tools/kernel-service.dart  --packages=/src/d2/sdk/.packages  foo.dart

The front end expects a directory named patched_sdk in the build directory (patched_sdk should be a sibling of the directory that contains the dart executable.)

Warning: using a debug build dart executable is very slow. It takes 2 minutes to run Hello World in a debug build, and about 7 seconds in a release build.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/2483373002 .
2016-12-06 12:23:09 -08:00
Martin Kustermann 2c9cbb1d2c VM: [Kernel] Go back to previous behavior in loader.cc
Review URL: https://codereview.chromium.org/2523183002 .
2016-11-23 10:55:59 +01:00
Martin Kustermann 1aff626804 VM: [Kernel] Split kernel API into 3 steps: ([read binary], parse-binary, bootstrap, load program)
This avoids reading and parsing the kernel binary multiple times and avois
having it multiple times in memory (we don't free the 'kernel::Program*' object
ATM).

R=kmillikin@google.com

Review URL: https://codereview.chromium.org/2525623002 .
2016-11-23 09:26:15 +01:00
Zachary Anderson 630d24bec8 clang-formats remaining files and adds a presubmit check.
R=asiva@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2483363002 .
2016-11-09 12:43:57 -08:00
Ryan Macnak 987165f022 Reload native extensions when starting from a snapshot.
Fixes #21180
Fixes #27574

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2475523002 .
2016-11-07 16:17:47 -08:00
Zachary Anderson 479a97b129 clang-format runtime/bin
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2480793002 .
2016-11-04 12:30:56 -07:00
Vyacheslav Egorov f67ce21068 VM support for running Kernel binaries.
BUG=
R=asiva@google.com, fschneider@google.com

Review URL: https://codereview.chromium.org/2411823003 .
2016-10-15 22:48:46 +02:00
Zachary Anderson b990bc3794 Fix native extension lookup
This CL allows native extension lookup to defer to the platform's
library lookup (e.g. dlopen) when the library cannot be found next to
the importing Dart library. It also allows dart-ext: to accept an
absolute path to the native library.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2285223003 .
2016-08-30 09:31:47 -07:00
Zachary Anderson 50d321085c Fix -O0 compilation errors
R=fschneider@google.com

Review URL: https://codereview.chromium.org/2289993002 .
2016-08-29 14:57:51 -07:00
Todd Turnidge 1166f83bf6 Only reload libraries when they may have been modified.
We now check all of the scripts which make up a library.  If any
script is modified, then we consider that library to be modified.  We
also consider any library which imports a modified library to be
modified.  To propagate this info efficiently, we build and discard
the imported-by graph when beginning a reload.

The embedder must provide a FileModifiedCallback in order to support
the detection of modified scripts.

In order to detect changes to package: libraries, we have modified the
embedder interface to provide the resolved url when possible, so that
we don't need to re-resolve package uris when checking for reload.
This change is incompatible and all embedders will need to be updated.

We now support a "force" flag when reloading sources.  This causes all
libraries to be reloaded regardless of whether the underlying scripts
have been updated.

Closes #26919

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2186423002 .
2016-07-29 11:23:18 -07:00
John McCutchan 4bfdaa83b2 Fix Windows bots
BUG=

Review URL: https://codereview.chromium.org/2149193004 .
2016-07-15 14:34:29 -07:00
John McCutchan 7af8d6e5a4 Strip the scheme off of uris passed into the native extension loader.
Fixes https://github.com/dart-lang/sdk/issues/26894

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2153203002 .
2016-07-15 13:09:33 -07:00
John McCutchan 05c1eac65d Support loading dart-ext from within a package when using a package map
Fixes https://github.com/dart-lang/sdk/issues/26879

When a dart-ext is imported from within a package: library we need to fully resolve the package: to a file: (or whatever scheme:) so that we can locate the shared object for the extension file.

This CL sends this request through the service isolate so that the package: can be resolved even when a package config is being used.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2146093002 .
2016-07-13 15:20:13 -07:00
Florian Schneider 63e3f4dc8b Make loader lock new-allocated to avoid shutdown crash.
Process::Exit does not do the normal shutdown procedure - this CL avoids
a crash in the static destructor of the loader info lock by making it
new-allocated.

Also remove --shutdown flag since the clean shutdown procedure is on by
default since a while now.

BUG=#26846
R=asiva@google.com, zra@google.com

Review URL: https://codereview.chromium.org/2147833002 .
2016-07-13 09:41:06 -07:00
Siva Annamalai 11682cd4c7 Use the new loader mechanism to resolve URIs and load script files in gen_snapshot. This should allow the package config resolution to work in gen_snapshot for flutter and dartium snapshot generation cases.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2073173002 .
2016-06-20 13:56:06 -07:00
Siva Annamalai 72f7d1456c Change Dart_DefaultCanonicalizeUrl to accept the library url string instead of a library, this is useful to allow us to use this to generically resolve a Uri relative to another string.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2068833002 .
2016-06-14 17:15:51 -07:00
John McCutchan 3b2e14ab56 Fix deferred load errors
R=hausner@google.com

Review URL: https://codereview.chromium.org/2045023003 .
2016-06-08 07:12:52 -07:00
John McCutchan bf4b3b3733 Activate the service isolate for all precompiled tests.
- [x] We always need the load port now.
- [x] Fix a minor locking issue in Loader::~Loader

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2041113003 .
2016-06-07 12:47:44 -07:00
John McCutchan 154a659b5e Fix Dart2js, analyzer bots
- Re-add support for loading from a script snapshot

BUG=

Review URL: https://codereview.chromium.org/2041173002 .
2016-06-06 15:30:33 -07:00
John McCutchan 1020392647 Add missing locking around loaders list
BUG=

Review URL: https://codereview.chromium.org/2039383002 .
2016-06-06 14:51:24 -07:00
John McCutchan 6fd8fd7987 Rework standalone to use a synchronous loader that does not invoke Dart code
- [x] The first caller of the tag handler blocks, recursive callers queue work and exit.
- [x] Use a NativeMessageHandler to receive I/O results from the service isolate.
- [x] Preserve load error message format.
- [x] Move packages map into service isolate.
- [x] Wire up Todd's native URI code.

R=turnidge@google.com

Review URL: https://codereview.chromium.org/1998963003 .
2016-06-06 14:15:01 -07:00