Release 1.0.0-beta.5

This commit is contained in:
sanjin 2026-05-22 13:26:07 +02:00
parent 3dfd465e8d
commit 9956b1d874
16 changed files with 126 additions and 84 deletions

View File

@ -1,8 +1,10 @@
# Beta 5 Package And Workspace Discipline
Release label: `1.0.0-beta.5` candidate scope
Release label: `1.0.0-beta.5`
Status: in progress.
Release date: 2026-05-22
Status: released beta package/workspace discipline slice.
## Scope

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.4`.
Current release: `1.0.0-beta.5`.
## Repository Layout
@ -24,10 +24,11 @@ scripts/ local release and document tooling
## Beta Scope
`1.0.0-beta.4` keeps the `1.0.0-beta` language baseline, includes the
`1.0.0-beta.5` 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, the `1.0.0-beta.3` standard-library
stabilization bundle, and the first language-usability diagnostics bundle. The
stabilization bundle, the `1.0.0-beta.4` language-usability diagnostics
bundle, and the `1.0.0-beta.5` local package/workspace discipline bundle. The
language baseline supports practical local command-line programs and libraries
with:
@ -150,16 +151,17 @@ 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.
## Current Main: Package And Workspace Discipline
## 1.0.0-beta.5 Package And Workspace Discipline
After `1.0.0-beta.4`, `main` is tracking a package/workspace discipline slice.
Local workspaces may declare `[workspace] default_package = "name"` to select
the build/run entry package when multiple packages have entry modules.
Duplicate normalized workspace members and missing default-package references
are now dedicated diagnostics. `glagol doc <workspace> -o <dir>` includes a
workspace package/dependency summary. New workspace templates declare
`default_package = "app"`. Remote registries, lockfiles, semantic-version
solving, package publishing, and stable package ABI/layout remain deferred.
The `1.0.0-beta.5` release tightens local package/workspace behavior. Local
workspaces may declare `[workspace] default_package = "name"` to select the
build/run entry package when multiple packages have entry modules. Duplicate
normalized workspace members and missing default-package references are now
dedicated diagnostics. `glagol doc <workspace> -o <dir>` includes a workspace
package/dependency summary, new workspace templates declare
`default_package = "app"`, and `docs/language/PACKAGES.md` documents the beta
local-package rules. Remote registries, lockfiles, semantic-version solving,
package publishing, and stable package ABI/layout remain deferred.
## Documentation

2
compiler/Cargo.lock generated
View File

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

View File

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

View File

@ -131,14 +131,15 @@ Work:
- add diagnostics for ambiguous package roots and dependency cycles
- keep remote registry, semver solving, and publishing out of scope
In progress after `1.0.0-beta.4`: local workspaces can declare
`default_package` to select the build/run entry package when multiple packages
have entry modules. Duplicate normalized member paths and missing default
package references are dedicated diagnostics. Workspace documentation now
includes package and local dependency summaries, and
`docs/language/PACKAGES.md` records the beta local-package rules. Lockfiles,
remote registries, semver solving, publishing, optional/dev/target
dependencies, and stable package ABI/layout remain out of scope.
Released in `1.0.0-beta.5`: local workspaces can declare `default_package` to
select the build/run entry package when multiple packages have entry modules.
Duplicate normalized member paths and missing default-package references are
dedicated diagnostics. Workspace documentation now includes package and local
dependency summaries, generated workspace templates declare
`default_package = "app"`, and `docs/language/PACKAGES.md` records the beta
local-package rules. Lockfiles, remote registries, semver solving, publishing,
optional/dev/target dependencies, and stable package ABI/layout remain out of
scope.
Why fifth: stable package rules are a prerequisite for a usable public language,
but remote publishing can wait.

View File

@ -10,6 +10,21 @@ integration/readiness release, not the first real beta.
## Unreleased
No unreleased changes yet.
## 1.0.0-beta.5
Release label: `1.0.0-beta.5`
Release date: 2026-05-22
Release state: package/workspace discipline beta update
### Summary
Glagol `1.0.0-beta.5` keeps the `1.0.0-beta` compiler support baseline and
releases the first package/workspace discipline bundle:
- Workspace manifests may now declare
`[workspace] default_package = "name"` to choose the build/run entry package
when multiple workspace packages contain their entry module.
@ -25,6 +40,12 @@ integration/readiness release, not the first real beta.
- `docs/language/PACKAGES.md` now documents the beta local workspace/package
rules and the explicit no-registry/no-lockfile policy.
### Explicit Deferrals
This release does not add remote registries, lockfiles, semantic-version
solving, package publishing, optional/dev/target dependencies, feature flags,
build scripts, package archives, or stable package ABI/layout guarantees.
## 1.0.0-beta.4
Release label: `1.0.0-beta.4`

View File

@ -22,20 +22,15 @@ 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.4`, released on 2026-05-22 as the first post-beta
language-usability diagnostics update. It keeps the `1.0.0-beta`
Current stage: `1.0.0-beta.5`, released on 2026-05-22 as the first post-beta
package/workspace discipline 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
`1.0.0-beta.3` standard-library stabilization release, entry-specific
project/workspace `main` diagnostics, and clearer non-exhaustive `match`
diagnostics.
Current unreleased work is the package/workspace discipline slice. It adds
`[workspace] default_package = "name"` for deterministic build/run entry
selection in multi-entry workspaces and tightens workspace-member/default
package diagnostics. Workspace docs now include package/dependency summaries.
`docs/language/PACKAGES.md` records the beta local-package rules. Registries,
lockfiles, semver solving, and publishing remain deferred.
`1.0.0-beta.3` standard-library stabilization release, the `1.0.0-beta.4`
language-usability diagnostics release, `[workspace] default_package = "name"`
for deterministic build/run entry selection, tighter workspace-member/default
package diagnostics, workspace package/dependency docs, and
`docs/language/PACKAGES.md` for beta local-package rules.
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,32 @@ 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.4`, published on 2026-05-22. It keeps the
The current release is `1.0.0-beta.5`, 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 from `1.0.0-beta.2` plus the first standard-library
stabilization bundle from `1.0.0-beta.3` and the first language-usability
diagnostics bundle.
stabilization bundle from `1.0.0-beta.3`, the first language-usability
diagnostics bundle from `1.0.0-beta.4`, and the first local
package/workspace discipline bundle.
## Unreleased
No unreleased changes yet.
## 1.0.0-beta.5
Release label: `1.0.0-beta.5`
Release name: Package And Workspace Discipline Bundle
Release date: 2026-05-22
Status: released beta package/workspace update on the `1.0.0-beta` language
baseline.
`1.0.0-beta.5` tightens local workspace behavior without adding a package
manager:
- Local workspace manifests may now declare
`[workspace] default_package = "name"` to make build/run entry selection
deterministic when more than one package has an entry module.
@ -33,6 +50,10 @@ diagnostics bundle.
- `docs/language/PACKAGES.md` now documents the beta local package/workspace
rules and the explicit no-registry/no-lockfile policy.
This release does not add remote registries, lockfiles, semantic-version
solving, package publishing, optional/dev/target dependencies, feature flags,
build scripts, package archives, or stable package ABI/layout guarantees.
## 1.0.0-beta.4
Release label: `1.0.0-beta.4`

View File

@ -10,19 +10,15 @@ 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.4`, released on 2026-05-22 as the first post-beta
language-usability diagnostics update. It keeps the `1.0.0-beta` language
Current stage: `1.0.0-beta.5`, released on 2026-05-22 as the first post-beta
package/workspace discipline 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 `1.0.0-beta.3`
standard-library stabilization release, entry-specific project/workspace
`main` diagnostics, and clearer non-exhaustive `match` diagnostics.
Current unreleased work is the package/workspace discipline slice. It adds
`[workspace] default_package = "name"` for deterministic build/run entry
selection in multi-entry workspaces and tightens duplicate-member/default
package diagnostics. Workspace docs now include package/dependency summaries.
`docs/language/PACKAGES.md` records the beta local-package rules. Registries,
lockfiles, semver solving, and publishing remain deferred.
standard-library stabilization release, the `1.0.0-beta.4`
language-usability diagnostics release, `[workspace] default_package = "name"`
for deterministic build/run entry selection, tighter duplicate-member/default
package diagnostics, workspace package/dependency docs, and
`docs/language/PACKAGES.md` for beta local-package rules.
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

