Compounds are *not* a generalization of R6RS compound conditions Marc Nieper-Wißkirchen (06 Mar 2021 09:40 UTC)
Re: Compounds are *not* a generalization of R6RS compound conditions Marc Nieper-Wißkirchen (09 Mar 2021 06:49 UTC)
Re: Compounds are *not* a generalization of R6RS compound conditions Alex Shinn (09 Mar 2021 07:38 UTC)
Re: Compounds are *not* a generalization of R6RS compound conditions Marc Nieper-Wißkirchen (09 Mar 2021 07:59 UTC)
Re: Compounds are *not* a generalization of R6RS compound conditions Marc Nieper-Wißkirchen (10 Mar 2021 07:12 UTC)
Re: Compounds are *not* a generalization of R6RS compound conditions Marc Nieper-Wißkirchen (09 Mar 2021 06:59 UTC)
Re: Compounds are *not* a generalization of R6RS compound conditions Marc Nieper-Wißkirchen (08 Mar 2021 17:59 UTC)
Re: Compounds are *not* a generalization of R6RS compound conditions Marc Nieper-Wißkirchen (10 Mar 2021 07:31 UTC)

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