-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Gordon Heydon edited this page Jul 26, 2026
·
2 revisions
MVX is a native compiler and runtime environment for Pick/MultiValue BASIC. It compiles BASIC straight to machine code through LLVM — no transpilation to C — and surrounds the compiler with the pieces that make a MultiValue system a system: a pluggable storage layer, a classic TCL shell, dictionaries and queries, secondary indexes, a package ecosystem, and full-screen terminal support.
The reference dialect is traditional Pick BASIC (classic Pick / R83 style). Wherever MultiValue platforms diverge, classic Pick behaviour is the tie-breaker. Extensions are admitted only where classic Pick has no equivalent, and each is documented as such — the two most visible being C-style comments and the modern terminal primitives.
Highlights:
-
A real compiler. Programs and subroutines compile to native
executables and shared libraries with DWARF debug information mapped
to BASIC source lines —
lldbsets breakpoints likeb prog.b:12. Numeric code compiles to native integer and floating-point instructions; the standard prime-sieve benchmark runs at ~99% of an equivalent C program. -
Pluggable storage. MV files bind to backends through a small
driver contract. Two drivers ship: embedded LMDB and plain
directories (attributes as lines — the git-friendly shape). A third,
lmdbnet, reaches anmvx-lmdbddaemon over the network; switching an account from embedded to networked is one environment variable. -
The classic environment. TCL with VOC dispatch,
LIST/SELECTqueries driven by dictionaries, select lists that flow between commands,ED, and the full verb set — with all verbs written in MVX BASIC itself. - An ecosystem. Packages with dependency manifests, a Cobra-style command framework, runtime-resolved subroutine libraries, docblock metadata queryable through the dictionary, and a VSCode extension.
mvx-basic |
compiler and link driver |
mvx |
the classic TCL shell |
mvx-lmdbd |
the networked storage daemon |
verbs/ |
standard verbs (BASIC source) |
packages/ |
shipped packages: cmd, git, sample
|
examples/ |
FSDEMO, SNAKE |
ARCHITECTURE.md |
the full design document |
DECISIONS.md |
settled implementation decisions |