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