vihaco / virtual ISA & machine framework
Guides
  1. Defining Instructions
  2. Advanced Instruction Usage
  3. Parser Integration
  4. Advanced Parser Customization
  5. Using Messages
  6. Building Components
  7. Observing Effects
  8. Defining a Composite

Guides

These guides explain how to build on top of vihaco: how to define an instruction set, parse source text into it, resolve execution input, execute components, observe their effects, and compose everything into a machine.

For the type-by-type API reference, see the generated rustdoc.

  1. Defining Instructions With vihaco Start with instruction enums and width inference.
  2. Parser Integration for Component Instructions The main parser-authoring workflow: #[derive(vihaco_parser::Parse)] on the instruction enum, the head/token/delimiters/parse_with attributes, and the Parse trait from vihaco-parser-core.
    • Advanced Parser Customization Module-level orchestration: device headers, the ParsedModule two-pass design, Resolve impls, sugar expansion, string interning, and label resolution.
  3. Using Messages With vihaco How a runtime resolves execution input and supplies messages to components.
  4. Building Components With vihaco Connect instructions, messages, effects, and #[component(...)].
  5. Observing Effects With #[observe] How #[observe] works — on standalone observers and on components that also react to effects.
  6. Defining A Composite With vihaco Compose components and observers with the transitional #[composite] wiring.
On this page
  1. Recommended reading order