Release 1.0.0-beta.3

This commit is contained in:
sanjin 2026-05-22 13:02:01 +02:00
parent 25bad3cb8b
commit bcfc8d7b68
17 changed files with 131 additions and 56 deletions

View File

@ -1,5 +1,11 @@
# Beta 3 Standard Library Stabilization # 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 ## Scope
This post-`1.0.0-beta.2` slice stabilizes the existing standard-library surface This post-`1.0.0-beta.2` slice stabilizes the existing standard-library surface

View File

@ -6,7 +6,7 @@ This repository is the canonical public monorepo for the language design,
standard library source, compiler, runtime, examples, benchmarks, and technical standard library source, compiler, runtime, examples, benchmarks, and technical
documents. documents.
Current release: `1.0.0-beta.2`. Current release: `1.0.0-beta.3`.
## Repository Layout ## Repository Layout
@ -24,10 +24,11 @@ scripts/ local release and document tooling
## Beta Scope ## Beta Scope
`1.0.0-beta.2` keeps the `1.0.0-beta` language baseline, includes the `1.0.0-beta.3` keeps the `1.0.0-beta` language baseline, includes the
`1.0.0-beta.1` tooling/install hardening slice, and adds the first `1.0.0-beta.1` tooling/install hardening slice, the `1.0.0-beta.2`
runtime/resource foundation bundle. The language baseline supports practical runtime/resource foundation bundle, and the first standard-library
local command-line programs and libraries with: stabilization bundle. The language baseline supports practical local
command-line programs and libraries with:
- modules, explicit imports, packages, and local workspaces - modules, explicit imports, packages, and local workspaces
- `new`, `check`, `fmt`, `test`, `doc`, and `build` - `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 is intentionally narrow and does not imply directory enumeration or recursive
filesystem APIs. 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 The `1.0.0-beta.3` release starts the standard-library stabilization slice. It
stabilization slice. It includes a generated standard-library API catalog and adds a generated standard-library API catalog and
`examples/projects/stdlib-composition`, a checked/tested/run-capable program `examples/projects/stdlib-composition`, a checked/tested/run-capable program
that composes `std.fs`, `std.string`, `std.math`, and `std.io`. that composes `std.fs`, `std.string`, `std.math`, and `std.io`.

2
compiler/Cargo.lock generated
View File

@ -4,4 +4,4 @@ version = 3
[[package]] [[package]]
name = "glagol" name = "glagol"
version = "1.0.0-beta.2" version = "1.0.0-beta.3"

View File

@ -1,6 +1,6 @@
[package] [package]
name = "glagol" name = "glagol"
version = "1.0.0-beta.2" version = "1.0.0-beta.3"
edition = "2021" edition = "2021"
description = "Glagol, the first compiler for the Slovo language" description = "Glagol, the first compiler for the Slovo language"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"

View File

@ -87,7 +87,7 @@ Work:
- identify helpers that should wait for generics instead of being copied across - identify helpers that should wait for generics instead of being copied across
concrete type families 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`. generated from `lib/std/*.slo` and guarded by `scripts/release-gate.sh`.
`examples/projects/stdlib-composition` adds a realistic command-line project `examples/projects/stdlib-composition` adds a realistic command-line project
that composes `std.fs`, `std.string`, `std.math`, and `std.io` through explicit that composes `std.fs`, `std.string`, `std.math`, and `std.io` through explicit

View File

@ -12,6 +12,37 @@ integration/readiness release, not the first real beta.
No unreleased changes yet. 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 ## 1.0.0-beta.2
Release label: `1.0.0-beta.2` Release label: `1.0.0-beta.2`

View File

