>>>> "Stephen" == Stephen J Turnbull
<turnbull(a)sk.tsukuba.ac.jp> writes:
Stephen> Another example: I just recalled from CLtL1 that (eq ?a
Stephen> ?a) need not be true (for efficiency reasons, they might
Stephen> be implemented as immediate operands in some machine
Stephen> languages). If this is still true under Standard CL, we
Stephen> have to rip out any such comparisons of characters.
Stephen> Ebola mutates and lives....
>>>> "Ray" == Raymond Toy
<toy(a)rtp.ericsson.se> writes:
Ray> No. Although (eq #\a #\a) need not always be true, I suspect
Ray> that standard allows it to be so.
The standard allows it to be always true, for sure. If it is true for
XEmacs Lisp, XEmacs Lisp is standard-conforming in that respect.
No program in XEmacs Lisp that relies on it always being true is
standard-conforming, however. What this means is that standard-
conforming CL programs will be portable to XEmacs Lisp, but XEmacs
Lisp programs dependent on that feature will not be portable to some
CL environments. I don't think we care about outward portability, but
to use Common Lisp for the engine and then implement much of XEmacs in
non-conformant code is not pretty.
We don't have to rip them out, it's true. But there would be other
dangers:
Ray> We can surely make it so for XEmacs and still be conforming.
Yes, we can make it so, at the cost of accepting that we may need to
take over maintenance of XEmacs Lisp again if the maintainer of the
separate substrate decides to implement in a contrary way.
There are lots of such things in CL. If enough of them go the wrong
way, then we will be buying into maintenance of a full CL system, or
backing off from that commitment. Nobody has volunteered for the
former yet, even as a backstop to a future development split from say
Bruno Haible and CLisp. Backing off from commitment to full CL makes
the argument against emulating CL in Scheme kinda weak IMHO. (The
other arguments for CL remain, of course, depending on the quality of
the emulation.)
Ray> Besides, ANSI CL still has (char-equal #\a #\a) if you really
Ray> want to be portable.
Yup. Making that repair to old code consistently is exactly what is
meant by de-Ebolification.
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +1 (298) 53-5091