aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-11-22 17:57:14 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-11-22 17:57:14 -0500
commit3100d6b64d886b138ce3866df561057651371818 (patch)
tree914de38e97b7cf6d80216f1bbe521bbc67e2e48a /spec
parent0c0e70ece0b6411942ed6fb735fed6b900ad32a0 (diff)
Specify •SH
Diffstat (limited to 'spec')
-rw-r--r--spec/system.md8
1 files changed, 8 insertions, 0 deletions
diff --git a/spec/system.md b/spec/system.md
index d0496285..b7c66ce9 100644
--- a/spec/system.md
+++ b/spec/system.md
@@ -149,6 +149,14 @@ The following short names can also be provided for file access. They can be prov
`•Repr` attempts to return a string so that `•BQN •Repr 𝕩` matches `𝕩`. If `𝕩` contains any mutable values (operations or namespaces), this is not possible. However, if such a values is stateless, in the sense that they don't access variables outside of their own scopes, it is permissible for `•Repr` to return source code that would create a value with identical behavior.
+## Interface
+
+| Name | Summary
+|---------|----------------------
+| `•SH` | Execute shell command and return `exitcode‿stdout‿stderr`
+
+The argument to `•SH` is a list of strings giving the command and its arguments (for example `"mv"‿"old"‿"new"`). The command is executed synchronously, and the result is a list of three elements: the command's exit code, text written to stdout, and text written to stderr. In both cases the text is a plain string containing all text emitted by the program. Text is interpreted as UTF-8, with an error if it's not valid UTF-8.
+
## Operation properties
| Name | Summary