Sujet : Re: Undefined in LISP
De : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : comp.lang.lispDate : 24. Mar 2025, 07:50:16
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20250323233948.580@kylheku.com>
References : 1 2 3 4 5 6
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2025-03-23, Lawrence D'Oliveiro <
ldo@nz.invalid> wrote:
On Sun, 23 Mar 2025 16:56:35 +0000, Daniel Cerqueira wrote:
>
Does every LISP S-expression need to have a value (need to be
evaluated)? Is atributing a symbol to undefined behaviour needed?
>
Which is why I said, the natural way to have an “undefined” value is for
the computation not to terminate at all.
Not to terminate at all means to go into an infinite loop or some
hardware suspend state.
This is fine for an interactive system, or a system being debugged.
It's okay if your pocket calculator locks up with an E on the display,
upon which it responds only to the AC button, or being power cycled. It
is strictly interactive; nothing happens in it without button events,
and it has no other purpose but to serve the interactive user.
An application being run under a debugger can drop into the debugger
when something goes wrong, and the debugger will wait indefinitely for
the operator to do something.
In complex operating systems that support being put into unattended
production uses, we don't want anything to stop.
At most, only the lowest level kernel may have a "panic" function that
locks up in a loop. But even that is a behavior we typically don't want
unless we are debugging. If the system is to remain available in spite
of the crash, it has to reboot on panic.
The software locking up is so bad that have hardware defenses against
it: hardware watchdogs.
-- TXR Programming Language: http://nongnu.org/txrCygnal: Cygwin Native Application Library: http://kylheku.com/cygnalMastodon: @Kazinator@mstdn.ca