Reference
The specification,
in one place.
The design documents are the specification the compiler is measured against. They are written in Spanish; titles are translated here. Start with the consolidated language reference.
Design documents
documents, one per decision.
Each document records the rule, the alternatives considered and the open questions.
- 01 Variables, types and units ↗
- 02 Functions and signatures ↗
- 03 Traits ↗
- 04 Errors, Result and Option ↗
- 05 Enums and pattern matching ↗
- 06 Ranges, loops and iterators ↗
- 07 Modules and visibility ↗
- 08 Logic and expressions ↗
- 09 Concurrency ↗
- 10 Consistency review (01–09) ↗
- 11 Memory model ↗
- 12 derive and trait inheritance ↗
- 13 Map, Set and collection literals ↗
- 14 Package system ↗
- 15 dyn Trait ↗
- 16 Generic as (scalars to quantities) ↗
- 17 Language reference (consolidated) ↗
- 18 Native backend memory model ↗
- 19 Numeric hierarchy and arrays ↗
- 20 HIR and IR ↗
- 21 Distribution and WebAssembly ↗
- 22 Standard library ↗
- 23 Visualization engine (std.viz) ↗
- 24 Numerical methods (std.numeric) ↗
- 25 Measurements and uncertainty ↗
- 26 Scientific effects, determinism and provenance ↗
- 27 Scalar Quantity ownership and unit labels ↗
- 28 Contextual reassignment types ↗
- 29 Symbolic core: exact numbers, assumptions and derivatives ↗
- 30 Exact arithmetic: arbitrary-precision integers ↗
- 31 Polynomials and exact equation solving ↗
- 32 Exact equations: linear, quadratic and rational roots ↗
- 33 Automatic differentiation: reverse-mode tape ↗
- 34 Polished figures: std.viz style and SVG contract ↗
Command line
ostrinc
The main flags. ostrinc --help lists all of them.
--check- Type-check (the default)
--run- Type-check and run
--test- Run every test_* function
--fmt- Print the formatted file (--write, --check)
--new- Create a project
--project- Use the entry declared by ostrin.toml
--locked- Require the existing ostrin.lock
--fetch- Fetch Git dependencies
--emit-c- Transpile to C
--compile- Build a native executable or WASI module
--target- native (default) or wasm32-wasi
--native-threads- OS threads and blocking channels
--leak-check- Report native allocations at exit
--hir- Print the typed, verified HIR
--ir- Print the basic-block IR
--effect-report- Experimental conservative effect inventory
--provenance-report- Experimental source hash, target and reproducibility artifact
--ownership-check- Detect use after channel send (E1101)
--json- Machine-readable diagnostics
--lsp- Language server over stdio
--dap- Debug adapter over stdio
--version- Print the compiler version