Am Mo., 26. Juli 2021 um 15:14 Uhr schrieb John Cowan <[email protected]>:
> > On Mon, Jul 26, 2021 at 8:09 AM Marc Nieper-Wißkirchen < > [email protected]> wrote: > > >> SRFIs normally give a user-directed specification of what these things >>> do, and put the implementation strategy into the non-normative >>> "Implementation" section. This SRFI is almost all implementation strategy. >>> >> >> Can you clarify what you mean? I don't think I say anything about how to >> implement these things. >> > > The idea of quasi syntax objects is a brilliant way of discussing both > syntax-case and ER macros with a common vocabulary. But unless it is your > claim that they are the *only* way to correctly implement ER (in which case > the implementation merges with the specification), then I don't see how > passages like the following can be interpreted except as (broadly drawn) > implementation specifications: > > At first, the input form is recursively fully unwrapped preserving any >> shared or cyclic structure. Then proc is called with three arguments, >> the fully unwrapped input form and two procedures rename and compare. It >> is an error if it does not return a quasi-syntax object. The symbols at the >> leaves of the quasi-syntax object returned are then replaced by their >> injections to yield the output form as a syntax object. > > Doesn't look operational semantics always this way? I don't care how, say, er-macro-transformer is implemented as long as it behaves operationally equivalent. To give one example outside SRFI 225: If you take a look at 12.1 of the R6RS Standard Libraries, the expansion algorithm is operationally described through Dybvig's marks and substitutions algorithm. While the R6RS expander can be implemented in this way (Chez Scheme, psyntax, Unsyntax) by directly transforming the semantics into an algorithm, it doesn't have to be (Larceny, Chibi Scheme). Also, note that the predicates of being "wrapped" and "unwrapped" syntax objects have to fulfill some axioms but they are not fully defined in the sense that they allow only one model. For example, in some implementations "fully unwrapped" syntax objects can be just the same as "wrapped" syntax objects. > By the way, I think the use of `quasisyntax` from R7RS as an analogue of > quasiquote and the term "quasi-syntax objects" are unrelated, and if so, > distinguishing them solely by a hyphen is a mistake. > Yes, that's not ideal. Do you have a better prefix to name "almost syntax objects" in mind? > If global language changes (including revoting, consolidating, and >>> amending SRFIs) will be allowed and will happen extensively at the end of >>> the R7RS-large design process, my objections here may be moot. >>> >> > Amending, certainly. Consolidating is not necessary because more than one > SRFI can contribute to a single library. Revoting, no; that would amount > to repeating the whole process, which I think we must avoid. > As to the latter: What if some SRFI earlier voted in becomes redundant or people later find flaws or incompatibilities with other SRFIs that should as well become part of the standard? And wouldn't be a new ballot on syntax-case be exactly such a revote? > That obviously raises the question of whether some funding could be found. >> > > That would be a great thing to have, but I don't even know where to start. > >> While the latter would be certainly very much so, the whole last sentence >> sounds a bit sad. >> > > I am content. Even the weariest river winds somewhere safe to sea. > I hope it is still a long way to the coast. In any case, you can certainly be content already with all that you have set into motion since you have begun your work on R7RS-large. > Unfortunately, this is not happening in reality. No one writes a new SRFI >> that is 98% equivalent to an existing SRFI but gets the remaining 2% >> "right" in the sense of the second author. >> > > While that number is obviously not met, I would contend that SRFI 125/126 > and the various string libraries all meet this criterion. > Yes to both. :) The examples you mention are really about different ways to solve similar problems. My "2%" number was more about getting the finer details "right". > I'm not saying that I can't be convinced. But I find it would be >> inconsequential to criticize the voting process and then trying to get my >> opinion through it. >> > > Revolutionaries have been discussing that since the turn of the 20th > century: is it better to work within the existing framework toward your > goals, or to withdraw from it absolutely? For myself, I think it depends > on the nature of that regime. > Should I adopt your opinion about it, the answer would be clear because your regime is extremely enjoyable - which becomes apparent especially when we are not in complete agreement (or think so).
