- Rust 95%
- C 2%
- Python 1.3%
- JavaScript 0.6%
- Common Lisp 0.5%
- Other 0.6%
| .llm | ||
| benchmarks | ||
| compiler | ||
| docs | ||
| examples | ||
| lib/std | ||
| runtime | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
Slovo
Slovo (ⰔⰎⰑⰂⰑ) is experimental LLM-generated typed structural programming language and native toolchain. Glagol is the first Slovo compiler.
Current release: 1.0.0.
This repository is the public monorepo for the language design, compiler, runtime, standard library source, examples, benchmarks, and technical papers.
Quick Start
Build the compiler:
cargo build --manifest-path compiler/Cargo.toml
./compiler/target/debug/glagol --version
Create and check a project:
./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 or run a native executable when Clang is available:
SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol build hello -o hello/bin
SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol run hello
Install the current checkout:
PREFIX="$HOME/.local" ./scripts/install.sh
The installed layout discovers the standard library and runtime relative to the installed binary:
<prefix>/bin/glagol
<prefix>/share/slovo/std/*.slo
<prefix>/share/slovo/runtime/runtime.c
Example
(module main)
(import std.io (print_i32_zero))
(import std.math (square_i32))
(fn score () -> i32
(square_i32 10))
(fn main () -> i32
(let value i32 (score))
(print_i32_zero value))
(test "score"
(= (score) 100))
What Works Now
Slovo 1.0.0 is useful for small native local programs and language/runtime
experiments. The stable baseline includes:
- modules, explicit imports, local packages, and local workspaces
new,check,fmt,test,doc,symbols,build,run, andclean- scalar types:
i32,i64,u32,u64, finitef64,bool,string, and internalunit - functions, top-level tests, immutable locals, same-type mutable whole-value
locals,
if, andwhile - structs, enums, fixed immutable arrays, concrete vectors, option/result
families, and current
match - module-local transparent concrete type aliases
- source-authored standard-library facades in
lib/std/*.slo - hosted native executables through LLVM IR, Clang, and
runtime/runtime.c - JSON diagnostics, artifact manifests, generated docs, and symbol metadata
Good current use cases:
- command-line tools
- deterministic examples and tests
- local file/string/numeric/data-processing programs
- small package/workspace projects
- compiler, language, and standard-library experiments
- local benchmark comparisons
Standard Library
The standard library is source-authored under lib/std/ and imported
explicitly. Stable source-level facade signatures are listed in
docs/language/STDLIB_API.md, with tier policy
in docs/language/STDLIB_TIERS.md.
Stable or currently promoted families include:
std.iostd.stringstd.numstd.mathstd.optionstd.result- concrete vector modules:
std.vec_i32,std.vec_i64,std.vec_f64,std.vec_bool,std.vec_string - local package/workspace documentation support
Experimental domains are usable but intentionally not frozen as stable contracts:
std.jsonstd.netstd.randomstd.time- filesystem resource-handle helpers
Stable Boundary
1.0.0 is a narrow stable release. It promotes already documented and gated
behavior; it does not add new language, runtime, package-manager, schema, or
performance behavior.
Stable in 1.0:
- promoted source-language baseline in
docs/language/SPEC-v1.md - canonical formatter bytes for promoted formatter fixtures
slovo.diagnosticversion1machine diagnostics for promoted source features- stable-tier source-level standard-library facades
- closed local package/workspace version and path-dependency policy
Not stable in 1.0:
- generated Markdown/catalog schemas
- artifact-manifest schema shape
- symbol metadata schema
- benchmark JSON schema or performance claims
- private runtime helper symbols
- ABI/layout, C ABI, raw memory, optimizer behavior
- registries, lockfiles, semver solving, publishing, package features
- LSP/watch/SARIF/daemon protocols
- generics, maps, sets, iterators, mutable vectors, slice/view APIs
- broad Unicode semantics, DNS/TLS/UDP/async networking
The full policy is in
docs/language/STABLE_POLICY.md. The compiler
side of the same boundary is in
docs/compiler/STABLE_RELEASE_BOUNDARY.md.
Repository Layout
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 examples and projects
benchmarks/ local benchmark comparison harnesses
.llm/skills/ LLM skills for Slovo project work
docs/language/ language manifest, spec, roadmap, and release notes
docs/compiler/ compiler manifest, roadmap, and release notes
docs/papers/ whitepapers and generated publication PDFs
scripts/ release, install, and document tooling
Useful Commands
# Full compiler test suite
cargo test --manifest-path compiler/Cargo.toml
# Full local release gate
./scripts/release-gate.sh
# Format-check a project
SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol fmt --check hello
# Write formatted source
SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol fmt --write hello
# Generate public API docs
SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol doc hello -o hello-docs
# Emit editor-facing symbols
SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol symbols hello
# List benchmark suites
python3 benchmarks/runner.py --suite-list
Documentation
- Language spec:
docs/language/SPEC-v1.md - Stable policy:
docs/language/STABLE_POLICY.md - Standard library API:
docs/language/STDLIB_API.md - Package/workspace guide:
docs/language/PACKAGES.md - Compiler manifest:
docs/compiler/GLAGOL_COMPILER_MANIFEST.md - Benchmarks:
benchmarks/README.md - Release notes:
docs/language/RELEASE_NOTES.md - Whitepapers and PDFs:
docs/papers/ - LLM project-starting skill:
.llm/skills/slovo-getting-started/
License
This project is licensed under the terms in LICENSE.