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        _ => BuiltinFunction::from_namespaced_name(name).map(|builtin| builtin.call_index()),
45    }
46}
47pub use compiler::diagnostics::{render_compile_error, render_source_error};
48pub use compiler::source_map::{LineSpanMapping, LoweredSource, SourceId, SourceMap, Span};
49pub use compiler::{
50    AssignmentKind, ClosureExpr, CompileError, CompileSourceFileOptions, CompiledProgram,
51    CompiledReplProgram, Compiler, Expr, FormatError, FrontendImportSyntax, FrontendIr,
52    FunctionDecl, ImportClause, InferredLocalTypeHint, LocalIrBuilder, LocalSlot, ModuleImport,
53    NamedImport, ParseError, ParserDialect, ReplLocalBinding, SharedParserOptions, SourceError,
54    SourceFlavor, SourcePathError, SourcePlugin, Stmt, UnknownInferredLocal,
55    collect_inferred_local_type_hints, collect_inferred_local_type_hints_at_path_with_options,
56    collect_inferred_local_type_hints_with_options, compile_source,
57    compile_source_at_path_with_flavor_and_options, compile_source_file,
58    compile_source_file_with_options, compile_source_for_repl, compile_source_for_repl_with_locals,
59    compile_source_with_flavor, compile_source_with_flavor_and_options, format_source,
60    format_source_with_flavor, format_source_with_flavor_and_options,
61    lint_trailing_function_return_semicolons, lint_unknown_inferred_local_types,
62    lint_unknown_inferred_local_types_at_path_with_options,
63    lint_unknown_inferred_local_types_with_options, lint_unknown_type_annotations,
64    parse_source_with_dialect,
65};
66pub use debug_info::{ArgInfo, DebugFunction, DebugInfo, LineInfo, LocalInfo};
67#[cfg(feature = "runtime")]
68pub use debugger::{
69    DebugCommandBridge, DebugCommandBridgeError, DebugCommandBridgeResponse,
70    DebugCommandBridgeStatus, Debugger, StepMode, VmRecording, VmRecordingError, VmRecordingFrame,
71    VmRecordingReplayResponse, VmRecordingReplayState, replay_recording_stdio,
72    run_recording_replay_command,
73};
74#[cfg(feature = "runtime")]
75pub use jit::{
76    JitAttempt, JitConfig, JitMetrics, JitNyiDoc, JitNyiReason, JitSnapshot, JitTrace,
77    JitTraceTerminal, TraceJitEngine,
78};
79#[cfg(feature = "runtime")]
80pub use vm::diagnostics::render_vm_error;
81#[cfg(feature = "runtime")]
82pub use vm::{
83    AotArtifactError, CallOutcome, CallReturn, EpochCheckpoint, EpochHandle, FuelCheckpoint,
84    HostArgsFunction, HostAsyncBridge, HostBindingPlan, HostFunction, HostFunctionRegistry,
85    HostOpId, HostStackFunction, StaticHostArgsFunction, StaticHostFunction,
86    StaticHostStackFunction, Store, Vm, VmError, VmResult, VmStatus, VmYieldReason,
87};
88#[cfg(feature = "runtime")]
89pub use vmbc::{
90    DisassembleOptions, ValidationError, WireError, decode_program, disassemble_program,
91    disassemble_program_with_options, disassemble_vmbc, disassemble_vmbc_with_options,
92    encode_program, infer_local_count, validate_program,
93};