Release 1.0.0-beta.1 tooling bundle

This commit is contained in:
sanjin 2026-05-22 11:51:11 +02:00
parent 5180f69c4c
commit 5daebd739e
18 changed files with 148 additions and 93 deletions

View File

@ -1,8 +1,8 @@
# Beta.1 Tooling Hardening Scope
This file tracks the first post-`1.0.0-beta` tooling bundle. It is committed on
`main` but must not be tagged as `1.0.0-beta.1` until the connected bundle is
complete and the full release gate passes near publication.
This file tracks the first post-`1.0.0-beta` tooling bundle, released as
`1.0.0-beta.1`. The slice keeps the beta language surface unchanged and
hardens the local compiler workflow, install layout, and release gate.
## Implemented In This Slice
@ -34,8 +34,8 @@ complete and the full release gate passes near publication.
- no operating-system package-manager integration
- no stable install layout promise beyond this beta toolchain layout
## Remaining Before Tagging `1.0.0-beta.1`
## Release Gate
- rerender publication PDFs only if documentation release text changes
- run the full release gate from a clean checkout state
- decide whether this tooling bundle is sufficient for the `1.0.0-beta.1` tag
- rerender publication PDFs when documentation release text changes
- run the full release gate from a clean checkout state before tagging
- tag only after the connected tooling bundle and generated documents agree

View File

@ -18,7 +18,8 @@ The detailed post-beta feature plan lives in
summary and use the public roadmap document when choosing the next connected
implementation scope.
1. Harden monorepo release tooling, install flow, and common build/run loops.
1. Harden monorepo release tooling, install flow, and common build/run loops
(`1.0.0-beta.1`).
2. Define runtime resource and host-error policy before broad IO and networking.
3. Stabilize `lib/std` module boundaries and document beta-vs-stable APIs.
4. Improve language usability around entry points, `match`, aliases, and

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
documents.
Current release: `1.0.0-beta`.
Current release: `1.0.0-beta.1`.
## Repository Layout
@ -24,7 +24,9 @@ scripts/ local release and document tooling
## Beta Scope
`1.0.0-beta` supports practical local command-line programs and libraries with:
`1.0.0-beta.1` keeps the `1.0.0-beta` language baseline and adds the first
post-beta tooling/install hardening slice. 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`
@ -72,10 +74,10 @@ Build a native executable when Clang is available:
SLOVO_STD_PATH="$PWD/lib/std" ./compiler/target/debug/glagol build hello -o hello/bin
```
## Post-Beta Main Additions
## 1.0.0-beta.1 Tooling Additions
The `main` branch contains unreleased tooling work intended for a future
`1.0.0-beta.1` bundle.
The `1.0.0-beta.1` release improves the common local development and install
loop without adding new source-language syntax.
Build and execute in one step:

2
compiler/Cargo.lock generated
View File

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

View File

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

View File

@ -36,10 +36,10 @@ Work:
- make release gates print a concise final summary
- keep PDF rendering explicit and non-mutating by default
Current main-branch progress after `1.0.0-beta`: `glagol run`,
`glagol clean`, `glagol new --template binary|library|workspace`,
`scripts/install.sh`, installed std/runtime discovery, README coverage,
focused DX tests, and a concise release-gate success line are implemented.
Released in `1.0.0-beta.1`: `glagol run`, `glagol clean`,
`glagol new --template binary|library|workspace`, `scripts/install.sh`,
installed std/runtime discovery, README coverage, focused DX tests, and a
concise release-gate success line.
Why first: it reduces friction for every later feature and gives users a better
way to exercise the beta.

View File

@ -10,8 +10,20 @@ integration/readiness release, not the first real beta.
## Unreleased
Post-beta main currently contains the first tooling-hardening slice for a
future `1.0.0-beta.1` bundle:
No changes are recorded after `1.0.0-beta.1`.
## 1.0.0-beta.1
Release label: `1.0.0-beta.1`
Release date: 2026-05-22
Release state: first post-beta tooling hardening release
### Summary
Glagol `1.0.0-beta.1` keeps the `1.0.0-beta` language/compiler support
baseline and releases the first tooling-hardening slice:
- `glagol run <file.slo|project>` compiles through the existing hosted native
build path, runs the produced executable, forwards stdout/stderr, and returns
@ -25,8 +37,11 @@ future `1.0.0-beta.1` bundle:
executable, with `SLOVO_RUNTIME_C` and `GLAGOL_RUNTIME_C` overrides
- the release gate prints a concise final success summary
This is a toolchain workflow slice only. It does not claim a new stable ABI,
runtime resource model, networking surface, or package registry.
### Explicit Deferrals
This is a toolchain workflow slice only. It does not claim new source syntax,
a new stable ABI, a runtime resource model, networking surface, or package
registry.
## 1.0.0-beta

