Exceptions and conditions Wolfgang Corcoran-Mathe (31 Aug 2024 06:11 UTC)
Re: Exceptions and conditions Artyom Bologov (31 Aug 2024 14:02 UTC)
Re: Exceptions and conditions Wolfgang Corcoran-Mathe (31 Aug 2024 19:57 UTC)
Re: Exceptions and conditions Artyom Bologov (31 Aug 2024 22:58 UTC)
Re: Exceptions and conditions Wolfgang Corcoran-Mathe (01 Sep 2024 02:51 UTC)
Re: Exceptions and conditions Artyom Bologov (01 Sep 2024 12:34 UTC)

Re: Exceptions and conditions Wolfgang Corcoran-Mathe 31 Aug 2024 19:57 UTC

Hi Artyom, and thanks for the quick reply.

On 2024-08-31 18:02 +0400, Artyom Bologov wrote:
> - Accommodation of existing implementation behavior. Chicken, for
>   example, ignores type annotations in interpreter mode, only checking
>   them during compilation.

I think this is due to the lack of static analysis in the CHICKEN
interpreter. In any case, runtime type-checks like the ones in this
SRFI will still be performed when running a program in the interpreter.

> - Allowing undefined behavior for heavily-optimized implementations
>   (like Stalin if I manage to contribute this SRFI there; or Pre-Scheme,
>   where I'm trying to contact the maintainer for collaboration.)
>
> - Allowing to omit the (potentially expensive) checks for production
>   builds, only checking in debug mode.

Again, I’d still like to have a guarantee that failures will signal
an error when the program is compiled/run in “debug mode”. Is there
a situation in which this would impose a performance penalty on
non-debug-mode programs?

This is splitting hairs a bit, I know. Most implementations will do
the Right Thing; I imagine that only the truly hardcore, opinionated
compilers will ignore petty things like type checks.

--
Wolfgang Corcoran-Mathe  <xxxxxx@sigwinch.xyz>