Reawakening keywords John Cowan (23 Apr 2020 21:16 UTC)
Re: Reawakening keywords Alex Shinn (23 Apr 2020 22:51 UTC)
Re: Reawakening keywords John Cowan (23 Apr 2020 23:35 UTC)
Re: Reawakening keywords Alex Shinn (24 Apr 2020 00:04 UTC)
Re: Reawakening keywords John Cowan (24 Apr 2020 00:45 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (24 Apr 2020 06:15 UTC)
Re: Reawakening keywords Lassi Kortela (24 Apr 2020 06:44 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (24 Apr 2020 06:46 UTC)
Re: Reawakening keywords Lassi Kortela (24 Apr 2020 06:52 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (24 Apr 2020 07:10 UTC)
Re: Reawakening keywords Lassi Kortela (24 Apr 2020 07:27 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (24 Apr 2020 07:43 UTC)
Re: Reawakening keywords Lassi Kortela (24 Apr 2020 08:00 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (24 Apr 2020 08:26 UTC)
Re: Reawakening keywords Lassi Kortela (24 Apr 2020 08:34 UTC)
Re: Reawakening keywords Amirouche Boubekki (24 Apr 2020 06:54 UTC)
Re: Reawakening keywords Lassi Kortela (24 Apr 2020 07:04 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (24 Apr 2020 07:13 UTC)
Re: Reawakening keywords Lassi Kortela (24 Apr 2020 07:36 UTC)
Re: Reawakening keywords Lassi Kortela (24 Apr 2020 06:39 UTC)
Re: Reawakening keywords Arthur A. Gleckler (24 Apr 2020 15:07 UTC)
Re: Reawakening keywords John Cowan (25 Apr 2020 00:07 UTC)
Re: Reawakening keywords Arthur A. Gleckler (25 Apr 2020 00:12 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (25 Apr 2020 07:51 UTC)
Re: Reawakening keywords John Cowan (25 Apr 2020 16:04 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (25 Apr 2020 16:40 UTC)
Re: Reawakening keywords John Cowan (25 Apr 2020 18:10 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (25 Apr 2020 18:25 UTC)
Re: Reawakening keywords John Cowan (25 Apr 2020 22:02 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (02 May 2020 19:33 UTC)
Re: Reawakening keywords Marc Nieper-Wißkirchen (24 Apr 2020 06:10 UTC)

Re: Reawakening keywords Lassi Kortela 24 Apr 2020 08:00 UTC

> My point is that if `open-process' and `uri-decode-string' are native,
> unportable procedures there is no need to call them in a portable way.

There is, from within a `cond-expand`. Currently it's not possible to
call implementations' native keyword procedures from a cond-expand since
the lack of portable read syntax would make it impossible to load the
file in many Schemes. 177 allows writing call/kw using only symbols,
which makes it possible to call native keyword procedures with standard
read syntax. That's one of the major wins IMHO.

> If, on the other hand, they are rewritten following some portable
> specification (e.g. some procedure in SRFI 170), they don't have to be
> implemented using some native, non-portable keyword system.

The usual wisdom in software development is that it takes years for a
big system to be fully upgraded. By contrast, 177 could be used today to
call any native keyword procedure in any implementation, at no cost to
people who don't want to use 177.

> I don't want to say that this SRFI is useless.

No worries, I'm not offended by strong criticism. Whatever gets the best
technical result. There are justified rationales that 177 is useless or
harmful, and I respect that opinion. I agree with the internal logic of
those rationales but not with their premises. I'm open to changing my
mind about the premises if there are especially convincing arguments.

> I would, however, like
> to see that whatever simple "native keyword system" R7RS-large chooses
> for other SRFIs is also covered by SRFI 177 so that the rest of
> R7RS-large does not necessarily have to refer to SRFI 177. For
> example, I would like to be able to write something simple like
> `(make-hash-table (make-eq-comparator) 'initial-size 1000)' without
> the need of any `call/kw'.

This discussion has tipped me over to favor bending the rules of the
R7RS-large charter so that keywords (if they are adopted in the
standard) would be added to the native procedure call syntax. It's clear
that the `call/kw` prefix is considered too heavy to be part of a
standard language, and shorter prefixes like `kw` or `:` seem to me a
bit like "squirming in the hook" to avoid a problem that is ultimately
inevitable :)

The unfortunate thing is that if R7RS-large procedure call syntax is
extended, we have the Kawa/Racket direction and the CL-style direction
to go in. Reconciling those would not be easy.