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))