Skip to content
CShift0.32

CShift documentation

Document For
Installation what cshiftc needs on Windows and Linux, the packages per distribution
Language guide learning the language: a tour with examples, chapter by chapter
Language reference the precise rules of the language: syntax, types, conversions, semantics, the grammar
Language status what is implemented, and the decisions the design leaves open
Standard library List, Dictionary, File, Path, Math, Random, threads, Mutex, …
User interfaces: System.Ui windows with buttons, text boxes, sliders and lists in immediate mode: widgets, layout, ids, themes, drawing
C interop: importing headers using X from "header.h", type mapping, callbacks, structs by value
WebAssembly --backend wasm and --target wasm32-wasi: programs for node, wasmtime and the browser, games with GLFW and OpenGL in the browser; what is needed, what differs
The Amiga: the m68k backend AmigaOS programs: --target m68k-amigaos, libraries from SFD files, the NDK, Amiga.Hardware
Debugging -g: breakpoints, stepping and call stacks with gdb and lldb
Projects and the build cshift.json, cshiftc build/run/new, ideas for a build in CShift
The compiler how cshiftc works, the bootstrap, tests, dependencies
Language design the original design document: goals and rationale

The documentation is also a website with search and the reference of every type and function of the standard library: https://robert-schneckenhaus.github.io/CShift/ (one version per major release, made by site/ at every release).

The compiler’s sources are described in selfhost/README.md; open work is in Todo.md, the changes of each release in CHANGELOG.md.