diff --git a/.llm/BETA_5_PACKAGE_WORKSPACE_DISCIPLINE.md b/.llm/BETA_5_PACKAGE_WORKSPACE_DISCIPLINE.md index 4c82302..93a57f5 100644 --- a/.llm/BETA_5_PACKAGE_WORKSPACE_DISCIPLINE.md +++ b/.llm/BETA_5_PACKAGE_WORKSPACE_DISCIPLINE.md @@ -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 diff --git a/README.md b/README.md index b49cb30..38614c5 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.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 -o ` 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 -o ` 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 diff --git a/compiler/Cargo.lock b/compiler/Cargo.lock index f9789df..7498867 100644 --- a/compiler/Cargo.lock +++ b/compiler/Cargo.lock @@ -4,4 +4,4 @@ version = 3 [[package]] name = "glagol" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" diff --git a/compiler/Cargo.toml b/compiler/Cargo.toml index 9f0e089..96bc271 100644 --- a/compiler/Cargo.toml +++ b/compiler/Cargo.toml @@ -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" diff --git a/docs/POST_BETA_ROADMAP.md b/docs/POST_BETA_ROADMAP.md index cd532ed..8f63913 100644 --- a/docs/POST_BETA_ROADMAP.md +++ b/docs/POST_BETA_ROADMAP.md @@ -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. diff --git a/docs/compiler/RELEASE_NOTES.md b/docs/compiler/RELEASE_NOTES.md index 1935612..2480b03 100644 --- a/docs/compiler/RELEASE_NOTES.md +++ b/docs/compiler/RELEASE_NOTES.md @@ -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` diff --git a/docs/compiler/ROADMAP.md b/docs/compiler/ROADMAP.md index 956202f..c6dd642 100644 --- a/docs/compiler/ROADMAP.md +++ b/docs/compiler/ROADMAP.md @@ -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 diff --git a/docs/language/RELEASE_NOTES.md b/docs/language/RELEASE_NOTES.md index dddb2d5..775f52a 100644 --- a/docs/language/RELEASE_NOTES.md +++ b/docs/language/RELEASE_NOTES.md @@ -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` diff --git a/docs/language/ROADMAP.md b/docs/language/ROADMAP.md index 85b7725..c057c8f 100644 --- a/docs/language/ROADMAP.md +++ b/docs/language/ROADMAP.md @@ -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 diff --git a/docs/language/STDLIB_API.md b/docs/language/STDLIB_API.md index 5da64d1..07228d5 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.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. diff --git a/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf b/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf index 828b331..191bb52 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 d350805..dcc16a7 100644 --- a/docs/papers/GLAGOL_WHITEPAPER.md +++ b/docs/papers/GLAGOL_WHITEPAPER.md @@ -5,18 +5,18 @@ Sanjin Gumbarevic
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: diff --git a/docs/papers/GLAGOL_WHITEPAPER.pdf b/docs/papers/GLAGOL_WHITEPAPER.pdf index 86ab7f5..520d41e 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 80816ca..0b3da9e 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 08481be..bd1cd49 100644 --- a/docs/papers/SLOVO_WHITEPAPER.md +++ b/docs/papers/SLOVO_WHITEPAPER.md @@ -5,17 +5,18 @@ Sanjin Gumbarevic
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: diff --git a/docs/papers/SLOVO_WHITEPAPER.pdf b/docs/papers/SLOVO_WHITEPAPER.pdf index 6cf4a2e..5df59f2 100644 Binary files a/docs/papers/SLOVO_WHITEPAPER.pdf and b/docs/papers/SLOVO_WHITEPAPER.pdf differ