Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(945)

Unified Diff: runtime/include/dart_api.h

Issue 1948183002: Add Dart_IsPrecompiledRuntime to help simplify logic in embedders that conditionally use precompila… (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: sync Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/include/dart_api.h
diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h
index 773f93b6cd1e23629dd21be538f6a5cc626cdd65..c7390e7f084cce5c9f4fcdeb4c09e4b329e8002a 100755
--- a/runtime/include/dart_api.h
+++ b/runtime/include/dart_api.h
@@ -2957,15 +2957,36 @@ DART_EXPORT Dart_Handle Dart_Precompile(
bool reset_fields);
+/**
+ * Creates a precompiled snapshot.
+ * - The VM must not have been started from a snapshot.
+ * - A root library must have been loaded.
+ * - Dart_Precompile must have been called.
+ *
+ * Outputs a vm isolate snapshot, an isolate snapshot, and an assembly file
+ * defining the symbols kInstructionsSnapshot and kDataSnapshot. The assembly
+ * should be compiled as a static or shared library and linked or loaded by the
+ * embedder.
+ * Running this snapshot requires a VM compiled with DART_PRECOMPILED_SNAPSHOT.
+ * The vm isolate snapshot, kInstructionsSnapshot and kDataSnapshot should be
+ * passed as arguments to Dart_Initialize. The isolate snapshot should be
+ * passed to Dart_CreateIsolate.
+ */
DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotAssembly(
uint8_t** vm_isolate_snapshot_buffer,
intptr_t* vm_isolate_snapshot_size,
uint8_t** isolate_snapshot_buffer,
intptr_t* isolate_snapshot_size,
- uint8_t** instructions_assembly_buffer,
- intptr_t* instructions_assembly_size);
+ uint8_t** assembly_buffer,
+ intptr_t* assembly_size);
+/**
+ * Same as Dart_CreatePrecompiledSnapshotAssembly, except the instruction and
+ * data snapshot pieces are provided directly as bytes that the embedder can
+ * load with mmap. The instructions piece must be loaded with read and
+ * execute permissions; the rodata piece may be loaded as read-only.
+ */
DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotBlob(
uint8_t** vm_isolate_snapshot_buffer,
intptr_t* vm_isolate_snapshot_size,
@@ -2991,6 +3012,21 @@ DART_EXPORT Dart_Handle Dart_CreatePrecompiledJITSnapshotBlob(
intptr_t* rodata_blob_size);
+/**
+ * Returns whether the VM only supports running from precompiled snapshots and
+ * not from any other kind of snapshot or no snapshot (that is, the VM was
+ * compiled with DART_PRECOMPILED_RUNTIME).
+ */
+DART_EXPORT bool Dart_IsPrecompiledRuntime();
+
+
+/**
+ * Returns whether the VM was initialized with a precompiled snapshot. Only
+ * valid after Dart_Initialize.
+ * DEPRECATED. This is currently used to disable Platform.executable and
+ * Platform.resolvedExecutable under precompilation to prevent process
+ * spawning tests from becoming fork-bombs.
+ */
DART_EXPORT bool Dart_IsRunningPrecompiledCode();
#endif /* INCLUDE_DART_API_H_ */ /* NOLINT */
« no previous file with comments | « no previous file | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698