(FILECREATED "27-Feb-86 18:29:54" ("compiled on " {ERIS}CML>LAB>CMLPACKAGES.;48) "15-Feb-86 15:50:45" recompiled changes: FIND-PACKAGE RENAME-PACKAGE INTERN FIND-SYMBOL UNINTERN EXPORT UNEXPORT IMPORT SHADOWING-IMPORT SHADOW PACKAGE-LISTIFY USE-PACKAGE UNUSE-PACKAGE NEWMKATOM \NEWMKATOM \NEWLITPRIN PACKAGE-INIT READSYMBOL in "Xerox Lisp 15-Feb-86 ..." dated "15-Feb-86 16:03:52") (FILECREATED "27-Feb-86 18:29:23" {ERIS}CML>LAB>CMLPACKAGES.;48 106354 changes to: (FNS READSYMBOL NEWMKATOM \NEWLITPRIN RENAME-PACKAGE INTERN FIND-SYMBOL FIND-PACKAGE UNINTERN EXPORT UNEXPORT IMPORT SHADOWING-IMPORT SHADOW PACKAGE-LISTIFY USE-PACKAGE UNUSE-PACKAGE \NEWMKATOM PACKAGE-INIT) (PROPS (ALLOC-SYMBOL CL:PRIMITIVE) (; HASHREADMACRO)) (VARS CMLPACKAGESCOMS) (MACROS DO-SYMBOLS DO-EXTERNAL-SYMBOLS \SIMPLE-STRINGIFY \PACKAGIFY) previous date: "25-Feb-86 15:41:24" {ERIS}CML>LAB>CMLPACKAGES.;43) PRINT-PACKAGEA0001A0002 D1 (L (1 ET 0 EU) F 0 STREAM F 1 S F 2 IU F 3 IT) PoP Q P oP RP oP SP oP @P oP AP oP (115Q PRIN1 105Q PRIN1 100Q PRIN1 70Q PRIN1 63Q PRIN1 53Q PRIN1 46Q PRIN1 36Q PRIN1 31Q PRIN1 21Q PRIN1 7 PRIN1) (13Q PACKAGE) ( 111Q " external>" 74Q "/" 57Q " internal, " 42Q "/" 25Q " package, " 3 "# 151Q CL:WHEN 133Q = 130Q CL:IF 110Q SIMPLE-VECTOR 105Q THE 102Q CL:LENGTH 76Q SETQ 63Q PACKAGE-HASHTABLE-HASH 57Q SETQ 44Q PACKAGE-HASHTABLE-TABLE 40Q SETQ 26Q SETQ) ( 204Q (1) 166Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 33Q (0)) ENTER-NEW-NICKNAMES D1 (L (1 NICKNAMES 0 PACKAGE) F 3 *PACKAGE-NAMES*) AlAdoogg bA!Hh ZSY?@QI J ooJ@ h -ooJI h J@S @J@  HX(172Q PUTHASH 163Q CERROR 134Q CERROR 105Q STRING= 57Q STRING 35Q \CHECK-TYPE-FAIL) (204Q PACKAGE 177Q PACKAGE 153Q PACKAGE 124Q PACKAGE 77Q PACKAGE 32Q LIST 27Q NICKNAMES) ( 146Q "~S is already a nickname for ~S." 142Q "Redefine this nickname." 117Q "~S is a package name, so it cannot be a nickname for ~S." 113Q "Ignore this nickname." 24Q "place" 14Q (NIL)) MAKE-PACKAGE D1 (L (0 \CL:LAMBDA.ARGCNT) P 20Q PACKAGE P 17Q PACKAGE-INDEX P 16Q NAME P 15Q EXTERNAL-SYMBOLS P 12Q INTERNAL-SYMBOLS P 7 NICKNAMES P 4 USE P 1 NAME F 21Q *PACKAGE-NAMES* F 22Q \PKG-INDEX-TO-PACKAGE-VECTOR) #ekHoH @ HlKdJhoagKkذKl[aHlNdMhdagNkذNl^a_Hl__OdOhl agOkذOl_a_Hl__OdOhl agOkذOl_a_I oI I gOgO gO gO LO O O OO W" O W$O (440Q ASET 427Q PUTHASH 416Q ENTER-NEW-NICKNAMES 407Q USE-PACKAGE 376Q INTERNAL-MAKE-PACKAGE 365Q MAKE-PACKAGE-HASHTABLE 355Q MAKE-PACKAGE-HASHTABLE 335Q \PKG-FIND-FREE-PACKAGE-INDEX 327Q STRING 322Q ERROR 311Q FIND-PACKAGE 17Q ERROR) (370Q :INDEX 360Q :EXTERNAL-SYMBOLS 350Q :INTERNAL-SYMBOLS 343Q :NAME 260Q :EXTERNAL-SYMBOLS 177Q :INTERNAL-SYMBOLS 121Q :NICKNAMES 54Q :USE) ( 316Q "A package with this name already exists: " 46Q ("LISP") 13Q "Too few args") IN-PACKAGE D1 (L (0 \CL:LAMBDA.ARGCNT) P 20Q CNT P 17Q FN P 16Q PACKAGE P 10Q KEYS P 7 USE P 4 NICKNAMES P 1 NAME F 21Q *PACKAGE*) ekHoH @qHlKdJhdagKkذKl[aHlNdMhdagNkذNl^a_Hl2 OdO&O_I O5OO OL Oc"a_OOh__Ok_O&_gkIOdO k_ lPhl4 O Oc"(323Q \LISPERROR 215Q ENTER-NEW-NICKNAMES 207Q USE-PACKAGE 171Q FIND-PACKAGE 17Q ERROR) (266Q MAKE-PACKAGE 116Q :USE 51Q :NICKNAMES) ( 13Q "Too few args") RENAME-PACKAGE D1 (L (0 \CL:LAMBDA.ARGCNT) P 11Q N P 7 FOUND P 6 NAME P 5 PACKAGE P 4 $$TYPE-VALUE P 3 NICKNAMES P 2 NAME P 1 PACKAGE F 12Q *PACKAGE-NAMES*) elHoH HloH @AlHhBILd`I!I LlI oI J JJ N O8M W MN NMW M  O Mh MK MMoN _W O_(306Q REMHASH 273Q CL:ERROR 255Q ENTER-NEW-NICKNAMES 222Q PUTHASH 204Q REMHASH 162Q FIND-PACKAGE 153Q MKSTRING 144Q SIMPLE-STRING-P 134Q ERROR 123Q FIND-PACKAGE 120Q SYMBOL-NAME 104Q FIND-PACKAGE 36Q ERROR 20Q ERROR) (245Q PACKAGE 226Q PACKAGE 210Q PACKAGE 175Q PACKAGE 67Q PACKAGETYPE#) ( 267Q "A package named ~S already exists." 130Q "Not a package, string or symbol: " 32Q "Too many args" 14Q "Too few args") LIST-ALL-PACKAGESA0001 D1 (L (1 V 0 K) F 2 RES) /gkARdIkYlPhl4 IHARch(34Q \LISPERROR) (2 EQL) () LIST-ALL-PACKAGES D1 (P 0 RES F 1 *PACKAGE-NAMES*) gQ H(11Q CL:MAPHASH) (5 LIST-ALL-PACKAGESA0001) () INTERN D1 (L (0 \CL:LAMBDA.ARGCNT) P 5 PACKAGE P 4 NAME P 3 $$TYPE-VALUE P 2 PACKAGE P 1 NAME F 6 *PACKAGE*) wekHoH HloH @lHVAI II JKd`J!J KlJ oJ Ld M (164Q INTERN* 160Q CL:LENGTH 147Q ERROR 136Q FIND-PACKAGE 133Q SYMBOL-NAME 117Q FIND-PACKAGE 70Q MKSTRING 61Q SIMPLE-STRING-P 35Q ERROR 17Q ERROR) (102Q PACKAGETYPE#) ( 143Q "Not a package, string or symbol: " 31Q "Too many args" 13Q "Too few args") FIND-SYMBOL D1 (L (0 \CL:LAMBDA.ARGCNT) P 4 PACKAGE P 3 NAME P 2 PACKAGE P 1 NAME F 5 *PACKAGE*) KekHoH HloH @lHUAI II J Kd L (110Q FIND-SYMBOL* 104Q CL:LENGTH 74Q \PACKAGEIFY 70Q MKSTRING 61Q SIMPLE-STRING-P 35Q ERROR 17Q ERROR) NIL ( 31Q "Too many args" 13Q "Too few args") INTERN*A0001 D1 (L (1 WHERE 0 SYMBOL) F 1 PACKAGE F 2 NAME F 3 CL:LENGTH F 4 *KEYWORD-PACKAGE*) ;A@A RjS Q QdTH Hd H Hh (70Q VALUES 62Q ADD-SYMBOL 50Q SET 42Q ADD-SYMBOL 21Q MKATOM 15Q SUBSEQ 6 VALUES) (54Q PACKAGE 34Q PACKAGE) () INTERN* D1 (I 2 PACKAGE I 1 CL:LENGTH I 0 NAME) g@AB (16Q APPLY 13Q \MVLIST 10Q FIND-SYMBOL*) (2 INTERN*A0001) () FIND-SYMBOL* D1 (L (2 PACKAGE 1 CL:LENGTH 0 STRING)) 1 @A AHdm Hm Hm l lԹB_B_O _HOl kԾHO OL ]dI:ԿOL [ ZA @KgAgJ Lgo B_"B_ O" _HOl k_HO _O O _dI:kO"O _ _A ]@OgAgO KOgo B_$d_(_&O(d8d jMLNԱ hEjO OOԱr h_8O(_6O8 _4HO4l k_2HO4 _.O6O. _0dI:dO8O. _, _*A V@O,gAgO* DO.1O&O$O(O$O(O&O:O(O<O$O>go O(jO0 O.O2Աy h(1052Q \FZEROP 1017Q RETURN-FROM 733Q STRING= 711Q %%= 703Q CL:LENGTH 676Q SYMBOL-NAME 673Q SVREF 654Q AREF 642Q REM 627Q REM 613Q CL:LENGTH 555Q \FZEROP 522Q \FZEROP 500Q VALUES 446Q RETURN-FROM 427Q STRING= 405Q %%= 377Q CL:LENGTH 372Q SYMBOL-NAME 367Q SVREF 350Q AREF 336Q REM 323Q REM 307Q CL:LENGTH 245Q RETURN-FROM 225Q STRING= 203Q %%= 176Q CL:LENGTH 172Q SYMBOL-NAME 167Q SVREF 150Q AREF 141Q REM 130Q REM 114Q CL:LENGTH 47Q REM 36Q ASH 30Q ASH 22Q ASH 4 STRINGHASHBITS) (1010Q FIND-SYMBOL* 725Q :END2 721Q :END1 601Q PACKAGE-HASHTABLE 566Q PACKAGE-HASHTABLE 453Q PACKAGE 437Q FIND-SYMBOL* 421Q :END2 415Q :END1 275Q PACKAGE-HASHTABLE 270Q PACKAGE 257Q PACKAGE-HASHTABLE 252Q PACKAGE 236Q FIND-SYMBOL* 220Q :END2 214Q :END1 102Q PACKAGE-HASHTABLE 75Q PACKAGE 64Q PACKAGE-HASHTABLE 57Q PACKAGE) ( 1014Q (VALUES SYMBOL :INHERITED) 443Q (VALUES SYMBOL :EXTERNAL) 242Q (VALUES SYMBOL :INTERNAL)) FIND-EXTERNAL-SYMBOL D1 (L (1 PACKAGE 0 STRING)) @ @ HIdm Im Im l lԺAAK IMl kԾIM ! LO _dJ:.KO _ _ _H @OgHgO "jOONM _ h_OO (274Q VALUES 257Q \FZEROP 247Q REM 222Q STRING= 200Q %%= 172Q CL:LENGTH 165Q SYMBOL-NAME 160Q SVREF 142Q AREF 131Q REM 121Q REM 110Q CL:LENGTH 50Q REM 37Q ASH 31Q ASH 23Q ASH 12Q STRINGHASHBITS 3 CL:LENGTH) (214Q :END2 210Q :END1 101Q PACKAGE-HASHTABLE 74Q PACKAGE 65Q PACKAGE-HASHTABLE 60Q PACKAGE) () UNINTERNA0001 D1 (P 1 CNT P 0 FN I 1 W I 0 S F 2 CSET) 2A-gk@RdIkYlPhl4 IH@Rch(37Q \LISPERROR) (5 EQL) () UNINTERNA0002 D1 (I 1 W I 0 S F 0 PACKAGE F 1 SYMBOL F 2 NAME F 3 \PKG-INDEX-TO-PACKAGE-VECTOR) ;Adgg.AgPPR SQ PQki(55Q AREF 43Q NUKE-SYMBOL) (35Q PACKAGE 26Q PACKAGE 20Q :INTERNAL 11Q :EXTERNAL 4 :INTERNAL) () UNINTERN D1 (L (0 \CL:LAMBDA.ARGCNT) P 16Q SYM P 15Q P P 13Q CSET P 12Q SHADOWING-SYMBOLS P 11Q PACKAGE P 10Q $$TYPE-VALUE P 7 NAME P 6 PACKAGE P 1 SYMBOL F 17Q *QUERY-IO* F 20Q *PACKAGE*) 5ekHoH HloH @AlHW AI NOd`N"N OlN oN  O_IOZMh O OAOooIO W Odl5Wo XK:JJ_gOO O_O\hWo M:LLOO gi }gOO (462Q APPLY 457Q \MVLIST 454Q FIND-SYMBOL 435Q RETURN-FROM 425Q SHADOWING-IMPORT 401Q FORMAT 346Q APPLY 343Q \MVLIST 340Q FIND-EXTERNAL-SYMBOL 305Q FORMAT 257Q READ 251Q CERROR 146Q ERROR 135Q FIND-PACKAGE 132Q SYMBOL-NAME 115Q FIND-PACKAGE 62Q SYMBOL-NAME 35Q ERROR 17Q ERROR) (445Q UNINTERNA0002 431Q UNINTERN 331Q UNINTERNA0001 211Q PACKAGE 157Q PACKAGE 100Q PACKAGETYPE#) ( 376Q "~S is not one of the conflicting symbols." 302Q "~S is not a symbol." 243Q "Uninterning symbol ~S causes name conflict among these symbols:~~S" 237Q "prompt for a symbol to shadowing-import." 142Q "Not a package, string or symbol: " 31Q "Too many args" 13Q "Too few args") SYMBOL-LISTIFY D1 (L (0 THING)) 8@dd H@YloI HXl@ho@ (65Q CL:ERROR 36Q CL:ERROR) NIL ( 61Q "~S is neither a symbol nor a list of symbols." 32Q "~S is not a symbol.") MOBY-UNINTERNA0001A0002 D1 (L (1 X 0 U) F 0 SYMBOL F 1 Q) APQ gi (16Q RETURN-FROM 7 UNINTERN) (12Q MOBY-UNINTERN) () MOBY-UNINTERNA0001 D1 (L (1 W 0 S) P 1 Q F 2 PACKAGE F 3 NAME) -AgRHhgSI HX(45Q APPLY 42Q \MVLIST 37Q FIND-EXTERNAL-SYMBOL) (32Q MOBY-UNINTERNA0001A0002 12Q PACKAGE 3 :INHERITED) () MOBY-UNINTERN D1 (P 2 NAME I 1 PACKAGE I 0 SYMBOL) =@AY#h*@A @ gJA H:IIh(55Q APPLY 52Q \MVLIST 47Q FIND-SYMBOL 34Q SYMBOL-NAME 26Q UNINTERN) (42Q MOBY-UNINTERNA0001 7 PACKAGE) () EXPORTA0001 D1 (L (1 W 0 S) F 2 SYMS F 3 SYM) $A SRY hSRcH:IIhNIL NIL () EXPORTA0002 D1 (P 3 CNT P 2 FN I 1 W I 0 S F 4 SYM F 5 P F 6 CSET F 7 CPACKAGES) A@Ty@UYhggkTV H:IIdKk[lPhl4 KJTVc gkUWdKk[lPhl4 KJUWch(162Q \LISPERROR 105Q \LISPERROR) (127Q EQL 40Q EQL 23Q PACKAGE) () EXPORTA0003 D1 (L (1 W 0 S) F 0 SYM F 1 MISSING F 2 IMPORTS) A@PPQcAgPRcNIL (17Q :INHERITED) () EXPORT D1 (L (0 \CL:LAMBDA.ARGCNT) P 33Q SYM P 31Q EXTERNAL P 30Q INTERNAL P 27Q SYM P 25Q IMPORTS P 24Q MISSING P 23Q SYM P 21Q P P 17Q NAME P 16Q P P 14Q SYM P 12Q CSET P 11Q CPACKAGES P 10Q USED-BY P 7 SYM P 5 SYMS P 4 PACKAGE P 3 $$TYPE-VALUE P 2 PACKAGE P 1 SYMBOLS F 34Q *PACKAGE*) ekHoH HloH @lHW8AJKd`J!J KlJ oJ I NRL! M O[OooL OgO o OOZ_gO L N^_ OO  O__"gOO" O _ _OO$ O__&O O$_$MO  MO,CO(ooL O( O(L O*L LLMO4"i_.gO. L O,_,_6O0O6 O2O6 O4_4(677Q ADD-SYMBOL 667Q NUKE-SYMBOL 664Q SYMBOL-NAME 641Q APPLY 636Q \MVLIST 633Q FIND-SYMBOL 627Q SYMBOL-NAME 560Q IMPORT 551Q IMPORT 542Q CERROR 474Q NSET-DIFFERENCE 456Q MOBY-UNINTERN 410Q APPLY 405Q \MVLIST 402Q FIND-SYMBOL 336Q SYMBOL-NAME 322Q APPLY 317Q \MVLIST 314Q FIND-EXTERNAL-SYMBOL 310Q SYMBOL-NAME 252Q Y-OR-N-P 242Q CERROR 236Q CL:MAPCAR 145Q SYMBOL-LISTIFY 135Q ERROR 124Q FIND-PACKAGE 121Q SYMBOL-NAME 105Q FIND-PACKAGE 35Q ERROR 17Q ERROR) (622Q EXPORTA0003 573Q PACKAGE 565Q PACKAGE 533Q PACKAGE 373Q EXPORTA0002 303Q EXPORTA0001 231Q PACKAGE-NAME 222Q PACKAGE 161Q PACKAGE 70Q PACKAGETYPE#) ( 527Q "These symbols are not available in the ~A package:~~S" 523Q "Import these symbols into the ~A package." 247Q "Unintern all conflicting symbols? " 216Q "Exporting these symbols from the ~A package:~~S~~ results in name conflicts with these packages:~~{~A ~}" 212Q "skip exporting these symbols or unintern all conflicting ones." 131Q "Not a package, string or symbol: " 31Q "Too many args" 13Q "Too few args") UNEXPORTA0001 D1 (P 1 CNT P 0 FN I 1 W I 0 S F 2 SYM F 3 SYMS F 4 PACKAGE) IA@RoRT Ag-gkRSdIkYlPhl4 IHRSch(66Q \LISPERROR 21Q CL:ERROR 16Q SYMBOL-NAME) (34Q EQL 26Q :EXTERNAL) ( 11Q "~S is not available in the ~A package.") UNEXPORT D1 (L (0 \CL:LAMBDA.ARGCNT) P 13Q SYM P 11Q EXTERNAL P 10Q INTERNAL P 7 SYM P 5 SYMS P 4 PACKAGE P 3 $$TYPE-VALUE P 2 PACKAGE P 1 SYMBOLS F 14Q *PACKAGE*) ekHoH HloH @lHWAJKd`J!J KlJ oJ I NLL M O i_gO L N^_OO OO O_(271Q NUKE-SYMBOL 266Q SYMBOL-NAME 256Q ADD-SYMBOL 235Q APPLY 232Q \MVLIST 227Q FIND-SYMBOL 223Q SYMBOL-NAME 145Q SYMBOL-LISTIFY 135Q ERROR 124Q FIND-PACKAGE 121Q SYMBOL-NAME 105Q FIND-PACKAGE 35Q ERROR 17Q ERROR) (216Q UNEXPORTA0001 167Q PACKAGE 161Q PACKAGE 70Q PACKAGETYPE#) ( 131Q "Not a package, string or symbol: " 31Q "Too many args" 13Q "Too few args") IMPORTA0001 D1 (P 1 MEMBER0570 P 0 MEMBER-ITEM0571 I 1 W I 0 S F 2 SYM F 3 SYMS F 4 CSET) HA/RSYhRScRRTcH IIh@RRTcAgRSc(45Q STRING=) (75Q :INHERITED) () IMPORT D1 (L (0 \CL:LAMBDA.ARGCNT) P 13Q SYM P 11Q INTERNAL P 10Q SYM P 6 CSET P 5 SYMS P 4 PACKAGE P 3 $$TYPE-VALUE P 2 PACKAGE P 1 SYMBOLS F 14Q *PACKAGE*) ekHoH HloH @lHWAJKd`J!J KlJ oJ !I O3NooL N L M O(NL _gO L O__OO O_(307Q ADD-SYMBOL 264Q APPLY 261Q \MVLIST 256Q FIND-SYMBOL 252Q SYMBOL-NAME 235Q SHADOWING-IMPORT 203Q CERROR 145Q SYMBOL-LISTIFY 135Q ERROR 124Q FIND-PACKAGE 121Q SYMBOL-NAME 105Q FIND-PACKAGE 35Q ERROR 17Q ERROR) (245Q IMPORTA0001 210Q PACKAGE 175Q PACKAGE 70Q PACKAGETYPE#) ( 171Q "Importing these symbols into the ~A package causes a name conflict:~~S" 165Q "Import these symbols with Shadowing-Import." 131Q "Not a package, string or symbol: " 31Q "Too many args" 13Q "Too few args") SHADOWING-IMPORTA0001 D1 (P 2 CNT P 1 FN P 0 VAL I 1 W I 0 S F 5 PACKAGE F 6 SYM F 7 INTERNAL) A@VBAgAg.U@UHdlHo'H @U WV gkVU#oHg XdJkZlPhl4 JIUVUKLLh(167Q \LISPERROR 142Q \CHECK-TYPE-FAIL 106Q ADD-SYMBOL 77Q UNINTERN 67Q CL:DELETE) (212Q PACKAGE 205Q PACKAGE 137Q LIST 123Q PACKAGE 112Q EQL 35Q PACKAGE 30Q PACKAGE 21Q :EXTERNAL 13Q :INTERNAL) ( 133Q "value" 57Q (NIL)) SHADOWING-IMPORT D1 (L (0 \CL:LAMBDA.ARGCNT) P 7 SYM P 5 INTERNAL P 4 PACKAGE P 3 $$TYPE-VALUE P 2 PACKAGE P 1 SYMBOLS F 10Q *PACKAGE*) ekHoH HloH @lHWAJKd`J!J KlJ oJ LI Ni_gO L N^(213Q APPLY 210Q \MVLIST 205Q FIND-SYMBOL 201Q SYMBOL-NAME 154Q SYMBOL-LISTIFY 135Q ERROR 124Q FIND-PACKAGE 121Q SYMBOL-NAME 105Q FIND-PACKAGE 35Q ERROR 17Q ERROR) (174Q SHADOWING-IMPORTA0001 145Q PACKAGE 70Q PACKAGETYPE#) ( 131Q "Not a package, string or symbol: " 31Q "Too many args" 13Q "Too few args") SHADOWA0001 D1 (P 1 CNT P 0 FN I 1 W I 0 S F 4 PACKAGE F 5 NAME F 6 INTERNAL) ZAAgUT bV@ gk@TdIkYlPhl4 IHT@TJKKh(67Q \LISPERROR 24Q ADD-SYMBOL 14Q NEWMKATOM) (112Q PACKAGE 105Q PACKAGE 41Q PACKAGE 30Q EQL 5 :INHERITED) () SHADOW D1 (L (0 \CL:LAMBDA.ARGCNT) P 10Q NAME P 7 SYM P 5 INTERNAL P 4 PACKAGE P 3 $$TYPE-VALUE P 2 PACKAGE P 1 SYMBOLS F 11Q *PACKAGE*) ekHoH HloH @lHWAJKd`J!J KlJ oJ LI Ni_ gOL N^(215Q APPLY 212Q \MVLIST 207Q FIND-SYMBOL 173Q SYMBOL-NAME 154Q SYMBOL-LISTIFY 135Q ERROR 124Q FIND-PACKAGE 121Q SYMBOL-NAME 105Q FIND-PACKAGE 35Q ERROR 17Q ERROR) (201Q SHADOWA0001 145Q PACKAGE 70Q PACKAGETYPE#) ( 131Q "Not a package, string or symbol: " 31Q "Too many args" 13Q "Too few args") PACKAGE-LISTIFY D1 (L (0 THING)) ^@@ddhZH[d K o5O<O, k O*O, _2gO2 O O,k_,oOO"_O8 ^j_>O"_O8 O@hoOFg _FO:%OJ _OJd`dl gOJ`=OJ&OL o+OJO> kO _DL OD O>k_>7oOJo _JoOHg _HEO:'ON _ONd`dl gON`=ON(OP o+ONO> kO _DL OD O>k_>oONo _NO@_6j_>O6_O8 O@_@oORg _RO:*OT sOTd`dl gOT`QOT+OV o?OTO> k*O _DOBOD O4 ODODL OD O>k_>goOTo _T{(2555Q \CHECK-TYPE-FAIL 2526Q BRIEFLY-DESCRIBE-SYMBOL 2520Q APROPOS-SEARCH 2506Q FIND-SYMBOL 2501Q SYMBOL-NAME 2466Q SVREF 2453Q AREF 2433Q ARRAY-ELEMENT-TYPE 2403Q TYPENAME 2355Q SIMPLE-ARRAY-P 2337Q \CHECK-TYPE-FAIL 2311Q %%= 2277Q CL:LENGTH 2267Q SIMPLE-VECTOR-P 2213Q \CHECK-TYPE-FAIL 2164Q BRIEFLY-DESCRIBE-SYMBOL 2156Q APROPOS-SEARCH 2150Q SVREF 2135Q AREF 2115Q ARRAY-ELEMENT-TYPE 2065Q TYPENAME 2037Q SIMPLE-ARRAY-P 2020Q \CHECK-TYPE-FAIL 2000Q \CHECK-TYPE-FAIL 1751Q BRIEFLY-DESCRIBE-SYMBOL 1743Q APROPOS-SEARCH 1735Q SVREF 1722Q AREF 1702Q ARRAY-ELEMENT-TYPE 1652Q TYPENAME 1624Q SIMPLE-ARRAY-P 1606Q \CHECK-TYPE-FAIL 1556Q %%= 1544Q CL:LENGTH 1532Q SIMPLE-VECTOR-P 1454Q %%= 1442Q CL:LENGTH 1432Q SIMPLE-VECTOR-P 1315Q \CHECK-TYPE-FAIL 1266Q BRIEFLY-DESCRIBE-SYMBOL 1260Q APROPOS-SEARCH 1252Q SVREF 1237Q AREF 1217Q ARRAY-ELEMENT-TYPE 1167Q TYPENAME 1141Q SIMPLE-ARRAY-P 1123Q \CHECK-TYPE-FAIL 1101Q %%= 1067Q CL:LENGTH 1057Q SIMPLE-VECTOR-P 767Q PACKAGE-LISTIFY 760Q \CHECK-TYPE-FAIL 731Q BRIEFLY-DESCRIBE-SYMBOL 724Q APROPOS-SEARCH 717Q SVREF 704Q AREF 664Q ARRAY-ELEMENT-TYPE 634Q TYPENAME 606Q SIMPLE-ARRAY-P 567Q \CHECK-TYPE-FAIL 547Q \CHECK-TYPE-FAIL 520Q BRIEFLY-DESCRIBE-SYMBOL 513Q APROPOS-SEARCH 506Q SVREF 473Q AREF 453Q ARRAY-ELEMENT-TYPE 423Q TYPENAME 375Q SIMPLE-ARRAY-P 357Q \CHECK-TYPE-FAIL 332Q %%= 320Q CL:LENGTH 306Q SIMPLE-VECTOR-P 230Q %%= 216Q CL:LENGTH 206Q SIMPLE-VECTOR-P 124Q LIST-ALL-PACKAGES 104Q MKSTRING 100Q SYMBOL-NAME 35Q ERROR 17Q ERROR) (2416Q BITMAPTYPE# 2406Q ARRAYP 2366Q ARRAYTYPE# 2334Q SIMPLE-VECTOR 2250Q PACKAGE-HASHTABLE 2236Q PACKAGE-HASHTABLE 2100Q BITMAPTYPE# 2070Q ARRAYP 2050Q ARRAYTYPE# 2015Q SIMPLE-VECTOR 1665Q BITMAPTYPE# 1655Q ARRAYP 1635Q ARRAYTYPE# 1603Q SIMPLE-VECTOR 1513Q PACKAGE-HASHTABLE 1506Q PACKAGE 1474Q PACKAGE-HASHTABLE 1467Q PACKAGE 1413Q PACKAGE-HASHTABLE 1406Q PACKAGE 1374Q PACKAGE-HASHTABLE 1367Q PACKAGE 1345Q PACKAGE 1333Q PACKAGE 1202Q BITMAPTYPE# 1172Q ARRAYP 1152Q ARRAYTYPE# 1120Q SIMPLE-VECTOR 1040Q PACKAGE-HASHTABLE 1033Q PACKAGE 1021Q PACKAGE-HASHTABLE 1014Q PACKAGE 647Q BITMAPTYPE# 637Q ARRAYP 617Q ARRAYTYPE# 564Q SIMPLE-VECTOR 436Q BITMAPTYPE# 426Q ARRAYP 406Q ARRAYTYPE# 354Q SIMPLE-VECTOR 267Q PACKAGE-HASHTABLE 262Q PACKAGE 250Q PACKAGE-HASHTABLE 243Q PACKAGE 167Q PACKAGE-HASHTABLE 162Q PACKAGE 150Q PACKAGE-HASHTABLE 143Q PACKAGE) ( 2552Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 2544Q "value" 2437Q (UNSIGNED-BYTE 10Q) 2327Q "value" 2210Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 2202Q "value" 2121Q (UNSIGNED-BYTE 10Q) 2010Q "value" 1775Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 1767Q "value" 1706Q (UNSIGNED-BYTE 10Q) 1576Q "value" 1312Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 1304Q "value" 1223Q (UNSIGNED-BYTE 10Q) 1113Q "value" 755Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 747Q "value" 670Q (UNSIGNED-BYTE 10Q) 557Q "value" 544Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 536Q "value" 457Q (UNSIGNED-BYTE 10Q) 347Q "value" 31Q "Too many args" 13Q "Too few args") APROPOS-LIST D1 (L (0 \CL:LAMBDA.ARGCNT) P 54Q VAL P 53Q VAL P 52Q VAL P 51Q VAL P 50Q VAL P 47Q VAL P 46Q VAL P 45Q VAL P 44Q VAL P 43Q SYMBOL P 42Q A0171 P 41Q A0172 P 40Q A0166 P 37Q A0167 P 36Q A0168 P 35Q A0169 P 34Q A0173 P 33Q A0170 P 32Q VAL P 31Q VAL P 30Q VAL P 27Q A0160 P 26Q A0159 P 25Q A0158 P 24Q A0157 P 23Q SYMBOL P 22Q PACKAGE P 21Q VAL P 20Q VAL P 17Q VAL P 16Q VAL P 15Q VAL P 14Q VAL P 13Q A0152 P 12Q A0151 P 11Q A0150 P 10Q A0149 P 7 SYMBOL P 6 A0148 P 5 LIST P 4 STRING P 3 PACKAGE P 2 EXTERNAL-ONLY P 1 STRING) r-ekHoH HloH @lHhAlHhBIdl K` ^"j_N_N_O O ]O _OO [j_N_N_O O O _OO NtoOg _OO ^Od`dl gO`O$_$OH `OH _:O@O: ^j_@O$_>O$_%OJ OJ _:O@O: OBMoOHg _HO<&OL ^OLd`dl gOL`O@ _FL OFMO@k_@8oOLo _LoOJg _JFO<(OP ^OPd`dl gOP`O@ _FL OFMO@k_@oOPo _POB_8j_@O8_>O8_*OT OT _:O@O: OB_BoOTg _TO<+OV rOVd`dl gOV`POV,OX o>OVO@ k)O>O@ _FODOF O6 OFOFL OFMO@k_@hoOVo _V|(2553Q \CHECK-TYPE-FAIL 2517Q APROPOS-SEARCH 2505Q FIND-SYMBOL 2500Q SYMBOL-NAME 2465Q SVREF 2452Q AREF 2432Q ARRAY-ELEMENT-TYPE 2402Q TYPENAME 2354Q SIMPLE-ARRAY-P 2336Q \CHECK-TYPE-FAIL 2310Q %%= 2276Q CL:LENGTH 2266Q SIMPLE-VECTOR-P 2212Q \CHECK-TYPE-FAIL 2156Q APROPOS-SEARCH 2150Q SVREF 2135Q AREF 2115Q ARRAY-ELEMENT-TYPE 2065Q TYPENAME 2037Q SIMPLE-ARRAY-P 2020Q \CHECK-TYPE-FAIL 2000Q \CHECK-TYPE-FAIL 1744Q APROPOS-SEARCH 1736Q SVREF 1723Q AREF 1703Q ARRAY-ELEMENT-TYPE 1653Q TYPENAME 1625Q SIMPLE-ARRAY-P 1607Q \CHECK-TYPE-FAIL 1557Q %%= 1545Q CL:LENGTH 1533Q SIMPLE-VECTOR-P 1455Q %%= 1443Q CL:LENGTH 1433Q SIMPLE-VECTOR-P 1316Q \CHECK-TYPE-FAIL 1262Q APROPOS-SEARCH 1254Q SVREF 1241Q AREF 1221Q ARRAY-ELEMENT-TYPE 1171Q TYPENAME 1143Q SIMPLE-ARRAY-P 1125Q \CHECK-TYPE-FAIL 1103Q %%= 1071Q CL:LENGTH 1061Q SIMPLE-VECTOR-P 771Q PACKAGE-LISTIFY 762Q \CHECK-TYPE-FAIL 726Q APROPOS-SEARCH 720Q SVREF 705Q AREF 665Q ARRAY-ELEMENT-TYPE 635Q TYPENAME 607Q SIMPLE-ARRAY-P 570Q \CHECK-TYPE-FAIL 550Q \CHECK-TYPE-FAIL 514Q APROPOS-SEARCH 506Q SVREF 473Q AREF 453Q ARRAY-ELEMENT-TYPE 423Q TYPENAME 375Q SIMPLE-ARRAY-P 357Q \CHECK-TYPE-FAIL 332Q %%= 320Q CL:LENGTH 306Q SIMPLE-VECTOR-P 230Q %%= 216Q CL:LENGTH 206Q SIMPLE-VECTOR-P 124Q LIST-ALL-PACKAGES 104Q MKSTRING 100Q SYMBOL-NAME 35Q ERROR 17Q ERROR) (2415Q BITMAPTYPE# 2405Q ARRAYP 2365Q ARRAYTYPE# 2333Q SIMPLE-VECTOR 2247Q PACKAGE-HASHTABLE 2235Q PACKAGE-HASHTABLE 2100Q BITMAPTYPE# 2070Q ARRAYP 2050Q ARRAYTYPE# 2015Q SIMPLE-VECTOR 1666Q BITMAPTYPE# 1656Q ARRAYP 1636Q ARRAYTYPE# 1604Q SIMPLE-VECTOR 1514Q PACKAGE-HASHTABLE 1507Q PACKAGE 1475Q PACKAGE-HASHTABLE 1470Q PACKAGE 1414Q PACKAGE-HASHTABLE 1407Q PACKAGE 1375Q PACKAGE-HASHTABLE 1370Q PACKAGE 1346Q PACKAGE 1334Q PACKAGE 1204Q BITMAPTYPE# 1174Q ARRAYP 1154Q ARRAYTYPE# 1122Q SIMPLE-VECTOR 1042Q PACKAGE-HASHTABLE 1035Q PACKAGE 1023Q PACKAGE-HASHTABLE 1016Q PACKAGE 650Q BITMAPTYPE# 640Q ARRAYP 620Q ARRAYTYPE# 565Q SIMPLE-VECTOR 436Q BITMAPTYPE# 426Q ARRAYP 406Q ARRAYTYPE# 354Q SIMPLE-VECTOR 267Q PACKAGE-HASHTABLE 262Q PACKAGE 250Q PACKAGE-HASHTABLE 243Q PACKAGE 167Q PACKAGE-HASHTABLE 162Q PACKAGE 150Q PACKAGE-HASHTABLE 143Q PACKAGE) ( 2550Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 2542Q "value" 2436Q (UNSIGNED-BYTE 10Q) 2326Q "value" 2207Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 2201Q "value" 2121Q (UNSIGNED-BYTE 10Q) 2010Q "value" 1775Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 1767Q "value" 1707Q (UNSIGNED-BYTE 10Q) 1577Q "value" 1313Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 1305Q "value" 1225Q (UNSIGNED-BYTE 10Q) 1115Q "value" 757Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 751Q "value" 671Q (UNSIGNED-BYTE 10Q) 560Q "value" 545Q (SIMPLE-ARRAY (UNSIGNED-BYTE 10Q)) 537Q "value" 457Q (UNSIGNED-BYTE 10Q) 347Q "value" 31Q "Too many args" 13Q "Too few args") \PKG-FIND-FREE-PACKAGE-INDEX D1 (F 1 \PKG-INDEX-TO-PACKAGE-VECTOR) #lHl o QH HHkX(30Q AREF 22Q ERROR 12Q %%=) NIL ( 17Q "Package space full") SETF-SYMBOL-PACKAGE D1 (L (1 PACKAGE 0 SYMBOL)) @A kHIINIL (23Q PACKAGE) () SYMBOL-PACKAGE D1 (I 0 SYMBOL F 0 \PKG-INDEX-TO-PACKAGE-VECTOR) P@ (11Q AREF) NIL () NEWMKATOM D1 (P 0 LEN I 1 PACKAGE I 0 X) A@,@@@Hdl@l @CjhiA @dld3 (76Q PACK* 55Q \NEWMKATOM 35Q \LISPERROR) NIL () \NEWMKATOM D1 (P 12Q SYMBOLPACKAGEINDEX P 11Q REPROBE P 10Q FIRSTBYTE P 7 FIRSTCHAR P 6 PNBASE P 5 ATM# P 4 HASHENT P 3 HASH P 2 FATCHARSEENP I 4 PACKAGE I 3 FATP I 2 LEN I 1 OFFST I 0 BASE F 27Q *INTERLISP-PACKAGE*)  DDgW.bC*ABkAIH@IlI iIkYhhh Bjjl_tC@A@A_Bk3Odl-`%Ol9`Ol l0OOl0`OOl9@ABC \Ol_ABkAk__OOz`K\j7Lk]_lOO^BJNj`M jhD`M_OkJbBkAOO4iKdndlC@Ol@OӻOk_YNO@O hOk_O k_ C2BkAO$O"!NO$@O&hO$k_$O&k_&i.BkAO*O(NO*@O,hO*k_*O,k_,i`MKO OKkl?_ӻ@ABKCJD (1006Q \NEWMKATOM.NEW 230Q MKNUMATOM) (742Q \ATOMSPACE 406Q \ATOMSPACE 360Q \ATOMSPACE 274Q \AtomHashTable 207Q \OneCharAtomBase 161Q \OneCharAtomBase 146Q \OneCharAtomBase 5 NOBIND) () \NEWMKATOM.NEW D1 (P 5 PN P 4 \INTERRUPTABLE P 3 PNBASE P 2 CPP P 1 PB P 0 ATM I 6 PACKAGE I 5 FATCHARSEENP I 4 FATP I 3 HASH I 2 LEN I 1 OFFST I 0 BASE F 11Q *INTERLISP-PACKAGE*) ? FWb @`EBl؄Bl `XdnjlMMn M nlo `<`Ykjo `nIEBkBkJl:JlIѻlHHKEKk@ABİ6D*BAkONKO@OǿOk_Ok_@AKkB KB`CHk`K!g IBlnn`j`HXEdk HFH(436Q \GCPNAMES 343Q \MOVEBYTES 210Q \GCPNAMES 156Q SHOULDNT 130Q \MP.ERROR 110Q \INITATOMPAGE 103Q \MAKEMDSENTRY 73Q \MKATOM.FULL 36Q \ALLOCBLOCK) (466Q PACKAGE 442Q \ATOMSPACE 430Q \NxtPnByte 402Q \NxtPnByte 371Q \PNAMES.IN.BLOCKS? 364Q \AtomFrLst 354Q \AtomHashTable 162Q \CurPnPage 141Q \NxtPnByte 134Q \PNAMES.IN.BLOCKS? 45Q \AtomFrLst 14Q \PNAMES.IN.BLOCKS?) ( 153Q "ODDP value in \NxtPnByte " 125Q "No more atoms left") \NEWLITPRIN D1 (P 41Q C P 36Q SYN P 32Q C P 31Q FIRSTFLG P 13Q NESCAPES P 12Q I P 10Q PNL P 7 PN P 3 P I 2 STREAM I 1 SA I 0 X F 46Q \THISFILELINELENGTH F 47Q *PACKAGE* F 50Q \CML.READPREFIX F 51Q \PKG-INDEX-TO-PACKAGE-VECTOR) #&@WNWLBlWLB BWPkgH HIlJB Bl;lHWR@ AK _ WLOBWLB Okj OO$BOO ] MNlLOk_WLBkWLB B Bl;lH@gTA+WLBlWLB B Bl%lHWLBkWLB B Bl.lHAs0 WL@j@ijTO_&O_(O jh_*Ok_O(ZO*O&OO&O_$lAɀO$Aɀ jjAO$_,l@jhO O,l$jhh_ O"k_"O"_BWLB Odjhi_j@iSO0_6O0_8O0 jh_:O.k_.O8zO:O6O.O6O._4OJO4lAɀO4Aɀ jjAO4_k_>OFOHODO>ODO>_BB _JBOBlOJ(1307Q FRESHLINE 757Q FRESHLINE 445Q FRESHLINE 375Q FRESHLINE 314Q FRESHLINE 236Q CHAR-CODE 233Q AREF 203Q FRESHLINE 153Q CL:LENGTH 135Q AREF 46Q FRESHLINE) (1422Q STREAM 1274Q STREAM 1225Q STREAM 1203Q STREAM 1135Q CHARTABLE 1124Q CHARTABLE 743Q STREAM 646Q CHARTABLE 635Q CHARTABLE 452Q STREAM 431Q STREAM 402Q STREAM 360Q STREAM 342Q %. 321Q STREAM 300Q STREAM 243Q STREAM 170Q STREAM 144Q PACKAGE 105Q STREAM 67Q STREAM 56Q CHARCODE 31Q STREAM 12Q PACKAGE) () PACKAGE-INIT D1 (F 2 *INTERLISP-PACKAGE* F 3 *LISP-PACKAGE* F 4 *KEYWORD-PACKAGE* F 5 \PKG-INDEX-TO-PACKAGE-VECTOR) qoghgo o o o o co coghgo o cdUhIH Rjh(145Q ASET 123Q FIND-PACKAGE 114Q IN-PACKAGE 67Q FIND-PACKAGE 56Q FIND-PACKAGE 47Q IN-PACKAGE 40Q IN-PACKAGE 31Q IN-PACKAGE 22Q IN-PACKAGE) (152Q PACKAGE 131Q PACKAGE 104Q :NICKNAMES 100Q :USE 12Q :NICKNAMES 6 :USE) ( 120Q "INTERLISP" 110Q ("IL") 75Q "INTERLISP" 64Q "KEYWORD" 53Q "LISP" 44Q "DEBUG" 35Q "USER" 26Q "SYSTEM" 16Q ("CL" "COMMONLISP") 3 "LISP") PACKAGE-CLEAR D1 (F 2 *PACKAGE-NAMES* F 3 \PKG-INDEX-TO-PACKAGE-VECTOR) R ljIHhSI IkY(25Q ASET 3 CLRHASH) NIL () ENABLE-PACKAGES D1 (F 0 OLDMKATOM F 1 \OLDMKATOM F 2 \OLDMKATOM.NEW F 3 \OLDLITPRIN) MP&g cg cg cg cgg gg gg gg (112Q MOVD 101Q MOVD 70Q MOVD 57Q MOVD 43Q GETD 32Q GETD 21Q GETD 10Q GETD) (107Q \LITPRIN 104Q \NEWLITPRIN 76Q \MKATOM.NEW 73Q \NEWMKATOM.NEW 65Q \MKATOM 62Q \NEWMKATOM 54Q MKATOM 51Q NEWMKATOM 40Q \LITPRIN 27Q \MKATOM.NEW 16Q \MKATOM 5 MKATOM) () DISABLE-PACKAGES D1 (F 0 OLDMKATOM F 1 \OLDMKATOM F 2 \OLDMKATOM.NEW F 3 \OLDLITPRIN) 1Po` ` g Qg Rg Sg (56Q MOVD 47Q MOVD 40Q MOVD 31Q MOVD 22Q TERPRI 14Q PRIN1) (53Q \LITPRIN 44Q \MKATOM.NEW 35Q \MKATOM 26Q MKATOM 17Q PROMPTWINDOW 11Q PROMPTWINDOW) ( 6 "Packages not enabled.") PRIMEP D1 (L (0 N)) .k@ il@ h@kkH j@H Hkո(44Q %%= 33Q %%= 15Q %%= 4 %%=) NIL () READSYMBOL D1 (P 10Q CHAR P 7 I P 4 SYMBOL P 3 CHAR P 2 BASE P 1 EXTERNAL P 0 SHIFTEDCHARSET I 1 RDTBL I 0 STREAM)  @2Q`ZljONc@ Ol:@ _l"@ jo@ @l2n@ @ &@O2OX@ HnO@ OdHO[l;`O@ OdJOKOk_vlV@ @ _l5@ jo@ @l2n@ @ @ hF@ >@O2OX@ ,h)Hdn@ O@ @ h@ Ol;hL@ Ol5@ _l @ jo@ @l2n@ @O2OḅHn@ iY`ZljONA@ OdlV@ @ _l5@ jo@ @l2n@ @ @ hF@ >@O2OX@ ,h)Hdn@ O@ @ h@ OKlMɀKMɀ jjMKl j`O`` \Id` LJOK@ Ol5@ _l @ jo@ @l2n@ @O2OḅHn@ Ok_(1207Q ERROR 1133Q EXPORT 1121Q INTERN 1023Q \BACKFILEPTR 1012Q \BACKFILEPTR 1004Q \PEEKBIN 753Q \PEEKBIN 731Q \BACKFILEPTR 717Q \BACKFILEPTR 711Q \PEEKBIN 666Q ERROR 616Q \PEEKBIN 514Q ERROR 435Q \BACKFILEPTR 424Q \BACKFILEPTR 416Q \PEEKBIN 365Q \PEEKBIN 343Q \BACKFILEPTR 331Q \BACKFILEPTR 323Q \PEEKBIN 300Q ERROR 206Q \PEEKBIN 73Q ERROR) (1130Q \PKG.PACKAGE.STRING 1116Q \PKG.PACKAGE.STRING 1113Q \PKG.SYMBOL.STRING 1103Q \PKG.SYMBOL.STRING 1055Q CHARTABLE 1045Q CHARTABLE 570Q \PKG.SYMBOL.STRING 175Q \PKG.PACKAGE.STRING 12Q \PKG.PACKAGE.STRING) ( 1203Q "24-bit extended NS encoding not supported" 662Q "24-bit extended NS encoding not supported" 510Q "24-bit extended NS encoding not supported" 274Q "24-bit extended NS encoding not supported" 67Q "24-bit extended NS encoding not supported") (PRETTYCOMPRINT CMLPACKAGESCOMS) (RPAQQ CMLPACKAGESCOMS ((* * - " Original code based on CMU's Spice Lisp." - " Re-Written by Rob MacLachlan. Earlier version written by" - " Lee Schumacher. Apropos & iteration macros courtesy of Skef Wholey." - " Modifications for Xerox Common Lisp by Ron Fischer.") (RECORDS PACKAGE) (FNS PRINT-PACKAGE) ( INITVARS (*PACKAGE* NIL)) (* * " An equal hashtable from package names to packages." -) (INITVARS ( *PACKAGE-NAMES* (MAKE-HASH-TABLE :TEST (FUNCTION EQUAL)))) (* * " Lots of people want the keyword package and Lisp package without a lot" - " of fuss, so we give them their own variables." -) (INITVARS (*LISP-PACKAGE* NIL) (*KEYWORD-PACKAGE* NIL)) (* * " Find-Package -- Public") (FNS FIND-PACKAGE PARSE-BODY) (* * " Package-Hashtables" - - " Packages are implemented using a special kind of hashtable. It is" - " an open hashtable with a parallel 8-bit I-vector of hash-codes. The" - " primary purpose of the hash for each entry is to reduce paging by" - " allowing collisions and misses to be detected without paging in the" - " symbol and pname for an entry. If the hash for an entry doesn't" - " match that for the symbol that we are looking for, then we can" - " go on without touching the symbol, pname, or even hastable vector." - " It turns out that, contrary to my expectations, paging is a very" - " important consideration the design of the package representation." - " Using a similar scheme without the entry hash, the fasloader was" - " spending more than half its time paging in INTERN." - " The hash code also indicates the status of an entry. If it zero," - " the the entry is unused. If it is one, then it is deleted." - " Double-hashing is used for collision resolution.") (RECORDS PACKAGE-HASHTABLE) (* * " The number of deleted entries." - " The maximum density we allow in a package hashtable.") (VARS ( PACKAGE-REHASH-THRESHOLD .5)) (* * " Entry-Hash -- Internal" - - " Compute a number from the sxhash of the pname and the length which" - " must be between 2 and 255.") (MACROS ENTRY-HASH \PACKAGIFY \SIMPLE-STRINGIFY) (* * " Make-Package-Hashtable -- Internal" - - " Make a package hashtable having a prime number of entries at least" - " as great as (/ size package-rehash-threshold). If Res is supplied," - " then it is destructively modified to produce the result. This is" - " useful when changing the size, since there are many pointers to" - " the hashtable.") (FNS MAKE-PACKAGE-HASHTABLE) (* * " Internal-Symbol-Count, External-Symbols-Count -- Internal" - - " Return internal and external symbols.") (MACROS COUNT-PACKAGE-HASHTABLE) (FNS INTERNAL-SYMBOL-COUNT EXTERNAL-SYMBOL-COUNT) (* * " Add-Symbol -- Internal" - - " Add a symbol to a package hashtable. The symbol is assumed" - " not to be present.") (FNS ADD-SYMBOL) (* * " With-Symbol -- Internal" - - " Find where the symbol named String is stored in Table. Index-Var" - " is bound to the index, or NIL if it is not present. Symbol-Var" - " is bound to the symbol. Length and Hash are the length and sxhash" - " of String. Entry-Hash is the entry-hash of the string and length.") (MACROS WITH-SYMBOL) (* * " Nuke-Symbol -- Internal" - - " Delete the entry for String in Table. The entry must exist.") ( FNS NUKE-SYMBOL) (* * " Iteration macros." - " Instead of using slow, silly successor functions, we make the iteration" - " guys be big PROG's. Yea!") (DECLARE: EVAL@COMPILE DONTCOPY (*) (MACROS DO-SYMBOLS DO-EXTERNAL-SYMBOLS DO-ALL-SYMBOLS)) (FNS MAKE-DO-SYMBOLS-VARS MAKE-DO-SYMBOLS-CODE) (* * " Enter-New-Nicknames -- Internal" - - " Enter any new Nicknames for Package into *package-names*." - " If there is a conflict then give the user a chance to do" - " something about it.") (FNS ENTER-NEW-NICKNAMES) (* * " Make-Package -- Public" - - " Check for package name conflicts in name and nicknames, then" - " make the package. Do a use-package for each thing in the use list" - " so that checking for conflicting exports among used packages is done.") (FNS MAKE-PACKAGE) (* * " In-Package -- Public" - - " Like Make-Package, only different.") (FNS IN-PACKAGE) (* * " Rename-Package -- Public" - - " Change the name if we can, blast any old nicknames and then" - " add in any new ones.") (FNS RENAME-PACKAGE) (* * " List-All-Packages -- Public") (FNS LIST-ALL-PACKAGES) (* * " Intern -- Public" - - " Simple-stringify the name and call intern*.") ( FNS INTERN) (* * " Find-Symbol -- Public" - - " Ditto.") (FNS FIND-SYMBOL) (* * " Intern* -- Internal" - - " If the symbol doesn't exist then create it, special-casing" - " the keyword package.") (FNS INTERN*) (* * " Find-Symbol* -- Internal" - - " Check internal and external symbols, then scan down the list" - " of hashtables for inherited symbols. When an inherited symbol" - " is found pull that table to the beginning of the list.") (FNS FIND-SYMBOL*) (* * " Find-External-Symbol -- Internal" - - " Similar to Find-Symbol, but only looks for an external symbol." - " This is used for fast name-conflict checking.") (FNS FIND-EXTERNAL-SYMBOL) (* * " Unintern -- Public" - - " If we are uninterning a shadowing symbol, then a name conflict can" - " result, otherwise just nuke the symbol.") (FNS UNINTERN) (* * " Symbol-Listify -- Internal" - - " Take a symbol-or-list-of-symbols and return a list, checking types.") (FNS SYMBOL-LISTIFY) (* * " Moby-Unintern -- Internal" - - " Like Unintern, but if symbol is inherited chases down the" - " package it is inherited from and uninterns it there. Used" - " for name-conflict resolution. Shadowing symbols are not" - " uninterned since they do not cause conflicts.") (FNS MOBY-UNINTERN) (* * " Export -- Public") (FNS EXPORT) (* * " Unexport -- Public" - - " Check that all symbols are available, then move from external to" - " internal.") (FNS UNEXPORT) (* * " Import -- Public") (FNS IMPORT) (* * " Shadowing-Import -- Public" - - " If a conflicting symbol is present, unintern it, otherwise just" - " stick the symbol in.") (FNS SHADOWING-IMPORT) (* * " Shadow -- Public") (FNS SHADOW) (* * " Package-Listify -- Internal" - - " Return a list of packages given a package-or-string-or-symbol or" - " list thereof, or die trying.") (FNS PACKAGE-LISTIFY) (* * " Use-Package -- Public" - - " Do stuff to use a package, with all kinds of fun name-conflict" - " checking.") (FNS USE-PACKAGE) (* * " Unuse-Package -- Public") (FNS UNUSE-PACKAGE) (* * " Find-All-Symbols -- Public") (FNS FIND-ALL-SYMBOLS) (* * " Apropos and Apropos-List.") (FNS BRIEFLY-DESCRIBE-SYMBOL APROPOS-SEARCH CL:APROPOS APROPOS-LIST) (* * While edits to the code above have changed it from the original Spice source the majority of low level support occurs below here.) (* * The first draft of packages for Interlisp-D is implemented by using a free byte in the litatom structure (defined in the copied and altered definition now called SYMBOL) %. A vector (\PKG-INDEX-TO-PACKAGE-VECTOR) is used to relate these numbers to packages, and the packages themselves contain their INDEX in the vector.) (DECLARE: EVAL@COMPILE DONTCOPY (*) (EXPORT (RECORDS SYMBOL) (CONSTANTS MAX-NUMBER-PACKAGES \INTERLISP-PACKAGE-INDEX \UNINTERNED-PACKAGE-INDEX)) (* Note that you can't change the \INTERLISP-PACKAGE-INDEX unless you initialize all atom package cells to the new number at package enable time) (* If you move \UNINTERNED-PACKAGE-INDEX you'll want to change the arrangements in \PKG-FIND-FREE-PACKAGE-INDEX)) (INITVARS (\PKG-INDEX-TO-PACKAGE-VECTOR (MAKE-ARRAY 256 :INITIAL-ELEMENT NIL))) (* PACKAGE-INIT depends on the free marker being NIL) (FNS \PKG-FIND-FREE-PACKAGE-INDEX) (* \PKG-FIND-FREE-PACKAGE-INDEX and \UNINTERNED-PACKAGE-INDEX are all neatly arranged so that SYMBOL-PACKAGE can find NIL in the index vector and NIL can also be the free slot marker) (MACROS SETF-SYMBOL-PACKAGE SYMBOL-PACKAGE) (FNS SETF-SYMBOL-PACKAGE SYMBOL-PACKAGE) ( DECLARE: EVAL@LOAD DONTCOPY (*) (FILES (SOURCE PROP) LLBASIC APRINT)) (FNS NEWMKATOM \NEWMKATOM \NEWMKATOM.NEW \NEWLITPRIN) (* * " Initialization.") (VARS (*INTERLISP-PACKAGE* NIL) (OLDMKATOM NIL) ( \OLDMKATOM NIL) (\OLDMKATOM.NEW NIL) (\OLDLITPRIN NIL)) (FNS PACKAGE-INIT PACKAGE-CLEAR ENABLE-PACKAGES DISABLE-PACKAGES) (* * "Spice compatability stuff") (FNS PRIMEP) (MACROS PRIMITIVE) ( PROP CL:PRIMITIVE ALLOC-SYMBOL SET-PACKAGE SXHASH-SIMPLE-STRING SXHASH-SIMPLE-SUBSTRING) (P (MOVD ( QUOTE REMAINDER) (QUOTE REM)) (MOVD (QUOTE ERROR) (QUOTE CERROR)) (MOVD (QUOTE *) (QUOTE CL:DECLARE))) (* * "Vertical bar semicolon reader macro for package qualified litatom syntax.") (INITVARS ( \PKG.SYMBOL.STRING (MAKE-STRING 256)) (\PKG.PACKAGE.STRING (MAKE-STRING 256))) (PROP HASHREADMACRO ;) (FNS READSYMBOL) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA UNUSE-PACKAGE USE-PACKAGE SHADOW SHADOWING-IMPORT IMPORT UNEXPORT EXPORT UNINTERN FIND-SYMBOL INTERN RENAME-PACKAGE APROPOS-LIST CL:APROPOS IN-PACKAGE MAKE-PACKAGE MAKE-PACKAGE-HASHTABLE))))) (DEFSTRUCT (PACKAGE (:CONSTRUCTOR INTERNAL-MAKE-PACKAGE) (:PREDICATE PACKAGEP) (:PRINT-FUNCTION PRINT-PACKAGE)) INDEX (* "Package to index hack.") (TABLES (LIST NIL)) (* " A list of all the hashtables for inherited symbols.") NAME (* " The string name of the package.") NICKNAMES (* " List of nickname strings.") (USE-LIST NIL) (* " List of packages we use.") ( USED-BY-LIST NIL) (* " List of packages that use this package.") INTERNAL-SYMBOLS (* " Hashtable of internal symbols.") EXTERNAL-SYMBOLS (* " Hashtable of external symbols.") ( SHADOWING-SYMBOLS NIL) (* " List of shadowing symbols.")) (/DECLAREDATATYPE (QUOTE PACKAGE) (QUOTE (POINTER POINTER 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) (PACKAGE 14 POINTER) (PACKAGE 16 POINTER))) (QUOTE 18)) (RPAQ? *PACKAGE* NIL) (RPAQ? *PACKAGE-NAMES* (MAKE-HASH-TABLE :TEST (FUNCTION EQUAL))) (RPAQ? *LISP-PACKAGE* NIL) (RPAQ? *KEYWORD-PACKAGE* NIL) (DEFSTRUCT (PACKAGE-HASHTABLE (:CONSTRUCTOR INTERNAL-MAKE-PACKAGE-HASHTABLE) (:COPIER NIL) (:PREDICATE NIL) (:PRINT-FUNCTION (LAMBDA (TABLE STREAM D) (PRIN3 "#" STREAM)))) TABLE (* " The g-vector of symbols.") HASH (* " The i-vector of pname hash values.") SIZE ( * " The maximum number of entries allowed.") FREE (* " The entries that can be made before we have to rehash.") DELETED) (/DECLAREDATATYPE (QUOTE PACKAGE-HASHTABLE) (QUOTE (POINTER POINTER POINTER POINTER POINTER)) (QUOTE ( (PACKAGE-HASHTABLE 0 POINTER) (PACKAGE-HASHTABLE 2 POINTER) (PACKAGE-HASHTABLE 4 POINTER) ( PACKAGE-HASHTABLE 6 POINTER) (PACKAGE-HASHTABLE 8 POINTER))) (QUOTE 10)) (RPAQQ PACKAGE-REHASH-THRESHOLD .5) (DEFMACRO ENTRY-HASH (CL:LENGTH SXHASH) (BQUOTE (+ (REM (LOGXOR (\, CL:LENGTH) (\, SXHASH) (ASH (\, SXHASH) -8) (ASH (\, SXHASH) -16) (ASH (\, SXHASH) -19)) 254) 2))) (DEFMACRO \PACKAGIFY (OBJ) (BQUOTE (TYPECASE (\, OBJ) (PACKAGE (\, OBJ)) (SIMPLE-STRING (FIND-PACKAGE (\, OBJ))) (SYMBOL (FIND-PACKAGE (SYMBOL-NAME (\, OBJ)))) (OTHERWISE (ERROR "Not a package, string or symbol: " (\, OBJ)))))) (DEFMACRO \SIMPLE-STRINGIFY (OBJ) (BQUOTE (CL:IF (SIMPLE-STRING-P (\, OBJ)) (\, OBJ) (COERCE (\, OBJ) (QUOTE SIMPLE-STRING))))) (DEFMACRO COUNT-PACKAGE-HASHTABLE (TABLE) (BQUOTE (LET ((SIZE (- (PACKAGE-HASHTABLE-SIZE (\, TABLE)) ( PACKAGE-HASHTABLE-DELETED (\, TABLE))))) (VALUES (- SIZE (PACKAGE-HASHTABLE-FREE (\, TABLE))) SIZE)))) (DEFMACRO WITH-SYMBOL ((INDEX-VAR SYMBOL-VAR TABLE STRING CL:LENGTH SXHASH ENTRY-HASH) &BODY FORMS) ( LET ((VEC (GENSYM)) (HASH (GENSYM)) (LEN (GENSYM)) (H2 (GENSYM)) (NAME (GENSYM)) (NAME-LEN (GENSYM)) ( EHASH (GENSYM))) (BQUOTE (LET* (((\, VEC) (PACKAGE-HASHTABLE-TABLE (\, TABLE))) ((\, HASH) ( PACKAGE-HASHTABLE-HASH (\, TABLE))) ((\, LEN) (CL:LENGTH (\, VEC))) ((\, H2) (1+ (REM (\, SXHASH) (- ( \, LEN) 2))))) (CL:DECLARE (TYPE (SIMPLE-ARRAY (UNSIGNED-BYTE 8)) (\, HASH)) (SIMPLE-VECTOR (\, VEC))) (PROG (((\, INDEX-VAR) (REM (\, SXHASH) (\, LEN))) (\, SYMBOL-VAR) (\, EHASH)) LOOP (SETQ (\, EHASH) (AREF (\, HASH) (\, INDEX-VAR))) (COND ((EQL (\, EHASH) (\, ENTRY-HASH)) (SETQ (\, SYMBOL-VAR) (SVREF (\, VEC) (\, INDEX-VAR))) (LET* (((\, NAME) (SYMBOL-NAME (\, SYMBOL-VAR))) ((\, NAME-LEN) (CL:LENGTH ( \, NAME)))) (CL:DECLARE (SIMPLE-STRING (\, NAME))) (CL:WHEN (AND (= (\, NAME-LEN) (\, CL:LENGTH)) ( STRING= (\, STRING) (\, NAME) :END1 (\, CL:LENGTH) :END2 (\, NAME-LEN))) (GO DOIT)))) ((ZEROP (\, EHASH)) (SETQ (\, INDEX-VAR) NIL) (GO DOIT))) (SETQ (\, INDEX-VAR) (REM (+ (\, INDEX-VAR) (\, H2)) (\, LEN))) (GO LOOP) DOIT (RETURN (PROGN (\,@ FORMS)))))))) (RPAQ? \PKG-INDEX-TO-PACKAGE-VECTOR (MAKE-ARRAY 256 :INITIAL-ELEMENT NIL)) (PUTPROPS SETF-SYMBOL-PACKAGE DMACRO ((obj value) (freplace (SYMBOL PACKAGE) of obj with (if value then (PACKAGE-INDEX value) else \UNINTERNED-PACKAGE-INDEX)))) (PUTPROPS SYMBOL-PACKAGE DMACRO ((obj) (AREF \PKG-INDEX-TO-PACKAGE-VECTOR (ffetch (SYMBOL PACKAGE) of obj)))) (RPAQQ *INTERLISP-PACKAGE* NIL) (RPAQQ OLDMKATOM NIL) (RPAQQ \OLDMKATOM NIL) (RPAQQ \OLDMKATOM.NEW NIL) (RPAQQ \OLDLITPRIN NIL) (DEFMACRO PRIMITIVE (FN &REST ARGS) (BQUOTE ((\, (OR (GET FN (QUOTE CL:PRIMITIVE)) (ERROR "Unknown primitive op" FN))) (\,@ ARGS)))) (PUTPROPS ALLOC-SYMBOL CL:PRIMITIVE NEWMKATOM) (PUTPROPS SET-PACKAGE CL:PRIMITIVE SETF-SYMBOL-PACKAGE) (PUTPROPS SXHASH-SIMPLE-STRING CL:PRIMITIVE STRINGHASHBITS) (PUTPROPS SXHASH-SIMPLE-SUBSTRING CL:PRIMITIVE STRINGHASHBITS) (MOVD (QUOTE REMAINDER) (QUOTE REM)) (MOVD (QUOTE ERROR) (QUOTE CERROR)) (MOVD (QUOTE *) (QUOTE CL:DECLARE)) (RPAQ? \PKG.SYMBOL.STRING (MAKE-STRING 256)) (RPAQ? \PKG.PACKAGE.STRING (MAKE-STRING 256)) (PUTPROPS ; HASHREADMACRO READSYMBOL) (PUTPROPS CMLPACKAGES COPYRIGHT ("Xerox Corporation" 1986)) NIL