The tree is the language.
  • Rust 95%
  • C 2%
  • Python 1.3%
  • JavaScript 0.6%
  • Common Lisp 0.5%
  • Other 0.6%
Find a file
2026-06-01 21:19:25 +00:00
.llm Add Slovo getting started LLM skill 2026-05-26 08:35:44 +02:00
benchmarks Release 1.0.0 stable boundary 2026-05-25 10:14:41 +02:00
compiler Release 1.0.0 stable boundary 2026-05-25 10:14:41 +02:00
docs Release 1.0.0 stable boundary 2026-05-25 10:14:41 +02:00
examples Release 1.0.0-beta.26 vector builder parity 2026-05-25 07:45:39 +02:00
lib/std Release 1.0.0-beta.26 vector builder parity 2026-05-25 07:45:39 +02:00
runtime Release 1.0.0-beta.18 JSON string token parsing foundation 2026-05-23 00:40:38 +02:00
scripts Release 1.0.0 stable boundary 2026-05-25 10:14:41 +02:00
tests Release 1.0.0-beta.18 JSON string token parsing foundation 2026-05-23 00:40:38 +02:00
.gitignore Add stdlib composition example 2026-05-22 12:53:11 +02:00
CONTRIBUTING.md Harden monorepo release gate 2026-05-22 08:43:06 +02:00
LICENSE Import Slovo 1.0.0-beta monorepo 2026-05-22 08:38:43 +02:00
LICENSE-APACHE Import Slovo 1.0.0-beta monorepo 2026-05-22 08:38:43 +02:00
LICENSE-MIT Import Slovo 1.0.0-beta monorepo 2026-05-22 08:38:43 +02:00
README.md Update README.md 2026-06-01 21:19:25 +00:00

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, and clean
  • scalar types: i32, i64, u32, u64, finite f64, bool, string, and internal unit
  • functions, top-level tests, immutable locals, same-type mutable whole-value locals, if, and while
  • 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.io
  • std.string
  • std.num
  • std.math
  • std.option
  • std.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.json
  • std.net
  • std.random
  • std.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.diagnostic version 1 machine 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

License

This project is licensed under the terms in LICENSE.