From: Y S Ramakrishna
Subject: Loop Facility : Common Lisp Query
Date: 
Message-ID: <5067@ucsbcsl.ucsb.edu>
Guy Steele's "Common Lisp -- the language" 2 ed. (Ch 26, pp 709) states:

X3J13 voted in January 1989 to adopt an extended definition of the loop
macro as a part of the forthcoming draft Common Lisp standard.


Can anyone fill me in on whether this is now part of the standard
Common Lisp. I am using Lucid Lisp 4.0.2, but do not know whether
unrestricted use of their loop syntax will adversely affect the
portability of my (source) code (Clearly, since this is only a macro,
the (preprocessed) code should not face portability problems.).
Anyone know about any OFFICIAL standard that has been adopted since then ?

Please reply by e-mail to ···@nu.ece.ucsb.edu, since I am not a
regular reader of this newsgroup.

Many thanks.
-- Ramki. 
From: Vincent Delacour
Subject: Re: Loop Facility : Common Lisp Query
Date: 
Message-ID: <DELACOUR.92Jun10151827@waxwing.parc.xerox.com>
In article <····@ucsbcsl.ucsb.edu> ···@eta.ece.ucsb.edu (Y S Ramakrishna) writes:

[...]
   portability of my (source) code (Clearly, since this is only a macro,
   the (preprocessed) code should not face portability problems.).

Many Common Lisp macros are explicitly allowed to expand to
implementation-dependent code. This is one of the flaws of the
language.  

As has become traditional, I will point out here that such design
decisions are motivated by the _implementation techniques_ used
traditionally. The myth supporting such bizarreries in the language is
that "it's better (why?) to write part of the compiler by writing
user-level macros", not-so-user-level by the way since they live in
the Lisp package, and can not be changed. At this point the
distinction between macros and special form is fuzzy, and more :
inessential. There are only two kinds of syntactic constructs in the
language: those that are well specified, and those that are not.

It is common to hear the argument that, since many forms in Lisp are
implemented as macros, the language has _only XX special forms_ (see
your favorite dialect's ref. manual), and thus is small and elegant.
Anyway, wether you say loop is a macro or a special form, you have to
implement it right to be conformant, and it will take the same amount
of pain (so what's the point ?)

	Vincent