package.lisp - clic - Clic is an command line interactive client for gopher written in Common LISP
(HTM) git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
package.lisp (3077B)
---
1 #+xcvb (module ())
2
3 (in-package :cl-user)
4
5 #+:abcl
6 (eval-when (:compile-toplevel :load-toplevel :execute)
7 (require :gray-streams))
8
9 #+(or cmu genera)
10 (eval-when (:compile-toplevel :load-toplevel :execute)
11 (require :gray-streams))
12
13 #+allegro
14 (eval-when (:compile-toplevel :load-toplevel :execute)
15 (unless (fboundp 'excl:stream-write-string)
16 (require "streamc.fasl")))
17
18 #+(or ecl clasp)
19 (eval-when (:compile-toplevel :load-toplevel :execute)
20 (gray::redefine-cl-functions))
21
22 (macrolet
23 ((frob ()
24 (let ((gray-class-symbols
25 '(#:fundamental-stream
26 #:fundamental-input-stream #:fundamental-output-stream
27 #:fundamental-character-stream #:fundamental-binary-stream
28 #:fundamental-character-input-stream #:fundamental-character-output-stream
29 #:fundamental-binary-input-stream #:fundamental-binary-output-stream))
30 (gray-function-symbols
31 '(#:stream-read-char
32 #:stream-unread-char #:stream-read-char-no-hang
33 #:stream-peek-char #:stream-listen #:stream-read-line
34 #:stream-clear-input #:stream-write-char #:stream-line-column
35 #:stream-start-line-p #:stream-write-string #:stream-terpri
36 #:stream-fresh-line #:stream-finish-output #:stream-force-output
37 #:stream-clear-output #:stream-advance-to-column
38 #:stream-read-byte #:stream-write-byte)))
39 `(progn
40
41 (defpackage impl-specific-gray
42 (:use :cl)
43 (:import-from
44 #+sbcl :sb-gray
45 #+allegro :excl
46 #+cmu :ext
47 #+(or clisp ecl mocl clasp) :gray
48 #+openmcl :ccl
49 #+lispworks :stream
50 #+(or abcl genera) :gray-streams
51 #-(or sbcl allegro cmu clisp openmcl lispworks ecl clasp abcl mocl genera) ...
52 ,@gray-class-symbols
53 ,@gray-function-symbols)
54 (:export
55 ,@gray-class-symbols
56 ,@gray-function-symbols))
57
58 (defpackage :trivial-gray-streams
59 (:use :cl)
60 (:import-from #:impl-specific-gray
61 ;; We import and re-export only
62 ;; function symbols;
63 ;; But we define our own classes
64 ;; mirroring the gray class hierarchy
65 ;; of the lisp implementation (this
66 ;; is necessary to define our methods
67 ;; for particular generic functions)
68 ,@gray-function-symbols)
69 (:export ,@gray-class-symbols
70 ,@gray-function-symbols
71 ;; extension functions
72 #:stream-read-sequence
73 #:stream-write-sequence
74 #:stream-file-position
75 ;; deprecated
76 #:trivial-gray-stream-mixin))))))
77 (frob))