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

Re: portability



In-Repl <[MX.LCS.MIT.EDU].924918.860606.JAR>
Message-ID: <12212709243.41.BARTLEY@CSC60>

>From JAR:
>I would say that a strict reading of the new draft, and perhaps even of
>the RRRS, would say that ANY identifier other than those explicitly
>listed as syntactic keywords (reserved words) may be used as a variable.
>In other words, a correct implementation of the report would already
>have the property that there are no other special forms other than the
>ones explicitly listed in the report (the complete list is somewhere
>inside the BNF).  So that a program which does (define trace ...)  or
>(let ((loop ...)) ... (loop ...) ...)  would already be portable.  The
>addition of ANY special form is an incompatible change to Scheme.

Several implementations, including Chez Scheme, PC Scheme, and
Scheme-84, allow user-specified syntactic extensions.  I doubt if we
could get a consensus that this is to be disallowed.  When you (JAR)
speak of special forms, are you including macros and the like?

>[Actually, if in a particular implementation special-form-ness is
>cancelled out by DEFINE and lambda-binding, then it would probably be OK
>in that implementation to have extra special forms/macros lying around,
>since a program which used those identifiers for variables would still
>be correct.  But let's not think about this possibility.]

Is there an alternative possibility?

(This paragraph seems to say that you are speaking of macros as well
as special forms.)

Regards,
David Bartley
-------