Temper documentation#
Temper is a programming language for writing libraries once and using them from every other language. These docs cover the language, its standard library, its tools, and how this compiler, tempest, works. New here? Start with the quick tour.
Learn#
- Introduction: what Temper does, with examples in each language, and where it fits.
- Quick tour: Temper in five short examples.
- Why a new programming language?
- Getting started: write a library and use it from C#, Java, JavaScript, Lua, Python, and Rust.
- Tutorial: classes, interfaces, control flow, modules, builtin types, memory, and regular expressions.
Reference#
- The language: types and values, builtins, syntax, and modules and files.
- The standard library:
std/json,std/regex,std/temporal,std/testing, andstd/net. - Target languages: what each backend makes, and how.
- Tools: the command line, editors, and the playground.
- Release notes.
Inside#
- Contributing: building, testing, and sending changes, and writing these docs.
- How tempest works: the compiler, stage by stage, with diagrams and links into the code.
- Design notes: the plan, and the decisions behind it.
- Inconsistencies: where these docs, Temper's first compiler, and tempest still disagree, to be resolved.
Where these docs come from#
Most of the guide, reference, and release notes began as Temper's documentation site, temperlang.dev, and its sources in the temperlang/temper repository, including reference pages generated there from doc comments in the compiler's source. They're Markdown source here, edited by hand (how, and how the docs site is built). The blog stays in its own repository.
Copyright The Temper Project Contributors. The documentation is licensed under CC BY-SA 4.0; see COPYRIGHT.
Note: temperlang.dev's footer says CC BY-NC-SA 4.0, unlike COPYRIGHT (inconsistencies).