Command line

What it is

A terminal program with the machine inside it, that reads lines and prints what they answer; the easiest host to start with. It loads its modules at run time. The repository is o.se.

Get it running

In the workspace:

cd hosts/unix.o.se && make

As a standalone clone:

git clone --recursive https://github.com/asomadev/o.se
cd o.se && make

Prebuilt binaries: github.com/asomadev/o.se/releases.

First program

Start a prompt and type a line:

./o.se -f o.se.osen/osen.ose
> (21, 2) /o/add
: 23

./o.se -f repl.ose is the same prompt without osen loaded: it reads the instruction language only.

What it adds

Into the host register, as /o/ verbs a program calls like the language’s own:

A halted machine comes from the prompt: with /!/inner/trap installed, a line that faults is held as /m, and the four /o/machine/ verbs and the language’s /o/frames, /o/backtrace, /o/frame, /o/db and /o/machine/bind take it from there.

And as instructions: the same UDP under /udp/*, /time/now, files and streams (/read, /readlines, /write, /load, /stdin, /stdout, /stderr), the shell (/system), a debugger (/debug), an inner machine (/inner/*) and a run queue.