View File

@ -22,12 +22,13 @@ 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`, released on 2026-05-21 as the first real
general-purpose beta Glagol toolchain. The beta release integrates the
completed unsigned `u32`/`u64` compiler and stdlib breadth scope from
`exp-125` with the already promoted project/package workflow, explicit
std-source imports, concrete vector families, fixed arrays, structs, enums,
result/option, generated docs, formatter behavior, and structured diagnostics.
Current stage: `1.0.0-beta.1`, released on 2026-05-22 as the first post-beta
tooling hardening update. It keeps the `1.0.0-beta` language/compiler support
baseline, which integrates the completed unsigned `u32`/`u64` compiler and
stdlib breadth scope from `exp-125` with the already promoted project/package
workflow, explicit std-source imports, concrete vector families, fixed arrays,
structs, enums, result/option, generated docs, formatter behavior, and
structured diagnostics.
The final experimental precursor scope is `exp-125`. Its unsigned direct-value
flow, parse/format runtime lanes, and matching staged stdlib helper breadth

View File

@ -8,15 +8,25 @@ 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`, published on 2026-05-21. It absorbs the
final unsigned precursor scope from `exp-125` and promotes the current
project/package, stdlib-source, collection, composite-data, diagnostics,
formatter, docs, and governance surface to beta maturity.
The current release is `1.0.0-beta.1`, published on 2026-05-22. It keeps the
`1.0.0-beta` language surface and adds the first post-beta tooling/install
hardening bundle.
## Unreleased
Post-beta main currently contains tooling hardening intended for a future
`1.0.0-beta.1` bundle:
No changes are recorded after `1.0.0-beta.1`.
## 1.0.0-beta.1
Release label: `1.0.0-beta.1`
Release name: First Post-Beta Tooling Hardening Bundle
Release date: 2026-05-22
Status: released beta tooling update on the `1.0.0-beta` language baseline.
`1.0.0-beta.1` contains tooling hardening only:
- `glagol run <file.slo|project>` builds and executes through the hosted native
toolchain using `.slovo/build` when `-o` is not provided
@ -30,7 +40,7 @@ Post-beta main currently contains tooling hardening intended for a future
overrides still available
- the release gate prints a concise final success line after all checks pass
This unreleased slice does not add source-language syntax, stable ABI/layout
This beta.1 slice does not add source-language syntax, stable ABI/layout
guarantees, networking, package registry behavior, or a stable standard-library
freeze.

View File

