doc/concepts.tex: Make use of the concept of `inconsistent lists'.
[sod] / src / parser / package.lisp
index 6439f62..1ce0cfa 100644 (file)
@@ -7,7 +7,7 @@
 
 ;;;----- Licensing notice ---------------------------------------------------
 ;;;
-;;; This file is part of the Sensble Object Design, an object system for C.
+;;; This file is part of the Sensible Object Design, an object system for C.
 ;;;
 ;;; SOD is free software; you can redistribute it and/or modify
 ;;; it under the terms of the GNU General Public License as published by
 ;;; along with SOD; if not, write to the Free Software Foundation,
 ;;; Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-(cl:defpackage #:sod-parser
-  (:use #:common-lisp
-       #:sod-utilities
+(eval-when (:compile-toplevel :load-toplevel :execute)
+  (handler-bind ((warning #'muffle-warning))
+    (cl:defpackage #:sod-parser
+      (:use #:common-lisp
+           #:sod-utilities
 
-       ;; Try to find Gray streams support from somewhere.  ECL tucks them
-       ;; somewhere unhelpful.
-       #+sbcl #:sb-gray
-       #+cmu #:extensions
-       #+ecl #.(if (find-package '#:gray) '#:gray '#:si)
-       #+clisp #:gray
-       #-(or sbcl cmu ecl clisp) ...))
+           ;; Try to find Gray streams support from somewhere.  ECL tucks
+           ;; them somewhere unhelpful.
+           #.(or (car '(#+sbcl #:sb-gray
+                        #+cmu #:extensions
+                        #+ecl #.(if (find-package '#:gray) '#:gray '#:si)
+                        #+clisp #:gray))
+                 (error "Unsupported Lisp (can't find Gray streams)")))
+
+      ;; CMUCL's `extensions' package has lots of cruft.  Use our cruft
+      ;; instead.
+      #+cmu (:shadowing-import-from
+            #:sod-utilities #:symbolicate #:once-only))))
 
 ;;;----- That's all, folks --------------------------------------------------