diff --git a/.llm/BETA_3_STDLIB_STABILIZATION.md b/.llm/BETA_3_STDLIB_STABILIZATION.md index 7e550d1..17872fd 100644 --- a/.llm/BETA_3_STDLIB_STABILIZATION.md +++ b/.llm/BETA_3_STDLIB_STABILIZATION.md @@ -1,5 +1,11 @@ # Beta 3 Standard Library Stabilization +Release label: `1.0.0-beta.3` + +Release date: 2026-05-22 + +Status: released beta standard-library stabilization slice. + ## Scope This post-`1.0.0-beta.2` slice stabilizes the existing standard-library surface diff --git a/README.md b/README.md index a0e47df..5c36443 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ 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.2`. +Current release: `1.0.0-beta.3`. ## Repository Layout @@ -24,10 +24,11 @@ scripts/ local release and document tooling ## Beta Scope -`1.0.0-beta.2` keeps the `1.0.0-beta` language baseline, includes the -`1.0.0-beta.1` tooling/install hardening slice, and adds the first -runtime/resource foundation bundle. The language baseline supports practical -local command-line programs and libraries with: +`1.0.0-beta.3` keeps the `1.0.0-beta` language baseline, includes the +`1.0.0-beta.1` tooling/install hardening slice, the `1.0.0-beta.2` +runtime/resource foundation bundle, and the first standard-library +stabilization bundle. The language baseline supports practical local +command-line programs and libraries with: - modules, explicit imports, packages, and local workspaces - `new`, `check`, `fmt`, `test`, `doc`, and `build` @@ -134,10 +135,10 @@ async IO, platform error codes, or stable handle ABI/layout. Directory creation is intentionally narrow and does not imply directory enumeration or recursive filesystem APIs. -## Post-beta Mainline +## 1.0.0-beta.3 Standard Library Stabilization -Current `main` after `1.0.0-beta.2` has started the standard-library -stabilization slice. It includes a generated standard-library API catalog and +The `1.0.0-beta.3` release starts the standard-library stabilization slice. It +adds a generated standard-library API catalog and `examples/projects/stdlib-composition`, a checked/tested/run-capable program that composes `std.fs`, `std.string`, `std.math`, and `std.io`. diff --git a/compiler/Cargo.lock b/compiler/Cargo.lock index 5049f84..9f3d18c 100644 --- a/compiler/Cargo.lock +++ b/compiler/Cargo.lock @@ -4,4 +4,4 @@ version = 3 [[package]] name = "glagol" -version = "1.0.0-beta.2" +version = "1.0.0-beta.3" diff --git a/compiler/Cargo.toml b/compiler/Cargo.toml index 1099b18..25317cf 100644 --- a/compiler/Cargo.toml +++ b/compiler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "glagol" -version = "1.0.0-beta.2" +version = "1.0.0-beta.3" edition = "2021" description = "Glagol, the first compiler for the Slovo language" license = "MIT OR Apache-2.0" diff --git a/docs/POST_BETA_ROADMAP.md b/docs/POST_BETA_ROADMAP.md index 3f3e443..16c9c12 100644 --- a/docs/POST_BETA_ROADMAP.md +++ b/docs/POST_BETA_ROADMAP.md @@ -87,7 +87,7 @@ Work: - identify helpers that should wait for generics instead of being copied across concrete type families -Started on `main` after `1.0.0-beta.2`: `docs/language/STDLIB_API.md` is +Released in `1.0.0-beta.3`: `docs/language/STDLIB_API.md` is generated from `lib/std/*.slo` and guarded by `scripts/release-gate.sh`. `examples/projects/stdlib-composition` adds a realistic command-line project that composes `std.fs`, `std.string`, `std.math`, and `std.io` through explicit diff --git a/docs/compiler/RELEASE_NOTES.md b/docs/compiler/RELEASE_NOTES.md index 50bb4ab..04a0b29 100644 --- a/docs/compiler/RELEASE_NOTES.md +++ b/docs/compiler/RELEASE_NOTES.md @@ -12,6 +12,37 @@ integration/readiness release, not the first real beta. No unreleased changes yet. +## 1.0.0-beta.3 + +Release label: `1.0.0-beta.3` + +Release date: 2026-05-22 + +Release state: standard-library stabilization beta update + +### Summary + +Glagol `1.0.0-beta.3` keeps the `1.0.0-beta` compiler support baseline and +adds the first standard-library stabilization bundle: + +- `scripts/render-stdlib-api-doc.sh` generates + `docs/language/STDLIB_API.md` from repo-root `lib/std/*.slo` +- the release gate now verifies that generated standard-library API catalog + before tests and smoke checks complete +- `examples/projects/stdlib-composition` proves a realistic multi-module + standard-library program through `fmt --check`, `check`, `test`, `doc`, and + hosted `glagol run` when the local toolchain is available +- `compiler/tests/standard_stdlib_composition_beta.rs` gates that composition + example and guards against accidental local module copies +- project-local `.slovo/` build artifacts are ignored so `glagol run` output + stays out of commits + +### Explicit Deferrals + +This release does not add syntax, generics, stable standard-library API +promises, stable ABI/layout guarantees, richer host error codes, networking, or +async runtime behavior. + ## 1.0.0-beta.2 Release label: `1.0.0-beta.2` diff --git a/docs/compiler/ROADMAP.md b/docs/compiler/ROADMAP.md index 98939d2..bb4ef16 100644 --- a/docs/compiler/ROADMAP.md +++ b/docs/compiler/ROADMAP.md @@ -22,11 +22,12 @@ general-purpose beta release. A Glagol feature is done only when it has parser/lowerer support, checker behavior, diagnostics for invalid forms, backend behavior or explicit unsupported diagnostics, and tests. -Current stage: `1.0.0-beta.2`, released on 2026-05-22 as the first post-beta -runtime/resource foundation update. It keeps the `1.0.0-beta` language/compiler -support baseline and includes the `1.0.0-beta.1` tooling hardening release plus -beta-scoped `std.fs` resource handles, filesystem status checks, file removal, -and single-directory creation. +Current stage: `1.0.0-beta.3`, released on 2026-05-22 as the first post-beta +standard-library stabilization update. It keeps the `1.0.0-beta` +language/compiler support baseline and includes the `1.0.0-beta.1` tooling +hardening release, the `1.0.0-beta.2` runtime/resource foundation release, the +generated standard-library API catalog gate, and focused multi-module stdlib +composition coverage. The final experimental precursor scope is `exp-125`. Its unsigned direct-value flow, parse/format runtime lanes, and matching staged stdlib helper breadth diff --git a/docs/language/RELEASE_NOTES.md b/docs/language/RELEASE_NOTES.md index 4273da1..fb32aea 100644 --- a/docs/language/RELEASE_NOTES.md +++ b/docs/language/RELEASE_NOTES.md @@ -8,15 +8,43 @@ Historical `exp-*` releases listed here are experimental maturity milestones. The pushed tag `v2.0.0-beta.1` is historical. It is now documented as an experimental integration/readiness release, not as a beta maturity claim. -The current release is `1.0.0-beta.2`, published on 2026-05-22. It keeps the +The current release is `1.0.0-beta.3`, published on 2026-05-22. It keeps the `1.0.0-beta` language surface, includes the first post-beta tooling/install hardening bundle from `1.0.0-beta.1`, and adds the first runtime/resource -foundation bundle. +foundation bundle from `1.0.0-beta.2` plus the first standard-library +stabilization bundle. ## Unreleased No unreleased changes yet. +## 1.0.0-beta.3 + +Release label: `1.0.0-beta.3` + +Release name: Standard Library Stabilization Bundle + +Release date: 2026-05-22 + +Status: released beta standard-library stabilization update on the +`1.0.0-beta` language baseline. + +`1.0.0-beta.3` contains the first standard-library stabilization slice: + +- `docs/language/STDLIB_API.md` is generated from the exported helpers in + `lib/std/*.slo` +- `scripts/render-stdlib-api-doc.sh` regenerates that catalog, and + `scripts/release-gate.sh` fails if the generated catalog is stale +- `examples/projects/stdlib-composition` adds a realistic command-line project + that composes explicit `std.fs`, `std.string`, `std.math`, and `std.io` + imports for file write/read, parse, compute, cleanup, and hosted run output +- `.llm/BETA_3_STDLIB_STABILIZATION.md` records the beta.3 stabilization + contract and deferred decisions + +This release does not freeze stable standard-library APIs. It still defers +generics, an automatic prelude, stable ABI/layout guarantees, richer host error +codes, maps/sets, networking, and async behavior. + ## 1.0.0-beta.2 Release label: `1.0.0-beta.2` diff --git a/docs/language/ROADMAP.md b/docs/language/ROADMAP.md index 8a9b858..7296826 100644 --- a/docs/language/ROADMAP.md +++ b/docs/language/ROADMAP.md @@ -10,11 +10,12 @@ Long-horizon planning lives in release train from the historical `v2.0.0-beta.1` tag toward and beyond the first real general-purpose beta Slovo contract. -Current stage: `1.0.0-beta.2`, released on 2026-05-22 as the first post-beta -runtime/resource foundation update. It keeps the `1.0.0-beta` language -contract and includes the `1.0.0-beta.1` tooling hardening release plus -beta-scoped `std.fs` resource handles, filesystem status checks, file removal, -and single-directory creation. +Current stage: `1.0.0-beta.3`, released on 2026-05-22 as the first post-beta +standard-library stabilization update. It keeps the `1.0.0-beta` language +contract and includes the `1.0.0-beta.1` tooling hardening release, the +`1.0.0-beta.2` runtime/resource foundation release, the generated +standard-library API catalog, and a checked multi-module stdlib composition +project. The final experimental precursor scope is `exp-125`, defined in `.llm/EXP_125_UNSIGNED_U32_U64_NUMERIC_AND_STDLIB_BREADTH_ALPHA.md`. Its diff --git a/docs/language/STDLIB_API.md b/docs/language/STDLIB_API.md index e198d65..9cdb8b8 100644 --- a/docs/language/STDLIB_API.md +++ b/docs/language/STDLIB_API.md @@ -6,7 +6,7 @@ Do not edit this file by hand. ## Stability Tiers - `beta-supported`: exported from `lib/std` and covered by source-search, promotion, or facade gates in the current beta line. -- `experimental`: not used for exported `lib/std` helpers in `1.0.0-beta.2`; future releases may mark new helpers this way before they graduate. +- `experimental`: not used for exported `lib/std` helpers in `1.0.0-beta.3`; future releases may mark new helpers this way before they graduate. - `internal`: helper names that are not exported from their module; they are intentionally omitted from this catalog. The catalog is a beta compatibility aid, not a stable `1.0.0` API freeze. diff --git a/docs/language/examples/README.md b/docs/language/examples/README.md index 4f4728c..ed2b042 100644 --- a/docs/language/examples/README.md +++ b/docs/language/examples/README.md @@ -8,11 +8,11 @@ Entries in this section are current compiler support under the matching release notes. The current compiler-supported language baseline is `1.0.0-beta`; `1.0.0-beta.1` adds tooling/install hardening without changing these source-language fixtures. `1.0.0-beta.2` adds beta-scoped -runtime/resource foundation APIs. Current `main` after `1.0.0-beta.2` also -adds the generated stdlib API catalog and the checked -`projects/stdlib-composition/` example. The language baseline absorbs the final -exp-125 unsigned precursor scope alongside the already promoted project/package, -stdlib-source, collection, composite-data, formatter, and diagnostics surface. +runtime/resource foundation APIs. `1.0.0-beta.3` adds the generated stdlib API +catalog and the checked `projects/stdlib-composition/` example. The language +baseline absorbs the final exp-125 unsigned precursor scope alongside the +already promoted project/package, stdlib-source, collection, composite-data, +formatter, and diagnostics surface. `supported/add.slo` is the current executable promotion fixture. Glagol can parse it, lower it, type-check it, emit LLVM for it, and cover that output with an automated diff --git a/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf b/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf index c9f210a..46ebda8 100644 Binary files a/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf and b/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf differ diff --git a/docs/papers/GLAGOL_WHITEPAPER.md b/docs/papers/GLAGOL_WHITEPAPER.md index 1d491eb..991727e 100644 --- a/docs/papers/GLAGOL_WHITEPAPER.md +++ b/docs/papers/GLAGOL_WHITEPAPER.md @@ -5,16 +5,17 @@ Sanjin Gumbarevic
hermeticum_lab@protonmail.com -Publication release: `1.0.0-beta.2` +Publication release: `1.0.0-beta.3` Technical behavior baseline: compiler and language support through `1.0.0-beta`; tooling and install workflow through `1.0.0-beta.1`; -runtime/resource foundation through `1.0.0-beta.2` +runtime/resource foundation through `1.0.0-beta.2`; standard-library +stabilization through `1.0.0-beta.3` Date: 2026-05-22 Evidence source: paired local Slovo/Glagol monorepo verification and benchmark -reruns from a local checkout; beta.2 release-gate verification from the public +reruns from a local checkout; beta.3 release-gate verification from the public monorepo Maturity: beta @@ -26,16 +27,17 @@ Slovo. It exists to make the language support boundary inspectable: tokens, S-expression tree, AST, typed AST, LLVM IR, hosted native executable, tests, diagnostics, and release documents should agree. -The current publication release, `1.0.0-beta.2`, keeps the first real +The current publication release, `1.0.0-beta.3`, keeps the first real general-purpose beta toolchain baseline from `1.0.0-beta` and records the first post-beta tooling/install hardening update plus the first -runtime/resource foundation update. The beta baseline includes +runtime/resource foundation update plus the first standard-library +stabilization update. The beta baseline includes the completed `u32` / `u64` unsigned compiler and stdlib breadth scope alongside the current nine-kernel benchmark suite. This paper records the current beta implementation surface, the benchmark method and results, the distinction between Glagol and Lisp-family implementations, the beta.1 tooling -update, the beta.2 runtime/resource foundation, and the compiler path from beta -to stable. +update, the beta.2 runtime/resource foundation, the beta.3 standard-library +stabilization slice, and the compiler path from beta to stable. ## 1. Compiler Thesis @@ -119,7 +121,7 @@ At the current technical behavior beta baseline, Glagol supports: - benchmark scaffolds for Slovo, C, Rust, Python, Clojure, and Common Lisp/SBCL, with `cold-process` and `hot-loop` timing modes -The current release, `1.0.0-beta.2`, is a beta runtime/resource foundation +The current release, `1.0.0-beta.3`, is a beta standard-library stabilization update on the first release line that may honestly use beta maturity language for this toolchain. @@ -278,7 +280,8 @@ python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --w The benchmark rows below remain the full-suite `1.0.0-beta` publication baseline. `1.0.0-beta.1` changes tooling and install workflow, and -`1.0.0-beta.2` adds runtime/resource APIs; neither release claims changed +`1.0.0-beta.2` adds runtime/resource APIs. `1.0.0-beta.3` adds standard-library +catalog and composition coverage. None of these post-beta slices claims changed benchmark performance. The exp-123 publication baseline widened the paired same-machine result set @@ -367,12 +370,12 @@ coverage and compatibility: - package behavior becoming stable before dependency, manifest, and versioning rules are precise -## 9. Path Beyond `1.0.0-beta.2` +## 9. Path Beyond `1.0.0-beta.3` Glagol now implements the first real beta Slovo contract, the first -post-beta tooling/install hardening release, and the first runtime/resource -foundation release. The remaining path is from beta -to stable. +post-beta tooling/install hardening release, the first runtime/resource +foundation release, and the first standard-library stabilization release. The +remaining path is from beta to stable. Recommended compiler sequence: diff --git a/docs/papers/GLAGOL_WHITEPAPER.pdf b/docs/papers/GLAGOL_WHITEPAPER.pdf index 89a1b46..685b4e4 100644 Binary files a/docs/papers/GLAGOL_WHITEPAPER.pdf and b/docs/papers/GLAGOL_WHITEPAPER.pdf differ diff --git a/docs/papers/SLOVO_MANIFEST.pdf b/docs/papers/SLOVO_MANIFEST.pdf index 01739f5..cc2a9ce 100644 Binary files a/docs/papers/SLOVO_MANIFEST.pdf and b/docs/papers/SLOVO_MANIFEST.pdf differ diff --git a/docs/papers/SLOVO_WHITEPAPER.md b/docs/papers/SLOVO_WHITEPAPER.md index 2eea273..9181443 100644 --- a/docs/papers/SLOVO_WHITEPAPER.md +++ b/docs/papers/SLOVO_WHITEPAPER.md @@ -5,16 +5,16 @@ Sanjin Gumbarevic
hermeticum_lab@protonmail.com -Publication release: `1.0.0-beta.2` +Publication release: `1.0.0-beta.3` Technical behavior baseline: language surface through `1.0.0-beta`; tooling and install workflow through `1.0.0-beta.1`; runtime/resource foundation through -`1.0.0-beta.2` +`1.0.0-beta.2`; standard-library stabilization through `1.0.0-beta.3` Date: 2026-05-22 Evidence source: paired local Slovo/Glagol monorepo verification and benchmark -reruns from a local checkout; beta.2 release-gate verification from the public +reruns from a local checkout; beta.3 release-gate verification from the public monorepo Maturity: beta @@ -29,23 +29,25 @@ explicit types, explicit failure through `option` and `result`, lexical `unsafe`, and native compilation through the Glagol compiler to LLVM IR and hosted executables. -The current publication release, `1.0.0-beta.2`, keeps the first real +The current publication release, `1.0.0-beta.3`, keeps the first real general-purpose beta language baseline from `1.0.0-beta` and records the first post-beta tooling/install hardening update plus the first runtime/resource -foundation update. The beta baseline includes the +foundation update plus the first standard-library stabilization update. The +beta baseline includes the completed `u32` / `u64` unsigned scope, the staged stdlib breadth that makes ordinary command-line programs practical, and the current nine-kernel benchmark suite. This paper records the current beta technical state, the difference between Slovo and Lisp-family languages, the benchmark methodology, -the beta.1 tooling update, the beta.2 runtime/resource foundation, and the -remaining path from beta to stable. +the beta.1 tooling update, the beta.2 runtime/resource foundation, the beta.3 +standard-library stabilization slice, and the remaining path from beta to +stable. ## 1. Scope This document is a technical state paper for the current beta baseline. It summarizes the behavior represented by the paired local Slovo and Glagol workspaces, with `1.0.0-beta` as the current language-surface baseline and -`1.0.0-beta.1` as the current publication/tooling baseline. +`1.0.0-beta.3` as the current publication baseline. The support rule remains strict: @@ -57,7 +59,7 @@ The support rule remains strict: - partial parser recognition or speculative examples do not count as support Historical `exp-*` releases remain experimental alpha maturity. The current -publication accompanies `1.0.0-beta.1`. +publication accompanies `1.0.0-beta.3`. ## 2. Design Thesis @@ -355,7 +357,8 @@ python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --w The benchmark rows below remain the full-suite `1.0.0-beta` publication baseline. `1.0.0-beta.1` changes tooling and install workflow, and -`1.0.0-beta.2` adds runtime/resource APIs; neither release claims changed +`1.0.0-beta.2` adds runtime/resource APIs. `1.0.0-beta.3` adds standard-library +catalog and composition coverage. None of these post-beta slices claims changed benchmark performance. The exp-123 publication baseline widened the paired same-machine result set @@ -477,13 +480,14 @@ Major remaining gaps before `1.0.0`: - semantic versioning and deprecation policy - a clear separation between stable and experimental features -## 10. Path Beyond `1.0.0-beta.2` +## 10. Path Beyond `1.0.0-beta.3` The beta threshold is now real. The next work should treat `1.0.0-beta` as the language compatibility-governed baseline, `1.0.0-beta.1` as the first -tooling/install hardening point, and `1.0.0-beta.2` as the first -runtime/resource foundation point, then move deliberately toward stable -general-purpose status. +tooling/install hardening point, `1.0.0-beta.2` as the first runtime/resource +foundation point, and `1.0.0-beta.3` as the first standard-library +stabilization point, then move deliberately toward stable general-purpose +status. Recommended sequence: diff --git a/docs/papers/SLOVO_WHITEPAPER.pdf b/docs/papers/SLOVO_WHITEPAPER.pdf index e253f04..89b216f 100644 Binary files a/docs/papers/SLOVO_WHITEPAPER.pdf and b/docs/papers/SLOVO_WHITEPAPER.pdf differ