chiark / gitweb /
net.lisp: Report some more useful errors.
[zone] / frontend.lisp
index 5a3bb7a84f2afc6d651ac04cbdee9628f92632ac..e170731fbd70f77ab60fc7e1c8fe100cfc4075e0 100644 (file)
@@ -23,7 +23,7 @@
 
 (defpackage #:zone.frontend
   (:use #:common-lisp #:mdw.sys-base #:optparse #:net #:zone
-       #+cmu #:mop
+       #+(or cmu clisp) #:mop
        #+sbcl #:sb-mop)
   (:export #:main))
 (in-package #:zone.frontend)
@@ -83,8 +83,11 @@ (define-program
                           (keyword opt-format
                                    (delete-duplicates
                                     (loop for method in
-                                          (generic-function-methods
-                                           #'zone:zone-write)
+                                          (append
+                                           (generic-function-methods
+                                            #'zone:zone-write)
+                                           (generic-function-methods
+                                            #'zone:zone-write-header))
                                           for specs =
                                           (method-specializers method)
                                           if (typep (car specs)
@@ -104,8 +107,9 @@ (defun main ()
               (let ((*package* (make-package "ZONE.SCRATCH"
                                              :use '(#:common-lisp
                                                     #:net #:zone))))
-                (load f :verbose nil :print nil :if-does-not-exist :error)
-                (delete-package *package*)))
+                (progv *zone-config* (mapcar #'symbol-value *zone-config*)
+                  (load f :verbose nil :print nil :if-does-not-exist :error)
+                  (delete-package *package*))))
             (zone-save opt-zones :format opt-format)))
       (with-unix-error-reporting ()
        (unless (option-parse-try
@@ -117,6 +121,7 @@ (defun main ()
          (die-usage)))
       (if opt-debug
          (run)
-         (with-unix-error-reporting () (run))))))
+         (with-unix-error-reporting () (run)))
+      t)))
 
 ;;;----- That's all, folks --------------------------------------------------