Release 1.0.0-beta.4

This commit is contained in:
sanjin 2026-05-22 13:10:25 +02:00
parent 4ba0a24b14
commit 33668a0793
16 changed files with 120 additions and 50 deletions

View File

@ -1,5 +1,11 @@
# Beta 4 Language Usability # Beta 4 Language Usability
Release label: `1.0.0-beta.4`
Release date: 2026-05-22
Status: released beta language-usability diagnostics slice.
## Scope ## Scope
This post-`1.0.0-beta.3` slice reduces friction in ordinary project use This post-`1.0.0-beta.3` slice reduces friction in ordinary project use

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.3`. Current release: `1.0.0-beta.4`.
## Repository Layout ## Repository Layout
@ -24,11 +24,12 @@ scripts/ local release and document tooling
## Beta Scope ## Beta Scope
`1.0.0-beta.3` keeps the `1.0.0-beta` language baseline, includes the `1.0.0-beta.4` 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` `1.0.0-beta.1` tooling/install hardening slice, the `1.0.0-beta.2`
runtime/resource foundation bundle, and the first standard-library runtime/resource foundation bundle, the `1.0.0-beta.3` standard-library
stabilization bundle. The language baseline supports practical local stabilization bundle, and the first language-usability diagnostics bundle. The
command-line programs and libraries with: 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`
@ -142,6 +143,13 @@ 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`.
## 1.0.0-beta.4 Language Usability Diagnostics
The `1.0.0-beta.4` release improves diagnostics without changing the source
language surface. Project/workspace build and run entry failures now use
entry-specific diagnostic codes, and non-exhaustive `match` diagnostics have
clearer wording with deterministic found-arm output.
## Documentation ## Documentation
- [Language Manifest](docs/language/MANIFEST.md) - [Language Manifest](docs/language/MANIFEST.md)

2
compiler/Cargo.lock generated
View File

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

View File

@ -1,6 +1,6 @@
[package] [package]
name = "glagol" name = "glagol"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
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

@ -113,9 +113,10 @@ Candidate features:
Why fourth: these features improve real Slovo code while keeping generics and Why fourth: these features improve real Slovo code while keeping generics and
traits deferred until the core has more feedback. traits deferred until the core has more feedback.
Started on `main` after `1.0.0-beta.3`: project/workspace build and run entry Released in `1.0.0-beta.4`: project/workspace build and run entry
diagnostics now use entry-specific codes and explicitly show the required diagnostics now use entry-specific codes and explicitly show the required
`(fn main () -> i32 ...)` contract. `(fn main () -> i32 ...)` contract. Non-exhaustive `match` diagnostics now use
clearer missing-arm wording and deterministic found-arm output.
### 5. Package And Workspace Discipline ### 5. Package And Workspace Discipline

View File

