github.com/SwirlLang/Swirl ↗
An LLVM-based systems programming language for learning and experimentation.
Open this visualization on its own page →
Contributors
16
Lines of Code
1,252
From
2021-08-20
To
2023-03-06
About SwirlLang/Swirl
Swirl is a statically and strongly-typed systems programming language built on LLVM for native code generation. It is designed as a learning and experimentation platform rather than for production use. The language features a module system with export controls, allowing developers to organize code across multiple files while managing symbol visibility between them.
The compiler architecture implements a traditional multi-stage pipeline starting with lexical analysis and parsing to build abstract syntax trees, followed by semantic analysis that spans symbol registration, symbol resolution, and type resolution. The compiler performs semantic analysis and subsequent passes in parallel for independent module batches to improve efficiency. After semantic analysis, the compiler handles compile-time evaluation for constexpr-like constructs and monomorphizes generic types based on their usage.
The project provides documentation, a VS Code extension for language support, and maintains an active Discord community for contributors. Development follows a standard open-source workflow with a GitHub issue tracker for bug reports and feature requests, welcoming forks and pull requests from the community.