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

Re: [Scheme-reports] libraries, cond-expand, begin, and expressions vs definitions

On Sun, Jan 6, 2013 at 4:45 AM, Andy Wingo <wingo@x> wrote:

First of all, the clauses of a `cond-expand' outside a define-library
form is specified as containing expressions.  This does not appear to be
the case: they seem to be able to contain definitions as well.

Indeed - this was a last-minute change.  We'll clarify it to state
that definitions are allowed in the non-library-declaration form.

Secondly, and more gravely, it seems that the `begin' _expression_ of the
`define-library' language can contains "commands or definitions"

This comes from formal syntax of "Programs and definitions".
We should clarify this since it's not otherwise made clear until chapter 7.

What is a "command"?  I will assume you mean "library
declaration", as mentioned later in the section.  I also assume that
`begin' can contain expressions.  So, the problem: allowing `begin' to
contain library declarations appears to break the "static" intent of the
define-library system.

No, we most certainly don't mean library declarations.
The later note that `begin' could include library declarations
was a terrible editorial mistake which many people have
pointed out and has long since been fixed.

The library system is STATIC.

You say "in general we don't do a great job of distinguishing
between expressions and definitions."  Was there a third
(or more) case?


Scheme-reports mailing list