home *** CD-ROM | disk | FTP | other *** search
- ;; packages-test
- ; -------------
-
- ;;testfile fuer kapitel 11
-
- (packagep *package*)
- T
- ;;list-all-packages und typtest
- (let ((p (list-all-packages)))
- (every #'packagep p))
- T
-
- ;;11.6 obligate Paketnamen u. deren Abkuerzungen
-
- ;;vorhandensein der standardpakete und find-package dafuer
-
- (and (find-package 'lisp) t)
- T
- (and (find-package 'user) t)
- T
- (and (find-package 'keyword) t)
- T
- (and (find-package 'system) t)
- T
- (and (find-package 'sys) t)
- T
- (and (find-package "sys") t)
- NIL
- (and (find-package "sys") t)
- NIL
- (and (find-package "system") t)
- NIL
- (and (find-package "SYSTEM") t)
- T
- (and (find-package "SYS") t)
- T
-
- ;nicknames
- (find "SYS" (package-nicknames 'sys) :test #'string=)
- "SYS"
-
- ;package-name
- (package-name 'sys)
- "SYSTEM"
- (package-name 'system)
- "SYSTEM"
- (package-name "USER")
- "USER"
- (package-name "SYS")
- "SYSTEM"
-
-
- ;;; 11.7 anlegen von paketen, export import ...
-
- ;package-funktionen mit nutzerdefinierten paketen
-
- ;falls test1 bereits existiert
- (and (find-package 'test1)
- (in-package 'test1)
- (rename-package (find-package 'test1) 'test1-old)
- nil)
- nil
-
- ;make-package
- (package-name (make-package 'test1 :nicknames '(t1 tst1)))
- "TEST1"
-
- ;package-use-list
- ;(package-use-list (find-package 'test1))
- ;("LISP")
-
-
- (and (in-package 'test1) T)
- T
-
-
- (export '(test1::test1-y test1::test1-z)(find-package
- '"TEST1"))
- T
-
- (export '(test1::test1-a test1::test1-b test1::test1-c) (find-package
- 'test1))
- T
-
- (setf test1-a -2
- test1-b -1
- test1-c 0
- test1-x 1
- test1-y 2
- test1-z 3)
- 3
-
- ;falls test2 bereits existiert
- (and
- (find-package 'test2)
- (rename-package (find-package 'test2) 'test2-old)
- nil)
- nil
-
- (package-name (in-package 'test2 :nicknames '("T2" "TST2") :use 'test1))
- "TEST2"
-
- (lisp:package-name (lisp:find-package 'test2))
- "TEST2"
-
- (lisp:package-name lisp:*package*)
- "TEST2"
-
- (lisp:import '(lisp:error) (lisp:find-package 'test2))
- LISP:T
-
- (lisp:and (lisp:boundp 'test1-x) test1-x)
- LISP:NIL
-
- (lisp:unintern 'test1-x)
- LISP:T
-
- (eval (read-from-string "(lisp:and (lisp:boundp 'test1:test1-x) test1:test1-x)"))
- #+XCL 1 #-XCL ERROR
-
- (lisp:and (lisp:boundp 'test1::test1-x) test1::test1-x)
- 1
-
- (lisp:and (lisp:boundp 'test1-y) test1-y)
- #+XCL LISP:NIL #-XCL 2
-
- (lisp:unintern 'test1-y)
- #+XCL LISP:T #-XCL LISP:NIL
-
- (lisp:and (lisp:boundp 'test1:test1-y) test1:test1-y)
- #+XCL ERROR #-XCL 2
-
- (lisp:and (lisp:boundp 'test1::test1-y) test1::test1-y)
- 2
-
- (lisp:import '(test1::test1-x test1::test1-y) (lisp:find-package 'test2))
- LISP:T
-
- (lisp:and (lisp:boundp 'test1-x) test1-x)
- 1
-
- (eval (read-from-string "(lisp:and (lisp:boundp 'test1:test1-x) test1:test1-x)"))
- #+XCL 1 #-XCL ERROR
-
- (lisp:and (lisp:boundp 'test1::test1-x) test1::test1-x)
- 1
-
- (lisp:and (lisp:boundp 'test1-z) test1-z)
- #+XCL LISP:NIL #-XCL 3
-
- (lisp:unintern 'test1-z (lisp:find-package 'test2))
- #+XCL LISP:T #-XCL LISP:NIL
-
- (lisp:and (lisp:boundp 'test1:test1-z) test1:test1-z)
- #+XCL ERROR #-XCL 3
-
- test1::test1-z
- 3
-
- (lisp:unexport '(test1::test1-x test1::test1-y) (lisp:find-package 'test1))
- LISP:T
-
- (lisp:and (lisp:boundp 'test1-x) test1-x)
- 1
-
- (lisp:and (lisp:boundp 'test1-y) test1-y)
- #+XCL LISP:NIL #-XCL 2
-
- (lisp:unintern 'test1-x (lisp:find-package 'test2))
- LISP:T
-
- (eval (read-from-string "test1:test1-x"))
- ERROR
-
- test1::test1-x
- 1
-
- test1-z
- 3
-
- (lisp:unintern 'test1-z (lisp:find-package 'test2))
- #+XCL LISP:T #-XCL LISP:NIL
-
- test1:test1-z
- 3
-
- test1::test1-z
- 3
-
- (lisp:import 'test1::test1-z (lisp:find-package 'test2))
- LISP:T
-
- test1-z
- 3
-
- test1:test1-z
- 3
-
- test1::test1-z
- 3
-
- test1-c
- #+XCL ERROR #-XCL 0
-
- (lisp:unintern 'test-c (lisp:find-package 'test2))
- LISP:T
-
- test1:test1-c
- 0
-
- test1::test1-c
- 0
-
- (lisp:import '(test1::test1-a test1::test1-b test1::test1-c)
- (lisp:find-package 'test2))
- LISP:T
-
- test1-c
- 0
-
- test1:test1-c
- 0
-
- test1::test1-c
- 0
-
- (lisp:eq 'test1-c 'test1::test1-c)
- LISP:T
-
- ;Ende nutzerdefinierte Pakete
-
- ;; test in standardmaessig vorgegebenen paketen
-
- ; export | import | unintern
-
- (lisp:and (lisp:in-package 'user) lisp:T)
- LISP:T
-
- (setf x 1 y 2 z 3)
- 3
-
- (and(in-package 'editor)T)
- T
-
- (unintern 'x)
- T
-
- (unintern 'y)
- T
-
- (unintern 'z)
- T
-
- user::x
- 1
-
- (eval (read-from-string "user:x"))
- ERROR
-
- x
- error
-
- (eq 'x 'user::x)
- NIL
-
- (unintern 'x)
- T
-
- (export '(user::x user::y) (find-package 'user))
- T
-
- user::x
- 1
-
- user:x
- 1
-
- x
- error
-
- (unintern 'x)
- T
-
- (import 'user:x (find-package 'editor))
- T
-
- x
- 1
-
- (eq 'x 'user::x)
- t
-
- (eq 'x 'user:x)
- t
-
- (eq 'editor::x 'user::x)
- t
-
- ;; unexport
-
- (and (in-package 'user) T)
- T
-
- (unexport 'y)
- T
-
- (and (in-package 'editor) T)
- T
-
- y
- ERROR
-
- (eval (read-from-string "user:y"))
- ERROR
-
- user::y
- 2
-
- ;; shadowing-import -- zunaechst ohne geerbte symbole!!
-
- (and (in-package 'user)(package-name *package*))
- "USER"
-
- (setf d 4 e 5 f 6 y 111 x 222)
- 222
-
- (export '(user::a user::b user::c user::y user::x) (find-package 'user))
- T
-
- (import '(user::a user::b user::c user::y) (find-package 'editor))
- ERROR
-
- (and (make-package 'shadow-test)(in-package 'shadow-test)t)
- T
-
- (setf x 'shadow-test)
- shadow-test
-
- (shadowing-import '(user::d user::e user::f user::x)(find-package 'shadow-test))
- T
-
- x
- 222
-
- (eq user::x x)
- T
-
- ; shadow
-
- (shadow '(e f) (find-package 'shadow-test))
- t
-
- (setf e 'shadow-test-e)
- shadow-test-e
-
- (eq 'e 'user::e)
- #+XCL nil #-XCL t
-
- e
- shadow-test-e
-
- (eval (read-from-string "user:e"))
- error
-
- user::e
- #+XCL 5 #-XCL shadow-test-e
-
- ; use-package | unuse-package
-
- (and (make-package 'use-test)(in-package 'use-test) t)
- t
-
- (use-package '(user))
- T
-
- user::d
- 4
-
- (eval (read-from-string "user:d"))
- #+XCL 4 #-XCL ERROR
-
- d
- ERROR
-
- (unuse-package 'user)
- T
-
- user::d
- 4
-
- (eval (read-from-string "user:d"))
- ERROR
-
- d
- ERROR
-
- ;make-package mit beutzung eines paketes, dass geerbte symbole enthaelt
-
- (and (make-package 'inherit :nicknames '(inh i) )(in-package 'inherit) T)
- T
-
- (setf a 'inherita b 'inheritb)
- inheritb
-
- (export '(a b) (find-package 'inherit))
- T
-
- (and (make-package 'inherit1 :use 'inherit)(in-package 'inherit1) T)
- T
-
- a
- inherit::inherita
-
- b
- inherit::inheritb
-
- (lisp:setf c 'inherit1c)
- inherit1c
-
- (lisp:and (lisp:make-package 'inherit2 :use 'inherit1)
- (lisp:in-package 'inherit2) lisp:T)
- LISP:T
-
- a
- #+XCL inherita #-XCL LISP:ERROR
-
- b
- #+XCL inheritb #-XCL LISP:ERROR
-
- c
- #+XCL inherit1c #-XCL LISP:ERROR
-
- (eval (read-from-string "(lisp:eq 'c 'inherit1:c)"))
- #+XCL LISP:T #-XCL LISP:ERROR
-
- (eval (read-from-string "(lisp:eq 'a 'inherit:a)"))
- #+XCL LISP:T #-XCL LISP:ERROR
-
- (eval (read-from-string "(lisp:eq 'b 'inherit:b)"))
- #+XCL LISP:T #-XCL LISP:ERROR
-
- (lisp:eq 'c 'inherit1::c)
- #+XCL LISP:T #-XCL LISP:NIL
-
- (lisp:eq 'a 'inherit::a)
- #+XCL LISP:T #-XCL LISP:NIL
-
- (lisp:eq 'b 'inherit::b)
- #+XCL LISP:T #-XCL LISP:NIL
-
- ;find-all-symbols
-
- (lisp:and (lisp:in-package 'user) lisp:T)
- LISP:T
-
- ; find-all-symbols fehlerhaft
- (and (member 'user::x (setf s (find-all-symbols 'x)))T)
- T
-
- (eval (read-from-string "(and (member 'editor:x s) t)"))
- #+XCL T #-XCL ERROR
-
- (and (member 'user::x (setf s1 (find-all-symbols 'x)))T)
- T
-
- (set-difference s s1)
- nil ;Ende Kommentar
-
- ;do-symbols | do-external-symbols | do-all-symbols
-
- (setf sym nil
- esym nil
- asym nil
- )
- nil
-
- (do-symbols (s (find-package 'user))(push (symbol-name s) sym))
- nil
-
- (do-external-symbols (s (find-package 'user))(push (symbol-name s) esym))
- nil
-
- (do-all-symbols (s)(push (symbol-name s) asym))
- nil
-
- (find "ESYM" sym :test #'string=)
- "ESYM"
-
- (find "ESYM" esym :test #'string=)
- nil
-
- (find "LAMBDA-LIST-KEYWORDS" esym :test #'string=)
- #+XCL "LAMBDA-LIST-KEYWORDS" #-XCL NIL
-
- ;(count "LAMBDA-LIST-KEYWORDS" asym :test #'string=)
- ;T ;viel zu lang
-
- ; modules | provide | (require nicht getestet !)
-
- (and *modules* T)
- #+XCL T #+CLISP NIL #-(or XCL CLISP) UNKNOWN
-
- (and (provide 'provide-test) t)
- t
-
- (find "PROVIDE-TEST" *modules* :test #'string=)
- "PROVIDE-TEST"
-
- (format t "End of file")
- nil
-
-