diff --git a/.llm/BETA_2_RUNTIME_RESOURCE_FOUNDATION.md b/.llm/BETA_2_RUNTIME_RESOURCE_FOUNDATION.md index 8ebadbe..2126726 100644 --- a/.llm/BETA_2_RUNTIME_RESOURCE_FOUNDATION.md +++ b/.llm/BETA_2_RUNTIME_RESOURCE_FOUNDATION.md @@ -1,7 +1,7 @@ # Beta.2 Runtime Resource Foundation Scope This file tracks the first post-`1.0.0-beta.1` runtime/resource foundation -slice. It is main-branch work intended for a future `1.0.0-beta.2` bundle. +slice released as `1.0.0-beta.2`. ## Implemented In This Slice @@ -57,4 +57,4 @@ slice. It is main-branch work intended for a future `1.0.0-beta.2` bundle. - focused resource/host tests must pass - focused `std.fs` source facade tests must pass - promotion-gate std facade alignment must pass -- full release gate must pass before tagging `1.0.0-beta.2` +- full release gate passed before tagging `1.0.0-beta.2` diff --git a/.llm/ROADMAP_TO_STABLE.md b/.llm/ROADMAP_TO_STABLE.md index 9f42bdb..0000547 100644 --- a/.llm/ROADMAP_TO_STABLE.md +++ b/.llm/ROADMAP_TO_STABLE.md @@ -21,7 +21,7 @@ implementation scope. 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 (in progress after `1.0.0-beta.1` with read-only text file + networking (released in `1.0.0-beta.2` with read-only text file handles plus narrow filesystem status and mutation calls). 3. Stabilize `lib/std` module boundaries and document beta-vs-stable APIs. 4. Improve language usability around entry points, `match`, aliases, and diff --git a/README.md b/README.md index 90c48a8..320ce39 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.1`. +Current release: `1.0.0-beta.2`. ## Repository Layout @@ -24,9 +24,10 @@ scripts/ local release and document tooling ## Beta Scope -`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: +`1.0.0-beta.2` keeps the `1.0.0-beta` language baseline, includes the +`1.0.0-beta.1` tooling/install hardening slice, and adds the first +runtime/resource foundation bundle. 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` @@ -113,10 +114,9 @@ can still override standard-library search, `SLOVO_RUNTIME_C` or `GLAGOL_RUNTIME_C` can override the runtime C input, and `GLAGOL_CLANG` can select the Clang-compatible compiler. -## Main Branch After 1.0.0-beta.1 +## 1.0.0-beta.2 Runtime Resource Foundation -The main branch now contains unreleased runtime/resource foundation work for a -future `1.0.0-beta.2` bundle: +The `1.0.0-beta.2` release adds beta-scoped runtime/resource foundation work: - `std.fs.open_text_read_result` - `std.fs.read_open_text_result` diff --git a/compiler/Cargo.lock b/compiler/Cargo.lock index c9131fc..5049f84 100644 --- a/compiler/Cargo.lock +++ b/compiler/Cargo.lock @@ -4,4 +4,4 @@ version = 3 [[package]] name = "glagol" -version = "1.0.0-beta.1" +version = "1.0.0-beta.2" diff --git a/compiler/Cargo.toml b/compiler/Cargo.toml index d334dd0..1099b18 100644 --- a/compiler/Cargo.toml +++ b/compiler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "glagol" -version = "1.0.0-beta.1" +version = "1.0.0-beta.2" 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 8cece3e..842e834 100644 --- a/docs/POST_BETA_ROADMAP.md +++ b/docs/POST_BETA_ROADMAP.md @@ -58,10 +58,10 @@ Work: - add runtime conformance tests for cleanup paths - document that resource handles are beta values, not stable ABI promises -Current main-branch progress after `1.0.0-beta.1`: read-only text file -resource handles are implemented with `std.fs.open_text_read_result`, -`std.fs.read_open_text_result`, and `std.fs.close_result`. The same beta.2-pre -line also includes narrow filesystem status and mutation calls: +Released in `1.0.0-beta.2`: read-only text file resource handles are +implemented with `std.fs.open_text_read_result`, +`std.fs.read_open_text_result`, and `std.fs.close_result`. The same release +also includes narrow filesystem status and mutation calls: `std.fs.exists`, `std.fs.is_file`, `std.fs.is_dir`, `std.fs.remove_file_result`, and `std.fs.create_dir_result`. Matching `lib/std/fs.slo` facades and focused runtime tests are in place. Writable diff --git a/docs/compiler/RELEASE_NOTES.md b/docs/compiler/RELEASE_NOTES.md index 82f3c0b..50bb4ab 100644 --- a/docs/compiler/RELEASE_NOTES.md +++ b/docs/compiler/RELEASE_NOTES.md @@ -10,8 +10,19 @@ integration/readiness release, not the first real beta. ## Unreleased -Main currently contains the first runtime/resource foundation slice intended -for a future `1.0.0-beta.2` bundle: +No unreleased changes yet. + +## 1.0.0-beta.2 + +Release label: `1.0.0-beta.2` + +Release date: 2026-05-22 + +Release state: runtime/resource foundation beta update + +### Summary + +Glagol `1.0.0-beta.2` contains the first runtime/resource foundation slice: - Glagol recognizes `std.fs.open_text_read_result`, `std.fs.read_open_text_result`, `std.fs.close_result`, `std.fs.exists`, diff --git a/docs/compiler/ROADMAP.md b/docs/compiler/ROADMAP.md index b47d702..98939d2 100644 --- a/docs/compiler/ROADMAP.md +++ b/docs/compiler/ROADMAP.md @@ -22,13 +22,11 @@ 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.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. +Current stage: `1.0.0-beta.2`, released on 2026-05-22 as the first post-beta +runtime/resource foundation update. It keeps the `1.0.0-beta` language/compiler +support baseline and includes the `1.0.0-beta.1` tooling hardening release plus +beta-scoped `std.fs` resource handles, filesystem status checks, file removal, +and single-directory creation. 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 fa2cdcf..4273da1 100644 --- a/docs/language/RELEASE_NOTES.md +++ b/docs/language/RELEASE_NOTES.md @@ -8,14 +8,27 @@ 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.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. +The current release is `1.0.0-beta.2`, 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. ## Unreleased -Main currently contains the first runtime/resource foundation slice intended -for a future `1.0.0-beta.2` bundle: +No unreleased changes yet. + +## 1.0.0-beta.2 + +Release label: `1.0.0-beta.2` + +Release name: Runtime Resource Foundation Bundle + +Release date: 2026-05-22 + +Status: released beta runtime/resource foundation update on the `1.0.0-beta` +language baseline. + +`1.0.0-beta.2` contains the first runtime/resource foundation slice: - `std.fs.open_text_read_result : (string) -> (result i32 i32)` opens a read-only text file and returns an opaque positive `i32` handle @@ -33,10 +46,10 @@ for a future `1.0.0-beta.2` bundle: `read_text_via_handle_result`, `close_ok`, status helpers, and narrow file/directory mutation helpers -This unreleased slice keeps handles beta-scoped. It does not add writable -handles, binary IO, directory handles, directory enumeration, recursive -filesystem operations, process handles, sockets, async IO, platform error -codes, rich host-error ADTs, or stable handle ABI/layout promises. +This release keeps handles beta-scoped. It does not add writable handles, +binary IO, directory handles, directory enumeration, recursive filesystem +operations, process handles, sockets, async IO, platform error codes, rich +host-error ADTs, or stable handle ABI/layout promises. ## 1.0.0-beta.1 diff --git a/docs/language/ROADMAP.md b/docs/language/ROADMAP.md index 9e07062..8a9b858 100644 --- a/docs/language/ROADMAP.md +++ b/docs/language/ROADMAP.md @@ -10,13 +10,11 @@ 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.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. +Current stage: `1.0.0-beta.2`, released on 2026-05-22 as the first post-beta +runtime/resource foundation update. It keeps the `1.0.0-beta` language +contract and includes the `1.0.0-beta.1` tooling hardening release plus +beta-scoped `std.fs` resource handles, filesystem status checks, file removal, +and single-directory creation. 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/SPEC-v1.md b/docs/language/SPEC-v1.md index 3234115..f12f42b 100644 --- a/docs/language/SPEC-v1.md +++ b/docs/language/SPEC-v1.md @@ -1,7 +1,8 @@ # Slovo v1 Specification 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 +`1.0.0-beta.1` tooling/install update and `1.0.0-beta.2` runtime/resource +foundation 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 @@ -971,9 +972,8 @@ runtime C input for native builds. ### 4.4.2 Runtime Resource Foundation Additions -Post-`1.0.0-beta.1` main adds the first beta resource-handle foundation for -read-only text files. This is intended for a future `1.0.0-beta.2` bundle and -does not change source syntax. +`1.0.0-beta.2` adds the first beta resource-handle foundation for +read-only text files. It does not change source syntax. `std.fs.open_text_read_result ` has signature `(string) -> (result i32 i32)`. Success returns `ok handle`, where `handle` is @@ -988,7 +988,7 @@ handle and returns `ok text`. Invalid, closed, or failed reads return `err 1`. `(i32) -> (result i32 i32)`. Success closes the handle and returns `ok 0`. Invalid, already closed, or failed close operations return `err 1`. -The same beta.2-pre runtime foundation adds narrow filesystem status and +The same `1.0.0-beta.2` runtime foundation adds narrow filesystem status and mutation calls: ```text diff --git a/docs/language/STANDARD_RUNTIME.md b/docs/language/STANDARD_RUNTIME.md index 1ecd06a..2ea8996 100644 --- a/docs/language/STANDARD_RUNTIME.md +++ b/docs/language/STANDARD_RUNTIME.md @@ -15,10 +15,10 @@ does not add source syntax, runtime APIs, standard library functions, manifest schema versions, ABI/layout promises, runtime headers/libraries, or beta maturity. -Post-`1.0.0-beta.1` main-branch work adds the first runtime resource -foundation calls for read-only text file handles. These calls use the existing -concrete `result` families and are intended for a future `1.0.0-beta.2` -bundle. Handles are positive opaque `i32` process-local tokens, not stable +`1.0.0-beta.2` adds the first runtime resource foundation calls for read-only +text file handles and narrow filesystem status/mutation operations. These calls +use the existing concrete `result` families where host failures need to be +observable. Handles are positive opaque `i32` process-local tokens, not stable file descriptors or ABI values. The exp-era catalog is closed to names promoted through exp-101. exp-29, @@ -89,14 +89,14 @@ source-level result helper names are the `std.result.*` names cataloged below. | `std.env.get_result` | `(string) -> (result string i32)` | exp-10 | `examples/supported/host-io-result.slo` | Returns `ok` with environment value when present, or `err 1` when missing. | Uses existing standard-runtime usage recording if present; no exp-10-specific schema field. | Rich host error ADTs, env mutation/enumeration, platform codes. | | `std.fs.read_text_result` | `(string) -> (result string i32)` | exp-10 | `examples/supported/host-io-result.slo` | Returns `ok` with file contents on success, or `err 1` on ordinary host read failure. | Uses existing standard-runtime usage recording if present; no exp-10-specific schema field. | Binary, directory, streaming, async APIs, rich host error ADTs. | | `std.fs.write_text_result` | `(string, string) -> (result i32 i32)` | exp-10 | `examples/supported/host-io-result.slo` | Returns `ok 0` on success, or `err 1` on ordinary host write failure. | Uses existing standard-runtime usage recording if present; no exp-10-specific schema field. | Binary, directory, streaming, async APIs, rich host error ADTs. | -| `std.fs.exists` | `(string) -> bool` | post-`1.0.0-beta.1` main | `examples/projects/std-layout-local-fs` | Returns `true` when host metadata lookup succeeds for the path, otherwise `false`. | Uses existing standard-runtime usage recording if present; no schema change. | Rich host errors, symlink policy, permissions detail, stable platform metadata model. | -| `std.fs.is_file` | `(string) -> bool` | post-`1.0.0-beta.1` main | `examples/projects/std-layout-local-fs` | Returns `true` when the path exists and host metadata classifies it as a regular file. | Uses existing standard-runtime usage recording if present; no schema change. | Rich metadata, symlink policy, stable platform file-kind model. | -| `std.fs.is_dir` | `(string) -> bool` | post-`1.0.0-beta.1` main | `examples/projects/std-layout-local-fs` | Returns `true` when the path exists and host metadata classifies it as a directory. | Uses existing standard-runtime usage recording if present; no schema change. | Directory handles, enumeration, recursive traversal, symlink policy, stable platform file-kind model. | -| `std.fs.remove_file_result` | `(string) -> (result i32 i32)` | post-`1.0.0-beta.1` main | `examples/projects/std-layout-local-fs` | Removes one file; success returns `ok 0`, while ordinary host failure returns `err 1`. | Uses existing standard-runtime usage recording if present; no schema change. | Recursive removal, directory removal, rich host errors, platform-specific error codes. | -| `std.fs.create_dir_result` | `(string) -> (result i32 i32)` | post-`1.0.0-beta.1` main | `examples/projects/std-layout-local-fs` | Creates one directory; success returns `ok 0`, while existing paths or ordinary host failure return `err 1`. | Uses existing standard-runtime usage recording if present; no schema change. | Recursive creation, permissions/mode policy, directory handles, rich host errors, platform-specific error codes. | -| `std.fs.open_text_read_result` | `(string) -> (result i32 i32)` | post-`1.0.0-beta.1` main | `examples/projects/std-layout-local-fs` | Opens a text file for read-only resource-handle flow; success returns `ok handle` where `handle` is a positive opaque process-local `i32`, and ordinary open or handle-table failure returns `err 1`. | Uses existing standard-runtime usage recording if present; no schema change. | Writable handles, binary IO, directory handles, process handles, sockets, async IO, platform-specific error codes, stable handle ABI/layout. | -| `std.fs.read_open_text_result` | `(i32) -> (result string i32)` | post-`1.0.0-beta.1` main | `examples/projects/std-layout-local-fs` | Reads remaining text from an open read handle; success returns `ok text`, while invalid, closed, or failed reads return `err 1`. | Uses existing standard-runtime usage recording if present; no schema change. | Chunked reads, seek, buffering controls, binary IO, async IO, platform-specific error codes, stable handle ABI/layout. | -| `std.fs.close_result` | `(i32) -> (result i32 i32)` | post-`1.0.0-beta.1` main | `examples/projects/std-layout-local-fs` | Closes an open resource handle; success returns `ok 0`, while invalid, closed, or failed close operations return `err 1`. | Uses existing standard-runtime usage recording if present; no schema change. | Finalizers, destructors, affine ownership, automatic cleanup, stable handle ABI/layout. | +| `std.fs.exists` | `(string) -> bool` | `1.0.0-beta.2` | `examples/projects/std-layout-local-fs` | Returns `true` when host metadata lookup succeeds for the path, otherwise `false`. | Uses existing standard-runtime usage recording if present; no schema change. | Rich host errors, symlink policy, permissions detail, stable platform metadata model. | +| `std.fs.is_file` | `(string) -> bool` | `1.0.0-beta.2` | `examples/projects/std-layout-local-fs` | Returns `true` when the path exists and host metadata classifies it as a regular file. | Uses existing standard-runtime usage recording if present; no schema change. | Rich metadata, symlink policy, stable platform file-kind model. | +| `std.fs.is_dir` | `(string) -> bool` | `1.0.0-beta.2` | `examples/projects/std-layout-local-fs` | Returns `true` when the path exists and host metadata classifies it as a directory. | Uses existing standard-runtime usage recording if present; no schema change. | Directory handles, enumeration, recursive traversal, symlink policy, stable platform file-kind model. | +| `std.fs.remove_file_result` | `(string) -> (result i32 i32)` | `1.0.0-beta.2` | `examples/projects/std-layout-local-fs` | Removes one file; success returns `ok 0`, while ordinary host failure returns `err 1`. | Uses existing standard-runtime usage recording if present; no schema change. | Recursive removal, directory removal, rich host errors, platform-specific error codes. | +| `std.fs.create_dir_result` | `(string) -> (result i32 i32)` | `1.0.0-beta.2` | `examples/projects/std-layout-local-fs` | Creates one directory; success returns `ok 0`, while existing paths or ordinary host failure return `err 1`. | Uses existing standard-runtime usage recording if present; no schema change. | Recursive creation, permissions/mode policy, directory handles, rich host errors, platform-specific error codes. | +| `std.fs.open_text_read_result` | `(string) -> (result i32 i32)` | `1.0.0-beta.2` | `examples/projects/std-layout-local-fs` | Opens a text file for read-only resource-handle flow; success returns `ok handle` where `handle` is a positive opaque process-local `i32`, and ordinary open or handle-table failure returns `err 1`. | Uses existing standard-runtime usage recording if present; no schema change. | Writable handles, binary IO, directory handles, process handles, sockets, async IO, platform-specific error codes, stable handle ABI/layout. | +| `std.fs.read_open_text_result` | `(i32) -> (result string i32)` | `1.0.0-beta.2` | `examples/projects/std-layout-local-fs` | Reads remaining text from an open read handle; success returns `ok text`, while invalid, closed, or failed reads return `err 1`. | Uses existing standard-runtime usage recording if present; no schema change. | Chunked reads, seek, buffering controls, binary IO, async IO, platform-specific error codes, stable handle ABI/layout. | +| `std.fs.close_result` | `(i32) -> (result i32 i32)` | `1.0.0-beta.2` | `examples/projects/std-layout-local-fs` | Closes an open resource handle; success returns `ok 0`, while invalid, closed, or failed close operations return `err 1`. | Uses existing standard-runtime usage recording if present; no schema change. | Finalizers, destructors, affine ownership, automatic cleanup, stable handle ABI/layout. | | `std.random.i32` | `() -> i32` | exp-11 | `examples/supported/random.slo` | Returns a non-negative implementation-owned random `i32`; unavailable randomness traps as `slovo runtime error: random i32 unavailable`. | Uses existing standard-runtime usage recording if present; no randomness-specific schema field. | Seed APIs, crypto/security promises, ranges, bytes, floats, UUIDs, stable RNG ABI/layout. | | `std.io.read_stdin_result` | `() -> (result string i32)` | exp-12 | `examples/supported/stdin-result.slo` | Reads remaining stdin as text; success returns `ok` text, ordinary EOF with no bytes returns `ok ""`, ordinary host/input failure returns `err 1`. | Uses existing standard-runtime usage recording if present; no stdin-specific schema field. | Trap stdin, line APIs, prompts, terminal mode, binary/streaming/async stdin. | | `std.string.parse_i32_result` | `(string) -> (result i32 i32)` | exp-13 | `examples/supported/string-parse-i32-result.slo` | Parses an entire ASCII decimal signed `i32`; success returns `ok` value, ordinary parse failure returns `err 1`. | Uses existing standard-runtime usage recording if present; no parse-specific schema field. | Trap parse, floats/bools/bytes, trimming, locale/radix/underscore/plus parsing, rich parse errors, Unicode digits, slicing/indexing. | diff --git a/docs/language/examples/README.md b/docs/language/examples/README.md index a8ad127..2809b92 100644 --- a/docs/language/examples/README.md +++ b/docs/language/examples/README.md @@ -7,10 +7,10 @@ Examples are split by current compiler support. Entries in this section are current compiler support under the matching 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. +these source-language fixtures. `1.0.0-beta.2` adds beta-scoped +runtime/resource foundation APIs. 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 diff --git a/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf b/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf index b241c2c..c9f210a 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 759465d..1d491eb 100644 --- a/docs/papers/GLAGOL_WHITEPAPER.md +++ b/docs/papers/GLAGOL_WHITEPAPER.md @@ -5,15 +5,16 @@ Sanjin Gumbarevic
hermeticum_lab@protonmail.com -Publication release: `1.0.0-beta.1` +Publication release: `1.0.0-beta.2` 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` Date: 2026-05-22 Evidence source: paired local Slovo/Glagol monorepo verification and benchmark -reruns from a local checkout; beta.1 release-gate verification from the public +reruns from a local checkout; beta.2 release-gate verification from the public monorepo Maturity: beta @@ -25,14 +26,16 @@ 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.1`, keeps the first real +The current publication release, `1.0.0-beta.2`, 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 +first post-beta tooling/install hardening update plus the first +runtime/resource foundation 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. +distinction between Glagol and Lisp-family implementations, the beta.1 tooling +update, the beta.2 runtime/resource foundation, and the compiler path from beta +to stable. ## 1. Compiler Thesis @@ -116,8 +119,9 @@ 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.1`, is a beta tooling update on the first -release that may honestly use beta maturity language for this toolchain. +The current release, `1.0.0-beta.2`, is a beta runtime/resource foundation +update on the first release line that may honestly use beta maturity language +for this toolchain. ## 4. Diagnostics And Support Discipline @@ -273,8 +277,9 @@ python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --w ## 7. Benchmark Results 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. +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 +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: @@ -362,10 +367,11 @@ coverage and compatibility: - package behavior becoming stable before dependency, manifest, and versioning rules are precise -## 9. Path Beyond `1.0.0-beta.1` +## 9. Path Beyond `1.0.0-beta.2` -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 +Glagol now implements the first real beta Slovo contract, the first +post-beta tooling/install hardening release, and the first runtime/resource +foundation 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 dc87d2a..89a1b46 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 f3ffa8b..01739f5 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 3f053b5..2eea273 100644 --- a/docs/papers/SLOVO_WHITEPAPER.md +++ b/docs/papers/SLOVO_WHITEPAPER.md @@ -5,15 +5,16 @@ Sanjin Gumbarevic
hermeticum_lab@protonmail.com -Publication release: `1.0.0-beta.1` +Publication release: `1.0.0-beta.2` Technical behavior baseline: language surface through `1.0.0-beta`; tooling -and install workflow through `1.0.0-beta.1` +and install workflow through `1.0.0-beta.1`; runtime/resource foundation through +`1.0.0-beta.2` Date: 2026-05-22 Evidence source: paired local Slovo/Glagol monorepo verification and benchmark -reruns from a local checkout; beta.1 release-gate verification from the public +reruns from a local checkout; beta.2 release-gate verification from the public monorepo Maturity: beta @@ -28,14 +29,16 @@ 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.1`, keeps the first real +The current publication release, `1.0.0-beta.2`, 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 +post-beta tooling/install hardening update plus the first runtime/resource +foundation 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. +the beta.1 tooling update, the beta.2 runtime/resource foundation, and the +remaining path from beta to stable. ## 1. Scope @@ -351,8 +354,9 @@ python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --w ## 7. Benchmark Results 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. +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 +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: @@ -473,11 +477,12 @@ 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.1` +## 10. Path Beyond `1.0.0-beta.2` The beta threshold is now real. The next work should treat `1.0.0-beta` as -the language compatibility-governed baseline, and `1.0.0-beta.1` as the first -tooling/install hardening point, then move deliberately toward stable +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 +runtime/resource foundation 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 19b18e4..e253f04 100644 Binary files a/docs/papers/SLOVO_WHITEPAPER.pdf and b/docs/papers/SLOVO_WHITEPAPER.pdf differ