← Blog
Release Friday

A Better Run Log

This week I improved the run log in rngo 0.34.0, among other things.

First of all, I renamed effects to inputs because I wanted to resolve ambiguity between the thing that produces events (the effect) and the events themselves (the inputs).

Similarly, I renamed signals to outputs, which allowed me to rename invariants to signals. So now a signal describes a pattern observed among a sequence of inputs, outputs and metadata, instead of a single observation.

And, on that note, I also added metdata, which replaces the errors table with a more complete schema:

CREATE TABLE metadata (
    type TEXT NOT NULL,
    input_id INTEGER,
    effect TEXT,
    offset INTEGER,
    attribute TEXT,
    data TEXT
);

The end result is a better defined simulation structure:

  • an effect produces inputs to a channel
  • a channel may return outputs
  • an effect may also produce metadata
  • a signal describes patterns across inputs, outputs, and metadata

So now when you run rngo, you'll see something like this in the audit phase:

Audit
no-errors: 3096 (failed - expected 'result == 0')
some-inputs: 1556 (passed)
warnings: 16
1 passed
1 failed

Also, I added a --default flag to rngo init, along with a --dry-run flag to rngo run.

Looking Forward

Next week, I plan on supporting massive simulations by building a SQLite native run log.