Radix 0.10.0
| Field | Value |
|---|---|
| Product | Radix |
| Version | 0.10.0 |
| Source | Closed for now — see Open source |
Install this version#
No prebuilt archives were published for this version. It is listed here because its release notes are part of the record.
Release notes#
The bootstrap compiler reaches completion: all 25 .fab source files compile and
generate valid TypeScript. On the language side this release replaces inline
modifiers with @ annotations, replaces ////* */ comments with #, allows
keywords as identifiers, and simplifies the conditional keyword set.
Scale#
| Signal | Count |
|---|---|
| Commits (no merges) | 26 |
| Date span | 2025-12-31 |
Major tracks#
AST restructure as discretio variants (ab88bbb07, be9a663de)#
Unified the AST into two single-file discriminated unions: Expressia (24
tag-based variants) and Sententia (31 tag-based variants). Deleted 18
subdirectory files under fons-fab/ast/expressia/ and fons-fab/ast/sententia/.
Generated TypeScript uses finge … qua Expressia → { tag: 'Littera', … }.
Parser files updated to use real AST imports and finge construction.
Bootstrap parser complete (3a38320bb, e282e1881, 81830d153, fcf206ede)#
- Statement parsers: Adds
fluxus.fab(elige, discerne, custodi),initus.fab(incipit/incipiet, cura, ad),imperium.fab(si, dum, ex, de), anddeclara.fab(functio, genus, pactum, ordo, discretio, typus, importa). All 25 bootstrap.fabfiles compile without errors. - Expression parsers: Implements
parseObiectumExpressia()with key-value, computed keys, shorthand, and spread. ImplementsparseLambdaExpressia()with params and optional return type. - Parser wiring: Introduces the
Parsatorgenus (concreteResolvitorimplementation) to complete parser mutual recursion. Wiresexpressia()to the full precedence chain andsententia()to the statement dispatcher.
@ annotation system (270282151, b17a3e93b, 0db5c1723, a0e2e1c40, 252910bb4, cf9245e95)#
Replaces inline modifier keywords with line-oriented @ annotations:
- Adds
ATtoken to the tokenizer. - Adds
AnnotationAST node with a modifiers array. - New syntax:
@ publicum,@ privatum,@ abstracta,@ futura,@ cursor,@ generis. - Visibility inversion: Default visibility changes to private; exports
require
@ publicum. - Clean break: Removes inline
functio f() futura cursorsyntax entirely. All codegen targets (TS, Python, Rust, Zig, C++, Fab) read async/generator state from annotations only. - Updates all docs, EBNF grammar, and
grammatica/files to use@syntax.
# line comment syntax (b31a574ca, db818021c, 302de08d7, dd7062c1c, 3f699822b)#
Replaces C++-style // and /* */ with Python/Shell-style #:
- Adds
#as a line comment indicator. - Removes
//and/* */parsing entirely — this is a breaking change. - Simplifies
CommentTypeto a single'line'variant; no block or doc variants remain. - Migrates all 55 exempla files, all 28 bootstrap compiler
.fabfiles, the Zed grammar tree-sitter source, Zig runtime libraries, and 140+ consilia doc files. Roughly 3,000 lines changed across 143 files.
Keywords as identifiers (37b7ae488, 0a0b97fb6, d07260729)#
Keywords like typus, class, signum, string can now be used as variable
names, field names, and parameter names. Removes the keyword-conflicts gotcha
from documentation. Also allows catch/demum as identifiers in expression
context — these are contextual keywords that should not block ordinary names.
Conditional syntax cleanup (114b2fc0f, 961fd78b5)#
Removes the aliter keyword. The conditional keyword set is now:
if= ifelif= else if ("but if")else= else ("otherwise")
else already served double duty in ternary expressions (sic x secus y), so
this consolidates the "otherwise" concept to a single word. Eliminates the
duplicate ExpectedKeywordAliter / ExpectedKeywordSecus error codes.
Sync function syntax in bootstrap (10d5f0637)#
Switches bootstrap compiler from fit (generator-wrapper semantics) to ->
(direct returns). The compiler is fully synchronous and should not use generator
wrapping.
Design docs (e58f908c3, 54dcc142b, 47d23a877)#
- Adds design doc for
publicusmodule exports (consilia/futura/publica.md). - Adds
@ generisexamples with proper Latin adjective order. - Documents missing
longitudo→lengthtranslation for property accesses onlist/map/set(BUG comment).
---