mirror of
https://github.com/dart-lang/sdk
synced 2024-10-15 00:44:44 +00:00
f98a2138b7
When uploading CLs, the presubmit checks verify that the lines in the diff are formatted correctly according to `git cl format runtime`. However, when `buildtools/<os>-<arch>/clang/bin/clang-format` is updated, it does not force reformatting of files that would be reformatted. This leads to two issues: * Inconsistent style within the code base and within a single file. * Spurious reformatting in CLs when (1) clang-format is used on the whole file, or (2) the diff lines overlap. `clang-format` doesn't change that frequently, so in general this is not a large issue, but I've seen a bit too many "spurious formatting, please revert" comments on CLs recently. This CL formats the runtime to be in line with the current pinned `clang-format`: ``` $ find runtime/ -iname *.h -o -iname *.cc | xargs buildtools/mac-arm64/clang/bin/clang-format -i ``` `git cl format` (which only formats changed lines, and does so with `clang-format`) seems to not agree with itself, or clang-format, or cpplint in a handful of places. This CL adds `// clang-format off` for these. (See previous patchsets for the specific instances.) TEST=A variety of bots including GCC, MacOS and Windows. Change-Id: I470892e898971899fda14bb3b8f2c8efefd67686 Cq-Include-Trybots: luci.dart.try:vm-gcc-linux-try,vm-ffi-qemu-linux-release-riscv64-try,vm-ffi-qemu-linux-release-arm-try,vm-aot-win-debug-x64-try,vm-win-debug-x64c-try,vm-mac-debug-x64-try,vm-mac-debug-arm64-try,vm-aot-linux-debug-x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362780 Reviewed-by: Ryan Macnak <rmacnak@google.com> Commit-Queue: Daco Harkes <dacoharkes@google.com>
106 lines
3.7 KiB
C++
106 lines
3.7 KiB
C++
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
#ifndef RUNTIME_INCLUDE_DART_EMBEDDER_API_H_
|
|
#define RUNTIME_INCLUDE_DART_EMBEDDER_API_H_
|
|
|
|
#include "include/dart_api.h"
|
|
#include "include/dart_tools_api.h"
|
|
|
|
namespace dart {
|
|
namespace embedder {
|
|
|
|
// Initialize all subsystems of the embedder.
|
|
//
|
|
// Must be called before the `Dart_Initialize()` call to initialize the
|
|
// Dart VM.
|
|
//
|
|
// Returns true on success and false otherwise, in which case error would
|
|
// contain error message.
|
|
DART_WARN_UNUSED_RESULT bool InitOnce(char** error);
|
|
|
|
// Cleans up all subsystems of the embedder.
|
|
//
|
|
// Must be called after the `Dart_Cleanup()` call to initialize the
|
|
// Dart VM.
|
|
void Cleanup();
|
|
|
|
// Common arguments that are passed to isolate creation callback and to
|
|
// API methods that create isolates.
|
|
struct IsolateCreationData {
|
|
// URI for the main script that will be running in the isolate.
|
|
const char* script_uri;
|
|
|
|
// Advisory name of the main method that will be run by isolate.
|
|
// Only used for error messages.
|
|
const char* main;
|
|
|
|
// Isolate creation flags. Might be absent.
|
|
Dart_IsolateFlags* flags;
|
|
|
|
// Isolate group callback data.
|
|
void* isolate_group_data;
|
|
|
|
// Isolate callback data.
|
|
void* isolate_data;
|
|
};
|
|
|
|
// Create and initialize kernel-service isolate. This method should be used
|
|
// when VM invokes isolate creation callback with DART_KERNEL_ISOLATE_NAME as
|
|
// script_uri.
|
|
// The isolate is created from the given snapshot (might be kernel data or
|
|
// app-jit snapshot).
|
|
DART_WARN_UNUSED_RESULT Dart_Isolate
|
|
CreateKernelServiceIsolate(const IsolateCreationData& data,
|
|
const uint8_t* buffer,
|
|
intptr_t buffer_size,
|
|
char** error);
|
|
|
|
// Service isolate configuration.
|
|
struct VmServiceConfiguration {
|
|
enum { kBindHttpServerToAFreePort = 0, kDoNotAutoStartHttpServer = -1 };
|
|
|
|
// Address to which HTTP server will be bound.
|
|
const char* ip;
|
|
|
|
// Default port. See enum above for special values.
|
|
int port;
|
|
|
|
// If non-null, connection information for the VM service will be output to a
|
|
// file in JSON format at the location specified.
|
|
const char* write_service_info_filename;
|
|
|
|
// TODO(vegorov) document these ones.
|
|
bool dev_mode;
|
|
bool deterministic;
|
|
bool disable_auth_codes;
|
|
};
|
|
|
|
// Create and initialize vm-service isolate from the given AOT snapshot, which
|
|
// is expected to contain all necessary 'vm-service' libraries.
|
|
// This method should be used when VM invokes isolate creation callback with
|
|
// DART_VM_SERVICE_ISOLATE_NAME as script_uri.
|
|
DART_WARN_UNUSED_RESULT Dart_Isolate
|
|
CreateVmServiceIsolate(const IsolateCreationData& data,
|
|
const VmServiceConfiguration& config,
|
|
const uint8_t* isolate_data,
|
|
const uint8_t* isolate_instr,
|
|
char** error);
|
|
|
|
// Create and initialize vm-service isolate from the given kernel binary, which
|
|
// is expected to contain all necessary 'vm-service' libraries.
|
|
// This method should be used when VM invokes isolate creation callback with
|
|
// DART_VM_SERVICE_ISOLATE_NAME as script_uri.
|
|
DART_WARN_UNUSED_RESULT Dart_Isolate
|
|
CreateVmServiceIsolateFromKernel(const IsolateCreationData& data,
|
|
const VmServiceConfiguration& config,
|
|
const uint8_t* kernel_buffer,
|
|
intptr_t kernel_buffer_size,
|
|
char** error);
|
|
|
|
} // namespace embedder
|
|
} // namespace dart
|
|
|
|
#endif // RUNTIME_INCLUDE_DART_EMBEDDER_API_H_
|