@ -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. 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 Current stage: `1.0.0-beta.3`, released on 2026-05-22 as the first post-beta
runtime/resource foundation update. It keeps the `1.0.0-beta` language/compiler standard-library stabilization update. It keeps the `1.0.0-beta`
support baseline and includes the `1.0.0-beta.1` tooling hardening release plus language/compiler support baseline and includes the `1.0.0-beta.1` tooling
beta-scoped `std.fs` resource handles, filesystem status checks, file removal, hardening release, the `1.0.0-beta.2` runtime/resource foundation release, the
and single-directory creation. 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 The final experimental precursor scope is `exp-125`. Its unsigned direct-value
flow, parse/format runtime lanes, and matching staged stdlib helper breadth flow, parse/format runtime lanes, and matching staged stdlib helper breadth

View File

@ -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 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. 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 `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 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 ## Unreleased
No unreleased changes yet. 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 ## 1.0.0-beta.2
Release label: `1.0.0-beta.2` Release label: `1.0.0-beta.2`

View File

@ -10,11 +10,12 @@ Long-horizon planning lives in
release train from the historical `v2.0.0-beta.1` tag toward and beyond the release train from the historical `v2.0.0-beta.1` tag toward and beyond the
first real general-purpose beta Slovo contract. first real general-purpose beta Slovo contract.
Current stage: `1.0.0-beta.2`, released on 2026-05-22 as the first post-beta Current stage: `1.0.0-beta.3`, released on 2026-05-22 as the first post-beta
runtime/resource foundation update. It keeps the `1.0.0-beta` language standard-library stabilization update. It keeps the `1.0.0-beta` language
contract and includes the `1.0.0-beta.1` tooling hardening release plus contract and includes the `1.0.0-beta.1` tooling hardening release, the
beta-scoped `std.fs` resource handles, filesystem status checks, file removal, `1.0.0-beta.2` runtime/resource foundation release, the generated
and single-directory creation. standard-library API catalog, and a checked multi-module stdlib composition
project.
The final experimental precursor scope is `exp-125`, defined in The final experimental precursor scope is `exp-125`, defined in
`.llm/EXP_125_UNSIGNED_U32_U64_NUMERIC_AND_STDLIB_BREADTH_ALPHA.md`. Its `.llm/EXP_125_UNSIGNED_U32_U64_NUMERIC_AND_STDLIB_BREADTH_ALPHA.md`. Its

View File

@ -6,7 +6,7 @@ Do not edit this file by hand.
## Stability Tiers ## Stability Tiers
- `beta-supported`: exported from `lib/std` and covered by source-search, promotion, or facade gates in the current beta line. - `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. - `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. The catalog is a beta compatibility aid, not a stable `1.0.0` API freeze.

View File

@ -8,11 +8,11 @@ Entries in this section are current compiler support under the matching
release notes. The current compiler-supported language baseline is release notes. The current compiler-supported language baseline is
`1.0.0-beta`; `1.0.0-beta.1` adds tooling/install hardening without changing `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 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 runtime/resource foundation APIs. `1.0.0-beta.3` adds the generated stdlib API
adds the generated stdlib API catalog and the checked catalog and the checked `projects/stdlib-composition/` example. The language
`projects/stdlib-composition/` example. The language baseline absorbs the final baseline absorbs the final exp-125 unsigned precursor scope alongside the
exp-125 unsigned precursor scope alongside the already promoted project/package, already promoted project/package, stdlib-source, collection, composite-data,
stdlib-source, collection, composite-data, formatter, and diagnostics surface. formatter, and diagnostics surface.
`supported/add.slo` is the current executable promotion fixture. Glagol can parse it, `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 lower it, type-check it, emit LLVM for it, and cover that output with an automated

View File

@ -5,16 +5,17 @@
Sanjin Gumbarevic<br> Sanjin Gumbarevic<br>
hermeticum_lab@protonmail.com 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 Technical behavior baseline: compiler and language support through
`1.0.0-beta`; tooling and install workflow through `1.0.0-beta.1`; `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 Date: 2026-05-22
Evidence source: paired local Slovo/Glagol monorepo verification and benchmark 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 monorepo
Maturity: beta 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, S-expression tree, AST, typed AST, LLVM IR, hosted native executable, tests,
diagnostics, and release documents should agree. 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 general-purpose beta toolchain baseline from `1.0.0-beta` and records the
first post-beta tooling/install hardening update plus the first 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 the completed `u32` / `u64` unsigned compiler and stdlib breadth scope
alongside the current nine-kernel benchmark suite. This paper records the alongside the current nine-kernel benchmark suite. This paper records the
current beta implementation surface, the benchmark method and results, the current beta implementation surface, the benchmark method and results, the
distinction between Glagol and Lisp-family implementations, the beta.1 tooling distinction between Glagol and Lisp-family implementations, the beta.1 tooling
update, the beta.2 runtime/resource foundation, and the compiler path from beta update, the beta.2 runtime/resource foundation, the beta.3 standard-library
to stable. stabilization slice, and the compiler path from beta to stable.
## 1. Compiler Thesis ## 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 - benchmark scaffolds for Slovo, C, Rust, Python, Clojure, and Common
Lisp/SBCL, with `cold-process` and `hot-loop` timing modes 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 update on the first release line that may honestly use beta maturity language
for this toolchain. 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 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 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. benchmark performance.
The exp-123 publication baseline widened the paired same-machine result set 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 - package behavior becoming stable before dependency, manifest, and versioning
rules are precise 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 Glagol now implements the first real beta Slovo contract, the first
post-beta tooling/install hardening release, and the first runtime/resource post-beta tooling/install hardening release, the first runtime/resource
foundation release. The remaining path is from beta foundation release, and the first standard-library stabilization release. The
to stable. remaining path is from beta to stable.
Recommended compiler sequence: Recommended compiler sequence:

