From dbeccb33406dfcc975d30a32a1d67b317682a742 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Wed, 16 Oct 2013 14:32:49 -0400
Subject: [PATCH] Fix ASDF's rename-file-overwriting-target so it may build as
 part of CLISP.

---
 uiop/filesystem.lisp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/uiop/filesystem.lisp b/uiop/filesystem.lisp
index 555e7503..a7b63441 100644
--- a/uiop/filesystem.lisp
+++ b/uiop/filesystem.lisp
@@ -521,8 +521,9 @@ as per native OS"
   (defun rename-file-overwriting-target (source target)
     "Rename a file, overwriting any previous file with the TARGET name,
 in an atomic way if the implementation allows."
-    #+clisp ;; But for a bug in CLISP 2.48, we should use :if-exists :overwrite and be atomic
-    (posix:copy-file source target :method :rename)
+    #+clisp ;; in recent enough versions of CLISP, :if-exists :overwrite would make it atomic
+    (progn (funcall 'require "syscalls")
+           (symbol-call :posix :copy-file source target :method :rename))
     #-clisp
     (rename-file source target
                  #+clozure :if-exists #+clozure :rename-and-delete))
-- 
GitLab