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.

Documentation authority

When pages disagree, use this order:

  1. tests and current implementation;
  2. the generated runtime catalog;
  3. current user guides under eval/, tutorial/, and the complete introduction;
  4. parser and runtime design records;
  5. historical reports, early phase documents, scratch notes, and generated legacy HTML.

The build regenerates the runtime catalog from the implementation, which makes missing or renamed system capabilities visible in every documentation change.

Back to top