Ring++ is a register VM and a compiler for the Ring language, in one program of 5 MB for Windows and Linux. It is how Softanza — its 300,000 lines and the applications built on them — left Ring while keeping its code, and it answers the three weaknesses that made Ring hard to carry into production: its performance, the absence of static checks, and the difficulty of building and shipping an application. It leads to Haro, the foundational language of the Softanza project.
Until August 2026, Ring++ was a library that ran inside Ring, and a contribution to it. It is now the runtime itself. On 14 October 2026 I retired Ring from all my projects: Softanza, and the customers who depend on it, run on Ring++, and the work goes on towards Haro, the language that comes next.
On 29 October 2026 the move was completed. Softanza's main branch was rewritten for the one rule Ring++ adds — a
global used inside a function is written $name — its engine is built for Ring++ from its own source, and
the Ring++ packages carry it. Softanza is developed and tested on Ring++. Ring 1.27, built from its own source, stays in
this repository only as the reference every answer is compared with. The rewrite changes nothing for a program still on
Ring 1.27: 30 of Softanza's tests print the same output on Ring before and after it.
Why, technically and in how Ring is governed, is a page of its own. The issues of Ring that Ring++ solves are another, each shown by a program run on both. The library era is archived, read-only.
Lists that are arrays, strings passed without copying, methods found once instead of at every call: the places where Ring's design costs it most, replaced. On the same programs, 4 to 2,000 times faster than Ring 1.27.
The compiler is also the checker. A global written by mistake from inside a function, which Ring accepts without a
word, is refused when the program is compiled; rnxc check reports a call to a function that does not exist
before the program runs; and a line Ring++ cannot run correctly is refused with its reason, instead of failing in
production on the day it is reached.
One program, built with Zig alone: no Ring installation, no C compiler, no extension to compile or version to match. Softanza and its engine ship in the same package, for Windows and Linux. Nothing it depends on can be withdrawn by anyone else.
Every answer is compared with Ring 1.27 itself, built from its own source. Where Ring++ answers differently, it is a decision on record, never an accident.
| what is measured, before every release | the result |
|---|---|
| Softanza's own tests: the checks that pass on Ring, passing on Ring++ | 12,924 of 13,008 on Windows (99.4%), 12,170 of 12,255 on Linux (99.3%) — the rest, named |
| Softanza's main branch, the one the packages carry, compiled whole | 136,346 statements in 697 files, every one compiled |
| Ring programs compared with Ring, line by line | 5,112 |
| Speed against Ring 1.27, on the same programs | 4 to 2,000 times faster |
| What has to be installed beside it | nothing |