Pawn (Rust)
A Rust rewrite of the Pawn compiler (CompuPhase) — memory-safe and reentrant
(no unsafe, all state in Context/Parser) — producing .amx bytecode that is
byte-identical to the reference C compiler.
Status
- Feature-complete: every bytecode-affecting feature is ported (overlays
-V, KeeLoq encryption-k,#pragma align/opcodeset/tabsize/unused/warning/amxlimit/amxram,#file/#line, loose-indentation warning 217, constant resolution in#if, and the-A/-t/-C/-O/-dflags). - Validation: 72 sources × 7 flag profiles = 504/504 byte-identical to the reference C compiler, plus normalized diagnostics.
Pawn language documentation
The Pawn language specification and guides belong to CompuPhase — this site documents the Rust rewrite, not the language manuals. See Reference (Pawn/CompuPhase) for the official links.
Differences from the reference
Differences from the reference compiler records both directions: the defects found in the upstream compiler (a heap corruption when a size limit is exceeded, a hang on a directory given as a source file, diagnostics attributed to the wrong file), saying which ones this port reproduces on purpose to stay byte-identical; and the places where this port diverges on its own, because Rust lacks the construct the C code relies on or because a subsystem is not ported yet.