[M3devel] SEGV mapping to RuntimeError

Mika Nystrom mika at async.caltech.edu
Sun Feb 20 01:13:14 CET 2011


Jay K writes:
>--_1802b75d-f353-43c9-bd6c-02a34e2b7ae8_
>Content-Type: text/plain; charset="iso-8859-1"
>Content-Transfer-Encoding: quoted-printable
>
>
>Modula-3 doesn't live in a vacuum.
>The vast majority of surrounding code is C and C++.
>There are bugs everywhere.
> - Jay

It's rather up to the programmer using it, isn't it?  If you write your
code in pure Modula-3, you should be able to rely on the guarantees of
the Green Book (and therefore that SIGSEGV means something relatively
specific, not that "the world just ended").  If you insist on linking
with broken C and C++... well you get what you deserve, probably best
not to try to handle RuntimeError.E in that case.

In any case, to an interactive user of my Scheme interpreter it is very
useful that a NIL dereference drops him at the read-eval-print loop
rather than killing the world.  E.g., if as I had yesterday, a 1-gigabyte
datastructure parsed in memory, and I lost the world because I happened
to try to set-car! on a null list somewhere.

     Mika



More information about the M3devel mailing list