diff --git a/build.xcvb b/build.xcvb index 741485d3bb1cef903f550396ce870b5d1a721d91..eb8fa2fbf72c1b7245913c3579404ec6ba184375 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 2eaf2b72c83363a052edffcbe8c54bf90e975334..c15e6aaddc5a267e8243d200c9eda2ad476db683 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 9791ef4130f444f3796abded5e3a444a7fb08fc7..97fdd8f0ff67f8be275ca2f061ea3df74ef1f993 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)))))