diff --git a/asdf.asd b/asdf.asd index 86c779a330a1807538bc80a8e9b0f95f246875f2..624802b55a59d32097b33ef0f5a1658cdfe393b1 100644 --- a/asdf.asd +++ b/asdf.asd @@ -74,7 +74,7 @@ :licence "MIT" :description "Another System Definition Facility" :long-description "ASDF builds Common Lisp software organized into defined systems." - :version "3.0.2.7" ;; to be automatically updated by make bump-version + :version "3.0.2.8" ;; to be automatically updated by make bump-version :depends-on () #+asdf3 :encoding #+asdf3 :utf-8 ;; For most purposes, asdf itself specially counts as a builtin system. diff --git a/header.lisp b/header.lisp index 7261cc10e5effb1dccd271f9b6b3da5452ad50d7..ff61df9f8afcc2e26de05f2ada37d692bda36c74 100644 --- a/header.lisp +++ b/header.lisp @@ -1,5 +1,5 @@ ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*- -;;; This is ASDF 3.0.2.7: Another System Definition Facility. +;;; This is ASDF 3.0.2.8: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. diff --git a/test/test-around-compile-lambda.script.dont-run b/test/test-around-compile-lambda.script.dont-run deleted file mode 100644 index 767a94d5d1a2226dbef596cc0826108f90abee84..0000000000000000000000000000000000000000 --- a/test/test-around-compile-lambda.script.dont-run +++ /dev/null @@ -1,12 +0,0 @@ -;;; -*- Lisp -*- - - -(progn - (def-test-system test-around-compile-lambda - :around-compile (lambda (thunk) - (let ((*read-base* 2)) - (funcall thunk))) - ;; :depends-on ((:version :asdf "2.017.18")) ; no :around-compile before that. - :components ((:file "test"))) - (load-system 'test-around-compile-lambda :force t) - (assert (= 3 (funcall 'add10 1)))) ;; add10 must have been compiled in base 2 diff --git a/test/test-around-compile.script b/test/test-around-compile.script index babd00e304dabede8d6e3a480ef539c54680b528..33e8fcac76b5fc4eba4ed2d3e15345ef670261e0 100644 --- a/test/test-around-compile.script +++ b/test/test-around-compile.script @@ -1,15 +1,24 @@ ;;; -*- Lisp -*- - - (defun call-in-base-2 (thunk) (let ((*read-base* 2)) (funcall thunk))) -(progn - (def-test-system test-around-compile - :around-compile call-in-base-2 - ;; :depends-on ((:version :asdf "2.017.18")) ; no :around-compile before that. - :components ((:file "test"))) - (load-system 'test-around-compile :force t) - (assert (= 3 (funcall 'add10 1)))) ;; add10 must have been compiled in base 2 +(DBG "Testing around-compile with a function name") +(def-test-system test-around-compile + :around-compile call-in-base-2 + ;; :depends-on ((:version :asdf "2.017.18")) ; no :around-compile before that. + :components ((:file "test"))) +(load-system 'test-around-compile :force t) +(assert (= 3 (funcall 'add10 1))) ;; add10 must have been compiled in base 2 + +(fmakunbound 'add10) + +(DBG "Testing around-compile with a lambda") +(def-test-system test-around-compile-lambda + :around-compile (lambda (thunk) + (let ((*read-base* 2)) + (funcall thunk))) + :components ((:file "test"))) +(load-system 'test-around-compile-lambda :force t) +(assert (= 3 (funcall 'add10 1))) ;; add10 must have been compiled in base 2 diff --git a/test/test-run-program.script b/test/test-run-program.script index 98a74c5dad001779d16a3eb6ebae39ce48de17a6..52934f6b4856c867b3f504459579ddba44f68353 100644 --- a/test/test-run-program.script +++ b/test/test-run-program.script @@ -19,7 +19,7 @@ (unless (< 0 (run-shell-command "./bad-shell-command")) (error "Failed to capture exit status indicating shell command failure.")) -#+asdf-unix +#+os-unix (progn (DBG "Testing good shell command in current directory via run-shell-command") (unless (equal 0 (run-shell-command "./good-shell-command")) diff --git a/uiop/run-program.lisp b/uiop/run-program.lisp index 3309d5bb413a999c0b9125902a8ce83b54c7a7fe..5e2693946395c28c7e778ca2c39bdecbba7f8077 100644 --- a/uiop/run-program.lisp +++ b/uiop/run-program.lisp @@ -414,7 +414,7 @@ EXTERNAL-FORMAT for the stream passed to the OUTPUT processor." process)))))) (system-command (command) (etypecase command - (string (if (os-windows-p) (format nil "cmd /c ~A" command) command)) + (string command) (list (escape-shell-command (if (os-unix-p) (cons "exec" command) command))))) (redirected-system-command (command out) diff --git a/uiop/utility.lisp b/uiop/utility.lisp index ab0b99c756396c95fe5336dc3c2def375476f89f..685859bf55debc6f1b3f3981307bb6ebec215851 100644 --- a/uiop/utility.lisp +++ b/uiop/utility.lisp @@ -318,14 +318,17 @@ If the FUN is a non-sequence literal constant, return constantly that, i.e. for a boolean keyword character number or pathname. Otherwise if FUN is a non-literally constant symbol, return its FDEFINITION. If FUN is a CONS, return the function that applies its CAR -to the appended list of the rest of its CDR and the arguments. +to the appended list of the rest of its CDR and the arguments, +unless the CAR is LAMBDA, in which case the expression is evaluated. If FUN is a string, READ a form from it in the specified PACKAGE (default: CL) and EVAL that in a (FUNCTION ...) context." (etypecase fun (function fun) ((or boolean keyword character number pathname) (constantly fun)) ((or function symbol) fun) - (cons #'(lambda (&rest args) (apply (car fun) (append (cdr fun) args)))) + (cons (if (eq 'lambda (car fun)) + (eval fun) + #'(lambda (&rest args) (apply (car fun) (append (cdr fun) args))))) (string (eval `(function ,(with-standard-io-syntax (let ((*package* (find-package package))) (read-from-string fun)))))))) diff --git a/upgrade.lisp b/upgrade.lisp index a8ed6efad46505ba32940f38b3b567720612a9eb..85a06f2f0232bdcd0146ea04517ab82588f13cf9 100644 --- a/upgrade.lisp +++ b/upgrade.lisp @@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO ;; "3.4.5.67" would be a development version in the official upstream of 3.4.5. ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5 ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67 - (asdf-version "3.0.2.7") + (asdf-version "3.0.2.8") (existing-version (asdf-version))) (setf *asdf-version* asdf-version) (when (and existing-version (not (equal asdf-version existing-version))) diff --git a/version.lisp-expr b/version.lisp-expr index 4011e8786c41bd5917d3ca311e79cf686557bc87..5c126c496b2249860fa54a22e240bb78bd4b9b2d 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1,2 +1,2 @@ -"3.0.2.7" +"3.0.2.8"