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:
| Arsitektur | Status | Kompilasi |
|---|---|---|
AArch64 | nightly | ✓ |
Jenis File
Ringkasan format file yang didukung dan digunakan di seluruh pipeline:
| Jenis | Deskripsi |
|---|---|
Assembly | Representasi teks yang mudah dibaca manusia dari instruksi mesin tingkat rendah, berfungsi sebagai langkah perantara sebelum pembuatan bytecode akhir atau kode mesin. |
Binary | Format 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