1
0
mirror of synced 2026-01-12 00:42:56 +00:00

Add :import-from option to defpackage (import into newly defined package)

This commit is contained in:
Larry Masinter 2025-11-02 13:28:48 -08:00
parent aae53a700f
commit 3ba392cbb5
2 changed files with 98 additions and 42 deletions

View File

@ -1,13 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "LISP" READTABLE "XCL" BASE 10)
(IL:FILECREATED " 5-Sep-2024 17:42:20" IL:|{DSK}<home>matt>Interlisp>medley>sources>LLPACKAGE.;3| 87515
(IL:FILECREATED " 2-Nov-2025 13:21:00" IL:|{DSK}<Users>larry>il>MEDLEY>SOURCES>LLPACKAGE.;2| 92892
:EDIT-BY "mth"
:EDIT-BY "lmm"
:CHANGES-TO (IL:FNS XCL:DEFPACKAGE)
:PREVIOUS-DATE " 4-Sep-2024 13:17:23" IL:|{DSK}<home>matt>Interlisp>medley>sources>LLPACKAGE.;2|
)
:PREVIOUS-DATE "30-Oct-2025 14:25:43" IL:|{DSK}<Users>larry>il>MEDLEY>SOURCES>LLPACKAGE.;1|)
(IL:PRETTYCOMPRINT IL:LLPACKAGECOMS)
@ -524,7 +523,9 @@
(IL:DEFINEQ
(XCL:DEFPACKAGE
(IL:NLAMBDA IL:ARGS (IL:* IL:\; "Edited 4-Sep-2024 13:17 by mth")
(IL:NLAMBDA IL:ARGS (IL:* IL:\; "Edited 2-Nov-2025 13:19 by lmm")
(IL:* IL:\; "Edited 30-Oct-2025 11:34 by mth")
(IL:* IL:\; "Edited 4-Sep-2024 13:17 by mth")
(IL:* IL:\; "Edited 2-Dec-87 10:39 by raf")
(IL:SETQ IL:ARGS (XCL:REMOVE-COMMENTS IL:ARGS))
(LET
@ -571,6 +572,30 @@
IL:SYMBOL)))
PACKAGE))
(:IMPORT (IMPORT VALUES PACKAGE))
(:IMPORT-FROM (LET* ((PACKAGE-NAME (POP VALUES))
(XCL::PACKAGE-FROM (FIND-PACKAGE PACKAGE-NAME)))
(IMPORT (IL:MAPCAR VALUES
(IL:FUNCTION (IL:LAMBDA (XCL::SN)
(COND
((IL:LITATOM XCL::SN)
(SETQ XCL::SN
(SYMBOL-NAME
XCL::SN))))
(COND
((IL:STRINGP XCL::SN)
(OR (FIND-SYMBOL
XCL::SN
XCL::PACKAGE-FROM
)
(ERROR
"Symbol ~S not found in package ~S in :import-from option of defpackage"
XCL::SN
PACKAGE-NAME
)))
(T (IL:ERROR
"Bad object in :import-from option of defpackage "
XCL::SN))))))
PACKAGE)))
((:SHADOW :SHADOWING-IMPORT)
(LET ((IL:SYMBOLS-TO-SHADOW (IL:MAPCONC
VALUES
@ -620,7 +645,8 @@
((:PREFIX-NAME :INTERNAL-SYMBOLS :EXTERNAL-SYMBOLS
:EXTERNAL-ONLY)
(LIST IL:KEY (CAR VALUES)))
((:SHADOW :EXPORT :IMPORT :SHADOWING-IMPORT)
((:SHADOW :EXPORT :IMPORT :IMPORT-FROM
:SHADOWING-IMPORT)
(IL:SETQ IL:POST-MAKE-FORMS
(CONS (CONS IL:KEY VALUES)
IL:POST-MAKE-FORMS))
@ -648,6 +674,36 @@
PACKAGE))
(:IMPORT (IMPORT (CDR IL:FORM)
PACKAGE))
(:IMPORT-FROM (LET* ((PACKAGE-NAME (CADR IL:FORM))
(XCL::PACKAGE-FROM (FIND-PACKAGE PACKAGE-NAME)))
(IMPORT (IL:MAPCAR (CDDR IL:FORM)
(IL:FUNCTION (IL:LAMBDA (XCL::SN)
(COND
((IL:LITATOM
XCL::SN)
(SETQ
XCL::SN
(SYMBOL-NAME
XCL::SN))))
(COND
((IL:STRINGP
XCL::SN)
(OR
(FIND-SYMBOL
XCL::SN
XCL::PACKAGE-FROM
)
(ERROR
"Symbol ~S not found in package ~S in :import-from option of defpackage"
XCL::SN
PACKAGE-NAME
)))
(T (IL:ERROR
"Bad object in :import-from option of defpackage "
XCL::SN)))))
))))
(:SHADOWING-IMPORT
(SHADOWING-IMPORT (CDR IL:FORM)
PACKAGE))
@ -1663,7 +1719,7 @@
(IL:* IL:|;;| "Proper compiler, readtable and package environment")
(IL:PUTPROPS IL:LLPACKAGE IL:FILETYPE COMPILE-FILE)
(IL:PUTPROPS IL:LLPACKAGE IL:FILETYPE :FAKE-COMPILE-FILE)
(IL:PUTPROPS IL:LLPACKAGE IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE "LISP"))
(IL:DECLARE\: IL:DONTEVAL@LOAD IL:DOEVAL@COMPILE IL:DONTCOPY IL:COMPILERVARS
@ -1675,39 +1731,39 @@
(IL:ADDTOVAR IL:LAMA )
)
(IL:DECLARE\: IL:DONTCOPY
(IL:FILEMAP (NIL (5304 5829 (IL:PACKAGE-LISTIFY 5304 . 5829)) (5831 6219 (IL:\\SIMPLE-STRINGIFY 5831
. 6219)) (6221 6713 (IL:SYMBOL-LISTIFY 6221 . 6713)) (6715 6777 (IL:COPY-STRING 6715 . 6777)) (6779
7517 (IL:\\SYMBOL-EQUALBASE 6779 . 7517)) (7521 7957 (IL:\\FATCHARSEENP 7521 . 7957)) (7959 8487 (
IL:\\PACKAGIFY 7959 . 8487)) (8489 9526 (IL:\\STRING-EQUALBASE 8489 . 9526)) (9528 9752 (
IL:NUMERIC-UPCASE 9528 . 9752)) (9754 10111 (IL:\\UPCASEBASE 9754 . 10111)) (10113 11230 (
IL:APROPOS-SEARCH 10113 . 11230)) (12750 12832 (PACKAGE-NAME 12750 . 12832)) (12834 12926 (
PACKAGE-NICKNAMES 12834 . 12926)) (12928 13036 (PACKAGE-SHADOWING-SYMBOLS 12928 . 13036)) (13038 13128
(PACKAGE-USE-LIST 13038 . 13128)) (13130 13228 (PACKAGE-USED-BY-LIST 13130 . 13228)) (13230 14385 (
IL:MAKE-PACKAGE-HASHTABLE 13230 . 14385)) (14387 14549 (PRINT-PACKAGE 14387 . 14549)) (14551 14942 (
PRINT-PACKAGE-HASHTABLE 14551 . 14942)) (16006 16787 (MAKE-SYMBOL 16006 . 16787)) (17838 18248 (
IL:\\PKG-FIND-FREE-PACKAGE-INDEX 17838 . 18248)) (18305 18451 (IL:SETF-SYMBOL-PACKAGE 18305 . 18451))
(18453 18545 (SYMBOL-PACKAGE 18453 . 18545)) (18587 20224 (IL:SYMBOL-HASH 18587 . 20224)) (20226 20358
(IL:REHASH-FACTOR 20226 . 20358)) (20360 20526 (IL:SYMBOL-HASH-REPROBE 20360 . 20526)) (20528 20919 (
IL:ENTRY-HASH 20528 . 20919)) (20968 21314 (IL:COUNT-PACKAGE-HASHTABLE 20968 . 21314)) (21316 21488 (
IL:INTERNAL-SYMBOL-COUNT 21316 . 21488)) (21490 21608 (IL:EXTERNAL-SYMBOL-COUNT 21490 . 21608)) (21610
22766 (IL:ENTER-NEW-NICKNAMES 21610 . 22766)) (22768 23194 (IL:MAKE-PRIME-HASHTABLE-SIZE 22768 .
23194)) (23196 24845 (MAKE-PACKAGE 23196 . 24845)) (24846 34317 (XCL:DEFPACKAGE 24859 . 34315)) (34366
34588 (FIND-PACKAGE 34366 . 34588)) (34590 37951 (USE-PACKAGE 34590 . 37951)) (37953 38433 (
IN-PACKAGE 37953 . 38433)) (38435 38709 (XCL:PKG-GOTO 38435 . 38709)) (38711 39811 (RENAME-PACKAGE
38711 . 39811)) (39813 41264 (XCL:DELETE-PACKAGE 39813 . 41264)) (41266 44212 (EXPORT 41266 . 44212))
(44214 45457 (UNEXPORT 44214 . 45457)) (45459 47103 (IMPORT 45459 . 47103)) (47105 48385 (
SHADOWING-IMPORT 47105 . 48385)) (48387 49441 (SHADOW 48387 . 49441)) (49443 50098 (UNUSE-PACKAGE
49443 . 50098)) (50162 50468 (LIST-ALL-PACKAGES 50162 . 50468)) (50525 54208 (IL:ADD-SYMBOL 50525 .
54208)) (54210 58263 (IL:WITH-SYMBOL 54210 . 58263)) (58265 59568 (IL:INTERN* 58265 . 59568)) (59570
65402 (IL:FIND-SYMBOL* 59570 . 65402)) (65404 66855 (INTERN 65404 . 66855)) (66857 67435 (FIND-SYMBOL
66857 . 67435)) (67493 68389 (IL:NUKE-SYMBOL 67493 . 68389)) (68391 70505 (UNINTERN 68391 . 70505)) (
70507 71650 (IL:MOBY-UNINTERN 70507 . 71650)) (71709 71781 (IL:\\INDEXATOMPNAME 71709 . 71781)) (71893
72040 (IL:MAKE-DO-SYMBOLS-VARS 71893 . 72040)) (72042 73497 (IL:MAKE-DO-SYMBOLS-CODE 72042 . 73497))
(73501 74279 (DO-EXTERNAL-SYMBOLS 73501 . 74279)) (74281 75627 (XCL:DO-LOCAL-SYMBOLS 74281 . 75627)) (
75629 76745 (XCL:DO-INTERNAL-SYMBOLS 75629 . 76745)) (76747 79045 (DO-SYMBOLS 76747 . 79045)) (79047
80729 (DO-ALL-SYMBOLS 79047 . 80729)) (80797 81322 (FIND-ALL-SYMBOLS 80797 . 81322)) (81324 81603 (
IL:BRIEFLY-DESCRIBE-SYMBOL 81324 . 81603)) (81605 83119 (APROPOS 81605 . 83119)) (83121 84688 (
APROPOS-LIST 83121 . 84688)) (84792 86319 (IL:FIND-EXTERNAL-SYMBOL 84792 . 86319)) (86321 86841 (
IL:FIND-EXACT-SYMBOL 86321 . 86841)) (86843 86923 (IL:PACKAGE-NAME-AS-SYMBOL 86843 . 86923)) (86925
87074 (IL:\\FIND.PACKAGE.INTERNAL 86925 . 87074)))))
(IL:FILEMAP (NIL (5293 5818 (IL:PACKAGE-LISTIFY 5293 . 5818)) (5820 6208 (IL:\\SIMPLE-STRINGIFY 5820
. 6208)) (6210 6702 (IL:SYMBOL-LISTIFY 6210 . 6702)) (6704 6766 (IL:COPY-STRING 6704 . 6766)) (6768
7506 (IL:\\SYMBOL-EQUALBASE 6768 . 7506)) (7510 7946 (IL:\\FATCHARSEENP 7510 . 7946)) (7948 8476 (
IL:\\PACKAGIFY 7948 . 8476)) (8478 9515 (IL:\\STRING-EQUALBASE 8478 . 9515)) (9517 9741 (
IL:NUMERIC-UPCASE 9517 . 9741)) (9743 10100 (IL:\\UPCASEBASE 9743 . 10100)) (10102 11219 (
IL:APROPOS-SEARCH 10102 . 11219)) (12739 12821 (PACKAGE-NAME 12739 . 12821)) (12823 12915 (
PACKAGE-NICKNAMES 12823 . 12915)) (12917 13025 (PACKAGE-SHADOWING-SYMBOLS 12917 . 13025)) (13027 13117
(PACKAGE-USE-LIST 13027 . 13117)) (13119 13217 (PACKAGE-USED-BY-LIST 13119 . 13217)) (13219 14374 (
IL:MAKE-PACKAGE-HASHTABLE 13219 . 14374)) (14376 14538 (PRINT-PACKAGE 14376 . 14538)) (14540 14931 (
PRINT-PACKAGE-HASHTABLE 14540 . 14931)) (15995 16776 (MAKE-SYMBOL 15995 . 16776)) (17827 18237 (
IL:\\PKG-FIND-FREE-PACKAGE-INDEX 17827 . 18237)) (18294 18440 (IL:SETF-SYMBOL-PACKAGE 18294 . 18440))
(18442 18534 (SYMBOL-PACKAGE 18442 . 18534)) (18576 20213 (IL:SYMBOL-HASH 18576 . 20213)) (20215 20347
(IL:REHASH-FACTOR 20215 . 20347)) (20349 20515 (IL:SYMBOL-HASH-REPROBE 20349 . 20515)) (20517 20908 (
IL:ENTRY-HASH 20517 . 20908)) (20957 21303 (IL:COUNT-PACKAGE-HASHTABLE 20957 . 21303)) (21305 21477 (
IL:INTERNAL-SYMBOL-COUNT 21305 . 21477)) (21479 21597 (IL:EXTERNAL-SYMBOL-COUNT 21479 . 21597)) (21599
22755 (IL:ENTER-NEW-NICKNAMES 21599 . 22755)) (22757 23183 (IL:MAKE-PRIME-HASHTABLE-SIZE 22757 .
23183)) (23185 24834 (MAKE-PACKAGE 23185 . 24834)) (24835 39688 (XCL:DEFPACKAGE 24848 . 39686)) (39737
39959 (FIND-PACKAGE 39737 . 39959)) (39961 43322 (USE-PACKAGE 39961 . 43322)) (43324 43804 (
IN-PACKAGE 43324 . 43804)) (43806 44080 (XCL:PKG-GOTO 43806 . 44080)) (44082 45182 (RENAME-PACKAGE
44082 . 45182)) (45184 46635 (XCL:DELETE-PACKAGE 45184 . 46635)) (46637 49583 (EXPORT 46637 . 49583))
(49585 50828 (UNEXPORT 49585 . 50828)) (50830 52474 (IMPORT 50830 . 52474)) (52476 53756 (
SHADOWING-IMPORT 52476 . 53756)) (53758 54812 (SHADOW 53758 . 54812)) (54814 55469 (UNUSE-PACKAGE
54814 . 55469)) (55533 55839 (LIST-ALL-PACKAGES 55533 . 55839)) (55896 59579 (IL:ADD-SYMBOL 55896 .
59579)) (59581 63634 (IL:WITH-SYMBOL 59581 . 63634)) (63636 64939 (IL:INTERN* 63636 . 64939)) (64941
70773 (IL:FIND-SYMBOL* 64941 . 70773)) (70775 72226 (INTERN 70775 . 72226)) (72228 72806 (FIND-SYMBOL
72228 . 72806)) (72864 73760 (IL:NUKE-SYMBOL 72864 . 73760)) (73762 75876 (UNINTERN 73762 . 75876)) (
75878 77021 (IL:MOBY-UNINTERN 75878 . 77021)) (77080 77152 (IL:\\INDEXATOMPNAME 77080 . 77152)) (77264
77411 (IL:MAKE-DO-SYMBOLS-VARS 77264 . 77411)) (77413 78868 (IL:MAKE-DO-SYMBOLS-CODE 77413 . 78868))
(78872 79650 (DO-EXTERNAL-SYMBOLS 78872 . 79650)) (79652 80998 (XCL:DO-LOCAL-SYMBOLS 79652 . 80998)) (
81000 82116 (XCL:DO-INTERNAL-SYMBOLS 81000 . 82116)) (82118 84416 (DO-SYMBOLS 82118 . 84416)) (84418
86100 (DO-ALL-SYMBOLS 84418 . 86100)) (86168 86693 (FIND-ALL-SYMBOLS 86168 . 86693)) (86695 86974 (
IL:BRIEFLY-DESCRIBE-SYMBOL 86695 . 86974)) (86976 88490 (APROPOS 86976 . 88490)) (88492 90059 (
APROPOS-LIST 88492 . 90059)) (90163 91690 (IL:FIND-EXTERNAL-SYMBOL 90163 . 91690)) (91692 92212 (
IL:FIND-EXACT-SYMBOL 91692 . 92212)) (92214 92294 (IL:PACKAGE-NAME-AS-SYMBOL 92214 . 92294)) (92296
92445 (IL:\\FIND.PACKAGE.INTERNAL 92296 . 92445)))))
IL:STOP

Binary file not shown.