Keywords reduced Lassi Kortela (18 Oct 2019 15:25 UTC)
Re: Keywords reduced John Cowan (18 Oct 2019 20:48 UTC)
Re: Keywords reduced Lassi Kortela (18 Oct 2019 22:24 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (19 Oct 2019 08:26 UTC)
Re: Keywords reduced John Cowan (19 Oct 2019 19:04 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (20 Oct 2019 09:15 UTC)
Re: Keywords reduced John Cowan (21 Oct 2019 17:26 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (21 Oct 2019 18:38 UTC)
Re: Keywords reduced Shiro Kawai (21 Oct 2019 19:27 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (22 Oct 2019 06:04 UTC)
Re: Keywords reduced Shiro Kawai (22 Oct 2019 10:07 UTC)
Re: Keywords reduced John Cowan (22 Oct 2019 19:33 UTC)
Re: Keywords reduced John Cowan (22 Oct 2019 19:39 UTC)
Re: Keywords reduced Lassi Kortela (22 Oct 2019 20:06 UTC)
Syntactic keywords vs parentheses Lassi Kortela (22 Oct 2019 20:30 UTC)
Re: Syntactic keywords vs parentheses John Cowan (22 Oct 2019 20:54 UTC)
Re: Syntactic keywords vs parentheses Lassi Kortela (22 Oct 2019 21:08 UTC)
Re: Syntactic keywords vs parentheses Shiro Kawai (22 Oct 2019 22:24 UTC)
Re: Syntactic keywords vs parentheses Lassi Kortela (23 Oct 2019 07:40 UTC)
Re: Syntactic keywords vs parentheses John Cowan (22 Oct 2019 23:12 UTC)
Re: Syntactic keywords vs parentheses Amirouche Boubekki (25 Oct 2019 11:56 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (23 Oct 2019 07:19 UTC)
Re: Keywords reduced John Cowan (21 Oct 2019 23:06 UTC)
Re: Keywords reduced Shiro Kawai (22 Oct 2019 00:42 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (22 Oct 2019 06:12 UTC)
Re: Keywords reduced Lassi Kortela (22 Oct 2019 10:56 UTC)
Re: Keywords reduced Lassi Kortela (20 Oct 2019 09:42 UTC)
Remaining keyword problems Lassi Kortela (29 Oct 2019 17:59 UTC)
allow-other-keys Lassi Kortela (29 Oct 2019 18:29 UTC)
Re: allow-other-keys John Cowan (29 Oct 2019 18:55 UTC)
Re: allow-other-keys Shiro Kawai (29 Oct 2019 19:18 UTC)
Re: allow-other-keys Lassi Kortela (29 Oct 2019 23:04 UTC)
Re: allow-other-keys Marc Feeley (29 Oct 2019 21:05 UTC)
Re: allow-other-keys Marc Nieper-Wißkirchen (03 Nov 2019 08:16 UTC)
Re: allow-other-keys Lassi Kortela (03 Nov 2019 10:11 UTC)
Re: allow-other-keys Marc Nieper-Wißkirchen (03 Nov 2019 10:34 UTC)
Re: allow-other-keys Lassi Kortela (03 Nov 2019 10:54 UTC)
Re: allow-other-keys Marc Nieper-Wißkirchen (03 Nov 2019 11:13 UTC)
Re: allow-other-keys Lassi Kortela (03 Nov 2019 11:39 UTC)
Re: allow-other-keys Arthur A. Gleckler (03 Nov 2019 18:39 UTC)
Re: allow-other-keys Marc Nieper-Wißkirchen (03 Nov 2019 18:48 UTC)
Re: allow-other-keys John Cowan (03 Nov 2019 19:20 UTC)
Re: allow-other-keys John Cowan (03 Nov 2019 19:18 UTC)
Re: allow-other-keys Marc Nieper-Wißkirchen (03 Nov 2019 19:52 UTC)
Re: allow-other-keys John Cowan (03 Nov 2019 22:19 UTC)
Identifier syntax and the range of Schemes to support Lassi Kortela (03 Nov 2019 19:54 UTC)
Re: Remaining keyword problems John Cowan (29 Oct 2019 19:51 UTC)
Re: Remaining keyword problems Lassi Kortela (29 Oct 2019 21:09 UTC)
Alternative syntax using colon symbols for portable keywords Lassi Kortela (29 Oct 2019 22:29 UTC)
Re: Remaining keyword problems Marc Nieper-Wißkirchen (11 Nov 2019 14:56 UTC)
Re: Remaining keyword problems Lassi Kortela (11 Nov 2019 16:15 UTC)
Re: Remaining keyword problems Marc Nieper-Wißkirchen (11 Nov 2019 14:44 UTC)
Re: Remaining keyword problems John Cowan (11 Nov 2019 16:48 UTC)
Re: Remaining keyword problems Marc Nieper-Wißkirchen (11 Nov 2019 17:06 UTC)
Re: Remaining keyword problems John Cowan (11 Nov 2019 17:15 UTC)
Re: Keywords reduced Shiro Kawai (19 Oct 2019 09:25 UTC)
Re: Keywords reduced Lassi Kortela (19 Oct 2019 09:38 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (19 Oct 2019 12:22 UTC)
Re: Keywords reduced Shiro Kawai (19 Oct 2019 18:43 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (20 Oct 2019 08:39 UTC)
Re: Keywords reduced Lassi Kortela (20 Oct 2019 09:28 UTC)
Re: Keywords reduced Shiro Kawai (20 Oct 2019 10:12 UTC)
Re: Keywords reduced Shiro Kawai (20 Oct 2019 10:17 UTC)
Re: Keywords reduced Lassi Kortela (20 Oct 2019 10:23 UTC)
Re: Keywords reduced Shiro Kawai (20 Oct 2019 10:42 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (20 Oct 2019 21:10 UTC)
Re: Keywords reduced Shiro Kawai (20 Oct 2019 21:19 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (20 Oct 2019 21:33 UTC)
Re: Keywords reduced Shiro Kawai (20 Oct 2019 22:05 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (21 Oct 2019 07:01 UTC)
Re: Keywords reduced Shiro Kawai (20 Oct 2019 22:18 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (21 Oct 2019 07:06 UTC)
Re: Keywords reduced Shiro Kawai (21 Oct 2019 07:25 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (20 Oct 2019 21:04 UTC)
Re: Keywords reduced Shiro Kawai (20 Oct 2019 21:41 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (21 Oct 2019 06:50 UTC)
Re: Keywords reduced Shiro Kawai (21 Oct 2019 07:53 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (21 Oct 2019 11:47 UTC)
Re: Keywords reduced Peter Kourzanov (21 Oct 2019 15:42 UTC)
Re: Keywords reduced Marc Nieper-Wißkirchen (21 Oct 2019 15:55 UTC)
Re: Keywords reduced Shiro Kawai (21 Oct 2019 17:38 UTC)
Re: Keywords reduced John Cowan (21 Oct 2019 17:45 UTC)
Re: Keywords reduced Lassi Kortela (22 Oct 2019 08:21 UTC)
Keywords vs paremeters for hygiene Lassi Kortela (21 Oct 2019 08:05 UTC)
Re: Keywords vs paremeters for hygiene Marc Nieper-Wißkirchen (21 Oct 2019 11:23 UTC)

Re: Remaining keyword problems Marc Nieper-Wißkirchen 11 Nov 2019 17:06 UTC

I have taken a look at this implementation. The Chicken implementation
is not a faithful one of SRFI 99 because the generated identifiers
"make-XXX" and "XXX?" cannot be closed in the right syntactic
environment without datum->syntax or some analogous procedure.

It does not have to do anything with ER vs IR-macros.

Chibi's SRFI 99's implementation had the same problem, reported here:
https://github.com/ashinn/chibi-scheme/issues/494.

That was actually the starting point for my syntax-case implementation
in Chibi because I was thinking about how to fix it.

Marc

P.S.: Will Clinger's reference implementation of SRFI 99 is based on
syntax-case and does not have the problem.

Am Mo., 11. Nov. 2019 um 17:48 Uhr schrieb John Cowan <xxxxxx@ccil.org>:
>
> The SRFI--99 implementation for Chicken at <https://chust.org/repos/chicken-srfi-99/artifact/0bc19e89c9f768c6> depends on IR-macros <https://wiki.call-cc.org/man/4/Macros#implicit-renaming-macros>, which are very close to ER-macros but can't be implemented directly on top of them because they need reverse access to the renaming table.  Supposedly IR-macros are just syntactic sugar that can always be rewritten as ER-macros.  Can you take a look?
>
>
> On Mon, Nov 11, 2019 at 9:44 AM Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de> wrote:
>>
>> Am Di., 29. Okt. 2019 um 20:51 Uhr schrieb John Cowan <xxxxxx@ccil.org>:
>> >
>> >
>> >
>> > On Tue, Oct 29, 2019 at 1:59 PM Lassi Kortela <xxxxxx@lassi.io> wrote:
>> >
>> >> - Keywords being global symbols vs hygienic identifiers.
>> >
>> >
>> > I will believe in the need for hygienic keywords when someone demonstrates a non-hypothetical use for them.
>> >
>> >>
>> >> - Required keyword arguments; default values (other than #f); supplied-p
>> >> parameters ala Common Lisp; combining keywords with optional positional
>> >> args and rest args.
>> >
>> >
>> > I say they are spinach, and I say the hell with them.
>> > <https://en.wikipedia.org/wiki/I_say_it%27s_spinach#/media/File:Spinachbroccolinewyorker.gif>
>> >
>> >>
>> >> - 177 needs to use RnRS-portable read syntax, so we can't use keyword
>> >> objects. That means we need to use either symbols or strings to indicate
>> >> keyword arguments. Symbols would be the natural way to indicate hygienic
>> >> keywords, so it'd be nice to use something else for global keywords.
>> >
>> >
>> > I propose this: if you really must have hygienic keywords, then in systems without keywords, a symbol beginning with ":" is treated as global.
>> >
>> >>
>> >> > Also, if some procedural macro system like `syntax-case' becomes more
>> >> > widespread (say because of inclusion in R7RS-large), we may want to
>> >> > revisit SRFI 177 because it would allow more syntactic freedom when
>> >> > specifying the interface.
>> >
>> >
>> > Can syntax-case give SRFI 177 anything that explicit renaming and define-macro (which is not going to be hygienic) do not?  I agree that having fewer implementations is better.
>>
>> syntax-case has datum->syntax, which explicit renaming does not and
>> makes the latter strictly less powerful. SRFI 99 can be implemented
>> with syntax-case, but not with explicit renaming. I don't see that
>> SRFI 177 needs datum->syntax, but we haven't agreed on/seen the final
>> proposal for its syntax.
>>
>> >
>> >>
>> >> The troubles with this SRFI may be a good argument for why there should
>> >> be a standard lower-level macro system lke syntax-case :)
>> >
>> >
>> > If Marc's Chibi library can be made to cover Chicken, Gauche, and MIT (which will need patches for each one), I'd say that making syntax-case a standard is feasible.
>>
>> This also seems to be in line with WG2's charter: "... When deciding
>> which features to include in the language, working group 2 should
>> consider all features provided by R6RS Scheme, and all criticisms of
>> those features. Insofar as practical, the language should be backwards
>> compatible with an appropriate subset of the R6RS standard..."
>>
>> This does not make it mandatory to include `syntax-case' in
>> R7RS-large, but there should be a good reason not to include it if a
>> low-level system is going to be included. (With R7RS-large and beyond,
>> we may still hope that R7RS+ and R6RS can converge again some day.)
>>
>> >
>> >>
>> >> 177 is explicitly designed so that other libraries' *interfaces* never
>> >> depend on it. It's only a dependency for the library *implementations*.
>> >> If a better syntax for keywords is found later, then the implementations
>> >> can gradually be converted to use that instead, while their interfaces
>> >> stay intact. 177 is meant to be an implementation detail, and to
>> >> co-exist and interoperate with all present and future keyword systems;
>> >> not to replace them.
>> >
>> >
>> > I don't understand that. If a portable R7RS-large library wants to expose procedures that have keywords (and I'd like that), then it has to use either SRFI 177 conventions or some other conventions.
>> >
>> >>
>> >> The problem is that keyword arguments serve a real need; in their
>> >> absence people use alists or plists, which are *guaranteed* to be
>> >> unhygienic, non-type-checkable and non-optimizeable. With any keyword
>> >> system at all, a Scheme implementation has the possibility to do better
>> >> than the current situation.
>> >
>> >
>> > +1.  I have carefully avoided the need for them in R7RS-large so far, but SRFIs and pre-SRFIs are now starting to appear that simply have too many options to be handled as standard Scheme arguments.
>> >
>> >
>> >
>> > John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
>> > And now here I was, in a country where a right to say how the country should
>> > be governed was restricted to six persons in each thousand of its population.
>> > For the nine hundred and ninety-four to express dissatisfaction with the
>> > regnant system and propose to change it, would have made the whole six
>> > shudder as one man, it would have been so disloyal, so dishonorable, such
>> > putrid black treason.  --Mark Twain's Connecticut Yankee
>> >
>>
>>
>> --
>> Prof. Dr. Marc Nieper-Wißkirchen
>>
>> Universität Augsburg
>> Institut für Mathematik
>> Universitätsstraße 14
>> 86159 Augsburg
>>
>> Tel: 0821/598-2146
>> Fax: 0821/598-2090
>>
>> E-Mail: xxxxxx@math.uni-augsburg.de
>> Web: www.math.uni-augsburg.de/alg/mitarbeiter/mnieper/

--
Prof. Dr. Marc Nieper-Wißkirchen

Universität Augsburg
Institut für Mathematik
Universitätsstraße 14
86159 Augsburg

Tel: 0821/598-2146
Fax: 0821/598-2090

E-Mail: xxxxxx@math.uni-augsburg.de
Web: www.math.uni-augsburg.de/alg/mitarbeiter/mnieper/