Kestrel-3

Check-in [2c2434a794]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Missing word radically alters intended meaning of a sentence.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:2c2434a794d238e872b5afa0e5d01c97b16cddb759a6e3f4a0c4b21790b9fc4e
User & Date: kc5tja 2019-09-09 00:34:44
Context
2019-09-09
04:35
More stepwise refinements to flesh out more boot loader behavioral details, menu item structure, etc. check-in: a903a4c39f user: kc5tja tags: trunk
00:34
Missing word radically alters intended meaning of a sentence. check-in: 2c2434a794 user: kc5tja tags: trunk
2019-09-08
23:48
Bring in the project report org-mode document. Tracks stepwise refinement of system firmware, hardware design choices, etc. check-in: e485309137 user: kc5tja tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to REPORT.org.

212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
#+END_SRC

** Exception Handling
An uncaught exception happens when a program issues a ~THROW~ command
without a matching ~CATCH~ for it.  The simplest way to make this work
is to define ~THROW~ so that it just handles the "uncaught" exception
and immediately re-enters the Forth interpreter.  This results in the
data and return stacks being reset, so there's chance for infinite
regression.

When ~CATCH~ is invoked, however, then ~THROW~ must somehow return
from the ~CATCH~ exactly as if the definition had returned to it.
This might involve skipping a potentially large number of nested
definitions.








|







212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
#+END_SRC

** Exception Handling
An uncaught exception happens when a program issues a ~THROW~ command
without a matching ~CATCH~ for it.  The simplest way to make this work
is to define ~THROW~ so that it just handles the "uncaught" exception
and immediately re-enters the Forth interpreter.  This results in the
data and return stacks being reset, so there's no chance for infinite
regression.

When ~CATCH~ is invoked, however, then ~THROW~ must somehow return
from the ~CATCH~ exactly as if the definition had returned to it.
This might involve skipping a potentially large number of nested
definitions.