(FILECREATED "15-Jan-86 17:44:30" {ERIS}<LISPCORE>CML>LAB>CMLPACKAGE.;5 13441        changes to:  (MACROS SYMBOL-PACKAGE SETF-SYMBOL-PACKAGE DO-ALL-SYMBOLS DO-EXTERNAL-SYMBOLS 			   DO-SYMBOLS PKG::LISTIFY PKG::PACKAGIFY)		   (VARS CMLPACKAGECOMS)		   (FNS SYMBOL-PACKAGE SETF-SYMBOL-PACKAGE MAKE-PACKAGE PKG::INITIALIZE 			PKG::FIND-FREE-PACKAGE-INDEX EXPORT FIND-ALL-SYMBOLS FIND-PACKAGE FIND-SYMBOL 			IMPORT IN-PACKAGE INTERN LIST-ALL-PACKAGES RENAME-PACKAGE SHADOW 			SHADOWING-IMPORT UNEXPORT UNINTERN UNUSE-PACKAGE USE-PACKAGE)		   (RECORDS SYMBOL)      previous date: " 2-Dec-85 16:07:11" {ERIS}<LISPCORE>CML>LAB>CMLPACKAGE.;2)(* Copyright (c) 1985, 1986 by Xerox Corporation. All rights reserved.)(PRETTYCOMPRINT CMLPACKAGECOMS)(RPAQQ CMLPACKAGECOMS [(FILES CMLHASH CMLSYMBOL CMLMVS)	(* * Should be in CMLSYMBOL but needs internal rep)	(MACROS SYMBOL-PACKAGE SETF-SYMBOL-PACKAGE)	(FNS SYMBOL-PACKAGE SETF-SYMBOL-PACKAGE)	(* * External interface)	(MACROS DO-ALL-SYMBOLS DO-EXTERNAL-SYMBOLS DO-SYMBOLS)	(FNS EXPORT FIND-ALL-SYMBOLS FIND-PACKAGE FIND-SYMBOL IMPORT IN-PACKAGE INTERN 	     LIST-ALL-PACKAGES MAKE-PACKAGE RENAME-PACKAGE SHADOW SHADOWING-IMPORT UNEXPORT UNINTERN 	     UNUSE-PACKAGE USE-PACKAGE)	(* * And the FNS: PACKAGE-NAME PACKAGE-NICKNAMES PACKAGE-SHADOWING-SYMBOLS PACKAGE-USE-LIST 	   PACKAGE-USED-BY-LIST)	(* * Internal interface)	(RECORDS PACKAGE SYMBOL)	(INITVARS (PKG::ALL-PACKAGES NIL)		  (PKG::KEYWORD-PACKAGE NIL)		  (PKG::INDEX-TO-PACKAGE-VECTOR NIL)		  (PKG::PACKAGE-TO-INDEX-HASHTABLE NIL))	(MACROS PKG::LISTIFY PKG::PACKAGIFY)	(FNS PKG::INITIALIZE PKG::FIND-INHERITED-SYMBOL PKG::STRINGIFY PKG::FIND-FREE-PACKAGE-INDEX 	     ADD-NICKNAMES)	(P (PKG::INITIALIZE))	(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS		  (ADDVARS (NLAMA)			   (NLAML)			   (LAMA USE-PACKAGE UNUSE-PACKAGE UNINTERN UNEXPORT SHADOWING-IMPORT SHADOW 				 RENAME-PACKAGE MAKE-PACKAGE INTERN IN-PACKAGE IMPORT FIND-SYMBOL 				 EXPORT])(FILESLOAD CMLHASH CMLSYMBOL CMLMVS)(* * Should be in CMLSYMBOL but needs internal rep)(DECLARE: EVAL@COMPILE [PUTPROPS SYMBOL-PACKAGE DMACRO ((obj)	   (AREF PKG::INDEX-TO-PACKAGE-VECTOR (ffetch (SYMBOL PACKAGE)						      of obj][PUTPROPS SETF-SYMBOL-PACKAGE DMACRO ((obj value)	   (freplace (SYMBOL PACKAGE)		     of obj with (CL:GETHASH PKG::PACKAGE-TO-INDEX-HASHTABLE value])(DEFINEQ(SYMBOL-PACKAGE  (CL:LAMBDA (SYMBOL)                                        (* raf "14-Jan-86 13:27")    (AREF PKG::INDEX-TO-PACKAGE-VECTOR (ffetch (SYMBOL PACKAGE) of SYMBOL))))(SETF-SYMBOL-PACKAGE  (CL:LAMBDA (SYMBOL PACKAGE)                                (* raf "14-Jan-86 13:23")    (freplace (SYMBOL PACKAGE) of SYMBOL with (CL:GETHASH PKG::PACKAGE-TO-INDEX-HASHTABLE 								  PACKAGE)))))(* * External interface)(DECLARE: EVAL@COMPILE (DEFMACRO DO-ALL-SYMBOLS (&BODY FORM)	  NIL)(DEFMACRO DO-EXTERNAL-SYMBOLS (&BODY FORM)	  NIL)(DEFMACRO DO-SYMBOLS (&BODY FORM)	  NIL))(DEFINEQ(EXPORT  (CL:LAMBDA (SYMBOLS &OPTIONAL PACKAGE)    NIL))(FIND-ALL-SYMBOLS  (CL:LAMBDA (STRING-OR-SYMBOL)    NIL))(FIND-PACKAGE  (CL:LAMBDA (NAME)                                          (* raf "17-Nov-85 02:20")    (CL:GETHASH (PKG::STRINGIFY NAME)		  PKG::ALL-PACKAGES NIL)))(FIND-SYMBOL  [CL:LAMBDA (STRING &OPTIONAL (PACKAGE *PACKAGE*))        (* raf "19-Nov-85 17:00")    (LET (SYMBOL)         (COND	   ((SETQ SYMBOL (CL:GETHASH STRING (PACKAGE-INTERNALS-HASHTABLE PACKAGE)))	     (VALUES SYMBOL :INTERNAL))	   ((SETQ SYMBOL (CL:GETHASH STRING (PACKAGE-EXTERNALS-HASHTABLE PACKAGE)))	     (VALUES SYMBOL :EXTERNAL))	   (T (PKG::FIND-INHERITED-SYMBOL STRING (PACKAGE-USE-LIST PACKAGE])(IMPORT  (CL:LAMBDA (SYMBOLS &OPTIONAL PACKAGE)    NIL))(IN-PACKAGE  (CL:LAMBDA (PACKAGE-NAME &KEY NICKNAMES USE)               (* raf "17-Nov-85 02:44")    (SETF *PACKAGE* (OR (FIND-PACKAGE PACKAGE-NAME)			  (MAKE-PACKAGE PACKAGE-NAME)))    (ADD-NICKNAMES NICKNAMES *PACKAGE*)    (USE-PACKAGE USE *PACKAGE*)))(INTERN  [CL:LAMBDA (STRING &OPTIONAL (PACKAGE *PACKAGE*))        (* raf "19-Nov-85 16:53")    "Put symbol in package.  Special case for KEYWORD package (always :EXTERNAL, always self-eval)"    (MULTIPLE-VALUE-BIND (SYMBOL TYPE)			 (FIND-SYMBOL STRING PACKAGE)			 (CL:IF SYMBOL (VALUES SYMBOL TYPE)				(CL:IF (EQ PACKAGE PKG::KEYWORD-PACKAGE)				       (MULTIPLE-VALUE-PROG1 (VALUES (SETQ SYMBOL									   (CL:PUTHASH									     STRING									     (PACKAGE-EXTERNALS-HASHTABLE PACKAGE)									     (MAKE-SYMBOL :NAME 											   STRING 											 :PACKAGE 											  PACKAGE)))									 :EXTERNAL)							       (SET SYMBOL SYMBOL))				       (VALUES (CL:PUTHASH STRING (PACKAGE-INTERNALS-HASHTABLE								 PACKAGE)							       (MAKE-SYMBOL :NAME STRING :PACKAGE 									      PACKAGE))						 :INTERNAL])(LIST-ALL-PACKAGES  (CL:LAMBDA NIL                                             (* raf "17-Nov-85 02:35")    (LET ((ALL NIL))         (CL:MAPHASH (FUNCTION [LAMBDA (NAME PACKAGE)			   (CL:PUSH PACKAGE ALL])		       PKG::ALL-PACKAGES)     ALL)))(MAKE-PACKAGE  (CL:LAMBDA (PACKAGE-NAME &KEY NICKNAMES (USE "LISP"))      (* raf "14-Jan-86 18:44")    (LET ([NEW-PACKAGE (INTERNAL-MAKE-PACKAGE :NAME PACKAGE-NAME :NICKNAMES NIL :USE-LIST NIL 						:USED-BY-LIST NIL :SHADOWING-SYMBOLS NIL :HASHTABLE						(MAKE-HASH-TABLE :SIZE 20 :TEST (QUOTE EQUAL))						:EXTERNALS						(MAKE-HASH-TABLE :SIZE 5 :TEST (QUOTE EQUAL]	  (PACKAGE-INDEX (PKG::FIND-FREE-PACKAGE-INDEX)))         (SETF (CL:GETHASH PACKAGE-NAME PKG::ALL-PACKAGES)	       NEW-PACKAGE)         (SETF (CL:GETHASH PKG::PACKAGE-TO-INDEX-HASHTABLE NEW-PACKAGE)	       PACKAGE-INDEX)         (SETF (AREF PKG::INDEX-TO-PACKAGE-VECTOR PACKAGE-INDEX)	       NEW-PACKAGE)         (ADD-NICKNAMES NICKNAMES NEW-PACKAGE)         (USE-PACKAGE USE NEW-PACKAGE)     NEW-PACKAGE)))(RENAME-PACKAGE  (CL:LAMBDA (PACKAGE NEW-NAME &OPTIONAL NEW-NICKNAMES)      (* raf "17-Nov-85 03:01")    (REMHASH (PACKAGE-NAME PACKAGE)	       PKG::ALL-PACKAGES)    (CL:MAPCAR (FUNCTION [LAMBDA (N)		     (REMHASH N PKG:ALL-PACKAGES])		 (PACKAGE-NICKNAMES PACKAGE))    (SETF (PACKAGE-NAME PACKAGE)	  (PKG::STRINGIFY NEW-NAME))    (ADD-NICKNAMES NEW-NICKNAMES PACKAGE)))(SHADOW  (CL:LAMBDA (SYMBOLS &OPTIONAL PACKAGE)    NIL))(SHADOWING-IMPORT  (CL:LAMBDA (SYMBOLS &OPTIONAL PACKAGE)    NIL))(UNEXPORT  (CL:LAMBDA (SYMBOLS &OPTIONAL PACKAGE)    NIL))(UNINTERN  [CL:LAMBDA (SYMBOL &OPTIONAL (PACKAGE *PACKAGE*))          (* raf "19-Nov-85 17:08")    (LET (SYMBOL HASHTABLE (STRING (SYMBOL-NAME SYMBOL)))         (COND	   ([OR [SETQ SYMBOL (CL:GETHASH STRING (SETQ HASHTABLE (PACKAGE-INTERNALS-HASHTABLE						   PACKAGE]		  (SETQ SYMBOL (CL:GETHASH STRING (SETQ HASHTABLE (PACKAGE-EXTERNALS-HASHTABLE						   PACKAGE]	     (REMHASH STRING HASHTABLE)	     (SETF (PACKAGE-SHADOWING-SYMBOLS PACKAGE)		   (REMOVE SYMBOL (PACKAGE-SHADOWING-SYMBOLS PACKAGE)))	     (CL:IF (EQ PACKAGE (SYMBOL-PACKAGE SYMBOL))		    (SETF (SYMBOL-PACKAGE SYMBOL)			  NIL))	     T)	   (T NIL])(UNUSE-PACKAGE  (CL:LAMBDA (PACKAGES-TO-UNUSE &OPTIONAL PACKAGE)    NIL))(USE-PACKAGE  (CL:LAMBDA (PACKAGES-TO-USE &OPTIONAL (PACKAGE *PACKAGE*))                                                             (* raf "13-Jan-86 22:03")    (CL:MAPCAR [FUNCTION (LAMBDA (X)		     (SETQ X (PKG::PACKAGIFY X))		     (CL:PUSH X (PACKAGE-USE-LIST PACKAGE))		     (CL:PUSH PACKAGE (PACKAGE-USED-BY-LIST X]		 (PKG::LISTIFY PACKAGES-TO-USE)))))(* * And the FNS: PACKAGE-NAME PACKAGE-NICKNAMES PACKAGE-SHADOWING-SYMBOLS PACKAGE-USE-LIST PACKAGE-USED-BY-LIST)(* * Internal interface)[DECLARE: EVAL@COMPILE (DEFSTRUCT (PACKAGE (:CONSTRUCTOR INTERNAL-MAKE-PACKAGE)		      (:PRINT-FUNCTION NIL))	     NAME NICKNAMES INTERNALS-HASHTABLE USE-LIST USED-BY-LIST SHADOWING-SYMBOLS 	     EXTERNALS-HASHTABLE)(ACCESSFNS SYMBOL ((DEFINITIONCELL (\DEFCELL DATUM))		     (PROPCELL (\PROPCELL DATUM))		     (VCELL (\VALCELL DATUM))		     (PNAMECELL (\PNAMECELL DATUM)))          (* * VCELL can also be accessed directly from a value index via the record VALINDEX (as in \SETGLOBALVAL.UFN) -	  Similarly, PNAMEINDEX accesses PNAMECELL for use by \MKATOM and UNCOPYATOM)		    (TYPE? (LITATOM DATUM))		    (BLOCKRECORD PROPCELL ((NIL BITS 1)				    (GENSYMP FLAG)				    (FATPNAMEP FLAG)				    (NIL BITS 5)				    (PROPLIST POINTER)))		    (BLOCKRECORD PNAMECELL ((PACKAGE BITS 8)				    (PNAMESTR POINTER))))](/DECLAREDATATYPE (QUOTE PACKAGE)		  (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER POINTER))		  (QUOTE ((PACKAGE 0 POINTER)			  (PACKAGE 2 POINTER)			  (PACKAGE 4 POINTER)			  (PACKAGE 6 POINTER)			  (PACKAGE 8 POINTER)			  (PACKAGE 10 POINTER)			  (PACKAGE 12 POINTER)))		  (QUOTE 14))(RPAQ? PKG::ALL-PACKAGES NIL)(RPAQ? PKG::KEYWORD-PACKAGE NIL)(RPAQ? PKG::INDEX-TO-PACKAGE-VECTOR NIL)(RPAQ? PKG::PACKAGE-TO-INDEX-HASHTABLE NIL)(DECLARE: EVAL@COMPILE [DEFMACRO PKG::LISTIFY (X)	  (BQUOTE (CL:IF (LISTP (\, X))			 (\, X)			 (LIST (\, X][DEFMACRO PKG::PACKAGIFY (X)	  (BQUOTE (CL:IF (PACKAGE-P (\, X))			 (\, X)			 (FIND-PACKAGE (\, X])(DEFINEQ(PKG::INITIALIZE  (CL:LAMBDA NIL                                             (* raf "14-Jan-86 18:44")    (SETF PKG::ALL-PACKAGES (MAKE-HASH-TABLE :SIZE 512 :TEST (QUOTE EQUAL)))    (SETF PKG::INDEX-TO-PACKAGE-VECTOR (MAKE-ARRAY 256 :INITIAL-ELEMENT NIL))    (SETF PKG::PACKAGE-TO-INDEX-HASHTABLE (MAKE-HASH-TABLE :SIZE 512 :TEST (QUOTE EQL)))    (MAKE-PACKAGE "LISP")    (SETF PKG::KEYWORD-PACKAGE (MAKE-PACKAGE "KEYWORD"))    (MAKE-PACKAGE "SYSTEM")    (SETF *PACKAGE* (MAKE-PACKAGE "USER" :USE "LISP"))))(PKG::FIND-INHERITED-SYMBOL  [CL:LAMBDA (STRING PACKAGES)                               (* raf "19-Nov-85 16:12")    (CL:DO* ((PACKAGE PACKAGES (CDR PACKAGES))	     (SYMBOL (CL:GETHASH STRING (PACKAGE-EXTERNALS-HASHTABLE PACKAGE)				   NIL)		     (CL:GETHASH STRING (PACKAGE-EXTERNALS-HASHTABLE PACKAGE)				   NIL)))	    ((OR SYMBOL (NULL PACKAGE))	     (CL:IF SYMBOL (VALUES SYMBOL :EXTERNAL)		    NIL])(PKG::STRINGIFY  (CL:LAMBDA (OBJECT)                                        (* raf "10-Oct-85 18:24")    (CL:IF (STRINGP OBJECT)	   OBJECT	   (SYMBOL-NAME OBJECT))))(PKG::FIND-FREE-PACKAGE-INDEX  [CL:LAMBDA NIL    (CL:DO ((I 1 (INCR I)))	   ((= I MAX-NUMBER-PACKAGES)	    (ERROR "Package space full" NIL))	   (CL:IF (NULL (AREF PKG::INDEX-TO-PACKAGE-VECTOR I))		  (RETURN I])(ADD-NICKNAMES  (CL:LAMBDA (NICKNAMES PACKAGE)                             (* raf "17-Nov-85 02:56")    (CL:MAPCAR [FUNCTION (LAMBDA (X)		     (SETF X (PKG::STRINGIFY X))		     (SETF (CL:GETHASH X PKG::ALL-PACKAGES)			   PACKAGE)		     (CL:PUSH X (PACKAGE-NICKNAMES PACKAGE]		 NICKNAMES))))(PKG::INITIALIZE)(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDTOVAR NLAMA )(ADDTOVAR NLAML )(ADDTOVAR LAMA USE-PACKAGE UNUSE-PACKAGE UNINTERN UNEXPORT SHADOWING-IMPORT SHADOW RENAME-PACKAGE 			     MAKE-PACKAGE INTERN IN-PACKAGE IMPORT FIND-SYMBOL EXPORT))(PRETTYCOMPRINT CMLPACKAGECOMS)(RPAQQ CMLPACKAGECOMS [(FILES CMLHASH CMLSYMBOL CMLMVS)	(* * Should be in CMLSYMBOL but needs internal rep)	(MACROS SYMBOL-PACKAGE SETF-SYMBOL-PACKAGE)	(FNS SYMBOL-PACKAGE SETF-SYMBOL-PACKAGE)	(* * External interface)	(MACROS DO-ALL-SYMBOLS DO-EXTERNAL-SYMBOLS DO-SYMBOLS)	(FNS EXPORT FIND-ALL-SYMBOLS FIND-PACKAGE FIND-SYMBOL IMPORT IN-PACKAGE INTERN 	     LIST-ALL-PACKAGES MAKE-PACKAGE RENAME-PACKAGE SHADOW SHADOWING-IMPORT UNEXPORT UNINTERN 	     UNUSE-PACKAGE USE-PACKAGE)	(* * And the FNS: PACKAGE-NAME PACKAGE-NICKNAMES PACKAGE-SHADOWING-SYMBOLS PACKAGE-USE-LIST 	   PACKAGE-USED-BY-LIST)	(* * Internal interface)	(RECORDS PACKAGE SYMBOL)	(INITVARS (PKG::ALL-PACKAGES NIL)		  (PKG::KEYWORD-PACKAGE NIL)		  (PKG::INDEX-TO-PACKAGE-VECTOR NIL)		  (PKG::PACKAGE-TO-INDEX-HASHTABLE NIL))	(MACROS PKG::LISTIFY PKG::PACKAGIFY)	(FNS PKG::INITIALIZE PKG::FIND-INHERITED-SYMBOL PKG::STRINGIFY PKG::FIND-FREE-PACKAGE-INDEX 	     ADD-NICKNAMES)	(P (PKG::INITIALIZE))	(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS		  (ADDVARS (NLAMA)			   (NLAML)			   (LAMA USE-PACKAGE UNUSE-PACKAGE UNINTERN UNEXPORT SHADOWING-IMPORT SHADOW 				 RENAME-PACKAGE INTERN IN-PACKAGE IMPORT FIND-SYMBOL EXPORT 				 MAKE-PACKAGE])(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDTOVAR NLAMA )(ADDTOVAR NLAML )(ADDTOVAR LAMA USE-PACKAGE UNUSE-PACKAGE UNINTERN UNEXPORT SHADOWING-IMPORT SHADOW RENAME-PACKAGE 			     INTERN IN-PACKAGE IMPORT FIND-SYMBOL EXPORT MAKE-PACKAGE))(PUTPROPS CMLPACKAGE COPYRIGHT ("Xerox Corporation" 1985 1986))(DECLARE: DONTCOPY  (FILEMAP (NIL (2406 2864 (SYMBOL-PACKAGE 2416 . 2616) (SETF-SYMBOL-PACKAGE 2618 . 2862)) (3061 8007 (EXPORT 3071 . 3133) (FIND-ALL-SYMBOLS 3135 . 3198) (FIND-PACKAGE 3200 . 3383) (FIND-SYMBOL 3385 . 3849) (IMPORT 3851 . 3913) (IN-PACKAGE 3915 . 4202) (INTERN 4204 . 5101) (LIST-ALL-PACKAGES 5103 . 5368) (MAKE-PACKAGE 5370 . 6222) (RENAME-PACKAGE 6224 . 6634) (SHADOW 6636 . 6698) (SHADOWING-IMPORT 6700 . 6772) (UNEXPORT 6774 . 6838) (UNINTERN 6840 . 7538) (UNUSE-PACKAGE 7540 . 7619) (USE-PACKAGE 7621 . 8005)) (9717 11494 (PKG::INITIALIZE 9727 . 10290) (PKG::FIND-INHERITED-SYMBOL 10292 . 10737) (PKG::STRINGIFY 10739 . 10924) (PKG::FIND-FREE-PACKAGE-INDEX 10926 . 11166) (ADD-NICKNAMES 11168 . 11492)))))STOP