Skip to main content

vm/
lib.rs

1mod builtins;
2
3pub mod assembler;
4pub mod bytecode;
5pub mod compiler;
6pub mod debug_info;
7#[cfg(feature = "runtime")]
8pub mod debugger;
9#[cfg(feature = "runtime")]
10pub mod jit {
11    pub use crate::vm::jit::{
12        JitAttempt, JitConfig, JitMetrics, JitNyiDoc, JitNyiReason, JitSnapshot, JitTrace,
13        JitTraceTerminal, TraceJitEngine,
14    };
15}
16#[cfg(feature = "cli")]
17pub mod cli;
18#[cfg(feature = "runtime")]
19pub mod vm;
20#[cfg(feature = "runtime")]
21pub mod vmbc;
22
23pub use assembler::{AsmParseError, Assembler, AssemblerError, BytecodeBuilder, assemble};
24#[cfg(feature = "runtime")]
25pub use builtins::runtime::print::{PrintHostFunction, PrintlnHostFunction, format_value};
26pub use builtins::{
27    BuiltinFunction, BuiltinNamespaceMemberSpec, BuiltinNamespaceSpec, CallableDef, CallableParam,
28    CallableParamType, CallableSignature, LanguageBuiltinSpec, builtin_namespace_specs,
29    callable_signatures_for_builtin_namespace_member, default_host_callables, is_builtin_namespace,
30    language_builtin_specs, resolve_builtin_namespace_call,
31};
32pub use bytecode::{HostImport, OpCode, Program, TypeMap, Value, ValueType};
33pub fn builtin_call_index(name: &str) -> Option<u16> {
34    use builtins::BuiltinFunction;
35
36    match name {
37        "len" => Some(BuiltinFunction::Len.call_index()),
38        "slice" => Some(BuiltinFunction::Slice.call_index()),
39        "concat" => Some(BuiltinFunction::Concat.call_index()),
40        "get" => Some(BuiltinFunction::Get.call_index()),
41        "has" => Some(BuiltinFunction::Has.call_index()),
42        "set" => Some(BuiltinFunction::Set.call_index()),
43        "keys" => Some(BuiltinFunction::Keys.call_index()),
44        "string_contains" => Some(BuiltinFunction::StringContains.call_index()),
45        "string_replace_literal" => Some(BuiltinFunction::StringReplaceLiteral.call_index()),
46        "string_lower_ascii" => Some(BuiltinFunction::StringLowerAscii.call_index()),
47        "string_split_literal" => Some(BuiltinFunction::StringSplitLiteral.call_index()),
48        _ => BuiltinFunction::from_namespaced_name(name).map(|builtin| builtin.call_index()),
49    }
50}
51pub use compiler::diagnostics::{render_compile_error, render_source_error};
52pub use compiler::source_map::{LineSpanMapping, LoweredSource, SourceId, SourceMap, Span};
53pub use compiler::{
54    AssignmentKind, ClosureExpr, CompileError, CompileSourceFileOptions, CompiledProgram,
55    CompiledReplProgram, Compiler, Expr, FormatError, FrontendImportSyntax, FrontendIr,
56    FunctionDecl, ImportClause, InferredLocalTypeHint, LocalIrBuilder, LocalSlot, ModuleImport,
57    NamedImport, ParseError, ParserDialect, ReplLocalBinding, ReplLocalState, SharedParserOptions,
58    SourceError, SourceFlavor, SourcePathError, SourcePlugin, Stmt, UnknownInferredLocal,
59    collect_inferred_local_type_hints, collect_inferred_local_type_hints_at_path_with_options,
60    collect_inferred_local_type_hints_with_options, compile_source,
61    compile_source_at_path_with_flavor_and_options, compile_source_file,
62    compile_source_file_with_options, compile_source_for_repl, compile_source_for_repl_with_locals,
63    compile_source_for_repl_with_state, compile_source_with_flavor,
64    compile_source_with_flavor_and_options, format_source, format_source_with_flavor,
65    format_source_with_flavor_and_options, lint_trailing_function_return_semicolons,
66    lint_unknown_inferred_local_types, lint_unknown_inferred_local_types_at_path_with_options,
67    lint_unknown_inferred_local_types_with_options, lint_unknown_type_annotations,
68    parse_source_with_dialect,
69};
70pub use debug_info::{ArgInfo, DebugFunction, DebugInfo, LineInfo, LocalInfo};
71#[cfg(feature = "runtime")]
72pub use debugger::{
73    DebugCommandBridge, DebugCommandBridgeError, DebugCommandBridgeResponse,
74    DebugCommandBridgeStatus, Debugger, StepMode, VmRecording, VmRecordingError, VmRecordingFrame,
75    VmRecordingReplayResponse, VmRecordingReplayState, replay_recording_stdio,
76    run_recording_replay_command,
77};
78#[cfg(feature = "runtime")]
79pub use jit::{
80    JitAttempt, JitConfig, JitMetrics, JitNyiDoc, JitNyiReason, JitSnapshot, JitTrace,
81    JitTraceTerminal, TraceJitEngine,
82};
83#[cfg(feature = "runtime")]
84pub use vm::diagnostics::render_vm_error;
85#[cfg(feature = "runtime")]
86pub use vm::{
87    AotArtifactError, CallOutcome, CallReturn, EpochCheckpoint, EpochHandle, FuelCheckpoint,
88    HostArgsFunction, HostAsyncBridge, HostBindingPlan, HostFunction, HostFunctionRegistry,
89    HostOpId, HostStackFunction, StaticHostArgsFunction, StaticHostFunction,
90    StaticHostStackFunction, Store, Vm, VmError, VmResult, VmStatus, VmYieldReason,
91};
92#[cfg(feature = "runtime")]
93pub use vmbc::{
94    DisassembleOptions, ValidationError, WireError, decode_program, disassemble_program,
95    disassemble_program_with_options, disassemble_vmbc, disassemble_vmbc_with_options,
96    encode_program, infer_local_count, validate_program,
97};