[SLOF] [PATCH v3] slof/fs/packages/disk-label.fs: improve checking for DOS boot partitions
Segher Boessenkool
segher at kernel.crashing.org
Thu Mar 28 21:47:25 AEDT 2024
On Thu, Mar 28, 2024 at 10:09:20AM +0530, Kautuk Consul wrote:
> On 2024-03-27 08:43:25, Segher Boessenkool wrote:
> > If an exception happens you can (should!) throw an exception. Which
> > you can then catch at a pretty high level.
> Ah, correct. Thanks for the suggestion! I think I will now try to throw
> an exception from read-sector if all the code-paths imply that a "catch"
> is in progress.
Don't try to detect something is trying to catch things. Just throw!
Always *something* will catch things (the outer interpreter, if nothing
else), anyway. In SLOF this is very explicit:
: quit
BEGIN
0 rdepth! \ clear nesting stack
[ \ switch to interpretation state
terminal \ all input and output not redirected
BEGIN
depth . [char] > emit space \ output prompt
refill WHILE
space
['] interpret catch \ that is all the default throw/catch
\ there is! no special casing needed
dup print-status \ "ok" or "aborted" or abort" string
REPEAT
AGAIN ;
The whole programming model is that you can blindly throw a fatal error
whenever one happens. You cannot deal with it anyway, it is fatal!
That is 98% or so of the exceptions you'll ever see. Very sometimes it
is used for non-local control flow. That has its place, but please
don't overuse that :-)
Segher
More information about the SLOF
mailing list