Status & Limitations
Understanding the Alpha state of Mist and our technical roadmap.
Mist is currently in a Volatile Alpha stage. Our current priority is exploring Syntax and Features. We believe in stabilizing the developer experience and the "feel" of the language before locking in the deep architectural logic of the compiler.
The "Syntax-First" Philosophy
Mist is currently in a phase of rapid iteration. We are intentionally keeping the Semantics flexible while we finalize the Syntax.
-
The Goal: Finalize a robust, ergonomic feature set first.
-
The Reasoning: Implementing complex semantic analysis while features are still being added is inefficient. By stabilizing the syntax first, we ensure that adding full semantic depth becomes a cohesive, "single-step" process later in development.
Current Technical Trade-offs
To allow for this rapid syntax exploration, the compiler currently uses a "Shim" model for certain complex Rust operations.
1. The Construction Model
To support Mist's unified Class and Constructor model, the compiler uses an experimental memory initialization pattern.
-
Mechanism: The compiler generates a "shell" using
MaybeUninit, allowingselfto be used inside the constructor logic. -
Limitation: Because full Definite Assignment Analysis (semantics) is not yet implemented, the compiler does not verify that every field is assigned. It currently relies on zeroing out memory as a placeholder.
-
Future Fix: Once the syntax is frozen, we will implement the semantic checks required to generate standard, safe Rust struct literals.
2. Inheritance
Inheritance is a major planned feature but is currently not implemented.
- Status: The syntax for inheritance is being designed, but it will not be functional until the semantic analyzer is built to handle v-tables and memory layouts in the emitted Rust code.
Feature Volatility
Be aware that because we are focusing on syntax, keywords and structures may change between minor versions. Currently:
-
Access Modifiers:
publicand private defaults are being tested for various contexts (classes vs. structs, orpublic(crate)). -
Pointers vs. References: The
*syntax for references (e.g.,self mut*) is the current standard but is subject to refinement based on ecosystem feedback. -
Trait Implementations: The "In-Class"
implblock is a core feature we are prioritizing for ergonomics.
Alpha Warning: Mist is currently a playground for defining a better way to write systems code. Expect breaking changes as we finalize the surface layer of the language.