1;; -*- Lisp -*- vim:filetype=lisp
2;; packages-test
3;; -------------
4
5;;test file for chapter 11
6
7(packagep  *package*)
8T
9
10;; `list-all-packages' and type test
11(every #'packagep (list-all-packages))
12T
13
14;;11.6 obligate Paketnamen u. deren Abkuerzungen
15
16;;vorhandensein der standardpakete und find-package dafuer
17
18(and (find-package 'lisp) t)
19T
20(and (find-package 'user) t)
21T
22(and (find-package 'keyword) t)
23T
24(and (find-package 'system) t)
25T
26(and (find-package 'sys) t)
27T
28(and (find-package "sys") t)
29NIL
30(and (find-package "sys") t)
31NIL
32(and (find-package "system") t)
33NIL
34(and (find-package "SYSTEM") t)
35T
36(and (find-package "SYS") t)
37T
38
39(eq (find-package (find-package "CL")) (find-package "CL"))
40t
41
42(defparameter cl-user::*saved-package* *package*) cl-user::*saved-package*
43
44;nicknames
45(find "SYS" (package-nicknames 'sys) :test #'string=)
46"SYS"
47
48;package-name
49(package-name 'sys)
50"SYSTEM"
51(package-name 'system)
52"SYSTEM"
53(package-name "COMMON-LISP-USER")
54"COMMON-LISP-USER"
55(package-name "SYS")
56"SYSTEM"
57
58(let ((p (make-package #\p)))
59  (prog1 (eq p (find-package #\p))
60    (delete-package p)))
61t
62
63(progn (make-package #\p) (delete-package #\p))
64T
65
66;;; 11.7 anlegen von paketen, export import ...
67
68  ;package-funktionen mit nutzerdefinierten paketen
69
70;; make-package
71(package-name (make-package 'pack11-p1 :nicknames '(t1 tst1)))
72"PACK11-P1"
73
74(package-name (rename-package (find-package "PACK11-P1")
75                              (find-package "PACK11-P1")))
76"PACK11-P1"
77
78;package-use-list
79;(package-use-list (find-package 'test1))
80;("LISP")
81
82
83(and (in-package "PACK11-P1") T)
84T
85
86
87(export '(pack11-p1::test1-y pack11-p1::test1-z)
88        (find-package '"PACK11-P1"))
89T
90
91(export '(pack11-p1::test1-a pack11-p1::test1-b pack11-p1::test1-c)
92        (find-package 'pack11-p1))
93T
94
95(setf test1-a -2
96      test1-b -1
97      test1-c  0
98      test1-x  1
99      test1-y  2
100      test1-z  3)
1013
102
103(package-name (defpackage pack11-p2
104                (:nicknames "PACK11-T2" "PACK11-TST2")
105                (:use pack11-p1)))
106"PACK11-P2"
107
108(progn (in-package "PACK11-P2") t)
109LISP:T
110
111(cl:package-name (cl:find-package 'pack11-p2))
112"PACK11-P2"
113
114(cl:package-name cl:*package*)
115"PACK11-P2"
116
117(cl:import '(cl:error) (cl:find-package 'pack11-p2))
118CL:T
119
120(cl:and (cl:boundp 'test1-x) test1-x)
121CL:NIL
122
123(cl:unintern 'test1-x)
124CL:T
125
126(eval (read-from-string
127       "(cl:and (cl:boundp 'pack11-p1:test1-x) pack11-p1:test1-x)"))
128#+XCL 1 #-XCL ERROR
129
130(cl:and (cl:boundp 'pack11-p1::test1-x) pack11-p1::test1-x)
1311
132
133(cl:and (cl:boundp 'test1-y) test1-y)
134#+XCL CL:NIL #-XCL 2
135
136(cl:unintern 'test1-y)
137#+XCL CL:T #-XCL CL:NIL
138
139(cl:and (cl:boundp 'pack11-p1:test1-y) pack11-p1:test1-y)
140#+XCL ERROR #-XCL 2
141
142(cl:and (cl:boundp 'pack11-p1::test1-y) pack11-p1::test1-y)
1432
144
145(cl:import '(pack11-p1::test1-x pack11-p1::test1-y)
146           (cl:find-package 'pack11-p2))
147CL:T
148
149(cl:and (cl:boundp 'test1-x) test1-x)
1501
151
152(eval (read-from-string
153       "(cl:and (cl:boundp 'pack11-p1:test1-x) pack11-p1:test1-x)"))
154#+XCL 1 #-XCL ERROR
155
156(cl:and (cl:boundp 'pack11-p1::test1-x) pack11-p1::test1-x)
1571
158
159(cl:and (cl:boundp 'test1-z) test1-z)
160#+XCL CL:NIL #-XCL 3
161
162(cl:unintern 'test1-z (cl:find-package 'pack11-p2))
163#+XCL CL:T #-XCL CL:NIL
164
165(cl:and (cl:boundp 'pack11-p1:test1-z) pack11-p1:test1-z)
166#+XCL ERROR #-XCL 3
167
168pack11-p1::test1-z
1693
170
171(cl:unexport  '(pack11-p1::test1-x pack11-p1::test1-y)
172              (cl:find-package 'pack11-p1))
173CL:T
174
175(cl:and (cl:boundp 'test1-x) test1-x)
1761
177
178(cl:and (cl:boundp 'test1-y) test1-y)
179#+XCL CL:NIL #-XCL 2
180
181(cl:unintern 'test1-x (cl:find-package 'pack11-p2))
182CL:T
183
184(eval (read-from-string "pack11-p1:test1-x"))
185ERROR
186
187pack11-p1::test1-x
1881
189
190test1-z
1913
192
193(cl:unintern 'test1-z (cl:find-package 'pack11-p2))
194#+XCL CL:T #-XCL CL:NIL
195
196pack11-p1:test1-z
1973
198
199pack11-p1::test1-z
2003
201
202(cl:import 'pack11-p1::test1-z (cl:find-package 'pack11-p2))
203CL:T
204
205test1-z
2063
207
208pack11-p1:test1-z
2093
210
211pack11-p1::test1-z
2123
213
214test1-c
215#+XCL ERROR #-XCL 0
216
217(cl:unintern 'test-c (cl:find-package 'pack11-p2))
218CL:T
219
220pack11-p1:test1-c
2210
222
223pack11-p1::test1-c
2240
225
226(cl:import '(pack11-p1::test1-a pack11-p1::test1-b pack11-p1::test1-c)
227             (cl:find-package 'pack11-p2))
228CL:T
229
230test1-c
2310
232
233pack11-p1:test1-c
2340
235
236pack11-p1::test1-c
2370
238
239(cl:eq 'test1-c 'pack11-p1::test1-c)
240CL:T
241
242  ;Ende nutzerdefinierte Pakete
243
244;; test in standardmaessig vorgegebenen paketen
245
246; export | import | unintern
247
248(cl:packagep (cl:make-package "PACK11")) cl:T
249
250(cl:and (cl:in-package "PACK11") cl:T)
251CL:T
252
253(setf x 1 y 2 z 3)
2543
255
256(and (defpackage "PACK11-EDITOR") T)
257T
258
259(and (in-package "PACK11-EDITOR") T)
260T
261
262(unintern 'x)
263T
264
265(unintern 'y)
266T
267
268(unintern 'z)
269T
270
271pack11::x
2721
273
274(eval (read-from-string "pack11:x"))
275ERROR
276
277x
278error
279
280(eq 'x 'pack11::x)
281NIL
282
283(unintern 'x)
284T
285
286(export '(pack11::x pack11::y) (find-package 'pack11))
287T
288
289pack11::x
2901
291
292pack11:x
2931
294
295x
296error
297
298(unintern 'x)
299T
300
301(import 'pack11:x (find-package 'pack11-editor))
302T
303
304x
3051
306
307(eq 'x 'pack11::x)
308t
309
310(eq 'x 'pack11:x)
311t
312
313(eq 'pack11-editor::x 'pack11::x)
314t
315
316;; unexport
317
318(and (in-package "PACK11") T)
319T
320
321(unexport 'y)
322T
323
324(and (in-package "PACK11-EDITOR") T)
325T
326
327y
328ERROR
329
330(eval (read-from-string "pack11:y"))
331ERROR
332
333pack11::y
3342
335
336(and (in-package "PACK11") (package-name *package*)) "PACK11"
337
338(ext:appease-cerrors
339 (let ((*package* "not a package - just a string"))
340   (multiple-value-list (read-from-string "READ-FROM-STRING"))))
341(READ-FROM-STRING 16)
342
343;; http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Issues/iss194-writeup.html
344(let ((tmp-sym (make-symbol "FOO"))
345      (old-sym (find-symbol "FOO" "PACK11")))
346  (when old-sym (unintern old-sym "PACK11"))
347  (list (import tmp-sym "PACK11")
348        (package-name (symbol-package tmp-sym))
349        (unintern tmp-sym "PACK11")
350        (find-symbol "FOO" "PACK11")))
351(T "PACK11" T NIL)
352
353;; shadowing-import -- zunaechst ohne geerbte symbole!!
354
355(setf d 4 e 5 f 6 y 111 x 222)
356222
357
358(export '(pack11::a pack11::b pack11::c pack11::y pack11::x)
359        (find-package 'pack11))
360T
361
362(import '(pack11::a pack11::b pack11::c pack11::y)
363        (find-package 'pack11-editor))
364ERROR
365
366(and (make-package 'pack11-shadow) (in-package "PACK11-SHADOW") t)
367T
368
369(setf x 'pack11-shadow)
370pack11-shadow
371
372(shadowing-import '(pack11::d pack11::e pack11::f pack11::x)
373                  (find-package 'pack11-shadow))
374T
375
376x
377222
378
379(eq pack11::x x)
380T
381
382; shadow
383
384(shadow '(e #\F) (find-package 'pack11-shadow))
385t
386
387(setf e 'pack11-shadow-e)
388pack11-shadow-e
389
390(eq 'e 'pack11::e)
391#+XCL nil #-XCL t
392
393e
394pack11-shadow-e
395
396(eval (read-from-string "pack11:e"))
397error
398
399pack11::e
400#+XCL 5 #-XCL pack11-shadow-e
401
402;; unintern a shadowing symbol
403(progn
404  (setq pg3 (make-package "PACK11-G3")
405        pg1 (make-package "PACK11-G1" :use (list pg3))
406        pg2 (make-package "PACK11-G2" :use (list pg3))
407        ph (make-package "PACK11-H" :use (list pg1 pg2)))
408  (shadow "FOO" ph))
409t
410
411(setq gsym (intern "FOO" pg3))   pack11-g3::foo
412
413(export gsym pg3)                t
414(export gsym pg1)                t
415(export gsym pg2)                t
416
417(multiple-value-list (setf (values sym access) (find-symbol "FOO" ph)))
418(pack11-h::foo :internal)
419
420(package-shadowing-symbols ph)   (pack11-h::foo)
421(eq sym gsym)                    nil
422(equal (symbol-package sym) ph)  t
423
424(unintern sym ph)             t
425
426#+CLISP (setf (ext:package-lock ph) t) #+CLISP t
427
428#+CLISP (symbol-name (ext:muffle-cerrors (read-from-string "PACK11-H::QUUX")))
429#+CLISP "QUUX"
430
431#+CLISP (setf (ext:package-lock ph) nil) #+CLISP nil
432
433(delete-package ph)           t
434(delete-package pg1)          t
435(delete-package pg2)          t
436(delete-package pg3)          t
437(delete-package "PACK11-P2")  t
438(delete-package "PACK11-P1")  t
439
440; use-package | unuse-package
441
442(and (make-package 'pack11-use) (in-package "PACK11-USE") t)
443t
444
445(use-package '(pack11))
446T
447
448pack11::d
4494
450
451(eval (read-from-string "pack11:d"))
452#+XCL 4 #-XCL ERROR
453
454d
455ERROR
456
457(unuse-package 'pack11)
458T
459
460pack11::d
4614
462
463(eval (read-from-string "pack11:d"))
464ERROR
465
466d
467ERROR
468
469;make-package mit beutzung eines paketes, dass geerbte symbole enthaelt
470
471(and (make-package 'pack11-inherit :nicknames '(inh i))
472     (in-package "PACK11-INHERIT") T)
473T
474
475(setf a 'inherita b 'inheritb)
476inheritb
477
478(export '(a b) (find-package 'pack11-inherit))
479T
480
481(and (make-package 'pack11-inherit1 :use '(pack11-inherit))
482     (in-package "PACK11-INHERIT1") T)
483T
484
485a
486pack11-inherit::inherita
487
488b
489pack11-inherit::inheritb
490
491(cl:setf c 'inherit1c)
492inherit1c
493
494(cl:and (cl:make-package 'pack11-inherit2 :use '(pack11-inherit1))
495        (cl:in-package "PACK11-INHERIT2") cl:T)
496CL:T
497
498a
499#+XCL inherita #-XCL CL:ERROR
500
501b
502#+XCL inheritb #-XCL CL:ERROR
503
504c
505#+XCL inherit1c #-XCL CL:ERROR
506
507(eval (read-from-string "(cl:eq 'c 'pack11-inherit1:c)"))
508#+XCL CL:T #-XCL CL:ERROR
509
510(eval (read-from-string "(cl:eq 'a 'pack11-inherit:a)"))
511#+XCL CL:T #-XCL CL:ERROR
512
513(eval (read-from-string "(cl:eq 'b 'pack11-inherit:b)"))
514#+XCL CL:T #-XCL CL:ERROR
515
516(cl:eq 'c 'pack11-inherit1::c)
517#+XCL CL:T #-XCL CL:NIL
518
519(cl:eq 'a 'pack11-inherit::a)
520#+XCL CL:T #-XCL CL:NIL
521
522(cl:eq 'b 'pack11-inherit::b)
523#+XCL CL:T #-XCL CL:NIL
524
525;find-all-symbols
526
527(cl:and (cl:in-package "PACK11") cl:T)
528CL:T
529
530(delete-package "PACK11-EDITOR")   T
531(delete-package "PACK11-SHADOW")   T
532(delete-package "PACK11-USE")      T
533(delete-package "PACK11-INHERIT2") T
534(delete-package "PACK11-INHERIT1") T
535(delete-package "PACK11-INHERIT")  T
536
537; find-all-symbols fehlerhaft
538(and (member 'pack11::x (setf s (find-all-symbols 'x)))T)
539T
540
541(eval (read-from-string "(and (member 'pack11-editor:x s) t)"))
542#+XCL T #-XCL ERROR
543
544(and (member 'pack11::x (setf s1 (find-all-symbols 'x)))T)
545T
546
547(set-difference s s1)
548nil                              ;Ende Kommentar
549
550;do-symbols | do-external-symbols | do-all-symbols
551
552(setf sym nil
553      esym nil
554      asym nil
555)
556nil
557
558(do-symbols (s (find-package 'pack11))
559  (push (symbol-name s) sym))
560nil
561
562(do-external-symbols (s (find-package 'pack11))
563  (push (symbol-name s) esym))
564nil
565
566(do-all-symbols (s)(push (symbol-name s) asym))
567nil
568
569(find "ESYM" sym :test #'string=)
570"ESYM"
571
572(find "ESYM" esym :test #'string=)
573nil
574
575(find "LAMBDA-LIST-KEYWORDS" esym :test #'string=)
576#+XCL "LAMBDA-LIST-KEYWORDS" #-XCL NIL
577
578;(count "LAMBDA-LIST-KEYWORDS" asym :test #'string=)
579;T                                                  ;viel zu lang
580
581; modules | provide | (require nicht getestet !)
582
583(and *modules* T)
584#+(or XCL ECL LISPWORKS) T
585;; boot linking set contains only "clisp"; base and full - more
586#+CLISP #.(not (equal (ext:module-info) '("clisp")))
587#-(or XCL CLISP ECL LISPWORKS) UNKNOWN
588
589(let ((*modules* *modules*))
590  (provide 'provide-test)
591  (find "PROVIDE-TEST" *modules* :test #'string=))
592"PROVIDE-TEST"
593
594;; from ansi-tests
595(unless (member "z" *modules* :test #'string=)
596  (let ((*modules* *modules*)) (provide "z") (require #\z) nil))
597NIL
598
599(let ((*modules* *modules*))
600  (provide :ABAZONK)
601  (not (member :ABAZONK *modules* :test #'string=)))
602NIL
603
604;; <HS>/Body/mac_with-package-iterator.html
605(defun test-package-iterator (package)
606  (unless (packagep package)
607    (setq package (find-package package)))
608  (let ((all-entries '())
609        (generated-entries '()))
610    (do-symbols (x package)
611      (multiple-value-bind (symbol accessibility)
612          (find-symbol (symbol-name x) package)
613        (push (list symbol accessibility) all-entries)))
614    (with-package-iterator (generator-fn package
615                                         :internal :external :inherited)
616      (loop
617        (multiple-value-bind (more? symbol accessibility pkg)
618            (generator-fn)
619          (declare (ignore pkg))
620          (unless more? (return))
621          (let ((l (multiple-value-list (find-symbol (symbol-name symbol)
622                                                     package))))
623            (unless (equal l (list symbol accessibility))
624              (error "Symbol ~S not found as ~S in package ~A [~S]"
625                     symbol accessibility (package-name package) l))
626            (push l generated-entries)))))
627    (unless (and (subsetp all-entries generated-entries :test #'equal)
628                 (subsetp generated-entries all-entries :test #'equal))
629      (error "Generated entries and Do-Symbols entries do not correspond"))
630    t))
631test-package-iterator
632
633(compile 'test-package-iterator) test-package-iterator
634
635(test-package-iterator :common-lisp-user) t
636
637(test-package-iterator :common-lisp)      t
638
639(progn ; from gcl/ansi-test
640(defconstant +fail-count-limit+ 20)
641(defmacro test-with-package-iterator (package-list-expr &rest symbol-types)
642  "Build an expression that tests the with-package-iterator form."
643  (let ((name (gensym))
644        (cht-var (gensym))
645        (pkg-list-var (gensym)))
646    `(let ((,cht-var (make-hash-table))
647           (,pkg-list-var ,package-list-expr)
648           (fail-count 0))
649       (with-package-iterator (,name ,pkg-list-var
650                                     ,@(copy-list symbol-types))
651         ;; For each symbol, check that name is returning appropriate things
652         (loop
653           (block fail
654             (multiple-value-bind (more sym access pkg)
655                 (,name)
656               (unless more (return nil))
657               (setf (gethash sym ,cht-var) t)  ;; note presence of symbol
658               ;; Check that its access status is in the list,
659               ;;  that pkg is a package,
660               ;;  that the symbol is in the package,
661               ;;  and that (in the package) it has the correct access type
662               (unless (member access (quote ,(copy-list symbol-types)))
663                 (unless (> fail-count +fail-count-limit+)
664                   (format t "Bad access type: ~S ==> ~A~%" sym access))
665                 (when (= fail-count +fail-count-limit+)
666                   (format t "Further messages suppressed~%"))
667                 (incf fail-count)
668                 (return-from fail nil))
669
670               (unless (packagep pkg)
671                 (unless (> fail-count +fail-count-limit+)
672                   (format t "Not a package: ~S ==> ~S~%" sym pkg))
673                 (when (= fail-count +fail-count-limit+)
674                   (format t "Further messages suppressed~%"))
675                 (incf fail-count)
676                 (return-from fail nil))
677               (multiple-value-bind (sym2 access2)
678                   (find-symbol (symbol-name sym) pkg)
679                 (unless (or (eq sym sym2)
680                             (member sym2 (package-shadowing-symbols pkg)))
681                   (unless (> fail-count +fail-count-limit+)
682                     (format t "Not same symbol: ~S ~S~%" sym sym2))
683                   (when (= fail-count +fail-count-limit+)
684                     (format t "Further messages suppressed~%"))
685                   (incf fail-count)
686                   (return-from fail nil))
687                 (unless (eq access access2)
688                   (unless (> fail-count +fail-count-limit+)
689                     (format t "Not same access type: ~S ~S ~S~%"
690                             sym access access2))
691                   (when (= fail-count +fail-count-limit+)
692                     (format t "Further messages suppressed~%"))
693                   (incf fail-count)
694                   (return-from fail nil)))))))
695       ;; now, check that each symbol in each package has
696       ;; been properly found
697       (loop
698         for p in ,pkg-list-var do
699           (block fail
700             (do-symbols (sym p)
701               (multiple-value-bind (sym2 access)
702                   (find-symbol (symbol-name sym) p)
703                 (unless (eq sym sym2)
704                   (unless (> fail-count +fail-count-limit+)
705                     (format t "Not same symbol (2): ~S ~S~%"
706                             sym sym2))
707                   (when (= fail-count +fail-count-limit+)
708                     (format t "Further messages suppressed~%"))
709                   (incf fail-count)
710                   (return-from fail nil))
711                 (unless (or (not (member access
712                                          (quote ,(copy-list symbol-types))))
713                             (gethash sym ,cht-var))
714                   (format t "Symbol not found: ~S~%" sym)
715                   (incf fail-count)
716                   (return-from fail nil))))))
717       (or (zerop fail-count) fail-count))))
718(defun with-package-iterator-internal (packages)
719  (test-with-package-iterator packages :internal))
720(compile 'with-package-iterator-internal)
721(defun with-package-iterator-external (packages)
722  (test-with-package-iterator packages :external))
723(compile 'with-package-iterator-external)
724(defun with-package-iterator-inherited (packages)
725  (test-with-package-iterator packages :inherited))
726(compile 'with-package-iterator-inherited)
727(defun with-package-iterator-all (packages)
728  (test-with-package-iterator packages :internal :external :inherited))
729(compile 'with-package-iterator-all)
730t)
731T
732
733(with-package-iterator-internal (list (find-package "COMMON-LISP-USER"))) t
734(with-package-iterator-external (list (find-package "COMMON-LISP-USER"))) t
735(with-package-iterator-inherited (list (find-package "COMMON-LISP-USER"))) t
736(with-package-iterator-all (list (find-package "COMMON-LISP-USER"))) t
737
738(with-package-iterator-internal (list (find-package "COMMON-LISP"))) t
739(with-package-iterator-external (list (find-package "COMMON-LISP"))) t
740(with-package-iterator-inherited (list (find-package "COMMON-LISP"))) t
741(with-package-iterator-all (list (find-package "COMMON-LISP"))) t
742
743(with-package-iterator-internal
744 (list (find-package "COMMON-LISP-USER") (find-package "COMMON-LISP"))) t
745(with-package-iterator-external
746 (list (find-package "COMMON-LISP-USER") (find-package "COMMON-LISP"))) t
747(with-package-iterator-inherited
748 (list (find-package "COMMON-LISP-USER") (find-package "COMMON-LISP"))) t
749(with-package-iterator-all
750 (list (find-package "COMMON-LISP-USER") (find-package "COMMON-LISP"))) t
751
752(map nil #'print (list-all-packages))
753nil
754
755#+CLISP
756(ext:appease-cerrors
757 (let (SYSTEM::*COUTPUT-STREAM*)
758   (setq SYSTEM::*COUTPUT-STREAM* 123)))
759#+CLISP 123
760
761#+CLISP
762(ext:package-case-sensitive-p
763 (make-package "PACK11-PACKAGE-CASE" :case-sensitive t :case-inverted t))
764#+CLISP
765T
766
767#+CLISP
768(ext:package-case-inverted-p
769 (defpackage "PACK11-PACKAGE-CASE" (:case-sensitive nil) (:case-inverted nil)))
770#+CLISP
771NIL
772
773#+CLISP
774(setf (ext:package-case-inverted-p "PACK11-PACKAGE-CASE") t
775      (ext:package-case-sensitive-p "PACK11-PACKAGE-CASE") t)
776#+CLISP
777T
778
779#+CLISP
780(let ((*break-on-signals* 'warning))
781  (ext:package-case-sensitive-p
782    (defpackage "PACK11-PACKAGE-CASE" (:case-inverted t) (:case-sensitive t))))
783#+CLISP
784T
785
786#+CLISP
787(delete-package "PACK11-PACKAGE-CASE")
788#+CLISP
789T
790
791(progn (setq *package* cl-user::*saved-package*) (delete-package "PACK11"))
792T
793
794;; https://sourceforge.net/p/clisp/bugs/389/
795(let ((f "pack11-tst.lisp"))
796  (unwind-protect
797       (progn
798         (with-open-file (out f :direction :output)
799           (princ ";; test non-top-level defpackage compilation
800\(defmacro my-defpackage (name use)
801  `(eval-when (:compile-toplevel :load-toplevel :execute)
802     (let ((pkg (defpackage ,name (:use))))
803       (use-package '(,use) pkg)
804       pkg)))
805\(my-defpackage #:pack11-bar #:cl)
806\(in-package #:pack11-bar)
807\(defun baz (x) x)
808" out))
809         (list (cdr (multiple-value-list (compile-file f)))
810               (equal (package-use-list '#:pack11-bar)
811                      (list (find-package '#:cl)))))
812    (delete-package '#:pack11-bar)
813    (post-compile-file-cleanup f)))
814((NIL NIL) T)
815
816; Clean up.
817(symbol-cleanup 'cl-user::*saved-package*)
818NIL
819