From f35dcfa0873d7cc1aac03612bcbf5de3fb90d64a Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Sat, 26 May 2012 20:46:10 -0400
Subject: [PATCH] Fix build.xcvb. Be more lenient in list-as-tokens: accept
 symbols and pathnames as first sub-token. Accept integers as
 simple-command-line-token's. Remove duplicate defmethod print-object.

---
 build.xcvb        | 4 +++-
 process-spec.lisp | 6 +++---
 run-sbcl.lisp     | 5 -----
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/build.xcvb b/build.xcvb
index 741485d..eb8fa2f 100644
--- a/build.xcvb
+++ b/build.xcvb
@@ -10,7 +10,9 @@ XCVB provides a scalable system to build large software in Lisp, featuring
 deterministic separate compilation and enforced locally-declared dependencies."
   :build-depends-on
   ("/asdf" "/xcvb/driver"
-   "/fare-utils" "/fare-matcher" "/fare-mop" "/fare-quasiquote-readtable"
+   "/alexandria"
+   "/fare-utils" "/fare-mop"
+   "/fare-matcher" ;; includes "/fare-quasiquote-readtable" 
    "/cl-ppcre" "/lambda-reader")
   :depends-on
   ("pkgdcl" "process-spec" "utilities" "macros" "host" "run")
diff --git a/process-spec.lisp b/process-spec.lisp
index 2eaf2b7..c15e6aa 100644
--- a/process-spec.lisp
+++ b/process-spec.lisp
@@ -201,7 +201,7 @@
       (*
        (error "Invalid process spec ~S" spec)))))
 
-(deftype simple-command-line-token () '(or string pathname keyword symbol character))
+(deftype simple-command-line-token () '(or string pathname keyword symbol character integer))
 
 (defun token-string (x)
   (with-safe-io-syntax ()
@@ -298,8 +298,6 @@
 	    (e (token-string x)))))
        (c (x)
          (match x
-           (`(,(of-type string) ,@*) ;; recurse
-             (map () #'p x))
            (`(+ ,@args) ;; recurse (explicit call)
              (map () #'p args))
            (`(* ,@args) ;; splice
@@ -308,6 +306,8 @@
            (`(quote ,@args) ;; quote
              (e (xcvb-driver:escape-command
                  (parse-command-spec-tokens args))))
+           (`(,(of-type simple-command-line-token) ,@*) ;; recurse
+             (map () #'p x))
            (*
             (error "Unrecognized command-spec token ~S" x)))))
     (p x)))
diff --git a/run-sbcl.lisp b/run-sbcl.lisp
index 9791ef4..97fdd8f 100644
--- a/run-sbcl.lisp
+++ b/run-sbcl.lisp
@@ -2,11 +2,6 @@
 
 (in-package :inferior-shell)
 
-(defmethod print-object ((result result) stream)
-  (print-unreadable-object (result stream :type t)
-    (with-slots (process predicate rest) result
-      (format stream "~A ~A ~A" process predicate rest))))
-
 (defmethod result-or ((r result))
   (not (zerop (sb-ext:process-exit-code (result-process r)))))
 
-- 
GitLab