From a5e5a6b02da80749e7ff0b0f0b9523e5b4323193 Mon Sep 17 00:00:00 2001
From: dtc <dtc>
Date: Tue, 10 Mar 1998 18:28:43 +0000
Subject: [PATCH] Cache the result of software-version in *software-version*.

---
 code/bsd-os.lisp | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/code/bsd-os.lisp b/code/bsd-os.lisp
index 10ce26b1d..c23a684ca 100644
--- a/code/bsd-os.lisp
+++ b/code/bsd-os.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/bsd-os.lisp,v 1.2 1998/03/03 12:20:32 pw Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/bsd-os.lisp,v 1.3 1998/03/10 18:28:43 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -25,11 +25,18 @@
 
 (setq *software-type* #+FreeBSD "FreeBSD" #-FreeBSD "BSD")
 
+(defvar *software-version* nil "Version string for supporting software")
+
 (defun software-version ()
   "Returns a string describing version of the supporting software."
-  (string-trim '(#\newline)
-	       (with-output-to-string (stream)
-		 (run-program "/usr/bin/uname" '("-r") :output stream))))
+  (unless *software-version*
+    (setf *software-version*
+	  (string-trim '(#\newline)
+		       (with-output-to-string (stream)
+			 (run-program "/usr/bin/uname"
+				      '("-r")
+				      :output stream)))))
+  *software-version*)
 
 
 ;;; OS-Init initializes our operating-system interface.  It sets the values
@@ -37,8 +44,7 @@
 ;;; that set up the argument blocks for the server interfaces.
 
 (defun os-init ()
-  nil)
-
+  (setf *software-version* nil))
 
 ;;; GET-SYSTEM-INFO  --  Interface
 ;;;
-- 
GitLab