New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Arthur A. Gleckler 02 Jul 2020 05:56 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Shiro Kawai 02 Jul 2020 12:50 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types John Cowan 02 Jul 2020 13:19 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 07 Jul 2020 14:23 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types John Cowan 07 Jul 2020 20:32 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 08 Jul 2020 14:27 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Wolfgang Corcoran-Mathe 08 Jul 2020 19:47 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 08 Jul 2020 20:21 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types John Cowan 09 Jul 2020 04:32 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 09 Jul 2020 09:30 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types John Cowan 10 Jul 2020 14:05 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 10 Jul 2020 14:39 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Wolfgang Corcoran-Mathe 10 Jul 2020 17:30 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 10 Jul 2020 17:50 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Wolfgang Corcoran-Mathe 11 Jul 2020 15:22 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 11 Jul 2020 15:30 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Wolfgang Corcoran-Mathe 11 Jul 2020 16:17 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Alex Shinn 11 Jul 2020 22:20 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 11 Jul 2020 22:29 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Wolfgang Corcoran-Mathe 12 Jul 2020 03:35 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 11 Jul 2020 16:33 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types John Cowan 11 Jul 2020 18:44 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 11 Jul 2020 19:26 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Arthur A. Gleckler 11 Jul 2020 19:59 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 11 Jul 2020 20:06 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Arthur A. Gleckler 11 Jul 2020 20:08 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 14 Jul 2020 09:13 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types John Cowan 14 Jul 2020 21:15 UTC
Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Alex Shinn 15 Jul 2020 00:07 UTC

Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 14 Jul 2020 09:13 UTC

Am Sa., 11. Juli 2020 um 22:08 Uhr schrieb Arthur A. Gleckler
<xxxxxx@speechcode.com>:
>
> On Sat, Jul 11, 2020 at 1:06 PM Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de> wrote:
>
>>
>> Yes, indeed. I have been thinking of a replacement of SRFI 145, which
>> will include John's idea to pull in "assert" from R6RS and my idea of
>> linking "assume" to "assert" when a kind of debug flag is set (which
>> should be the default).
>>
>> In error situations, which can, in principle be detected (like in the
>> maybe-if case of SRFI 189), implementations are then encouraged to use
>> "assume" (or even forced by the wording of the respective SRFI), which
>> will give (a) the semantics John is looking for in normal runs and (b)
>> allows a portable mode, in which the optimizer can work much more
>> aggressively without changing the semantics.
>
>
> That would be great.

In order not to repeat everything that is said in SRFI 145, I think it
is enough to have a SRFI 2XX "Assertions", which implements the
predicate "assert-violation?" and the syntax "assert" from R6RS and
which adds the following requirement:

Any Scheme implementing SRFI 2XX has to implement SRFI 145 with the
following additional requirements:

(1) If the feature identifier "debug" is present, "assume" must expand
into an equivalent "assert" form.
(2) If the feature identifiers "debug" and "ndebug" aren't present,
"assume" should report a non fulfilled assumption to the user in an
implementation-depended way.
(3) If the feature identifier "debug" is not present but "ndebug" is,
the behavior of unfulfilled assumptions is implementation-dependent.
(4) Implementations should set the feature identifier "debug" and
disable the feature identifier "ndebug" by default.
(5) Implementations should provide a way to (globally) set feature
identifiers for the use in cond-expand.
(6) In error situations where the error is easily detectable,
implementations should guard against the error with "assume".

Remark: (6) applied, for example, to procedures like
"call-with-current-continuation", whose arguments have to be of a
certain type, or to syntax like "maybe-if", whose argument have to
evaluate to values of a certain type.

Marc