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

INTERN and "intern" -- the unwise choice of terminology



I agree completely with the enclosed message from Jon L.

    Date: 03 Apr 85  1226 PST
    From: Jon White <JLW@SU-AI.ARPA>

    I believe the confusion over the interning-an-unowned-symbol stems from
    the misleading use of the verb "intern" on page 172, and I think I'd
    rather see that part of the documentation fixed than have any change
    in th semantics of INTERN, UNINTERN, and/or IMPORT.

    The state of being "interned" clearly requires the symbol to be owned; and 
    the penultimate paragraph of the introductory to chapter 11 says "this process 
    [interning] is performed by the function INTERN."  For these reasons, one 
    might be tempted to agree with Nick that every call to INTERN results in an
    interned symbol; yet the definition of INTERN rather implies that when
    a symbol is already accessible [note well: "accessible", not "interned"]
    it is merely returned, without the modification to the home package 
    outlined for the case of when "no such symbol is found".

    My recommendations are quite straightforward:
     1) pick some other word to use in place of "interned" to describe the
	state so laboriously depicted on page 172, so that the reader is not
	tempted to jump to the conclusion that it is coextensive with INTERN'd
     2) Introduce the user-level operation for modifying a symbol's package
	"cell" [its home package].  As Nick has already pointed out, the
	current design doesn't prevent one from damageing that cell, by 
	injudicious use of UNINTERN and/or IMPORT; and worse yet, it doesn't
	provide any way to say precisely what you mean when you want to
	change its home [which is different from merely IMPORTing it somewhere].