Skip to content

Repository files navigation

XBasic 6.5.0 Rust bootstrap

This is the stage-0 Rust workspace for bootstrapping XBasic 6.5.0.

Resolved decisions:

  1. Floating point: use plain f64/libm-style operations by default. Exact x87 JIT behavior is deferred unless compatibility tests prove it is required.
  2. Windows: focus on Win64 first. Linux and macOS remain first-class targets.
  3. Self-hosting: use Rust as the stage-0 host, keep compiler layers clean enough to port back into XBasic later, and start self-hosting from low-level utility/library surfaces before attempting a compiler-in-XBasic stage.

Workspace crates

Crate Role
xb-frontend Tokens and lexer for the XBasic syntax surface
xb-compiler Typed compiler boundary and optional LLVM backend (llvm feature; default off)
xb-runtime XxxMain entry contract, exception mappings, f64 math defaults, fault-hook skeletons
xb-link Object-link command construction for Unix and Win64 drivers
xb-cli xb command that parses/analyzes/lowers .x files and prints stable IR summaries
xb-gui GDI-spirit drawing trait and deterministic framebuffer backend
xb-ide eframe/egui IDE shell, feature-gated behind eframe-app

Local verification

Core check, no LLVM required:

cargo check --workspace --exclude xb-ide
cargo test --workspace --exclude xb-ide

IDE stack check, requires Rust compatible with egui/eframe 0.36.1:

cargo check -p xb-ide --features eframe-app

LLVM backend check, requires LLVM 22 in PATH or LLVM_SYS_221_PREFIX:

cargo check -p xb-compiler --features llvm

On this machine, rustc in PATH is Homebrew Rust 1.94, while rustup stable is 1.97.1 after update. The IDE feature requires Rust ≥1.95 and was checked with explicit rustup cargo/rustc. LLVM 22 is not installed (llvm@21 is present), so the LLVM backend is intentionally feature-gated off by default.

About

Remake XBasic(original author: Max Reason)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages