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

[no subject]



CC: (BUG LISPM) at MIT-MC, JLK at MIT-MC
    Date: Fri ,25 Jan 80 22:04:00 EDT
    From: zvona0 at MIT-AI
    To: (BUG LISPM) at MIT-AI
    
    In system 25.0, with microcode 612, on LISP Machine One:
    Attempting to define a function NAME causes a spurious warning. This seems to be because
    the (cdr (package-cell-location 'name)) is #<Package GLOBAL> rather than USER. Natheless,
    (apropos) does not turn up any symbol in GLOBAL or anywhere else called NAME and 
    GLOBAL:NAME is unbound, has no function definition, no plist, and no description. The
    symbol NAME is not shadowed or otherwise declared by GLOBAL's package declaration. Bug
    or feature?
Let me start with an ad hominem argument: you should not log in explicitly
as zvona0; if I had not noticed and manually corrected the destination of
this message to zvona, it would never have gotten back to you.  You should
log in as zvona even if there are two of you, and let the system add the 0.

To answer your report.  The warning is not spurious; the symbol NAME is
global, so it is telling you that are defining this function for everybody,
not just for your own package as you might expect.  It is of course
not entirely satisfactory that it can do this only for function definitions
and not for other uses of symbols.  The symbol NAME appears in LISPM2;KWDPKG.
Most of these symbols are only global for historical reasons which no
longer remain valid, however you can easily see that making a symbol
un-global causes all sorts of compatibility problems since compiled
programs that formerly referred to the same symbol will now refer to
different symbols.  One of these days we should bite the bullet and
unglobalize these, forcing users to recompile many of their programs.