Binary file not shown.

Binary file not shown.

View File

@ -5,16 +5,16 @@
Sanjin Gumbarevic<br> Sanjin Gumbarevic<br>
hermeticum_lab@protonmail.com 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 Technical behavior baseline: language surface through `1.0.0-beta`; tooling
and install workflow through `1.0.0-beta.1`; runtime/resource foundation through 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 Date: 2026-05-22
Evidence source: paired local Slovo/Glagol monorepo verification and benchmark 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 monorepo
Maturity: beta 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 `unsafe`, and native compilation through the Glagol compiler to LLVM IR and
hosted executables. 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 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 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 completed `u32` / `u64` unsigned scope, the staged stdlib breadth that makes
ordinary command-line programs practical, and the current nine-kernel ordinary command-line programs practical, and the current nine-kernel
benchmark suite. This paper records the current beta technical state, the benchmark suite. This paper records the current beta technical state, the
difference between Slovo and Lisp-family languages, the benchmark methodology, difference between Slovo and Lisp-family languages, the benchmark methodology,
the beta.1 tooling update, the beta.2 runtime/resource foundation, and the the beta.1 tooling update, the beta.2 runtime/resource foundation, the beta.3
remaining path from beta to stable. standard-library stabilization slice, and the remaining path from beta to
stable.
## 1. Scope ## 1. Scope
This document is a technical state paper for the current beta baseline. It This document is a technical state paper for the current beta baseline. It
summarizes the behavior represented by the paired local Slovo and Glagol summarizes the behavior represented by the paired local Slovo and Glagol
workspaces, with `1.0.0-beta` as the current language-surface baseline and 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: 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 - partial parser recognition or speculative examples do not count as support
Historical `exp-*` releases remain experimental alpha maturity. The current 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 ## 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 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 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. benchmark performance.
The exp-123 publication baseline widened the paired same-machine result set 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 - semantic versioning and deprecation policy
- a clear separation between stable and experimental features - 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 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 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 tooling/install hardening point, `1.0.0-beta.2` as the first runtime/resource
runtime/resource foundation point, then move deliberately toward stable foundation point, and `1.0.0-beta.3` as the first standard-library
general-purpose status. stabilization point, then move deliberately toward stable general-purpose
status.
Recommended sequence: Recommended sequence:

Binary file not shown.