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


    Date: Thu, 1 Dec 88 12:01:13 PDT
    From: William Clinger <will@fog.cs.uoregon.edu>

    Current practice in support of JonL's position: Allegro Common Lisp
    for the Macintosh (by Coral), Version 1.0, implements the destructive
    form of REVERSE (NREVERSE ?) as REVERSE.  I wrote REVERSE! in Common
    Lisp and found that it ran a little slower than REVERSE, even taking
    gc into account.  I suspect that Coral wrote REVERSE in assembly
    language, and compiled CL can't compete.

    It would be unfair to accuse Coral of being lazy by not implementing
    the destructive version destructively.  If they were lazy, they'd
    have written both of them in Common Lisp instead of assembly language.

On the other hand, that's not to say that if they'd assembly coded
NREVERSE (REVERSE!) they wouldn't have been faster, so your experiment
is not really as well-controlled as it might be.

In any case, we're not in the business of enforcement, we're only in the
business of legislation. They (Coral) are entitled to do what they think
is best and justify it as they will, and then the market place will stand
jury -- as they do with us all.  My point is only that we should do our
best to present the issues as best we can so that users will know where to
expect what and why. An awful lot of court trials these days are not
about absolute rights and wrongs, but violations of "reasonable expectation".
We should do our best to aid users (and implementors) in forming reasonable
expectations where we have the foresight to do so.