R6RS history

115 views
Skip to first unread message

Jack Firth

unread,
Feb 26, 2019, 3:08:37 PM2/26/19
to Racket Users
What exactly is the history surrounding scheme, racket, and r6rs? I've gotten vague impressions of serious scheme community conflicts around that time but nothing specific. Does anyone have a timeline of important events related to that?

Sam Tobin-Hochstadt

unread,
Feb 26, 2019, 3:33:46 PM2/26/19
to Jack Firth, Racket Users
I think a genuinely detailed accounting of this has to wait for a
conversation over beer, but:

2003: New Scheme Standard proposed at the Scheme Workshop
2006: First draft of R6RS released
2007: R6RS Ratified by community vote after extensive discussion and revision
2009: A new Scheme Standard steering committee elected by a community
vote. The new committee reflected opposition to the R6RS.

Subsequent to this, new editors have produced various versions of the
R7RS, which do not aim to be direct successors to the R6RS.

You can see extensive material about this here: http://www.r6rs.org/history.html

Sam

On Tue, Feb 26, 2019 at 3:08 PM Jack Firth <jackh...@gmail.com> wrote:
>
> What exactly is the history surrounding scheme, racket, and r6rs? I've gotten vague impressions of serious scheme community conflicts around that time but nothing specific. Does anyone have a timeline of important events related to that?
>
> --
> You received this message because you are subscribed to the Google Groups "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Matthias Felleisen

unread,
Feb 26, 2019, 4:16:15 PM2/26/19
to Sam Tobin-Hochstadt, Jack Firth, Racket Users


Let me inject some comments that make it a bit more obvious what’s happening here:


> On Feb 26, 2019, at 3:33 PM, Sam Tobin-Hochstadt <sa...@cs.indiana.edu> wrote:
>

RnRS meetings from 1984 thru 2003 adhere to the “unanimity rule” originating from the MIT group.

In 2001, I created and ran “Scheme and Functional Programming” (SFP), a first annual Scheme workshop that also subsumed “Scheme Report” meetings.


> 2003: New Scheme Standard proposed at the Scheme Workshop

At the 2003 Boston SFP, I proposed going to a majority rule so that the Scheme standard could grow into a useful language after a long long day, with many people gone. The motion passed.

> 2006: First draft of R6RS released
> 2007: R6RS Ratified by community vote after extensive discussion and revision

I wrote an essay entitled “The R6RS is Perfect”. The certification vote succeeded with just a few votes more than needed (60% or 66% or something like that).


> 2009: A new Scheme Standard steering committee elected by a community
> vote. The new committee reflected opposition to the R6RS.

(as in “community vote” by another Scheme workshop)


We, the Racketeers, didn’t want to be in their way so we wrote this:

https://racket-lang.org/new-name.html

History is history. The future you can change, unless Gödel is right about Einstein’s equations and it’s practical.

— Matthias




Will Jukes

unread,
Feb 27, 2019, 8:18:59 AM2/27/19
to Matthias Felleisen, Sam Tobin-Hochstadt, Jack Firth, Racket Users
This question has been burning me up as well.

Arthur Nunes-Harwitt

unread,
Feb 27, 2019, 1:42:23 PM2/27/19
to Matthias Felleisen, Sam Tobin-Hochstadt, Jack Firth, Racket Users
Dear Matthias,

Would you be willing to share your thoughts about the history of
denotational versus operational semantics in the report?

Thanks.

==============================================================
Arthur Nunes-Harwitt
Computer Science Department, Rochester Institute of Technology
Room 70-3509
585-475-4916
==============================================================

"I don't know what the language of the future will be
called, but it will look like LISP."

This email is confidential and intended for the named recipient(s). In
the event the email is received by someone other than the recipient,
please notify the sender at a...@cs.rit.edu.

Matthias Felleisen

unread,
Feb 28, 2019, 11:10:44 AM2/28/19
to Arthur Nunes-Harwitt, Sam Tobin-Hochstadt, Jack Firth, Racket Users


> On Feb 27, 2019, at 1:42 PM, Arthur Nunes-Harwitt <a...@cs.rit.edu> wrote:
>
> Dear Matthias,
>
> Would you be willing to share your thoughts about the history of denotational versus operational semantics in the report?


[[ This is probably totally off topic for the list. ]]

Denotational semantics emerged as the dominant form in the 70s and 80s, especially in the functional/Lisp-y community, because it could express everything and the function from Syntax to Meaning (Scott domains) looked like an interpreter, which everybody (“”) knows how to read and possibly write.

BUT,

1. you typically want to use your semantics for something (e.g. a proof that what you wrote down has certain properties)
2. you want your semantics to have some resemblance to the design principles (here, “Scheme as a lambda calculus …”)

The 1980s showed that using den. sem. for many common goals was hard (e.g. type soundness proofs of ML; see Dams and Tofte’s work). In 1991, I worked with a student (Andrew Wright) to explain how these proofs could be done more easily with a form of operational semantics (an actual lambda calculus element) that I developed for my dissertation.

The cool thing was that this new form of semantics looked as simple as the original lambda calculus, handled assignments and continuations just fine, and possessed the same mathematical properties as the original lambda calculus (Church-Rosser, Curry-Feys).

By the time R6RS rolled around, Robby and his students had developed the Redex language far enough that we could use it to model all of Scheme, first R5RS and then R6RS (minus macros). By supplying an executable operational model, we hoped implementors could use it as an independent source of truth for their own work. We definitely have for many special corners of Racket and time and again Matthew finds a discrepancy between our models and the implementation. Sometimes we don’t trust the implementation and extend the model to cover this corner just to see whether two rather different ways of looking at things help us find the right way of doing things.

If you’re curious, see https://www2.ccs.neu.edu/racket/pubs/#popl12-kfff for other examples.


Reply all
Reply to author
Forward
0 new messages