@ -10,12 +10,13 @@ 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`, released on 2026-05-21 as the first real
general-purpose beta Slovo contract. The beta release integrates the completed
unsigned `u32`/`u64` numeric and staged-stdlib breadth scope from `exp-125`
with the already promoted project/package workflow, explicit std-source
imports, concrete vector families, fixed arrays, structs, enums, result/
option, generated docs, formatter behavior, and structured diagnostics.
Current stage: `1.0.0-beta.1`, released on 2026-05-22 as the first post-beta
tooling hardening update. It keeps the `1.0.0-beta` language contract, which
integrates the completed unsigned `u32`/`u64` numeric and staged-stdlib breadth
scope from `exp-125` with the already promoted project/package workflow,
explicit std-source imports, concrete vector families, fixed arrays, structs,
enums, result/option, generated docs, formatter behavior, and structured
diagnostics.
The final experimental precursor scope is `exp-125`, defined in
`.llm/EXP_125_UNSIGNED_U32_U64_NUMERIC_AND_STDLIB_BREADTH_ALPHA.md`. Its

View File

@ -1,13 +1,15 @@
# Slovo v1 Specification
Status: living beta contract for `1.0.0-beta`, integrating promoted language
slices through `exp-125` and the historical publication baseline through
`exp-123`. `1.0.0-beta` is the first real general-purpose beta release.
`exp-125` completed the unsigned numeric and stdlib breadth precursor scope,
`exp-124` is the last tagged experimental alpha language contract before beta,
and `exp-123` is the last tagged experimental documentation/tooling contract
before beta. `1.0.0-beta` includes direct `u32` and `u64` value flow, decimal
suffixed literals `42u32` / `42u64`, same-type unsigned
Status: living beta contract for `1.0.0-beta`, with the post-beta
`1.0.0-beta.1` tooling/install update. The language contract integrates
promoted language slices through `exp-125` and the historical publication
baseline through `exp-123`. `1.0.0-beta` is the first real general-purpose
beta release. `exp-125` completed the unsigned numeric and stdlib breadth
precursor scope, `exp-124` is the last tagged experimental alpha language
contract before beta, and `exp-123` is the last tagged experimental
documentation/tooling contract before beta. `1.0.0-beta` includes direct
`u32` and `u64` value flow, decimal suffixed literals `42u32` / `42u64`,
same-type unsigned
arithmetic/comparison, unsigned print/format/parse-result runtime lanes, and
matching staged stdlib helper parity alongside the previously promoted
project/package, collection, composite-data, docs, and diagnostics surface.
@ -934,8 +936,8 @@ The normative v1.7 release contract is
### 4.4.1 Post-Beta Tooling Additions
Post-beta main adds tooling-only conveniences intended for a future
`1.0.0-beta.1` bundle. These commands do not change source syntax or typed-core
`1.0.0-beta.1` adds tooling-only conveniences after the `1.0.0-beta`
language baseline. These commands do not change source syntax or typed-core
semantics.
`glagol run <file.slo|project>` builds through the same hosted native path as

View File

@ -5,10 +5,12 @@ Examples are split by current compiler support.
## Compiler-Supported Targets
Entries in this section are current compiler support under the matching
release notes. The current compiler-supported baseline is `1.0.0-beta`,
which absorbs the final exp-125 unsigned precursor scope alongside the
already promoted project/package, stdlib-source, collection, composite-data,
formatter, and diagnostics surface.
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. 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

View File

@ -5,15 +5,16 @@
Sanjin Gumbarevic<br>
hermeticum_lab@protonmail.com
Publication release: `1.0.0-beta`
Publication release: `1.0.0-beta.1`
Technical behavior baseline: compiler and language support through
`1.0.0-beta`
`1.0.0-beta`; tooling and install workflow through `1.0.0-beta.1`
Date: 2026-05-21
Date: 2026-05-22
Evidence source: paired local Slovo/Glagol monorepo verification and benchmark
reruns from a local checkout
reruns from a local checkout; beta.1 release-gate verification from the public
monorepo
Maturity: beta
@ -24,13 +25,14 @@ 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`, records the first real
general-purpose beta toolchain for Slovo. It 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, and the compiler path from
beta to stable.
The current publication release, `1.0.0-beta.1`, keeps the first real
general-purpose beta toolchain baseline from `1.0.0-beta` and records the
first post-beta tooling/install hardening 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, and the compiler path from beta to stable.
## 1. Compiler Thesis
@ -92,6 +94,8 @@ that Glagol is a macro-first Lisp VM or a generic list runtime.
At the current technical behavior beta baseline, Glagol supports:
- `check`, `fmt`, `fmt --check`, `fmt --write`, `test`, `build`, and `doc`
- `run` for build-and-execute workflows, `clean` for generated build
artifacts, and `new --template binary|library|workspace`
- JSON diagnostics, textual artifact manifests, and lowering inspection
- hosted native executable generation through emitted LLVM IR, host
`clang -O2`, and `runtime/runtime.c`
@ -112,8 +116,8 @@ 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`, is the first release that may honestly use
beta maturity language for this toolchain.
The current release, `1.0.0-beta.1`, is a beta tooling update on the first
release that may honestly use beta maturity language for this toolchain.
## 4. Diagnostics And Support Discipline
@ -159,7 +163,7 @@ Environment:
| Field | Value |
| --- | --- |
| Host | `Linux 6.17.10-100.fc41.x86_64 x86_64 GNU/Linux` |
| Glagol | `glagol 1.0.0-beta` |
| Glagol | `glagol 1.0.0-beta` benchmark baseline |
| Python | `Python 3.13.9` |
| C compiler | `clang version 19.1.7 (Fedora 19.1.7-5.fc41)` |
| Rust | `rustc 1.77.2 (25ef9e3d8 2024-04-09)` |
@ -268,7 +272,11 @@ python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --w
## 7. Benchmark Results
The exp-123 publication baseline widens the paired same-machine result set
The benchmark rows below remain the full-suite `1.0.0-beta` publication
baseline. `1.0.0-beta.1` changes tooling and install workflow only; it does
not claim changed benchmark performance.
The exp-123 publication baseline widened the paired same-machine result set
from seven rows to nine by adding two owned-vector kernels:
- `vec-i32-index-loop`
@ -354,11 +362,11 @@ coverage and compatibility:
- package behavior becoming stable before dependency, manifest, and versioning
rules are precise
## 9. Path Beyond `1.0.0-beta`
## 9. Path Beyond `1.0.0-beta.1`
Glagol now implements the first real beta Slovo contract and passes the
required beta workflow proof plus release gate. The remaining path is from
beta to stable.
Glagol now implements the first real beta Slovo contract and has a first
post-beta tooling/install hardening release. The remaining path is from beta
to stable.
Recommended compiler sequence:

Binary file not shown.

Binary file not shown.

View File

@ -5,14 +5,16 @@
Sanjin Gumbarevic<br>
hermeticum_lab@protonmail.com
Publication release: `1.0.0-beta`
Publication release: `1.0.0-beta.1`
Technical behavior baseline: language surface through `1.0.0-beta`
Technical behavior baseline: language surface through `1.0.0-beta`; tooling
and install workflow through `1.0.0-beta.1`
Date: 2026-05-21
Date: 2026-05-22
Evidence source: paired local Slovo/Glagol monorepo verification and benchmark
reruns from a local checkout
reruns from a local checkout; beta.1 release-gate verification from the public
monorepo
Maturity: beta
@ -26,20 +28,21 @@ 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`, records the first real
general-purpose beta baseline for Slovo. It 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 current benchmark methodology, and the
remaining path from beta to stable.
The current publication release, `1.0.0-beta.1`, keeps the first real
general-purpose beta language baseline from `1.0.0-beta` and records the first
post-beta tooling/install hardening 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, 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 both the current language-surface and
publication baseline.
workspaces, with `1.0.0-beta` as the current language-surface baseline and
`1.0.0-beta.1` as the current publication/tooling baseline.
The support rule remains strict:
@ -51,7 +54,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`.
publication accompanies `1.0.0-beta.1`.
## 2. Design Thesis
@ -214,6 +217,11 @@ The toolchain currently provides:
- textual artifact manifests
- lowering inspection
- native executable output through hosted LLVM/Clang integration
- `glagol run` for build-and-execute workflows
- `glagol clean` for generated `.slovo/build` artifacts
- `glagol new --template binary|library|workspace`
- `scripts/install.sh` with installed `bin/glagol`,
`share/slovo/std`, and `share/slovo/runtime/runtime.c`
- benchmark scaffolds for Slovo, C, Rust, Python, Clojure, and Common
Lisp/SBCL comparisons
- repo-local release-gate and document-render scripts for publication
@ -233,7 +241,7 @@ Environment:
| Field | Value |
| --- | --- |
| Host | `Linux 6.17.10-100.fc41.x86_64 x86_64 GNU/Linux` |
| Glagol | `glagol 1.0.0-beta` |
| Glagol | `glagol 1.0.0-beta` benchmark baseline |
| Python | `Python 3.13.9` |
| C compiler | `clang version 19.1.7 (Fedora 19.1.7-5.fc41)` |
| Rust | `rustc 1.77.2 (25ef9e3d8 2024-04-09)` |
@ -342,7 +350,11 @@ python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --w
## 7. Benchmark Results
The exp-123 publication baseline widens the paired same-machine result set
The benchmark rows below remain the full-suite `1.0.0-beta` publication
baseline. `1.0.0-beta.1` changes tooling and install workflow only; it does
not claim changed benchmark performance.
The exp-123 publication baseline widened the paired same-machine result set
from seven rows to nine by adding two owned-vector kernels:
- `vec-i32-index-loop`
@ -461,10 +473,11 @@ 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`
## 10. Path Beyond `1.0.0-beta.1`
The beta threshold is now real. The next work should treat `1.0.0-beta` as
the compatibility-governed baseline and move deliberately toward stable
the language compatibility-governed baseline, and `1.0.0-beta.1` as the first
tooling/install hardening point, then move deliberately toward stable
general-purpose status.
Recommended sequence:

Binary file not shown.