From 5f0f990a5d0b6500340e422016dea2b37bd0f1b6 Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau <tunes@google.com> Date: Wed, 27 Feb 2013 03:24:23 -0500 Subject: [PATCH] 2.31.4: class name can be read from string. add safe-read-from-string to support it. --- asdf.asd | 2 +- defsystem.lisp | 5 +++-- header.lisp | 2 +- stream.lisp | 8 ++++++-- upgrade.lisp | 2 +- version.lisp-expr | 2 +- 6 files changed, 13 insertions(+), 8 deletions(-) diff --git a/asdf.asd b/asdf.asd index 01bd5927..0b525361 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 6e7d0a8d..1bbdfb39 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 6d485777..1023ac80 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 f2301722..5382ff34 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 966921a5..ea68f95b 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 6f5340c7..3d058e2e 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1 +1 @@ -"2.31.3" +"2.31.4" -- GitLab