[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Scheme-reports] Ratification vote for R7RS-small

Full name (required): Göran Weinholt

Location (optional): Göteborg, Sweden

Affiliation (optional):

Contact details (optional):

Statement of interest (not required if you registered for the
R6RS ratification or the 2009 Steering Committee election):

I am the developer of Industria, a sizeable collection of portable
Scheme libraries. Most of my libraries are of the type for which any
sensible person instead would have used an FFI interfacing with
(inevitably insecure) C code. It is thanks to R6RS that I've been able
to write Industria in pure Scheme and I would not even have attempted it
armed only with R5RS implementations. I have an interest in the Scheme
programming language continuing to go in a certain direction; towards a
place where programs are inherently safer, more amenable to analysis and
optimization and where code is portable between implementations.

Vote (required): no

Rationale (optional):

My rationale is partly technical, partly social. To keep it short I will
only include one point from each. First the technical part. These
paragraphs are from R6RS:

  "The standard libraries whose exports are described by this document
  are said to be safe libraries. Libraries and top-level programs that
  import only from safe libraries are also said to be safe.

  "As defined by this document, the Scheme programming language is safe
  in the following sense: The execution of a safe top-level program
  cannot go so badly wrong as to crash or to continue to execute while
  behaving in ways that are inconsistent with the semantics described in
  this document, unless an exception is raised."

Contrast that with this paragraph from R7RS-small draft 9:

  "For example, it is an error for a procedure to be passed an argument
  of a type that the procedure is not explicitly specified to handle,
  even though such domain errors are seldom mentioned in this report.
  Implementations may signal an error, extend a procedure's domain of
  definition to include such arguments, or fail catastrophically."

Formalising catastrophic failure as an acceptable evaluation strategy is
not a good idea. I also believe it conflicts with this requirement from
the WG1 charter: "Semantics compatible with interactive read/eval/print
loops should be provided."

Now for the social part of my rationale. This paragraph is from
RRRS (AIM-848):

  "Editor's note: This report records the unanimous decisions made
  through a remarkable spirit of compromise at Brandeis, together with
  the fruits of subsequent committee work and discussions made possible
  by various computer networks. I have tried to edit these into a
  coherent document while remaining faithful to the workshop's decisions
  and the community's consensus. I apologize for any cases in which I
  have misinterpreted the authors or misjudged the consensus."

Contrast that with the equivalent paragraph from draft 9:

  "Note: The editors of the R5RS and R6RS reports are listed as authors
  of this report in recognition of the substantial portions of this
  report that are copied directly from R5RS and R6RS. There is no
  intended implication that those editors, individually or collectively,
  support or do not support this report."

This note shows that there is something broken in the Scheme community
and it has affected the report. Ratifying draft 9 does nothing to fix
this problem.


Göran Weinholt <goran@x>
"Alone tonight just like the western star, I'm sinking.
The angels curse me blind with straight and crooked thinking."
 -- Above & Beyond - Alone Tonight

Scheme-reports mailing list