aboutsummaryrefslogtreecommitdiff
path: root/spec/evaluate.md
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-10-31 22:08:07 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-10-31 22:08:07 -0400
commitacd2159e1778893ff9d97da1120fb0c6e43a6fc1 (patch)
tree8ed956808bd0dc19a8f7e80931d78606e9d6fa0f /spec/evaluate.md
parentd88e4b093bfaa4df2cb6c75c3ab1cfcd0a108ff3 (diff)
Specify that evaluation can fail due to insufficient resources (e.g. memory)
Diffstat (limited to 'spec/evaluate.md')
-rw-r--r--spec/evaluate.md2
1 files changed, 2 insertions, 0 deletions
diff --git a/spec/evaluate.md b/spec/evaluate.md
index 12f55332..dccf902d 100644
--- a/spec/evaluate.md
+++ b/spec/evaluate.md
@@ -8,6 +8,8 @@ Here we assume that the referent of each identifier, or equivalently the connect
Evaluation is an ordered process, and any actions required to evaluate a node always have a specified order unless performing them in any order would have the same effect. Side effects that are relevant to ordering are setting and getting the value of a variable, causing an error, and returning (with `→`) from a block. Errors described in this page are "evaluation errors" and can be caught by the Catch (`⎊`) modifier. For caught errors and returns, evaluation halts without attempting to complete any in-progress node, and is restarted by Catch (for errors) or at the end of the appropriate block evaluation (for returns).
+As specified, BQN programs can involve an arbitrary amount of information, but when run there will be memory and possibly other limitations. To accommodate this, any part of evaluation can cause an error, if a resource such as memory, stack memory, or limited execution time is exhausted.
+
### Programs and blocks
The result of parsing a valid BQN program is a `PROGRAM`, and the program is run by evaluating this term.