Release 1.0.0-beta.2
This commit is contained in:
parent
bbcdf01ce3
commit
7e628995a1
@ -1,7 +1,7 @@
|
|||||||
# Beta.2 Runtime Resource Foundation Scope
|
# Beta.2 Runtime Resource Foundation Scope
|
||||||
|
|
||||||
This file tracks the first post-`1.0.0-beta.1` runtime/resource foundation
|
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
|
## 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 resource/host tests must pass
|
||||||
- focused `std.fs` source facade tests must pass
|
- focused `std.fs` source facade tests must pass
|
||||||
- promotion-gate std facade alignment 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`
|
||||||
|
|||||||
@ -21,7 +21,7 @@ implementation scope.
|
|||||||
1. Harden monorepo release tooling, install flow, and common build/run loops
|
1. Harden monorepo release tooling, install flow, and common build/run loops
|
||||||
(`1.0.0-beta.1`).
|
(`1.0.0-beta.1`).
|
||||||
2. Define runtime resource and host-error policy before broad IO and
|
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).
|
handles plus narrow filesystem status and mutation calls).
|
||||||
3. Stabilize `lib/std` module boundaries and document beta-vs-stable APIs.
|
3. Stabilize `lib/std` module boundaries and document beta-vs-stable APIs.
|
||||||
4. Improve language usability around entry points, `match`, aliases, and
|
4. Improve language usability around entry points, `match`, aliases, and
|
||||||
|
|||||||
14
README.md
14
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
|
standard library source, compiler, runtime, examples, benchmarks, and technical
|
||||||
documents.
|
documents.
|
||||||
|
|
||||||
Current release: `1.0.0-beta.1`.
|
Current release: `1.0.0-beta.2`.
|
||||||
|
|
||||||
## Repository Layout
|
## Repository Layout
|
||||||
|
|
||||||
@ -24,9 +24,10 @@ scripts/ local release and document tooling
|
|||||||
|
|
||||||
## Beta Scope
|
## Beta Scope
|
||||||
|
|
||||||
`1.0.0-beta.1` keeps the `1.0.0-beta` language baseline and adds the first
|
`1.0.0-beta.2` keeps the `1.0.0-beta` language baseline, includes the
|
||||||
post-beta tooling/install hardening slice. The language baseline supports
|
`1.0.0-beta.1` tooling/install hardening slice, and adds the first
|
||||||
practical local command-line programs and libraries with:
|
runtime/resource foundation bundle. The 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`
|
||||||
@ -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
|
`GLAGOL_RUNTIME_C` can override the runtime C input, and `GLAGOL_CLANG` can
|
||||||
select the Clang-compatible compiler.
|
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
|
The `1.0.0-beta.2` release adds beta-scoped runtime/resource foundation work:
|
||||||
future `1.0.0-beta.2` bundle:
|
|
||||||
|
|
||||||
- `std.fs.open_text_read_result`
|
- `std.fs.open_text_read_result`
|
||||||
- `std.fs.read_open_text_result`
|
- `std.fs.read_open_text_result`
|
||||||
|
|||||||
2
compiler/Cargo.lock
generated
2
compiler/Cargo.lock
generated
@ -4,4 +4,4 @@ version = 3
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glagol"
|
name = "glagol"
|
||||||
version = "1.0.0-beta.1"
|
version = "1.0.0-beta.2"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "glagol"
|
name = "glagol"
|
||||||
version = "1.0.0-beta.1"
|
version = "1.0.0-beta.2"
|
||||||
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"
|
||||||
|
|||||||
@ -58,10 +58,10 @@ Work:
|
|||||||
- add runtime conformance tests for cleanup paths
|
- add runtime conformance tests for cleanup paths
|
||||||
- document that resource handles are beta values, not stable ABI promises
|
- 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
|
Released in `1.0.0-beta.2`: read-only text file resource handles are
|
||||||
resource handles are implemented with `std.fs.open_text_read_result`,
|
implemented with `std.fs.open_text_read_result`,
|
||||||
`std.fs.read_open_text_result`, and `std.fs.close_result`. The same beta.2-pre
|
`std.fs.read_open_text_result`, and `std.fs.close_result`. The same release
|
||||||
line also includes narrow filesystem status and mutation calls:
|
also includes narrow filesystem status and mutation calls:
|
||||||
`std.fs.exists`, `std.fs.is_file`, `std.fs.is_dir`,
|
`std.fs.exists`, `std.fs.is_file`, `std.fs.is_dir`,
|
||||||
`std.fs.remove_file_result`, and `std.fs.create_dir_result`. Matching
|
`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
|
`lib/std/fs.slo` facades and focused runtime tests are in place. Writable
|
||||||
|
|||||||
@ -10,8 +10,19 @@ integration/readiness release, not the first real beta.
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
Main currently contains the first runtime/resource foundation slice intended
|
No unreleased changes yet.
|
||||||
for a future `1.0.0-beta.2` bundle:
|
|
||||||
|
## 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`,
|
- Glagol recognizes `std.fs.open_text_read_result`,
|
||||||
`std.fs.read_open_text_result`, `std.fs.close_result`, `std.fs.exists`,
|
`std.fs.read_open_text_result`, `std.fs.close_result`, `std.fs.exists`,
|
||||||
|
|||||||
@ -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.
|
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
|
Current stage: `1.0.0-beta.2`, released on 2026-05-22 as the first post-beta
|
||||||
tooling hardening update. It keeps the `1.0.0-beta` language/compiler support
|
runtime/resource foundation update. It keeps the `1.0.0-beta` language/compiler
|
||||||
baseline, which integrates the completed unsigned `u32`/`u64` compiler and
|
support baseline and includes the `1.0.0-beta.1` tooling hardening release plus
|
||||||
stdlib breadth scope from `exp-125` with the already promoted project/package
|
beta-scoped `std.fs` resource handles, filesystem status checks, file removal,
|
||||||
workflow, explicit std-source imports, concrete vector families, fixed arrays,
|
and single-directory creation.
|
||||||
structs, enums, result/option, generated docs, formatter behavior, and
|
|
||||||
structured 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
|
||||||
|
|||||||
@ -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
|
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.1`, published on 2026-05-22. It keeps the
|
The current release is `1.0.0-beta.2`, published on 2026-05-22. It keeps the
|
||||||
`1.0.0-beta` language surface and adds the first post-beta tooling/install
|
`1.0.0-beta` language surface, includes the first post-beta tooling/install
|
||||||
hardening bundle.
|
hardening bundle from `1.0.0-beta.1`, and adds the first runtime/resource
|
||||||
|
foundation bundle.
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
Main currently contains the first runtime/resource foundation slice intended
|
No unreleased changes yet.
|
||||||
for a future `1.0.0-beta.2` bundle:
|
|
||||||
|
## 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
|
- `std.fs.open_text_read_result : (string) -> (result i32 i32)` opens a
|
||||||
read-only text file and returns an opaque positive `i32` handle
|
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
|
`read_text_via_handle_result`, `close_ok`, status helpers, and narrow
|
||||||
file/directory mutation helpers
|
file/directory mutation helpers
|
||||||
|
|
||||||
This unreleased slice keeps handles beta-scoped. It does not add writable
|
This release keeps handles beta-scoped. It does not add writable handles,
|
||||||
handles, binary IO, directory handles, directory enumeration, recursive
|
binary IO, directory handles, directory enumeration, recursive filesystem
|
||||||
filesystem operations, process handles, sockets, async IO, platform error
|
operations, process handles, sockets, async IO, platform error codes, rich
|
||||||
codes, rich host-error ADTs, or stable handle ABI/layout promises.
|
host-error ADTs, or stable handle ABI/layout promises.
|
||||||
|
|
||||||
## 1.0.0-beta.1
|
## 1.0.0-beta.1
|
||||||
|
|
||||||
|
|||||||
@ -10,13 +10,11 @@ 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.1`, released on 2026-05-22 as the first post-beta
|
Current stage: `1.0.0-beta.2`, released on 2026-05-22 as the first post-beta
|
||||||
tooling hardening update. It keeps the `1.0.0-beta` language contract, which
|
runtime/resource foundation update. It keeps the `1.0.0-beta` language
|
||||||
integrates the completed unsigned `u32`/`u64` numeric and staged-stdlib breadth
|
contract and includes the `1.0.0-beta.1` tooling hardening release plus
|
||||||
scope from `exp-125` with the already promoted project/package workflow,
|
beta-scoped `std.fs` resource handles, filesystem status checks, file removal,
|
||||||
explicit std-source imports, concrete vector families, fixed arrays, structs,
|
and single-directory creation.
|
||||||
enums, result/option, generated docs, formatter behavior, and structured
|
|
||||||
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
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
# Slovo v1 Specification
|
# Slovo v1 Specification
|
||||||
|
|
||||||
Status: living beta contract for `1.0.0-beta`, with the post-beta
|
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
|
promoted language slices through `exp-125` and the historical publication
|
||||||
baseline through `exp-123`. `1.0.0-beta` is the first real general-purpose
|
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
|
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
|
### 4.4.2 Runtime Resource Foundation Additions
|
||||||
|
|
||||||
Post-`1.0.0-beta.1` main adds the first beta resource-handle foundation for
|
`1.0.0-beta.2` 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
|
read-only text files. It does not change source syntax.
|
||||||
does not change source syntax.
|
|
||||||
|
|
||||||
`std.fs.open_text_read_result <path>` has signature
|
`std.fs.open_text_read_result <path>` has signature
|
||||||
`(string) -> (result i32 i32)`. Success returns `ok handle`, where `handle` is
|
`(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`.
|
`(i32) -> (result i32 i32)`. Success closes the handle and returns `ok 0`.
|
||||||
Invalid, already closed, or failed close operations return `err 1`.
|
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:
|
mutation calls:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|||||||
@ -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
|
schema versions, ABI/layout promises, runtime headers/libraries, or beta
|
||||||
maturity.
|
maturity.
|
||||||
|
|
||||||
Post-`1.0.0-beta.1` main-branch work adds the first runtime resource
|
`1.0.0-beta.2` adds the first runtime resource foundation calls for read-only
|
||||||
foundation calls for read-only text file handles. These calls use the existing
|
text file handles and narrow filesystem status/mutation operations. These calls
|
||||||
concrete `result` families and are intended for a future `1.0.0-beta.2`
|
use the existing concrete `result` families where host failures need to be
|
||||||
bundle. Handles are positive opaque `i32` process-local tokens, not stable
|
observable. Handles are positive opaque `i32` process-local tokens, not stable
|
||||||
file descriptors or ABI values.
|
file descriptors or ABI values.
|
||||||
|
|
||||||
The exp-era catalog is closed to names promoted through exp-101. exp-29,
|
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.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.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.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.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` | 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_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` | 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.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)` | 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.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)` | 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.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)` | 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.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)` | 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.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)` | 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.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.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.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. |
|
| `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. |
|
||||||
|
|||||||
@ -7,10 +7,10 @@ Examples are split by current compiler support.
|
|||||||
Entries in this section are current compiler support under the matching
|
Entries in this section are current compiler support under the matching
|
||||||
release notes. The current compiler-supported language baseline is
|
release notes. The current compiler-supported language baseline is
|
||||||
`1.0.0-beta`; `1.0.0-beta.1` adds tooling/install hardening without changing
|
`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
|
these source-language fixtures. `1.0.0-beta.2` adds beta-scoped
|
||||||
exp-125 unsigned precursor scope alongside the already promoted
|
runtime/resource foundation APIs. The language baseline absorbs the final
|
||||||
project/package, stdlib-source, collection, composite-data, formatter, and
|
exp-125 unsigned precursor scope alongside the already promoted project/package,
|
||||||
diagnostics surface.
|
stdlib-source, collection, composite-data, formatter, and diagnostics surface.
|
||||||
|
|
||||||
`supported/add.slo` is the current executable promotion fixture. Glagol can parse it,
|
`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
|
lower it, type-check it, emit LLVM for it, and cover that output with an automated
|
||||||
|
|||||||
Binary file not shown.
@ -5,15 +5,16 @@
|
|||||||
Sanjin Gumbarevic<br>
|
Sanjin Gumbarevic<br>
|
||||||
hermeticum_lab@protonmail.com
|
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
|
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
|
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.1 release-gate verification from the public
|
reruns from a local checkout; beta.2 release-gate verification from the public
|
||||||
monorepo
|
monorepo
|
||||||
|
|
||||||
Maturity: beta
|
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,
|
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.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
|
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
|
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
|
distinction between Glagol and Lisp-family implementations, the beta.1 tooling
|
||||||
tooling update, and the compiler path from beta to stable.
|
update, the beta.2 runtime/resource foundation, and the compiler path from beta
|
||||||
|
to stable.
|
||||||
|
|
||||||
## 1. Compiler Thesis
|
## 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
|
- 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.1`, is a beta tooling update on the first
|
The current release, `1.0.0-beta.2`, is a beta runtime/resource foundation
|
||||||
release that may honestly use beta maturity language for this toolchain.
|
update on the first release line that may honestly use beta maturity language
|
||||||
|
for this toolchain.
|
||||||
|
|
||||||
## 4. Diagnostics And Support Discipline
|
## 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
|
## 7. Benchmark Results
|
||||||
|
|
||||||
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 only; it does
|
baseline. `1.0.0-beta.1` changes tooling and install workflow, and
|
||||||
not claim changed benchmark performance.
|
`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
|
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:
|
||||||
@ -362,10 +367,11 @@ 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.1`
|
## 9. Path Beyond `1.0.0-beta.2`
|
||||||
|
|
||||||
Glagol now implements the first real beta Slovo contract and has a first
|
Glagol now implements the first real beta Slovo contract, the first
|
||||||
post-beta tooling/install hardening release. The remaining path is from beta
|
post-beta tooling/install hardening release, and the first runtime/resource
|
||||||
|
foundation release. The remaining path is from beta
|
||||||
to stable.
|
to stable.
|
||||||
|
|
||||||
Recommended compiler sequence:
|
Recommended compiler sequence:
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -5,15 +5,16 @@
|
|||||||
Sanjin Gumbarevic<br>
|
Sanjin Gumbarevic<br>
|
||||||
hermeticum_lab@protonmail.com
|
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
|
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
|
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.1 release-gate verification from the public
|
reruns from a local checkout; beta.2 release-gate verification from the public
|
||||||
monorepo
|
monorepo
|
||||||
|
|
||||||
Maturity: beta
|
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
|
`unsafe`, and native compilation through the Glagol compiler to LLVM IR and
|
||||||
hosted executables.
|
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
|
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
|
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, 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
|
## 1. Scope
|
||||||
|
|
||||||
@ -351,8 +354,9 @@ python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --w
|
|||||||
## 7. Benchmark Results
|
## 7. Benchmark Results
|
||||||
|
|
||||||
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 only; it does
|
baseline. `1.0.0-beta.1` changes tooling and install workflow, and
|
||||||
not claim changed benchmark performance.
|
`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
|
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:
|
||||||
@ -473,11 +477,12 @@ 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.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 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
|
the language compatibility-governed baseline, `1.0.0-beta.1` as the first
|
||||||
tooling/install hardening point, then move deliberately toward stable
|
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.
|
general-purpose status.
|
||||||
|
|
||||||
Recommended sequence:
|
Recommended sequence:
|
||||||
|
|||||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user