IsolateData contains AppSnapshot which might own some HeapPage-s, so we can't
destroy IsolateData in the Dart_IsolateShutdownCallback, because some thread
running in the isolate (e.g. background compiler) might still touch
thoses pages or objects they host.
We need to delay destruction of AppSnapshot until after the isolate shutdown.
Current API does not allow that, so we introduce a new isolate lifecycle
callback - Dart_IsolateCleanupCallback, which is invoked at the end of the
isolote lifecycle when things like background compiler have been stopped
and no Dart code is supposed to run.
BUG=
R=rmacnak@google.com
Review-Url: https://codereview.chromium.org/2720723005 .
This deletion has several reasons:
- This code is broken and refers to non-existant private parts of dart:io
(e.g. `_NativeSocket._sockets`, `_ProcessImpl._processes`, `_RandomAccessFile._files`).
- This code is not reachable through the service protocol. `_serviceObjectHandler` uses
`paths` to fetch the right handler from `_servicePathMap` but caller `ServiceGetIOHandler`
always passes empty paths.
- The only test that was attempting to test some of this code through mirrors (sic!)
has been disabled since January 2015.
After deletion all tests continue to pass meaning that nobody really relies on this
broken code in any way.
BUG=https://github.com/dart-lang/sdk/issues/28882R=johnmccutchan@google.com
Review-Url: https://codereview.chromium.org/2715253002 .
The VM service isolate and the Kernel service isolate are given script
URIs that are respectively "vm-service" and "kernel-service". We
should not try to treat these as binary files. Normally they just
don't exist, but if they happen to exist we should not read them.
BUG=
R=vegorov@google.com
Review-Url: https://codereview.chromium.org/2662213004 .
- Don't mark core_isolate_snapshot_buffer as a const pointer.
- Update app snapshots without code to not rewrite the VM isolate snapshot, as already done by app snapshots with code.
Fixes#28368R=asiva@google.com
Review-Url: https://codereview.chromium.org/2637193002 .
- Rename functions to make correspondence between JIT and AOT app snapshot clearer.
- Update documentation on assembly output of AOT snapshots.
- Remove old Dart_PrecompileJIT.
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2611343002 .
- Adjust fingerprints to be independent of the library's private key, which varies with load order.
- Use usage_counter in AOT inlining decisions if JIT feedback is available.
- Reduce inlining in cold functions.
dart2js product aot snapshot 15841351 -> 14436273 (-8.86%)
R=fschneider@google.com
Review-Url: https://codereview.chromium.org/2562693003 .
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 .
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 .
Print snapshot sizes when generating an AOT snapshot from gen_snapshot (e.g., Flutter).
Remove some unnecessary symbols.
Use named constants for exit codes.
Use Log::PrintErr instead of fprintf(stderr) so we see error messages in adb logcat.
R=asiva@google.com
Review URL: https://codereview.chromium.org/2517683002 .
The file size is not rounded up after the isolate snapshot if there are no rodata/instruction pieces. The other OS's use mmap instead of read, which is apparently okay with over-reading the file.
Fixes#27786R=asiva@google.com
Review URL: https://codereview.chromium.org/2521883002 .
- unified kAppAfterRun and kAppJITAfterRun to kAppJIT
- adjusted the test configuration to make dart2app and dart2appjit to mean
the same
- delete GenerateFullSnapshot function as it is not used anymore
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2429023002 .
For blobs, put all four pieces into a single file with a header describing their offsets.
For dynamic libraries, move the vm isolate and isolate pieces into the dynamic library as additional read-only sections.
Automatically detect if the script argument is an app snapshot and initialize the VM appropriately, similar to automatic detection of script snapshots.
R=asiva@google.com
Review URL: https://codereview.chromium.org/2405393002 .