docs.rs failed to build gaia-assembler-0.0.4
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
gaia-assembler-0.0.0
Gaia Assembler
Gaia Assembler is the core scheduler and instruction translation engine of the Gaia project. It defines a Universal Intermediate Representation (Gaia IR) and maps high-level abstractions to specific virtual machines or hardware backends.
🏛️ Architecture
graph TD
subgraph "Gaia Core Pipeline"
A[Gaia Module] --> B[Program Builder]
B --> C[IR Optimizer]
C --> D[Backend Dispatcher]
subgraph "Backend Implementation Matrix"
D1[MSIL Backend]
D2[JVM Backend]
D3[x86/x64 Backend]
D4[WASM Backend]
end
D --> D1
D --> D2
D --> D3
D --> D4
end
🚀 Features
Core Architecture
- Unified Intermediate Representation (Gaia IR): Uses an opcode-based IR with strongly-typed operands, shielding differences between physical registers and virtual stacks.
- Modular Backend Interface (Backend Trait): Provides a standard API protocol, allowing developers to quickly extend new target platforms by implementing instruction mapping logic.
- Fluent Builder API: Offers high-level APIs with chainable calls to construct complex functions, control flow branches, and exception handling blocks.
Advanced Capabilities
- Platform-Aware Optimization: Performs initial instruction preprocessing based on target platform characteristics (e.g., WASM local variables vs. x86 general-purpose registers).
- Metadata Reflection System: Automatically collects and associates cross-module type references, method signatures, and field layouts.
- Diagnostics & Validation: Conducts static type checking and data flow validation during the assembly phase to ensure generated instruction sequences are valid for the target platform.
💻 Usage
Building a Simple Gaia Module
The following example demonstrates how to build a simple Gaia module with basic arithmetic operations and compile it to a PE binary.
use ;
use ;
🛠️ Support Status
| Feature / Backend | x86_64 | JVM | MSIL | WASM |
|---|---|---|---|---|
| Core Instructions | ✅ | ✅ | ✅ | ✅ |
| Control Flow | ✅ | ✅ | ✅ | ✅ |
| Exception Handling | 🚧 | ✅ | ✅ | 🚧 |
| SIMD / Neural Ops | ✅ | 🚧 | 🚧 | 🚧 |
| Dynamic Linking | ✅ | ✅ | ✅ | ✅ |
Legend: ✅ Supported, 🚧 In Progress, ❌ Not Supported
🔗 Relations
- gaia-types: Provides the foundational IR definitions, type system, and diagnostic infrastructure used by the assembler.
- gaia-jit: Can be used in conjunction with the assembler's x86_64 backend to execute generated machine code immediately in memory.
- Example Assemblers: Serves as the high-level orchestration layer for specific format implementations like
clr-assembler,jvm-assembler, andwasi-assembler.