@ -10,6 +10,21 @@ integration/readiness release, not the first real beta.
## Unreleased ## Unreleased
No unreleased changes yet.
## 1.0.0-beta.4
Release label: `1.0.0-beta.4`
Release date: 2026-05-22
Release state: language-usability diagnostics beta update
### Summary
Glagol `1.0.0-beta.4` keeps the `1.0.0-beta` compiler support baseline and
releases the first language-usability diagnostics bundle:
- Project build/run entry diagnostics now use entry-specific codes: - Project build/run entry diagnostics now use entry-specific codes:
`ProjectEntryMainMissing`, `ProjectEntryMainInvalidSignature`, `ProjectEntryMainMissing`, `ProjectEntryMainInvalidSignature`,
`WorkspaceEntryMainMissing`, and `WorkspaceEntryMainInvalidSignature`. `WorkspaceEntryMainMissing`, and `WorkspaceEntryMainInvalidSignature`.
@ -18,6 +33,12 @@ integration/readiness release, not the first real beta.
- Non-exhaustive `match` diagnostics now use clearer missing-arm wording and a - Non-exhaustive `match` diagnostics now use clearer missing-arm wording and a
deterministic found-arm list. deterministic found-arm list.
### Explicit Deferrals
This release does not change the accepted `main` contract, add argument-taking
or `unit`-returning `main`, add type aliases, change `match` semantics, or
claim new stable ABI/layout guarantees.
## 1.0.0-beta.3 ## 1.0.0-beta.3
Release label: `1.0.0-beta.3` Release label: `1.0.0-beta.3`

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. 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.3`, released on 2026-05-22 as the first post-beta Current stage: `1.0.0-beta.4`, released on 2026-05-22 as the first post-beta
standard-library stabilization update. It keeps the `1.0.0-beta` language-usability diagnostics update. It keeps the `1.0.0-beta`
language/compiler support baseline and includes the `1.0.0-beta.1` tooling 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 hardening release, the `1.0.0-beta.2` runtime/resource foundation release, the
generated standard-library API catalog gate, and focused multi-module stdlib `1.0.0-beta.3` standard-library stabilization release, entry-specific
composition coverage. project/workspace `main` diagnostics, and clearer non-exhaustive `match`
diagnostics.
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,16 +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.3`, published on 2026-05-22. It keeps the The current release is `1.0.0-beta.4`, 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 from `1.0.0-beta.2` plus the first standard-library foundation bundle from `1.0.0-beta.2` plus the first standard-library
stabilization bundle. stabilization bundle from `1.0.0-beta.3` and the first language-usability
diagnostics bundle.
## Unreleased ## Unreleased
No unreleased changes yet. No unreleased changes yet.
## 1.0.0-beta.4
Release label: `1.0.0-beta.4`
Release name: Language Usability Diagnostics Bundle
Release date: 2026-05-22
Status: released beta diagnostics usability update on the `1.0.0-beta`
language baseline.
`1.0.0-beta.4` improves diagnostics while keeping the accepted source-language
surface unchanged:
- project/workspace build and run entry failures now report entry-specific
diagnostic codes and spell out the required `(fn main () -> i32 ...)`
contract
- non-exhaustive `match` diagnostics now use clearer missing-arm wording and a
deterministic found-arm list
- `.llm/BETA_4_LANGUAGE_USABILITY.md` records the beta.4 usability contract
and deferrals
This release does not add new syntax, type aliases, argument-taking `main`,
`unit`-returning `main`, changed `match` semantics, or stable ABI/layout
guarantees.
## 1.0.0-beta.3 ## 1.0.0-beta.3
Release label: `1.0.0-beta.3` Release label: `1.0.0-beta.3`

View File

@ -10,12 +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.3`, released on 2026-05-22 as the first post-beta Current stage: `1.0.0-beta.4`, released on 2026-05-22 as the first post-beta
standard-library stabilization update. It keeps the `1.0.0-beta` language language-usability diagnostics update. It keeps the `1.0.0-beta` language
contract and includes the `1.0.0-beta.1` tooling hardening release, the contract and includes the `1.0.0-beta.1` tooling hardening release, the
`1.0.0-beta.2` runtime/resource foundation release, the generated `1.0.0-beta.2` runtime/resource foundation release, the `1.0.0-beta.3`
standard-library API catalog, and a checked multi-module stdlib composition standard-library stabilization release, entry-specific project/workspace
project. `main` diagnostics, and clearer non-exhaustive `match` diagnostics.
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.3`; future releases may mark new helpers this way before they graduate. - `experimental`: not used for exported `lib/std` helpers in `1.0.0-beta.4`; 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

