A milestone was passed recently. After months, years even, of silence on the wire, there are more emails arriving here from r6rs-discuss than from spam.
This message is therefore a digest with a few general remarks before the main point. I wish the list had less argument couched in undefined or misused terms. "Module" is not defined in the report, and is used only in the rational to describe what was *not* done. Make a complete SRFI module proposal and then argue about it. Ditto with other vague terms. > From: John Cowan <[email protected]> > > you simply must expand macros at the place of use, > not the place of invocation. Is this a typo? I don't understand the difference between use and invocation. "One-pass", "two-pass", and "recursive one-pass", (whatever the Sam Hill that means), are implementation techniques. Talk of "one-pass semantics" is confusing, or confused. The issue, if there is one, is the region of visibility [r6rs,5.2] of each binding occurrence of an identifier. I assert, and take to be the position of R6RS, that in each region there is at most one defining occurrence of each identifier. But I hear "What about the REPL? We need to re-define things!". The REPL should not be standardized, and there should be no expectation that the *only* thing you do interactively is to type complete Scheme programs. The purpose of a standard is so that we can exchange progams and libraries. It has no business dictating what I type to my favorite Scheme on my own computer. I don't want a REPL, I want a REPEL (pronounce like rappel), that is, a read-eval-print and *edit* loop. To edit a definition that already exists is not at all like typing it all over again. In Perfect Scheme interactive mode if I type: (define pi 3.14) (define pi 22/7) a window pops up; it asks if I want to keep the old definition, replace it with the new, rename one, or comment one of them out. I can choose with mouse or keyboard, but *not* by typing more Scheme code. If I type: (* pi pi) the computer types ;==> 9.8596 or maybe ;==> 484/49 and leaves it there. If I edit the definition of pi, the computer edits its answer. When I am done editing, I can mail the final version to you. You will be able to run it, because it is a standard Scheme top-level program. You have a dumb terminal connected to Toaster Scheme. When you type the above two definitions, maybe it overwrites the first with the second. Maybe it gives you an error message. Maybe it burns the toast. I don't care. That's between you and your implementation. It's not in the standard. It may take a while for you to produce a standard Scheme top-level, but eventually it's done. You mail it to me and I can run it. If there is more than one defintion of pi in the final result, I will send you a bug report, because that is bad programming at best, and I hope it remains a syntax error in R9RS. To avoid stupid misunderstandings, there should be a non-normative appendix that describes a few ways that interactive mode could work. It should mention that it is good taste for an implementation to provide a way to start interactive mode with some libraries already imported. -- Keith Pensaran vuestras mercedes ahora que es poco trabajo hinchar un perro? -- un loco de Seville Pensara vuestra merced ahora que es poco trabajo hacer un libro? -- Miguel de Cervantes, Don Quijote II _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
