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


    Date: Thursday, 13 March 1986  16:42-EST
    From: MURRAY%umass-cs.csnet at CSNET-RELAY.ARPA
    To:   Common-Lisp at su-ai.ARPA
    Re:   Packages

       A Truly Portable Common-Lisp program can use
    ONLY the LISP package, or one that it has created
    itself.  If not, then it uses something that is NOT in Common-Lisp,
    and therefore would have to be modified to run on a different
    machine/system.  Thus, I don't see what all the fuss it about.
    If you use the DEBUGGER package, then your code is NOT Common-Lisp.
    This has been stated before by other people (Gregor, Wienreb),
    and I hope it won't need to be stated again.
Untrue, or at least not proven.  Using a package doesn't imply that
any symbols from that package are used in code.  Why would you use a
package when you don't use any of the symbols?  My answer is that some
symbols may be part of the programming environment rather than part of
code.  My program doesn't call debug:backtrace, but I do.  I am
therefore not portable, but this has no direct effect on my program.

JAR suggests that this problem can be avoided by not using Lisp
symbols in the user interface.  This may be a good idea, but it is not
obvious to me that Common Lisp should make impossible reasonable user
interfaces which do use symbols.

Interestingly, DCP says:
    Personally, I always specify a default for MAKE-PACKAGE :USE.  That's
    probably because our default is to :USE only LISP, which I think is the
    right thing.  :USE'ing any other packages would lead to name conflicts
    KMP is trying to avoid.
This leads me to conclude that he never writes a portable program, since he
always explicitly mentions non-Common Lisp packages in his :USE lists.