slovo/README.md
2026-05-22 11:20:27 +02:00

92 lines
2.8 KiB
Markdown

# Slovo
Slovo (ⰔⰎⰑⰂⰑ) is a typed structural programming language and toolchain.
This repository is the canonical public monorepo for the language design,
standard library source, compiler, runtime, examples, benchmarks, and technical
documents.
Current release: `1.0.0-beta`.
## Repository Layout
```text
compiler/ Glagol, the first Slovo compiler
runtime/ C runtime used by hosted native builds
lib/std/ source-authored Slovo standard-library facades
examples/ compiler-supported Slovo examples and projects
benchmarks/ local benchmark comparison harnesses
docs/language/ language manifest, specs, roadmap, and release notes
docs/compiler/ compiler manifest, roadmap, and release notes
docs/papers/ whitepapers and generated publication PDFs
scripts/ local release and document tooling
```
## Beta Scope
`1.0.0-beta` supports practical local command-line programs and libraries with:
- modules, explicit imports, packages, and local workspaces
- `new`, `check`, `fmt`, `test`, `doc`, and `build`
- `i32`, `i64`, `u32`, `u64`, `f64`, `bool`, `string`, and internal `unit`
- structs, enums, fixed arrays, concrete vectors, option/result families, and
current `match`
- explicit `std/*.slo` imports from `lib/std`, installed `share/slovo/std`, or
`SLOVO_STD_PATH`
- hosted native builds through LLVM IR, Clang, and `runtime/runtime.c`
Still deferred before stable: generics, maps/sets, broad package registry
semantics, networking/async, LSP/watch/debug-adapter guarantees, stable ABI and
layout, and a stable standard-library compatibility freeze.
## Build And Test
```bash
cargo test --manifest-path compiler/Cargo.toml
```
Run the full local release gate:
```bash
./scripts/release-gate.sh
```
Build the compiler binary:
```bash
cargo build --manifest-path compiler/Cargo.toml
./compiler/target/debug/glagol --version
```
Create and check a project:
```bash
./compiler/target/debug/glagol new hello
SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol check hello
SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol test hello
```
Build a native executable when Clang is available:
```bash
SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol build hello -o hello/bin
```
## Documentation
- [Language Manifest](docs/language/MANIFEST.md)
- [Language Specification](docs/language/SPEC-v1.md)
- [Compiler Manifest](docs/compiler/GLAGOL_COMPILER_MANIFEST.md)
- [Post-Beta Roadmap](docs/POST_BETA_ROADMAP.md)
- [Slovo Whitepaper](docs/papers/SLOVO_WHITEPAPER.md)
- [Glagol Whitepaper](docs/papers/GLAGOL_WHITEPAPER.md)
Generated PDFs live beside their Markdown sources in `docs/papers/`.
Regenerate them with `./scripts/render-doc-pdfs.sh` before documentation
releases.
## License
Slovo is licensed under either the MIT License or the Apache License, Version
2.0, at your option.