More issues with asdf to asdf-utils switch. 0.592
authorFrancois-Rene Rideau <tunes@google.com>
Thu, 11 Oct 2012 13:52:23 +0000 (09:52 -0400)
committerFrancois-Rene Rideau <tunes@google.com>
Thu, 11 Oct 2012 13:52:23 +0000 (09:52 -0400)
driver: Be more robust when borking or otherwise dying.
TODO: ABCL fork hints.

build.xcvb
doc/TODO.rest
driver.lisp
lisp-invocation.lisp
xcvb.asd

index e81bf0a..7279145 100644 (file)
@@ -1,14 +1,4 @@
 ;;; -*- mode: lisp -*-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;                                                                  ;;;
-;;; Free Software available under an MIT-style license. See LICENSE  ;;;
-;;;                                                                  ;;;
-;;; Copyright (c) 2008-2011 ITA Software, Inc.  All rights reserved. ;;;
-;;; Copyright (c) 2012-2012 Google, Inc.  All rights reserved.       ;;;
-;;;                                                                  ;;;
-;;; Original authors: Francois-Rene Rideau, Spencer Brody            ;;;
-;;;                                                                  ;;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (module
  (:fullname "xcvb"
index 4aaa2be..631b0a9 100644 (file)
@@ -314,6 +314,9 @@ I propose our next steps should be as follows:
      a "load script" backend creating a simple load script.
      XCVB could be able to always fall back to some working mode.
 
+   + For ABCL on Unix, use fork?
+       https://github.com/kohsuke/akuma/blob/master/src/main/java/com/sun/akuma/Daemon.java
+
    + For an optimized XCVB managing its own processes, assume Linux
      with SBCL or CCL, maybe if not too hard CLISP.
 
index f8fa61b..a6fd408 100644 (file)
@@ -840,9 +840,11 @@ profile it under some profiling name when *PROFILING* is enabled."
   "Quits from the Lisp world, with the given exit status if provided.
 This is designed to abstract away the implementation specific quit forms."
   (when *debugging*
-    (format! *stderr* "~&Quitting with code ~A~%" code))
+    (ignore-errors
+     (format! *stderr* "~&Quitting with code ~A~%" code)))
   (when finish-output ;; essential, for ClozureCL, and for standard compliance.
-    (finish-outputs))
+    (ignore-errors
+     (finish-outputs)))
   #+(or abcl xcl) (ext:quit :status code)
   #+allegro (excl:exit code :quiet t)
   #+clisp (ext:quit code)
@@ -869,19 +871,22 @@ This is designed to abstract away the implementation specific quit forms."
 
 (defun die (format &rest arguments)
   "Die in error with some error message"
-  (format! *stderr* "~&")
-  (apply #'format! *stderr* format arguments)
-  (format! *stderr* "~&")
+  (ignore-errors
+   (format! *stderr* "~&")
+   (apply #'format! *stderr* format arguments)
+   (format! *stderr* "~&"))
   (quit 99))
 
 (defun bork (condition)
   "Depending on whether *DEBUGGING* is set, enter debugger or die"
-  (format! *stderr* "~&BORK:~%~A~%" condition)
+  (ignore-errors
+   (format! *stderr* "~&BORK:~%~A~%" condition))
   (cond
     (*debugging*
      (invoke-debugger condition))
     (t
-     (print-backtrace *stderr*)
+     (ignore-errors
+      (print-backtrace *stderr*))
      (die "~A" condition))))
 
 (defun call-with-coded-exit (thunk)
index 37db90e..99d2556 100644 (file)
   (when x
     (let ((n (native-namestring x)))
       (cond
-       ((asdf:absolute-pathname-p x) n)
+       ((asdf::absolute-pathname-p x) n)
        ((asdf::os-unix-p) (format nil "./~A" n))
        (t n)))))
 
index 0351046..2666d58 100644 (file)
--- a/xcvb.asd
+++ b/xcvb.asd
@@ -1,21 +1,11 @@
 ;;; -*- mode: lisp -*-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;                                                                  ;;;
-;;; Free Software available under an MIT-style license. See LICENSE  ;;;
-;;;                                                                  ;;;
-;;; Copyright (c) 2008-2011 ITA Software, Inc.  All rights reserved. ;;;
-;;; Copyright (c) 2012-2012 Google, Inc.  All rights reserved.       ;;;
-;;;                                                                  ;;;
-;;; Original authors: Spencer Brody, Francois-Rene Rideau            ;;;
-;;;                                                                  ;;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (in-package :asdf)
 #-asdf2 (error "XCVB requires ASDF 2")
 
 (let ((old-ver (asdf-version)))
   (load-system :asdf)
-  (let ((min "2.23")
+  (let ((min "2.21")
        (ver (asdf-version)))
     (unless (or (version-satisfies old-ver "2.014.8") ; first version to do magic upgrade
                (equal ver old-ver))