Implementation status
The current supported surface and the boundary between working RiX features and active design.
RiX is an active alpha. Its parser, AST-to-IR lowering, and broad evaluator are working; the language remains free to change before a stable release. This page is the current status boundary. Older reports and design notes are valuable history but are not authoritative status pages.
The repository test suite currently covers 1,700+ cases across parser, evaluator, runtime, CLI, and examples. Run bun test in rix/ for the exact count at your revision.
Working and tested
| Area | Current surface |
|---|---|
| Exact arithmetic | integers, rationals, mixed/repeating/continued-fraction forms, rational intervals, and exact rational enclosures for certified approximations |
| Language pipeline | tokenizer, Pratt parser, AST, lowering, call-shaped IR, evaluator dispatch |
| Functions | lambdas, named functions, rest/spread, partials, arity caps, prepared functions, multifunctions, tail-self call path |
| Collections | arrays, lazy sequences, iterators, maps, sets, tuples, tensors, indexing/slicing, traversal pipes, methods |
| Control and scope | blocks, cases, ternaries, loops, break blocks, cells, five assignment modes, destructuring, imports |
| Async runtime | promise-aware host API; {$ ... } code blocks with import headers, FIFO bounded finite-collection fan-out, nested structural collections, fused map/filter/find/all stages, and named completion breaks; supervised {$$ ... } blocks with host draining |
| Semantics | metadata classes, semantic inquiry/conversion, type and trait registries, constructor capture |
| Exact extensions | units/quantities, algebraic exact generators, exact complex operations, Cayley polar representation |
| Exact polynomial plugins | pure-RiX .poly owns the canonical callable Polynomial identity, reactive coefficients, exact arithmetic/division, derivatives, Sturm chains, root counts, and root bounds; pure-RiX .algebra supplies presentation metadata and synthetic-division Grids; pure-RiX .algebraicReal reuses the same Polynomial service for certified roots |
| Exact plugin implementations | .fraction, .radix, .poly, .ratfun, .algebra, .exactAlgebras, .oracle, .ball, .cauchy, .continuedFraction, .algebraicReal, .numerics, and the .symbolic meta-plugin are implemented in RiX; former JavaScript versions are non-discoverable reference sources |
| Tooling | REPL/runner, IR converter, native .test.rix runner, structured diagnostics, source locations, trace/debug |
| Structured output | typed Text, Paragraph, Heading, Fragment, Table, Grid, Graphic, Figure, Slide, Slides, and reactive ControlPanel values; intrinsic 2D scene primitives under .Graphics include DragPoint, while .Controls.Slider($$name, ...) performs exact identity-preserving updates; optional bundled .draw and .plot producers; .Renderer/.Render negotiation and SVG, Canvas-plan, TikZ, PNG, Markdown, HTML, Quarto, LaTeX, PDF, and glTF plugins; extension-driven CLI .Out text/binary export; @"..."/@"""...""" templates; exact synthetic division through .Algebra.SyntheticDivision |
| 3D and higher dimensions | optional .scene3d retained rix.scene3d@1 values with exact meshes, polylines, point clouds, transforms, perspective/orthographic cameras, and deterministic wireframe-to-Graphics snapshots; .nd exact affine/Cayley projection records and polytopes; browser-safe embedded-buffer glTF 2.0 export; runnable 4D tesseract example |
| Embedding | parser exports, evaluator/runtime exports, configurable system loader and system context |
| Exact symbolic core | identity/expression/system specs, inert definitions and constraints, normalized symbol roles, substitution and composition, name-preserving arithmetic, attached pure-function specs, polynomial compilation, exact derivatives/integrals, explicit simplification, quote calculus syntax |
Partial or intentionally bounded
| Area | Boundary |
|---|---|
| Symbolic work | {# ... } represents multi-symbol systems, but arithmetic/calculus remain a tested single-expression exact subset. Transcendental rules, general solving, and numerical calculus belong outside that subset. |
| FractionFunction migration | .fracfun remains the sole host-backed computational exact-algebra plugin because it clones and rewrites private symbolic IR, closure scopes, and source-domain restrictions. Its canonical projections already use pure-RiX .poly and .ratfun; migration waits for a versioned public symbolic-expression builder. |
| Mathematical systems and async follow-up | {# ... } preserves definitions, constraints, symbols, and advisory input/output roles; solving is delegated to plugins. Async finite collections, matrices/tensors, nested scope caps, and finite pipe barriers are implemented. Lazy bounded pull, worker execution, snapshot/COW task writes, stable task paths, and capability-level abort signals remain follow-up work. |
| Real approximation | certified radix/continued-fraction prefixes and three-state comparisons are in Core/RiX; optional Float, Oracle, Ball, Cauchy, continued-fraction, algebraic-real, and Numerics plugins provide backend-specific computation and bounded refinement. |
| Browser use | the parser demo runs in the browser. Full evaluator imports currently include Node file APIs, so evaluator embedding needs a host adapter for browser-only use. |
| Packaging | the package uses @ratmath/core through the parent Bun workspace and has not yet declared a stable standalone release workflow. |
| 3D rendering | The first retained scene, wireframe snapshot, and glTF JSON slice is implemented. Hidden-surface removal, lighting, adaptive parametric/implicit surfaces, textures, animation/orbit controls, GLB, OBJ, STL, PLY, and USD/USDZ remain design work. Static camera projection belongs to Scene3D, not to the 2D SVG/Canvas/TikZ renderers. |