From f71b8c7ed40ad53434d5ae9e5de4f6f5ad0b078b Mon Sep 17 00:00:00 2001
From: hondet <gabrielhondet@gmail.com>
Date: Tue, 19 Oct 2021 12:51:23 +0200
Subject: [PATCH] use functions rather than macros

---
 tools/load-personoj.lisp | 11 ++++-------
 tools/load-pvs.lisp      | 21 +++++++++------------
 2 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/tools/load-personoj.lisp b/tools/load-personoj.lisp
index 6e91d84..b0e571c 100644
--- a/tools/load-personoj.lisp
+++ b/tools/load-personoj.lisp
@@ -1,14 +1,11 @@
-;;;; Call (load-personoj) from ~/.pvs.lisp to load Personoj automatically into
-;;;; PVS
-
-(defmacro load-personoj (&optional pth)
+(defun load-personoj (&optional pth)
   "Load Personoj specification exporter and proof exporter. If given, PTH is the
 path to the root of the repository. Otherwise, the root is taken from the
 environment variable PERSONOJ"
   (let ((pth (cond
-               (pth pth)
+               (pth (uiop:ensure-pathname pth))
                ((uiop:getenvp "PERSONOJPATH")
                 (uiop:getenv-pathname "PERSONOJPATH" :ensure-directory t))
                (t (error "Cannot load personoj: PERSONOJPATH not set.")))))
-    `(uiop:with-current-directory (,pth)
-       (load "load.lisp"))))
+    (uiop:with-current-directory (pth)
+      (load "load.lisp"))))
diff --git a/tools/load-pvs.lisp b/tools/load-pvs.lisp
index f8dfe47..483d9b4 100644
--- a/tools/load-pvs.lisp
+++ b/tools/load-pvs.lisp
@@ -1,15 +1,12 @@
-;;; Place the following definitions into "~/.sbclrc" to be able to load PVS into
-;;; any sbcl session.
-(defmacro load-pvs (&optional pvspath)
+(defun load-pvs (&optional pvspath)
   "Load PVS into the current lisp environment. Argument PVSPATH is the filespec
 to the sources of PVS. If not provided, it is fetched from the environment
 variables PVSPATH."
-  (let (($pvspath (gensym)))
-    `(let ((,$pvspath
-             (cond
-               (,pvspath ,pvspath)
-               ((uiop:getenvp "PVSPATH") (uiop:getenv-pathname "PVSPATH"))
-               (t (error "Cannot load PVS: PVSPATH not set.")))))
-       (uiop:with-current-directory (,$pvspath)
-         (load "pvs.system")
-         (uiop:symbol-call :make "OPERATE-ON-SYSTEM" :pvs :load)))))
+  (let ((pvspath
+          (cond
+            (pvspath (uiop:ensure-pathname pvspath))
+            ((uiop:getenvp "PVSPATH") (uiop:getenv-pathname "PVSPATH"))
+            (t (error "Cannot load PVS: PVSPATH not set.")))))
+    (uiop:with-current-directory (pvspath)
+      (load "pvs.system")
+      (uiop:symbol-call :make "OPERATE-ON-SYSTEM" :pvs :load))))
-- 
GitLab