REXX Language implementation
Status: work-in-progress planning note for develop. Target tag:
v1.0.0-beta.3. Do not describe beta 3 as released until that tag and its
release assets exist. Created: 2026-06-17, after the v1.0.0-beta.2 tag.
CREXX 1.0.0 beta 3 is planned as the Release 1 foundation beta after the beta 2 close-out. It should convert the beta 2 hardening work into the branch state needed for Release 1 design lock, foundation decisions, package validation, and final feature completion.
| Date | Milestone | Beta 3 meaning |
|---|---|---|
| 2026-06-17 | Beta 3 opens on develop |
Version strings, README, docs index, and planning notes move to beta 3 WIP while beta 2 remains the latest completed beta tag. |
| 2026-07-03 | Design lock | Level B/G split, plugin policy, UTF ownership, Level C MVP, GPU/threading scope, and issue owners/labels are approved. |
| 2026-07-31 | Beta 3 foundation target | High-risk VM/compiler foundations either land with tests or move out; beta 3 package status, known limitations, and release assets are checked against the tag. |
| 2026-08-14 | Feature complete after beta 3 | User-facing Release 1 surface is frozen except for release defects, documentation, QA, examples, packaging, and measured performance work. |
Beta 3 should focus on a smaller, more explicit Release 1 contract rather than new broad language surface:
.string as valid UTF-8, .binary as
arbitrary bytes, and move richer Unicode work into Level G library planning..pkg and Linux .deb
hardening, and add the signed Windows NSIS installer only if the build,
signing, and upload flow is reliable before the beta 3 tag.The current develop branch includes the following beta 3 WIP foundations;
they are not released until the beta 3 tag exists:
auto algorithms;crexx driver;crexx -l paths when the argument contains a directory component, so
applications can select an approved library file without runtime path search;rx_hash provider
exposing the compatible one-shot rxhash.sha256() plus canonical lowercase
hex, immutable pointer-free incremental state, and synchronous bounded-memory
file SHA-256 to Level B and Level G; andCross-platform QA, the central beta 3 performance baseline, package validation, and final documentation review remain open release work.
Beta 3 WIP stages the complete rx_hash SHA-256 family for both Level B and
Level G:
rxhash.sha256(data = .binary) = .binary
rxhash.sha256hex(data = .binary) = .string
rxhash.sha256init() = .binary
rxhash.sha256update(state = .binary, data = .binary) = .binary
rxhash.sha256final(state = .binary) = .binary
rxhash.sha256finalhex(state = .binary) = .string
rxhash.sha256file(path = .string) = .binary
rxhash.sha256filehex(path = .string) = .string
Raw results are exactly 32 bytes; direct hexadecimal results are exactly 64
canonical lowercase characters. All .binary data is byte-preserving,
including embedded NUL and invalid UTF-8. Incremental state is an immutable,
copyable and transferable 152-byte version-1 value: canonical big-endian
header/count/chaining fields and zero-padded pending bytes are protected by an
integrity digest, with no pointer, C padding or host-endian representation.
Updates return a new state, empty updates are valid, and finalization is
repeatable. Invalid length/magic/version/format/invariants/integrity raise
INVALID_ARGUMENTS before hashing.
File procedures synchronously read binary files in fixed 32 KiB chunks and do
not accumulate the whole file. Open, read and close failures raise NOTREADY
with the failed stage; path selection, connector and cancellation policy, and
application size ceilings remain caller responsibilities. The dynamic provider
autoload and static/native package-selection contract is unchanged. For
example, callers can use sha256hex(data), retain the new value from each
sha256update(state, chunk) before sha256finalhex(state), or call
sha256filehex(path) when synchronous path hashing is appropriate. The full
state layout, signal contract, and examples are in Binary hashing with
rxhash.
winget publication.The final package list must be checked against the v1.0.0-beta.3 tag assets.
The intended beta 3 shape is:
.deb promoted only if install/uninstall and
dependency checks are reliable.setup.exe if the local
signing flow can build, sign, upload, and verify it reliably..pkg
installers when Apple signing and notarization secrets are configured.OPTIONS LEVELG and lowers through the public concurrency classes.v1.0.0-beta.2.md.../release-1-plan.md.