Ecosystem & Release Blog

Stay up to date with the latest features, releases, and guides from the Ferrite core team.

Ferrite v3.1.0: Expression-Oriented Architecture & Native Lists

The massive v3.1.0 update transforms Ferrite into a fully expression-oriented language and introduces native dynamic collections powered by RAII memory management.

In our biggest syntax overhaul yet, if, match, and blocks now evaluate to values, completely changing how you assign states. We also eliminated the runtime Signal enum in favor of unified execution.


keep grade = if score >= 90 { "A" } else { "F" };
                  

Finally, we introduced List<T> natively into the LLVM backend. Memory allocations are now cleaned up automatically using scope-based tracking!

Ferrite v2.4.1: Engineering Knowledge Base

Maintenance release focusing on project documentation. We have fully published the 21-chapter Engineering Knowledge Base (EKB) detailing the compiler architecture, memory models, and future MLIR roadmap.

Ferrite v2.4.0: Module System & Namespaces

Ferrite scales up! We've introduced a robust module system with import, from, take, and pub keywords, isolating scopes and enabling 100k+ line codebases without symbol pollution.

The Semantic Analyzer now uses a multi-pass DAG resolution system to enforce strict visibility boundaries across files.


import "math"
from "utils" take { helper as my_helper }
pub fun add(a: int, b: int) -> int { return a + b; }
                  

Ferrite v2.3.1: Embedded Stdlib & Playground

The Ferrite compiler can now run entirely in your browser via WebAssembly! We embedded the standard library using include_str! to eliminate OS filesystem dependencies.

Ferrite v2.3.0: Windows Setup Wizard

Our Windows installation experience has been rewritten. The setup wizard now properly publishes vendor parameters, configures environment paths, and resolves standard SDK files directly.

Ferrite v2.2.0: Hardened Type Checks & Traits

Ferrite's compiler type check has been hardened. We've introduced explicit interfaces called Traits, which can be custom-implemented on structural Groups to support clean code architectures.

Ferrite v2.1.0: Generics & Shape Bounds

Introduced the where clause for Trait and Shape bounds, allowing functions to enforce tensor dimensionalities natively during the unification pass.

Ferrite v2.0.0: The LLVM AOT Rewrite

The biggest update in Ferrite history. We discarded the Bytecode VM and transitioned to strict static typing, compiling directly to LLVM IR for bare-metal machine learning performance.

Ferrite now guarantees zero implicit type coercion. Shape mismatch bugs are caught entirely at compile-time.

Ferrite v1.4.0: Closures, Guards & Bytecode VM

Replaced the tree-walking interpreter with a custom Stack-Based Bytecode VM. Introduced lexical closures, enum guard clauses, and skip/stop loops control.

Ferrite v1.0.0: The Genesis

The first public release of the Ferrite language, running on a dynamic Tree-Walking Interpreter written in Rust.