@ -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.4`; future releases may mark new helpers this way before they graduate.
- `experimental`: not used for exported `lib/std` helpers in `1.0.0-beta.5`; 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.

View File

@ -5,18 +5,18 @@
Sanjin Gumbarevic<br>
hermeticum_lab@protonmail.com
Publication release: `1.0.0-beta.4`
Publication release: `1.0.0-beta.5`
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`; standard-library
stabilization through `1.0.0-beta.3`; language-usability diagnostics through
`1.0.0-beta.4`
`1.0.0-beta.4`; package/workspace discipline through `1.0.0-beta.5`
Date: 2026-05-22
Evidence source: paired local Slovo/Glagol monorepo verification and benchmark
reruns from a local checkout; beta.4 release-gate verification from the public
reruns from a local checkout; beta.5 release-gate verification from the public
monorepo
Maturity: beta
@ -28,19 +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,
diagnostics, and release documents should agree.
The current publication release, `1.0.0-beta.4`, keeps the first real
The current publication release, `1.0.0-beta.5`, 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 plus the first standard-library
stabilization update plus the first language-usability diagnostics update. The
beta baseline includes
stabilization update plus the first language-usability diagnostics update and
the first local package/workspace discipline 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, the beta.3 standard-library
stabilization slice, the beta.4 diagnostics usability slice, and the compiler
path from beta to stable.
stabilization slice, the beta.4 diagnostics usability slice, the beta.5 package
discipline slice, and the compiler path from beta to stable.
## 1. Compiler Thesis
@ -124,7 +124,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.4`, is a beta language-usability diagnostics
The current release, `1.0.0-beta.5`, is a beta package/workspace discipline
update on the first release line that may honestly use beta maturity language
for this toolchain.
@ -284,9 +284,9 @@ 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, `1.0.0-beta.3` adds
standard-library catalog and composition coverage, and `1.0.0-beta.4` improves
diagnostics. None of these post-beta slices claims changed benchmark
performance.
standard-library catalog and composition coverage, `1.0.0-beta.4` improves
diagnostics, and `1.0.0-beta.5` tightens package/workspace discipline. None of
these post-beta slices claims 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:
@ -374,12 +374,13 @@ coverage and compatibility:
- package behavior becoming stable before dependency, manifest, and versioning
rules are precise
## 9. Path Beyond `1.0.0-beta.4`
## 9. Path Beyond `1.0.0-beta.5`
Glagol now implements the first real beta Slovo contract, the first
post-beta tooling/install hardening release, the first runtime/resource
foundation release, the first standard-library stabilization release, and the
first diagnostics usability release. The remaining path is from beta to stable.
first diagnostics usability release, and the first package/workspace
discipline release. The remaining path is from beta to stable.
Recommended compiler sequence:

Binary file not shown.

Binary file not shown.

View File

@ -5,17 +5,18 @@
Sanjin Gumbarevic<br>
hermeticum_lab@protonmail.com
Publication release: `1.0.0-beta.4`
Publication release: `1.0.0-beta.5`
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`; standard-library stabilization through `1.0.0-beta.3`;
language-usability diagnostics through `1.0.0-beta.4`
language-usability diagnostics through `1.0.0-beta.4`; package/workspace
discipline through `1.0.0-beta.5`
Date: 2026-05-22
Evidence source: paired local Slovo/Glagol monorepo verification and benchmark
reruns from a local checkout; beta.4 release-gate verification from the public
reruns from a local checkout; beta.5 release-gate verification from the public
monorepo
Maturity: beta
@ -30,25 +31,26 @@ 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.4`, keeps the first real
The current publication release, `1.0.0-beta.5`, 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 first standard-library stabilization update, and the
first language-usability diagnostics 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, the beta.3
standard-library stabilization slice, the beta.4 diagnostics usability slice,
and the remaining path from beta to stable.
first language-usability diagnostics update, plus the first local
package/workspace discipline 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, the beta.3 standard-library
stabilization slice, the beta.4 diagnostics usability slice, the beta.5 package
discipline 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.4` as the current publication baseline.
`1.0.0-beta.5` as the current publication baseline.
The support rule remains strict:
@ -60,7 +62,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.4`.
publication accompanies `1.0.0-beta.5`.
## 2. Design Thesis
@ -359,9 +361,9 @@ 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, `1.0.0-beta.3` adds
standard-library catalog and composition coverage, and `1.0.0-beta.4` improves
diagnostics. None of these post-beta slices claims changed benchmark
performance.
standard-library catalog and composition coverage, `1.0.0-beta.4` improves
diagnostics, and `1.0.0-beta.5` tightens package/workspace discipline. None of
these post-beta slices claims 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:
@ -482,14 +484,15 @@ 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.4`
## 10. Path Beyond `1.0.0-beta.5`
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, `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, and `1.0.0-beta.4` as the first diagnostics usability
point, then move deliberately toward stable general-purpose status.
point, and `1.0.0-beta.5` as the first package/workspace discipline point,
then move deliberately toward stable general-purpose status.
Recommended sequence:

Binary file not shown.