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