From e49c446c0852fe2a792c9691f3627de3ee27c9ef Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <fare@tunes.org>
Date: Wed, 18 Nov 2009 09:53:08 -0500
Subject: [PATCH] Punt on atomic rename-file for CLISP: workaround by deleting
 old file if present.

---
 asdf-ops.lisp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/asdf-ops.lisp b/asdf-ops.lisp
index 3b81068..9d1f3af 100644
--- a/asdf-ops.lisp
+++ b/asdf-ops.lisp
@@ -230,7 +230,9 @@ to the base of the system."
 ;;                      :debug-object-types debug-object-types
                       :base-pathname base-pathname))))))
     #+clisp
-    (posix:copy-file tmp-file-name destination-file :method :rename)
+    (when (probe-file destination-file) (delete-file destination-file)) ;; Workaround BUG in CLISP 2.48, lose atomicity
+    #+clisp
+    (posix:copy-file tmp-file-name destination-file :method :rename :if-exists :overwrite)
     #-clisp
     (rename-file tmp-file-name destination-file
                  #+clozure :if-exists #+clozure :rename-and-delete)))
-- 
GitLab