Releases: 0xh7/Rex-language
Release list
Rex v0.6.1
Rex 0.6.1
Rex 0.6.1 fixes CLI version reporting and release metadata handling for the 0.6 release line.
Fixes
- Corrected the reported Rex CLI version.
- Added
rex vas a version alias. - Moved CLI version lookup to a dedicated
rex/VERSIONfile. - Updated Windows installer version defaults.
- Updated release metadata and release links.
Full Changelog: v0.6.0...v0.6.1
Rex v0.6.0
Rex 0.6.0
Rex 0.6.0 expands the standard library, tightens several compiler checks, and clarifies the current path toward Rex 1.0.
Highlights
Standard library
- Added
rex::processprocess.run(&command) -> Result<num, str>process.capture(&command) -> Result<(num, str), str>
- Added
rex::urlurl.parse(&url) -> Result<Map<str, str>, str>url.encode_component(&text) -> strurl.decode_component(&text) -> Result<str, str>url.join(&base, &part) -> strurl.with_query(&base, ¶ms) -> str
Compiler and diagnostics
- Generic bounds are now validated more strictly at call sites.
- Multi-tag
matcharms that attempt to use bindings now fail with a clear parse error instead of being accepted in a broken state. - Internal method dispatch generation was tightened for nested member calls.
http.get_statusnow matches its documented return shape more closely.
CLI and release workflow
- Added explicit CLI version reporting:
rex versionrex --versionrex -v
- Added
rex check-updateto compare the local CLI version with the latest published release. - Clarified the distinction between:
- the Rex CLI/language version
- the project version written to
rex.toml
Documentation
- Updated standard library documentation for the new modules.
- Added new examples for
processandurl. - Reworked the roadmap and spec notes to make the current pre-1.0 direction explicit.
Notes
This release does not introduce new core syntax. The focus of 0.6.0 is standard library growth, stronger diagnostics, and a cleaner path toward a stable 1.0 baseline.
Direction toward Rex 1.0
The goal remains a disciplined Rex 1.0 release with a stable core surface, clearer version semantics, stronger compiler guarantees, and a more complete standard runtime. Rex 0.6.0 is an incremental step in that direction, not the final freeze point.
Full Changelog: v0.5.1...v0.6.0
Rex v0.5.1
Rex v0.5.1
Rex v0.5.1 is a stability and cleanup release focused on long-term correctness.
This update improves confidence in the parser by covering postfix assignment paths more directly, removing obsolete parser branches, and adding regression coverage for nested member and index assignments.
It also refines the public documentation and package workflow notes so the current project model is clearer and more consistent.
The goal of this release is simple: keep Rex reliable as the language and toolchain continue to mature.
Full Changelog: v0.5.0...v0.5.1
Rex v0.5.0
Today we released Rex v0.5.0.
This release adds the first bounded package-manager workflow for Rex projects.
Highlights:
- manifest-driven projects with rex.toml
- rex.lock generation
- local path dependencies
- git-pinned dependencies
- package imports for public functions and public types
- updated CLI and project documentation
Current package surface supports:
- pub fn via pkg.fn()
- pub struct via pkg.Type.new(...)
- pub enum via pkg.Enum.Variant(...)
- pub type in signatures via pkg::Alias
This release is intentionally narrow. It focuses on a stable project and package workflow before adding registry complexity.
Rex v0.4.0
Today we released Rex v0.4.0.
In this update, we focused on improving the day-to-day experience of using the language itself, without introducing changes that break its current style.
We added a new set of functions to the standard library to make working with text, formatting, collections, and Result more practical, so everyday code becomes clearer and less repetitive.
We also significantly improved diagnostics around move and borrow, and introduced stable error codes with clearer help messages to make compiler errors easier to understand and fix.
The examples and documentation were updated as well to cover the new additions.
Highlights in v0.4.0:
- Expanded text utilities for common string work such as trimming, searching, splitting, case conversion, repetition, and padding.
- Added more formatting helpers to make output generation and simple formatting tasks easier.
- Extended collections helpers with more practical vector, map, and set operations for everyday programs.
- Improved Result ergonomics with helper functions that reduce boilerplate in error-handling flows.
- Upgraded ownership diagnostics so move and borrow errors are easier to read, easier to classify, and easier to fix.
- Added stable compiler error codes and clearer help hints for common ownership-related mistakes.
- Updated examples and standard library documentation to reflect the new APIs.
This release is mainly about ergonomics, diagnostics, and usability.
We wanted Rex to feel better in real code without changing the language into something else.
Rex v0.4.0 is available now.
Full Changelog: v0.3.0...v0.4.0
Rex v0.3.0
Rex v0.3.0
This release expands the Rex language with a set of practical syntax and
compiler improvements focused on clearer code, less repetition, and better
support for common day-to-day patterns.
What's New
- Added compound assignment operators:
+=,-=,*=,/=,%= - Added compound assignment for indexed values such as:
v[0] += 1 - Added nested member assignment support such as:
o.inner.value = 99
and
o.inner.value += 1 - Added struct literals with named fields:
Vec2 { x: 3.0, y: 4.0 } - Added wildcard match arms using:
_ => ... - Added multi-tag match arms such as:
A | B => ...
Compiler and Typechecker Improvements
- Updated the parser, code generator, and typechecker to fully support the new syntax.
- Struct literal validation is now stricter:
unknown fields are rejected, duplicate fields are rejected, missing fields are
reported, and field types are checked. - Improved mutability and ownership checks for nested assignment paths.
- Improved method dispatch for nested member chains such as:
o.inner.get()
New Examples
rex/examples/test_compound_assign.rexrex/examples/test_multi_match.rexrex/examples/test_nested_assign.rexrex/examples/test_struct_lit.rexrex/examples/test_wildcard_match.rex