Concatenative topics
Concatenative meta
Other languages
Meta
ERIShell is a frontend to one of the reference implementation of the Encoding for Robust Immutable Storage (ERIS). It was originally a sub-command style utility to showcase the features of the ERIS standard and the Go library. ERIShell is a rewrite that can be driven entirely by a concatentaive language specified on a command line.
In ERIShell the command-line flags are flipped.
To copy from one file-descriptor to another:
erishell 1 fd- 0 fd- copy- close-
The justification for using a reversed command-line is that interactions within the utility are made on a stack that is observable, rather than within an internal model that must make assumptions of intent.
The utility has an embedded HTTP server and CoAP endpoint. With the stack multiple servers can be instantiated and configured independently, where previously the utility would instantiate at most one server per protocol and then apply options and config globally.
There is no eval, no variables, and no comparisons. The only composite value is the mathematical set with the operators and-, or-, singleton-, and the null- constructor for empty sets.
$ erishell X singleton- Y singleton- or- null- or [ X Y ]
The design was arrived at by using execline and noticing that execline scripts extend commands by prepending commands. The logic stops where the final exec starts, so why not invert the arguments of the final command so a script can be extended in both directions?
The language builtins are documented along with examples in erishell(1).
This revision created on Sat, 8 Nov 2025 09:24:29 by emery (Initial page for ERIShell, a concatenative CLI )