The kernel being so small means that a lot ends up in user space: networking, file system, IPC, audio, graphics, etc.
Posts by Radiant Computer
This in turn means that virtual memory and paging are not necessary.
For protection from untrusted binaries, it’s possible to use PMP (Physical Memory Protection) still, but this won’t be the default.
Yes, it’s possible to reduce traps as well as scheduler time to a bare minimum with clever kernel ABI design. All this research exists and sadly has not been put to use.
You’re welcome!
The kernel loader only accepts typed binaries (Radiance IL) that it can statically verify. Pointer fabrication or laundering can therefore be rejected at load time.
The trade-off is that raw RV64 binaries are not accepted by the kernel.
Work has started on the Radiant Kernel.
* It’s an exokernel. Very minimal.
* It uses ring buffers as the only syscall interface (think io_uring).
* There is no virtual memory — protection works via static analysis.
* There are no device drivers, software has direct hardware access.
Also note that most of these compilers are optimized for incremental compilation. Radiance is optimized for whole program compilation.
The only other language we know of that by design does not do incremental compilation is Jai.
Some of these compilers have a substantial fixed overhead, so a larger source code was used to make things more fair. The LOC/s is what counts.
All benchmarks are run on a single thread. Radiance compiles its own source code, while the other compilers are compiling synthetic code.
When allowed to use multiple cores, Go was the fastest. Radiance isn't optimized for parallelism currently.
Radiance compiles itself in 0.2s from scratch on the experimental amd64 backend. It's fast 💨
A discussion forum?
To learn more about the Radiance compiler, see the last few posts on our log:
radiant.computer/log/
If you're interested in personal computing or language design, please reach out, we'd love to talk.
The release includes `forge`, a simple read-only Git forge that supports SHA-256 repositories, and HTTPS cloning. Forge was entirely vibe-coded. Let us know if you encounter any issues with it.
Radiance is not meant to be used outside of the Radiant system, at least for now. It requires a RISC-V emulator to run, and does not emit ELF-compatible binaries.
It was designed to be small like C, but ergonomic like Rust. We're getting there.
The compiler and emulator are MIT licensed.
The Radiance language is still in an early stage, but the compiler is already self-hosting.
The compiler sits at around 18 KLOC.
It has zero dependencies, meaning that it links and emits machine code directly. It also includes an intermediate language.
Radiant is open-sourcing its compiler toolchain and launching code.radiant.computer today.
🪵 Radiant Log #012 -- A fixed point has been reached.
radiant.computer/log/012-radi...
The Radiance compiler has reached a fixed point.
This means it can now compile itself and generate identical output to itself.
Nostalgia for a pre-AI world..
Preparing to put sources online 🌐
Incompatibility allows true progress.
📝 A new note was added: "Maybe Not"
radiant.computer/notes/maybe-...
Radiance IR
Radiance IR (RIR) tentative syntax. Below is example code for a simple loop that sums numbers.
Working on the module system implementation in R', getting the module graph setup.
package = compilation unit (equivalent to rust "crate")
module = namespace within package
📝 A note was added: "Why not Rust?"
radiant.computer/notes/why-no...
I'm working on a new kind of computer. It's called the Radiant.
I've been dissatisfied with the state of personal computing for many years now, so it's time I did something about it.
If you think computers could be so much better than what they are, this is for you.
radiant.computer