From 6500c6e4024ea5560e514baf7909ee74ac56d4ee Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau <tunes@google.com> Date: Thu, 14 Feb 2013 04:11:07 +0100 Subject: [PATCH] 2.28.10: fix issue with deferred warnings for setf foo functions in CCL 1.9. Issue found by Bill StClair. --- asdf.asd | 2 +- header.lisp | 2 +- lisp-build.lisp | 15 +++++++++++++-- upgrade.lisp | 2 +- version.lisp-expr | 2 +- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/asdf.asd b/asdf.asd index 198d145f..2c120991 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.28.9" ;; to be automatically updated by make bump-version + :version "2.28.10" ;; 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 9434d3d3..7aec6d6f 100644 --- a/header.lisp +++ b/header.lisp @@ -1,5 +1,5 @@ ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*- -;;; This is ASDF 2.28.9: Another System Definition Facility. +;;; This is ASDF 2.28.10: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. diff --git a/lisp-build.lisp b/lisp-build.lisp index 627e5b9b..6618a67c 100644 --- a/lisp-build.lisp +++ b/lisp-build.lisp @@ -211,19 +211,30 @@ Note that ASDF ALWAYS raises an error if it fails to create an output file when (destructuring-bind (&key filename start-pos end-pos source) source-note (ccl::make-source-note :filename filename :start-pos start-pos :end-pos end-pos :source (unreify-source-note source))))) + (defun reify-function-name (function-name) + (reify-simple-sexp + (if-let (setfed (gethash function-name ccl::%setf-function-name-inverses%)) + `(setf ,setfed) + function-name))) + (defun unreify-function-name (function-name) + (let ((name (unreify-simple-sexp function-name))) + (if (and (consp name) (eq (first name) 'setf)) + (let ((setfed (second name))) + (gethash setfed ccl::%setf-function-names%) + name)))) (defun reify-deferred-warning (deferred-warning) (with-accessors ((warning-type ccl::compiler-warning-warning-type) (args ccl::compiler-warning-args) (source-note ccl:compiler-warning-source-note) (function-name ccl:compiler-warning-function-name)) deferred-warning - (list :warning-type warning-type :function-name (reify-simple-sexp function-name) + (list :warning-type warning-type :function-name (reify-function-name function-name) :source-note (reify-source-note source-note) :args (reify-simple-sexp args)))) (defun unreify-deferred-warning (reified-deferred-warning) (destructuring-bind (&key warning-type function-name source-note args) reified-deferred-warning (make-condition (or (cdr (ccl::assq warning-type ccl::*compiler-whining-conditions*)) 'ccl::compiler-warning) - :function-name (unreify-simple-sexp function-name) + :function-name (unreify-function-name function-name) :source-note (unreify-source-note source-note) :warning-type warning-type :args (unreify-simple-sexp args))))) diff --git a/upgrade.lisp b/upgrade.lisp index 5fc3b9d6..36bc0f0e 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.28.9") + (asdf-version "2.28.10") (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 ade6f928..69a1e9e7 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1 +1 @@ -"2.28.9" +"2.28.10" -- GitLab