1 ;;; -*- Mode: Lisp; Syntax: Common-Lisp; Package: CL-USER; Encoding: utf-8; -*-
4 (defpackage :closure-system (:use #:asdf #:cl))
5 (in-package :closure-system)
7 ;;; Random early Lisp Implementation-specific fix ups:
9 (eval-when (compile eval load)
10 (pushnew :DEBUG-CLOSURE *features*))
13 ;;;; Optimization levels:
16 ;; FIXME: This is not exactly the right place!
18 ;; We choose to make them constants for read-time evaluation, since we
19 ;; want the presence of the :DEBUG-CLOSURE feature to override any
20 ;; (saftey 0) declaration.
22 (defparameter +optimize-very-fast+
23 '(optimize (safety #.(or #+:DEBUG-CLOSURE 3 0)) (speed 3) #+:DEBUG-CLOSURE (debug 3)))
25 (defparameter +optimize-very-fast-trusted+
26 '(optimize (safety #.(or #+:DEBUG-CLOSURE 3 0)) (speed 3) #+:DEBUG-CLOSURE (debug 3)))
28 (defparameter +optimize-fast+
29 '(optimize (safety #.(or #+:DEBUG-CLOSURE 3 1)) (speed 3) #+:DEBUG-CLOSURE (debug 3)))
31 (defparameter +optimize-normal+
32 '(optimize (safety #.(or #+:DEBUG-CLOSURE 3 2)) (speed 1) #+:DEBUG-CLOSURE (debug 3)))
34 (export '+optimize-very-fast-trusted+)
35 (export '+optimize-very-fast+)
36 (export '+optimize-fast+)
37 (export '+optimize-normal+)
39 ;; Finally declaim normal optimization level
40 (declaim #.+optimize-normal+)
42 (defclass closure-source-file (cl-source-file) ())
45 (defmethod perform :around ((o compile-op) (s closure-source-file))
46 ;; shut up already. Correctness first.
47 (handler-bind ((sb-ext:compiler-note #'muffle-warning))
50 ;;; Convenience feature: will stop it from breaking into the debugger
51 ;;; under sbcl for full WARNINGs (better to fix the warnings :-).
53 (defmethod perform :around ((o compile-op) s)
54 (setf (operation-on-failure o) :warn)
55 (call-next-method o s))
57 (defpackage :glisp (:use))
59 :pathname (merge-pathnames "src/glisp/"
60 (make-pathname :name nil :type nil
61 :defaults *load-truename*))
62 :default-component-class closure-source-file
63 :depends-on (:cxml ;; uncomment this if we actually need gray streams:
64 ;; :trivial-gray-streams
65 #+sbcl :sb-bsd-sockets)
70 #+(AND :CMU (NOT SCL)) "dep-cmucl"
75 #+OPENMCL "dep-openmcl"
76 #-(OR sbcl CLISP CMU ALLEGRO GCL OPENMCL) #.(error "Configure!"))
78 :depends-on (dependent))
80 :depends-on ("package" dependent))
82 :depends-on ("package" dependent "util"))))
85 (asdf:defsystem closure
94 :default-component-class closure-source-file
102 ((:file "clx-patch")))
116 ;; Early package definitions
120 ;; Closure Protocol Declarations first
127 (:file "css-support")))
147 ((:file "package" :depends-on ("url"))
148 (:file "common-parse" :depends-on ("package"))
149 (:file "mime" :depends-on ("package"))
150 (:file "url" :depends-on ())
151 (:file "http" :depends-on ("package" "url"))
152 (:file "ftp" :depends-on ("package" "url")) ))
157 :depends-on (clex lalr)
160 (:file "pt" :depends-on ("package"))
161 (:file "sgml-dtd" :depends-on ("package"))
162 (:file "sgml-parse" :depends-on ("package" "sgml-dtd" "pt")) ))
164 ;; More Random Utilities
168 ((:file "character-set")
174 :depends-on (net ;needs URL package
179 (:file "css-support")
181 (:file "css-selector")
183 (:file "css-properties")))
193 (:file "device") ;Declaration of the device abstraction
194 (:file "fonts") ;Font Databases
203 (:file "hyphenation") ;Hyphenation of words
204 (:file "clim-draw") ;some drawing "primitives" for the clim device
208 (:file "clim-device")))
214 ((:file "html-style")))
221 ((:file "gui") (:file "clue-gui")
222 (:file "dce-and-pce") (:file "clue-input")
223 (:file "clim-gui")) )
234 ((:file "resources")) )))
236 (in-package :cl-user)
238 (import '(CLOSURE-SYSTEM:+OPTIMIZE-VERY-FAST+
239 CLOSURE-SYSTEM:+OPTIMIZE-NORMAL+
240 CLOSURE-SYSTEM:+OPTIMIZE-VERY-FAST-TRUSTED+
241 CLOSURE-SYSTEM:+OPTIMIZE-FAST+))
242 (export '(CLOSURE-SYSTEM:+OPTIMIZE-VERY-FAST+
243 CLOSURE-SYSTEM:+OPTIMIZE-NORMAL+
244 CLOSURE-SYSTEM:+OPTIMIZE-VERY-FAST-TRUSTED+
245 CLOSURE-SYSTEM:+OPTIMIZE-FAST+))