Skip to content
torvik-lang edited this page Jul 19, 2026 · 9 revisions

Frequently Asked Questions (FAQ)

General

What is Torvik? Torvik is a self-hosting, compiled, general-purpose programming language with clean Norse-inspired syntax, automatic reference counting, and native performance via LLVM.

Is Torvik production-ready? Yes! Torvik is stable for everyday needs. It is self-hosting and usable on both Linux and Windows, though the ecosystem and some language features are still growing.

What platforms are supported? Linux (x86-64) and Windows (x86-64) are both fully supported. macOS is not yet supported — it's planned for a future version, once real Apple hardware is available for credible testing.


Technical

Does Torvik have a garbage collector? No. It uses automatic reference counting (ARC) for deterministic memory management.

Why the unusual keywords (df, check, whilst, guard, etc.)? The Norse-inspired keywords are a deliberate design choice for clarity, brevity, and distinctiveness.

Can I use Torvik for systems programming? Yes — that is one of its main goals. It compiles to native binaries with no runtime VM.

How do I install Torvik? See the Getting Started page. There's a one-line installer for both Linux (install.sh) and Windows (install.ps1).

Do I need anything besides Torvik to build programs? You need clang on your PATH. On Windows it must be a clang that bundles the MinGW-w64 headers/libraries (LLVM-MinGW, MSYS2, or WinLibs).


Tooling & Ecosystem

What is rune? rune is the official project and build tool (rune new, rune run, rune build, etc.). It also keeps Torvik up to date with rune update (which supports version pinning) and removes it cleanly with rune uninstall.

Does Torvik have package management yet? Project management is available via rune. Full external dependency support is planned for a future release.

Can I contribute to Torvik? Absolutely! See the Contributing page.


Future & Roadmap

When will feature X be added? Check the Roadmap page for planned features and timelines.

What's coming next? v1.3.0 brought concurrency — raven tasks and typed bridge channels — alongside a variadic str_concat and a standard-library expansion (v1.2.0, including the new std::convert module). Earlier, v1.2.0 added aett + when pattern matching, a compile-time warnings system, Result types, and the independently versioned standard library. Official macOS support follows once real Apple hardware is available for credible testing.

Does Torvik have concurrency? Yes, as of v1.3.0. You spawn a df function on its own thread with raven (fire-and-forget, or bind a task<T> handle and collect the result with join), and you pass values between tasks over typed bridge<T> channels (bridge_new / send / recv / try_recv / bridge_close). The design is safe by construction: values are deep-copied as they cross a thread boundary, so tasks share no mutable state and data races aren't expressible. See the Language Guide for the full chapter.

Is Torvik open source? Yes, licensed under GNU AGPL-3.0 with a runtime exception (your programs are not affected).


Other

How can I support the project?

  • Star the repo
  • Use it and share feedback
  • Contribute code or documentation
  • Support via Buy Me a Coffee, Patreon, etc.

Where can I ask questions? Use GitHub Discussions, open an Issue, or check the community channels listed in the README.


Last updated: July 2026 (v1.3.0) This FAQ will grow as more people use Torvik. Feel free to suggest new questions!

Clone this wiki locally