/phantasm

The Portable, Hardened, Asynchronous, Natively Typed, Abstract Stack Machine

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

PHANTASM: The Portable, Hardened, Asynchronous, Natively Typed, Abstract Stack Machine

NOTICE: This is a personal project that I've published for people who wanted to take a look at it. I'm not sure what the future of the project is.

It was unmaintained for a few years (I got into Swift and Metal), but I recently began working on it again, and have substantially improved the language (and implementation) since. My plan is to implement a few more features (like SIMD), then build out a small ecosystem (tools, syntax highlighting for popular editors et cetera), and to spend some time using the assembler, then maybe do a rewrite in a year or so (who knows).


PHANTASM is an assembler for WebAssembly. It allows you to author WebAssembly modules in a convenient, modern language, instead of repurposing the WebAssembly Text Format.

The name PHANTASM is an acronym derived from a description of the language semantics: Portable, Hardened, Asynchronous, Natively Typed, Abstract Stack Machine. The name is also a description of the WebAssembly Engine, which follows from the fact that PHANTASM exposes the WebAssembly ISA directly, having no semantics of its own, beyond a handful of small conveniences.

See The PHANTASM Crashcourse or the project wiki for more information.