pd-vm 0.22.4

RustScript bytecode compiler and VM
Documentation
mod builtins;

pub mod assembler;
pub mod bytecode;
pub mod compiler;
pub mod debug_info;
#[cfg(feature = "runtime")]
pub mod debugger;
#[cfg(feature = "runtime")]
pub mod jit {
    pub use crate::vm::jit::{
        JitAttempt, JitConfig, JitMetrics, JitNyiDoc, JitNyiReason, JitSnapshot, JitTrace,
        JitTraceTerminal, TraceJitEngine,
    };
}
#[cfg(feature = "cli")]
pub mod cli;
#[cfg(feature = "runtime")]
pub mod vm;
#[cfg(feature = "runtime")]
pub mod vmbc;

pub use assembler::{AsmParseError, Assembler, AssemblerError, BytecodeBuilder, assemble};
#[cfg(feature = "runtime")]
pub use builtins::runtime::print::{PrintHostFunction, PrintlnHostFunction, format_value};
pub use builtins::{
    BuiltinFunction, BuiltinNamespaceMemberSpec, BuiltinNamespaceSpec, CallableDef, CallableParam,
    CallableParamType, CallableSignature, LanguageBuiltinSpec, builtin_namespace_specs,
    callable_signatures_for_builtin_namespace_member, default_host_callables, is_builtin_namespace,
    language_builtin_specs, resolve_builtin_namespace_call,
};
pub use bytecode::{HostImport, OpCode, Program, TypeMap, Value, ValueType};
pub fn builtin_call_index(name: &str) -> Option<u16> {
    use builtins::BuiltinFunction;

    match name {
        "len" => Some(BuiltinFunction::Len.call_index()),
        "slice" => Some(BuiltinFunction::Slice.call_index()),
        "concat" => Some(BuiltinFunction::Concat.call_index()),
        "get" => Some(BuiltinFunction::Get.call_index()),
        "has" => Some(BuiltinFunction::Has.call_index()),
        "set" => Some(BuiltinFunction::Set.call_index()),
        "keys" => Some(BuiltinFunction::Keys.call_index()),
        _ => BuiltinFunction::from_namespaced_name(name).map(|builtin| builtin.call_index()),
    }
}
pub use compiler::diagnostics::{render_compile_error, render_source_error};
pub use compiler::source_map::{LineSpanMapping, LoweredSource, SourceId, SourceMap, Span};
pub use compiler::{
    AssignmentKind, ClosureExpr, CompileError, CompileSourceFileOptions, CompiledProgram,
    CompiledReplProgram, Compiler, Expr, FormatError, FrontendImportSyntax, FrontendIr,
    FunctionDecl, ImportClause, InferredLocalTypeHint, LocalIrBuilder, LocalSlot, ModuleImport,
    NamedImport, ParseError, ParserDialect, ReplLocalBinding, SharedParserOptions, SourceError,
    SourceFlavor, SourcePathError, SourcePlugin, Stmt, UnknownInferredLocal,
    collect_inferred_local_type_hints, collect_inferred_local_type_hints_at_path_with_options,
    collect_inferred_local_type_hints_with_options, compile_source,
    compile_source_at_path_with_flavor_and_options, compile_source_file,
    compile_source_file_with_options, compile_source_for_repl, compile_source_for_repl_with_locals,
    compile_source_with_flavor, compile_source_with_flavor_and_options, format_source,
    format_source_with_flavor, format_source_with_flavor_and_options,
    lint_trailing_function_return_semicolons, lint_unknown_inferred_local_types,
    lint_unknown_inferred_local_types_at_path_with_options,
    lint_unknown_inferred_local_types_with_options, lint_unknown_type_annotations,
    parse_source_with_dialect,
};
pub use debug_info::{ArgInfo, DebugFunction, DebugInfo, LineInfo, LocalInfo};
#[cfg(feature = "runtime")]
pub use debugger::{
    DebugCommandBridge, DebugCommandBridgeError, DebugCommandBridgeResponse,
    DebugCommandBridgeStatus, Debugger, StepMode, VmRecording, VmRecordingError, VmRecordingFrame,
    VmRecordingReplayResponse, VmRecordingReplayState, replay_recording_stdio,
    run_recording_replay_command,
};
#[cfg(feature = "runtime")]
pub use jit::{
    JitAttempt, JitConfig, JitMetrics, JitNyiDoc, JitNyiReason, JitSnapshot, JitTrace,
    JitTraceTerminal, TraceJitEngine,
};
#[cfg(feature = "runtime")]
pub use vm::diagnostics::render_vm_error;
#[cfg(feature = "runtime")]
pub use vm::{
    AotArtifactError, CallOutcome, CallReturn, EpochCheckpoint, EpochHandle, FuelCheckpoint,
    HostArgsFunction, HostAsyncBridge, HostBindingPlan, HostFunction, HostFunctionRegistry,
    HostOpId, HostStackFunction, StaticHostArgsFunction, StaticHostFunction,
    StaticHostStackFunction, Store, Vm, VmError, VmResult, VmStatus, VmYieldReason,
};
#[cfg(feature = "runtime")]
pub use vmbc::{
    DisassembleOptions, ValidationError, WireError, decode_program, disassemble_program,
    disassemble_program_with_options, disassemble_vmbc, disassemble_vmbc_with_options,
    encode_program, infer_local_count, validate_program,
};