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
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: 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)
|
Am So., 3. Nov. 2019 um 11:54 Uhr schrieb Lassi Kortela <xxxxxx@lassi.io>: > > >> My argument for that is just compatibility and uniformity. For example, > >> if an RnRS procedure is extended with keyword arguments, that can't be > >> done in a compatible way if the keyword procedure cannot act like a > >> normal procedure in every way. > > > > In R6RS, it can be done with identifier syntax. > > Do you mean that e.g. `open-output-file` as an identifier would evaluate > to a genuine lambda, whereas `(open-output-file ...)` would be a macro > that expands to the keyword argument checking and finally a fast call to > a lambda? Yes, this is possible and all that would be needed if we do not treat keyword arguments as first class objects (that can be forwarded). > > The current text of 177 says that `keyword-lambda` and `keyword-call` > are "syntax". But I have nothing against them being special primitive > operators either. Is there particular language we can use in the SRFI to > say that? I think "special operator" is a Common Lisp term. R7RS-small uses the terms "expression type" and "syntax". What would "special primitive operator" add? > > As soon as we have syntax-case (or identifier syntax for > > er-macro-transformers) in R7RS, it can also be done there. (And the > > "Option 2" syntax already needs more than is in syntax-rules.) > > That's true. You and John have convinced me to relax the requirement on > syntax-rules compatibility :) > > > Maybe you could explain to me why it is so important that the > > implementation of SRFI 177 builds upon the native keyword argument > > system whenever one is present. This way we will end up only with the > > least common denominator. But for what purpose? > > The motivation that spurred 177 was: Uf a Scheme library writer wants to > start using keyword arguments in their libraries today, how could we let > them do that? I probably didn't explain this motivation clearly enough > in the SRFI rationale; sorry about that. > > Present compatibility sets quite different requirements than something > where we are only working toward future R7RS standardization. It means > we can't use any syntax or semantics that require upgrading existing > implementations or waiting for a new standard to be ratified. It has to > be implementable only using macros in existing implementations. > > My primary interest with Scheme is portable code (between R6RS and R7RS, > and also between implementations that loosely implement those standards > but don't conform to every detail). From that perspective, doing keyword > args that are fully compatible with all existing native kw args, and the > only compromise is magic :foo and foo: symbols, is a huge win. > > I understand that from a purity standpoint such hacks are suspect. > That's why I want to design 177 in such a way that it can be replaced > with a cleaner alternative later. But however it is done, 177 has to be > something that is usable today, without upgrading implementations, > simply by loading a library. The current version of SRFI 177 has a portable sample implementation (possibly depending on some low-level macro system), so native keyword arguments do not have to present. Thus I don't see why, for the purpose of SRFI 177, we have to be able to build upon them when they are present. > > What has to be done (and is being done:)) is to look at the various > > native systems to get the best ideas. Then all it has to be made sure > > that it isn't too hard to implement SRFI 177 on the most relevant > > Scheme systems. > > This is very good as long as we have a "tower" of increasingly > sophisticated semantics, so that each level of the tower is a compatible > superset of all the lower levels. > > 177 is meant to be the lowest level of the tower: just unhygienic > keyword args, all of them optional, with #f default values. The simplest > useful thing. > > But those semantics are a subset of the upper levels of the tower: > hygienic keyword args, default values, supplied-p parameters, > allow-other-keys, etc. > > That means a library writer can pick the lowest level that fulfills > their requirements. Many libraries don't need anything fancier than > global keywords with #f defaults; they can use 177. If someone needs to > write wrappers that handle unfamiliar keywords, they can use the > hypothetical SRFI 178 with allow-other-keys. If someone needs something > even fancier, they can import that, etc. > > The point is that at any time, the writer of a library picks the > most-widely-compatible thing that works. That ensures the library can be > enjoyed by as many Schemers as possible. > > R7RS-small compatibility is very important from this standpoint, as is > continued R6RS compatibility. R7RS-large can more freely make a choice > about its approach to the keyword tower. But whatever choice it makes, > should have semantics that are compatible with the other alternatives. I do not argue against this, not at all. :) But R7RS-small and R6RS compatibility do not demand that we have to compatible (what does it mean, by the way) with ad-hoc native keyword systems. May I propose, before finalization of SRFI 177, to spec a, say, SRFI 178 first. SRFI 178 shall be a proposal for keyword arguments in a future R7RS-large version that has more freedom. I would like to see a clear upgrade path from SRFI 177 to such a SRFI 178 so that SRFIs that initially build upon SRFI 177 work with SRFI 178 as well and in the most natural way. -- Marc