@ -5,17 +5,18 @@
Sanjin Gumbarevic<br> Sanjin Gumbarevic<br>
hermeticum_lab@protonmail.com hermeticum_lab@protonmail.com
Publication release: `1.0.0-beta.3` Publication release: `1.0.0-beta.4`
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`; standard-library runtime/resource foundation through `1.0.0-beta.2`; standard-library
stabilization through `1.0.0-beta.3` stabilization through `1.0.0-beta.3`; language-usability diagnostics through
`1.0.0-beta.4`
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.3 release-gate verification from the public reruns from a local checkout; beta.4 release-gate verification from the public
monorepo monorepo
Maturity: beta Maturity: beta
@ -27,17 +28,19 @@ 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.3`, keeps the first real The current publication release, `1.0.0-beta.4`, 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 plus the first standard-library runtime/resource foundation update plus the first standard-library
stabilization update. The beta baseline includes stabilization update plus the first language-usability diagnostics 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, the beta.3 standard-library update, the beta.2 runtime/resource foundation, the beta.3 standard-library
stabilization slice, and the compiler path from beta to stable. stabilization slice, the beta.4 diagnostics usability slice, and the compiler
path from beta to stable.
## 1. Compiler Thesis ## 1. Compiler Thesis
@ -121,7 +124,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.3`, is a beta standard-library stabilization The current release, `1.0.0-beta.4`, is a beta language-usability diagnostics
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.
@ -280,9 +283,10 @@ 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. `1.0.0-beta.3` adds standard-library `1.0.0-beta.2` adds runtime/resource APIs, `1.0.0-beta.3` adds
catalog and composition coverage. None of these post-beta slices claims changed standard-library catalog and composition coverage, and `1.0.0-beta.4` improves
benchmark performance. diagnostics. None of these post-beta slices claims changed 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
from seven rows to nine by adding two owned-vector kernels: from seven rows to nine by adding two owned-vector kernels:
@ -370,12 +374,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.3` ## 9. Path Beyond `1.0.0-beta.4`
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, the first runtime/resource post-beta tooling/install hardening release, the first runtime/resource
foundation release, and the first standard-library stabilization release. The foundation release, the first standard-library stabilization release, and the
remaining path is from beta to stable. first diagnostics usability release. The 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,17 @@
Sanjin Gumbarevic<br> Sanjin Gumbarevic<br>
hermeticum_lab@protonmail.com hermeticum_lab@protonmail.com
Publication release: `1.0.0-beta.3` Publication release: `1.0.0-beta.4`
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`; standard-library stabilization through `1.0.0-beta.3` `1.0.0-beta.2`; standard-library stabilization through `1.0.0-beta.3`;
language-usability diagnostics through `1.0.0-beta.4`
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.3 release-gate verification from the public reruns from a local checkout; beta.4 release-gate verification from the public
monorepo monorepo
Maturity: beta Maturity: beta
@ -29,25 +30,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.3`, keeps the first real The current publication release, `1.0.0-beta.4`, 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 plus the first standard-library stabilization update. The foundation update, the first standard-library stabilization update, and the
beta baseline includes the first language-usability diagnostics 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, the beta.3 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 standard-library stabilization slice, the beta.4 diagnostics usability slice,
stable. 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.3` as the current publication baseline. `1.0.0-beta.4` as the current publication baseline.
The support rule remains strict: The support rule remains strict:
@ -59,7 +60,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.3`. publication accompanies `1.0.0-beta.4`.
## 2. Design Thesis ## 2. Design Thesis
@ -357,9 +358,10 @@ 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. `1.0.0-beta.3` adds standard-library `1.0.0-beta.2` adds runtime/resource APIs, `1.0.0-beta.3` adds
catalog and composition coverage. None of these post-beta slices claims changed standard-library catalog and composition coverage, and `1.0.0-beta.4` improves
benchmark performance. diagnostics. None of these post-beta slices claims changed 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
from seven rows to nine by adding two owned-vector kernels: from seven rows to nine by adding two owned-vector kernels:
@ -480,14 +482,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.3` ## 10. Path Beyond `1.0.0-beta.4`
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, `1.0.0-beta.2` as the first runtime/resource 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 foundation point, and `1.0.0-beta.3` as the first standard-library
stabilization point, then move deliberately toward stable general-purpose stabilization point, and `1.0.0-beta.4` as the first diagnostics usability
status. point, then move deliberately toward stable general-purpose status.
Recommended sequence: Recommended sequence:

Binary file not shown.