Re: Compounds are *not* a generalization of R6RS compound conditions Alex Shinn 09 Mar 2021 07:37 UTC
On Tue, Mar 9, 2021 at 3:49 PM Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de> wrote: > > Am Di., 9. März 2021 um 06:26 Uhr schrieb Alex Shinn <xxxxxx@gmail.com>: >> >> Yes, that's a fair point. It would be messy and require rewriting >> internals to try to integrate R6RS conditions into Chibi. > > Could someone explain to me why it would be difficult to integrate R6RS conditions into a native condition system? R6RS conditions allow for inheritance. Chibi exception objects do not, using a symbol for the general class of exception, in addition to a message and irritants. In Chibi's case it may not be a huge effort to switch, though it would break ABI compatibility. For other impls it may be more difficult. > The only way to get hold of a system-generated condition (in a portable way) is through the handler of the `with-exception-handler` procedure (and, therefore, also through the derived `guard` form, which is implemented through `with-exception-handler`). It is enough if `with-exception-handler` wraps the handler so that the wrapped handler does the translation between native to R6RS condition objects. Only the latter are then presented to the user handler. This is a leaky hack. The underlying condition system still exists and is available in non-portable code. You need to account for the common case of non-portable code which wants to make use of portable code. -- Alex