~

Roadmap

Current Projects

~2023.2

Current

Ames Bug Fixing

Multiple bugs were introduced by a major release in mid-2022, called the "gall request queue fix". `~norsyr-torryn` is fixing these bugs.

Current

Demand Paging

Demand paging refers to the ability to load only needed pages of memory into RAM, leaving other pages on disk, to reduce memory use. Operating systems almost always include this feature. Urbit does not include it yet, but it will need to, since Urbit is a "single-level store".

Current

Event Log Truncation

The event log grows indefinitely, using more disk space over time. Once event logs can be truncated, disk space can be reclaimed, using a roughly constant amount of disk space over time (the size of the Arvo snapshot, which grows much more slowly than the event log). Reducing disk space in this way is important for reducing cost and maintenance burden for running ships.

Current

Pointer Compression: 8GB Loom

This project raises the amount of data the runtime can manage from 2GB to 8GB. It is the first phase of the Increase Runtime Data Capacity arc.

Current

Shims for Userspace Code Over Old Kelvins

As it stands, every Kelvin change breaks backward compatibility, requiring app devs to publish modified code so their users can keep the app running. This needs to happen less frequently over time, until eventually apps can be "write once, run forever."

Current

Solid-State Publications

For scalability, basic solid-state publications are being prototyped. This is the next step after basic remote scry toward scalable data publishing on Urbit. These prototypes live in userspace; once we've proven the model with some real-world examples, we can build kernel support into Gall.

Current

Tune %clog Backpressure Time and Space Constants

Tuning the constants in Ames's `%clog` system should reduce network flakiness, reduce the number of Arvo events, and improve publication bandwidth, especially until chat uses remote scry and solid-state subscriptions.

~2023.3

Current

New Mars Snapshot Design

New Mars has a novel scheme for ensuring copy-on-write semantics for memory pages in a way that minimizes disk write amplification when taking an incremental snapshot.

Current

Userspace Permissioning

Kernel and applications are both unprotected against malicious applications until userspace permissioning is added.

~2023.4

Current

Epoch System

Chunk Event Log into Epochs

Current

Mars/Urth Split

Move event log management into the same Unix process that manages snapshots.

~2024.1

Current

New Mars

New Mars is an experimental rewrite of the Nock interpreter intended for much higher performance.