I join your concern about cooperation between Medium and Large. It depends how those who have less interest in the Medium effort want to proceed. One way would be to delay further ballots on Large until Medium is done: this would not preclude further Large work, but keep it within the SRFI process until Medium is done....
> Most of Scheme's features are easily factored into libraries, and both
> R6RS and R7RS have implicitly followed this pricinple. For example,
> dropping the (scheme complex) library in R7RS can yield an
> implementation without complex number support.
The problem here is the non-monotonicity of features, I think.
Say, I am writing a library (frob) that exports the frobnicate
procedure that frobnicates every Scheme value. If I want this library
to be fully portable and complete, it has to be able to frobnicate
also complex values.
Thus, it either has to important (scheme complex)
unconditionally or it imports (scheme complex) conditionally and
offers effectively two versions of frobnicate, one with and one
without complex number support and exporting the one that would be
supported by the implementation.
In the latter
case, writing the library becomes quite a hassle, especially when it
not only depends on complex number support but also on other optional
parts, probably leading to some combinatorial explosion.
The recent threads regarding R7RS-Medium and related topics have really
disturbed me. Regardless of the merits of such a project, I am concerned
about the further dilution of our efforts; our community is not large
enough to support a multiverse of standardization projects.
Accordingly, if R7RS-Medium is something that is actually going to
happen, I would like to see the following.
- the names of the persons who are committing to be editors of the
resulting Report, including at least some of the individuals responsible
for the leading Scheme implementations
- the relationship between the proposed Report and R7RS-small
(i.e., a list of cases of “it is an error” and “unspecified” that Medium
will tighten)
- the process by which the Medium committee will work with the
Large effort
- a list of the functionality from R6RS that is proposed for the Report
- a decision rule (a predicate, if you like) that distinguishes
libraries to be included in the Report from those not to be included,
perhaps intended for Large.
Reposted because I'm still having trouble learning to use Reply
All :)
Subject: | Re: [scheme-reports-wg2] I'm worried |
---|---|
Date: | Wed, 9 Mar 2022 18:15:47 -0800 |
From: | Vincent Manis <vma...@telus.net> |
To: | John Cowan <co...@ccil.org> |
Accordingly, if R7RS-Medium is something that is actually going to
happen, I would like to see the following.
- the names of the persons who are committing to be editors of the
resulting Report, including at least some of the individuals responsible
for the leading Scheme implementations
I think I understand why you say this. But the fact is that we didn't know who the editors of R7RS-small (Shinn, Cowan, Gleckler) would be until quite late in the process, and only one of them is a Scheme implementor (whether you consider Chibi "leading" is up to you). Editing is a skill quite separate from programming, and there is no particular reason why anyone should combine them.
- the relationship between the proposed Report and R7RS-small
(i.e., a list of cases of “it is an error” and “unspecified” that Medium
will tighten)
Such lists do in fact exist: in the <https://github.com/johnwcowan/r7rs-work> repo there are the pages ErrorSituations.md and ItIsAnError.md. These need to be merged and cleaned up, and then R7RS-small needs to be scrutinized for other cases that don't use the phrase "it is an error", of which there are many.
But such a list would be a work product, not something that can be specified in advance.
What I would like to see is something like this:
Medium is renamed "R7RS-large Foundation Libraries", or some such name. It is created by a (self-appointed) subcommittee of WG2 (which means that the Steering Committee need not be involved), and then WG2 (i.e. the Scheme community) will decide whether to incorporate it into R7RS-large by a vote. If that vote fails, then the Foundation Libraries will be voted on individually.
- a list of the functionality from R6RS that is proposed for the Report
I don't know enough to speak to that.
- a decision rule (a predicate, if you like) that distinguishes
libraries to be included in the Report from those not to be included,
perhaps intended for Large.
Here's my proposal on that: A library is a candidate for the Foundation Libraries if it cannot be implemented using only Small and the other Foundation Libraries. So SRFI 1 is not a Foundation Library, whereas syntax-case is. If library (a) can be implemented using (b) and (b) can be implemented using (a), it will be necessary to make a case-by-case decision about whether (a) or (b) is a Foundation Library.
I could definitely live with that.
My key point is to limit the scope of this project so that it
can be completed expeditiously and is a significant contribution
to the Large process.
-- vincent
I think I understand why you say this. But the fact is that we didn't know who the editors of R7RS-small (Shinn, Cowan, Gleckler) would be until quite late in the process, and only one of them is a Scheme implementor (whether you consider Chibi "leading" is up to you). Editing is a skill quite separate from programming, and there is no particular reason why anyone should combine them.
What I would like to see is something like this:Medium is renamed "R7RS-large Foundation Libraries", or some such name. It is created by a (self-appointed) subcommittee of WG2 (which means that the Steering Committee need not be involved), and then WG2 (i.e. the Scheme community) will decide whether to incorporate it into R7RS-large by a vote. If that vote fails, then the Foundation Libraries will be voted on individually.
There were two of us
That sounds reasonable, although I thought that some people were thinking of Medium as dealing with non-library issues in Scheme, e.g. dealing with all inconsistencies with R6RS and tightening up where exceptions must be thrown.
> Here's my proposal on that: A library is a candidate for the Foundation Libraries if it cannot be implemented using only Small and the other Foundation Libraries. So SRFI 1 is not a Foundation Library, whereas syntax-case is. If library (a) can be implemented using (b) and (b) can be implemented using (a), it will be necessary to make a case-by-case decision about whether (a) or (b) is a Foundation Library.
This is just my opinion about the idea of "Medium", but such a static
decision rule falls too short (by far). The idea of "Medium" emerged
ultimately from Daphne's letter about improving the R7RS Large
process. One issue that was raised is self-consistency, e.g. the order
of arguments in fold-like procedures. If "Medium" wants to help
enforcing such kinds of consistency, it is important that there's
something about generic fold procedures it although fold could be
implemented on top of the rest (and would thus fail this static
decision rule).
Another example would be what glue to use between
different sequence types. So far, it seems that R7RS Large builds on
generators for that (I don't think that it is a good idea at all - but
that's as irrelevant as Carthago for my point here), so we have
...->generator and generator->... procedures scattered everywhere. It
thus may make sense to codify what a generator-aware abstract data
type is in the "Medium" document.
Could this be amended to also exclude things that *would* be implementable in small if small had an FFI? So socket libraries and OS process control etc. are also the province of Large rather than Medium.
I’m also not entirely happy with the name ‘Foundation Library’. Not everything we will work on will be a library. (Reader syntax may be included, for example, if we want to adopt keyword datums or support square brackets for R6RS compatibility.)
On 2022-03-10 8:32 p.m., John Cowan wrote:
A cocky novice once said to Stallman: "I can guess why the editor is called Emacs, but why is the justifier called Bolio?" Stallman replied forcefully, "Names are but names. `Emack & Bolio's` is the name of a confectionary shop in Boston-town. Neither of these men had anything to do with the software."
His question answered, yet unanswered, the novice turned to go, but Stallman called to him, "Neither Emack nor Bolio had anything to do with the ice cream shop, either."
But seriously, I am fine with dropping the word "Libraries".
Perhaps the project result can be called “Scheme: Foundation Language and Libraries”.
-- vincent
(4) I think the better answer is: If you don't like square brackets,
don't use them. Provide a standardized reader flag (like #!r6rs) that
enables a standardized common lexical syntax of R6RS and R7RS
including square brackets.
--
You received this message because you are subscribed to the Google Groups "scheme-reports-wg2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scheme-reports-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/scheme-reports-wg2/CAEYrNrQ_ZuRNBmLa1-%2B8eAhgWy_4gsUr9SySuwJuC8CYdKF1XQ%40mail.gmail.com.