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

Side by Side 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 unified diff | Download patch
« no previous file with comments | « no previous file | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 * Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
3 * for details. All rights reserved. Use of this source code is governed by a 3 * for details. All rights reserved. Use of this source code is governed by a
4 * BSD-style license that can be found in the LICENSE file. 4 * BSD-style license that can be found in the LICENSE file.
5 */ 5 */
6 6
7 #ifndef INCLUDE_DART_API_H_ 7 #ifndef INCLUDE_DART_API_H_
8 #define INCLUDE_DART_API_H_ 8 #define INCLUDE_DART_API_H_
9 9
10 /** \mainpage Dart Embedding API Reference 10 /** \mainpage Dart Embedding API Reference
(...skipping 2939 matching lines...) Expand 10 before | Expand all | Expand 10 after
2950 * the same process. 2950 * the same process.
2951 * 2951 *
2952 * \return An error handle if a compilation error or runtime error running const 2952 * \return An error handle if a compilation error or runtime error running const
2953 * constructors was encountered. 2953 * constructors was encountered.
2954 */ 2954 */
2955 DART_EXPORT Dart_Handle Dart_Precompile( 2955 DART_EXPORT Dart_Handle Dart_Precompile(
2956 Dart_QualifiedFunctionName entry_points[], 2956 Dart_QualifiedFunctionName entry_points[],
2957 bool reset_fields); 2957 bool reset_fields);
2958 2958
2959 2959
2960 /**
2961 * Creates a precompiled snapshot.
2962 * - The VM must not have been started from a snapshot.
2963 * - A root library must have been loaded.
2964 * - Dart_Precompile must have been called.
2965 *
2966 * Outputs a vm isolate snapshot, an isolate snapshot, and an assembly file
2967 * defining the symbols kInstructionsSnapshot and kDataSnapshot. The assembly
2968 * should be compiled as a static or shared library and linked or loaded by the
2969 * embedder.
2970 * Running this snapshot requires a VM compiled with DART_PRECOMPILED_SNAPSHOT.
2971 * The vm isolate snapshot, kInstructionsSnapshot and kDataSnapshot should be
2972 * passed as arguments to Dart_Initialize. The isolate snapshot should be
2973 * passed to Dart_CreateIsolate.
2974 */
2960 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotAssembly( 2975 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotAssembly(
2961 uint8_t** vm_isolate_snapshot_buffer, 2976 uint8_t** vm_isolate_snapshot_buffer,
2962 intptr_t* vm_isolate_snapshot_size, 2977 intptr_t* vm_isolate_snapshot_size,
2963 uint8_t** isolate_snapshot_buffer, 2978 uint8_t** isolate_snapshot_buffer,
2964 intptr_t* isolate_snapshot_size, 2979 intptr_t* isolate_snapshot_size,
2965 uint8_t** instructions_assembly_buffer, 2980 uint8_t** assembly_buffer,
2966 intptr_t* instructions_assembly_size); 2981 intptr_t* assembly_size);
2967 2982
2968 2983
2984 /**
2985 * Same as Dart_CreatePrecompiledSnapshotAssembly, except the instruction and
2986 * data snapshot pieces are provided directly as bytes that the embedder can
2987 * load with mmap. The instructions piece must be loaded with read and
2988 * execute permissions; the rodata piece may be loaded as read-only.
2989 */
2969 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotBlob( 2990 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotBlob(
2970 uint8_t** vm_isolate_snapshot_buffer, 2991 uint8_t** vm_isolate_snapshot_buffer,
2971 intptr_t* vm_isolate_snapshot_size, 2992 intptr_t* vm_isolate_snapshot_size,
2972 uint8_t** isolate_snapshot_buffer, 2993 uint8_t** isolate_snapshot_buffer,
2973 intptr_t* isolate_snapshot_size, 2994 intptr_t* isolate_snapshot_size,
2974 uint8_t** instructions_blob_buffer, 2995 uint8_t** instructions_blob_buffer,
2975 intptr_t* instructions_blob_size, 2996 intptr_t* instructions_blob_size,
2976 uint8_t** rodata_blob_buffer, 2997 uint8_t** rodata_blob_buffer,
2977 intptr_t* rodata_blob_size); 2998 intptr_t* rodata_blob_size);
2978 2999
2979 3000
2980 DART_EXPORT Dart_Handle Dart_PrecompileJIT(); 3001 DART_EXPORT Dart_Handle Dart_PrecompileJIT();
2981 3002
2982 3003
2983 DART_EXPORT Dart_Handle Dart_CreatePrecompiledJITSnapshotBlob( 3004 DART_EXPORT Dart_Handle Dart_CreatePrecompiledJITSnapshotBlob(
2984 uint8_t** vm_isolate_snapshot_buffer, 3005 uint8_t** vm_isolate_snapshot_buffer,
2985 intptr_t* vm_isolate_snapshot_size, 3006 intptr_t* vm_isolate_snapshot_size,
2986 uint8_t** isolate_snapshot_buffer, 3007 uint8_t** isolate_snapshot_buffer,
2987 intptr_t* isolate_snapshot_size, 3008 intptr_t* isolate_snapshot_size,
2988 uint8_t** instructions_blob_buffer, 3009 uint8_t** instructions_blob_buffer,
2989 intptr_t* instructions_blob_size, 3010 intptr_t* instructions_blob_size,
2990 uint8_t** rodata_blob_buffer, 3011 uint8_t** rodata_blob_buffer,
2991 intptr_t* rodata_blob_size); 3012 intptr_t* rodata_blob_size);
2992 3013
2993 3014
3015 /**
3016 * Returns whether the VM only supports running from precompiled snapshots and
3017 * not from any other kind of snapshot or no snapshot (that is, the VM was
3018 * compiled with DART_PRECOMPILED_RUNTIME).
3019 */
3020 DART_EXPORT bool Dart_IsPrecompiledRuntime();
3021
3022
3023 /**
3024 * Returns whether the VM was initialized with a precompiled snapshot. Only
3025 * valid after Dart_Initialize.
3026 * DEPRECATED. This is currently used to disable Platform.executable and
3027 * Platform.resolvedExecutable under precompilation to prevent process
3028 * spawning tests from becoming fork-bombs.
3029 */
2994 DART_EXPORT bool Dart_IsRunningPrecompiledCode(); 3030 DART_EXPORT bool Dart_IsRunningPrecompiledCode();
2995 3031
2996 #endif /* INCLUDE_DART_API_H_ */ /* NOLINT */ 3032 #endif /* INCLUDE_DART_API_H_ */ /* NOLINT */
OLDNEW
« 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