Skip to content

Metode Compile

Setelah menginisialisasi VM dan menyiapkan lingkungan Anda, Anda dapat memproses dan mengompilasi konfigurasi bytecode Anda menjadi biner target.

Menggunakan TypeScript

Untuk TypeScript, Anda dapat meneruskan array instruksi mentah langsung ke loader, menerapkan alat optimasi, dan menyiapkan konfigurasi kompilasi Anda dengan mulus.

ts
import { TargetArch, FileType } from "lightvm";

const raw = [
  ['push', 5],
  ['val', 'x'],
  ['set', 'x'],
];
const optimized = tools.optimizeBytecode(raw);
vm.load(optimized)
  .compile({
    targetArch: TargetArch.AArch64,
    fileType: FileType.Binary,
    path: "./bin/output",
  });

Menggunakan Rust

Dalam Rust, Anda biasanya bekerja dengan string instruksi mentah, mengoptimalkannya menggunakan alat bantu, dan meneruskan struktur CompileConfig yang berisi TargetArch dan FileType langsung ke metode .compile().

rust
use lightvm::types::{
  compile_config::CompileConfig,
  target_arch::TargetArch,
  file_type::FileType
};

let raw = r#"[
  ["push", 5],
  ["val", "x"],
  ["set", "x"]
]"#;
let optimized = tools.optimize_bytecode(raw);
vm.load(optimized.clone())
  .compile(CompileConfig {
    target_arch: TargetArch::AArch64,
    file_type: FileType::Binary,
    path: "./bin/output",
  });
rust
use lightvm::types::{
  compile_config::CompileConfig,
  target_arch::TargetArch,
  file_type::FileType
};

let raw = serde_json::json!([
  ["push", 5],
  ["val", "x"],
  ["set", "x"]
]);
let optimized = tools.optimize_bytecode(raw);
vm.load(optimized.clone())
  .compile(CompileConfig {
    target_arch: TargetArch::AArch64,
    file_type: FileType::Binary,
    path: "./bin/output",
  });

Arsitektur Target

Berikut adalah status kompilasi untuk arsitektur perangkat keras yang didukung:

ArsitekturStatusKompilasi
AArch64nightly

Jenis File

Ringkasan format file yang didukung dan digunakan di seluruh pipeline:

JenisDeskripsi
AssemblyRepresentasi teks yang mudah dibaca manusia dari instruksi mesin tingkat rendah, berfungsi sebagai langkah perantara sebelum pembuatan bytecode akhir atau kode mesin.
BinaryFormat eksekusi siap-mesin yang dikompilasi, terdiri dari byte mentah dan opcode yang dirancang untuk dieksekusi langsung oleh runtime atau perangkat keras.

INFO

Kapabilitas yang Dibutuhkan: Control