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.