raise-continuable-foreign-error Lassi Kortela (27 Jul 2020 06:31 UTC)
Re: raise-continuable-foreign-error hga@xxxxxx (27 Jul 2020 11:53 UTC)
Re: raise-continuable-foreign-error Lassi Kortela (27 Jul 2020 12:14 UTC)
Re: raise-continuable-foreign-error Marc Nieper-Wißkirchen (27 Jul 2020 12:21 UTC)
Re: raise-continuable-foreign-error Lassi Kortela (27 Jul 2020 12:33 UTC)
Re: raise-continuable-foreign-error hga@xxxxxx (27 Jul 2020 12:38 UTC)
Re: raise-continuable-foreign-error John Cowan (27 Jul 2020 14:04 UTC)
Re: raise-continuable-foreign-error Marc Nieper-Wißkirchen (27 Jul 2020 14:13 UTC)
Re: raise-continuable-foreign-error John Cowan (27 Jul 2020 16:55 UTC)

Re: raise-continuable-foreign-error Marc Nieper-Wißkirchen 27 Jul 2020 14:12 UTC

Am Mo., 27. Juli 2020 um 16:04 Uhr schrieb John Cowan <xxxxxx@ccil.org>:

> On Mon, Jul 27, 2020 at 8:21 AM Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de> wrote:
>
>> raise and raise-continuable are fundamentally different procedures.
>> The former is a continuation procedure that does not return. The
>> latter is an ordinary procedure.
>
> Actually they are both ordinary procedures.  Raise can be defined in terms of raise-continuable thus:

By an ordinary procedure, I mean a procedure that (generically)
returns. The raise procedure, however, never returns. It has the
signature of a continuation, which can be viewed as a co-value (as
opposed to values or procedures (which act covariantly on values and
contravariantly on co-values)).

> (define (raise condition)
>     (raise-continuable condition)
>     (raise (make-something "Attempt to continue from raise")))

This will loop when an exception handler is installed.

> It's true that when the current exception handler was created by guard or the equivalent, that handler is a continuation procedure unless none of the guard-clauses match, in which case it is ordinary.

My analysis has nothing to do with the type of exception handler installed.

Marc