diff --git a/asdf.asd b/asdf.asd index 01bd5927ed42573256c09b3a2ecdcf0955bf2997..0b5253611d5286f59afef880473a9ffbc8b4fb9e 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 "2.31.3" ;; to be automatically updated by make bump-version + :version "2.31.4" ;; 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/defsystem.lisp b/defsystem.lisp index 6e7d0a8d673cc6635fa9a99fb9da76e0f1df154d..1bbdfb39af51eb4e7da8da33ba1ae32bb18ad3d8 100644 --- a/defsystem.lisp +++ b/defsystem.lisp @@ -48,8 +48,9 @@ (or (loop :for symbol :in (list type (find-symbol* type *package* nil) - (find-symbol* type :asdf/interface nil)) - :for class = (and symbol (find-class* symbol nil)) + (find-symbol* type :asdf/interface nil) + (and (stringp type) (safe-read-from-string type :package :asdf/interface))) + :for class = (and symbol (symbolp symbol) (find-class* symbol nil)) :when (and class (#-cormanlisp subtypep #+cormanlisp cl::subclassp class (find-class* 'component))) diff --git a/header.lisp b/header.lisp index 6d48577743c9669000b43e5929e6bf078d431fa1..1023ac804127f52d8ed9574d587cea8a15e71f79 100644 --- a/header.lisp +++ b/header.lisp @@ -1,5 +1,5 @@ ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*- -;;; This is ASDF 2.31.3: Another System Definition Facility. +;;; This is ASDF 2.31.4: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. diff --git a/stream.lisp b/stream.lisp index f230172224164ef4f7ef715385de1352dcfb7388..5382ff344ee1dc2d0086c0547c8aaa2d97840746 100644 --- a/stream.lisp +++ b/stream.lisp @@ -9,7 +9,7 @@ #:detect-encoding #:*encoding-detection-hook* #:always-default-encoding #:encoding-external-format #:*encoding-external-format-hook* #:default-encoding-external-format #:*default-encoding* #:*utf-8-external-format* - #:with-safe-io-syntax #:call-with-safe-io-syntax + #:with-safe-io-syntax #:call-with-safe-io-syntax #:safe-read-from-string #:with-output #:output-string #:with-input #:with-input-file #:call-with-input-file #:finish-outputs #:format! #:safe-format! @@ -110,7 +110,11 @@ and implementation-defined external-format's") (*read-default-float-format* 'double-float) (*print-readably* nil) (*read-eval* nil)) - (funcall thunk))))) + (funcall thunk)))) + + (defun safe-read-from-string (string &key (package :cl) (eof-error-p t) eof-value (start 0) end preserve-whitespace) + (with-safe-io-syntax (:package package) + (read-from-string string eof-error-p eof-value :start start :end end :preserve-whitespace preserve-whitespace)))) ;;; Output to a stream or string, FORMAT-style diff --git a/upgrade.lisp b/upgrade.lisp index 966921a50e1410e81fe359ddc47769c3272e5623..ea68f95b8a2ecca71e9e67b9fd81c3af55224a78 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 "2.31.3") + (asdf-version "2.31.4") (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 6f5340c779d54cfc589b9ee4c767d03a9a65e1f3..3d058e2edb99e9329ae915711a03b0e6a43469f4 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1 +1 @@ -"2.31.3" +"2.31.4"