From 74ca538f62608b2963e49c3bab4f251d585c2c8d Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Wed, 6 Mar 1991 18:39:26 +0000 Subject: [PATCH] Don't load option files more than once. --- v7/src/runtime/option.scm | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/v7/src/runtime/option.scm b/v7/src/runtime/option.scm index 2d0685900..8f52d5b43 100644 --- a/v7/src/runtime/option.scm +++ b/v7/src/runtime/option.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/option.scm,v 14.10 1991/02/19 22:45:25 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/option.scm,v 14.11 1991/03/06 18:39:26 cph Exp $ Copyright (c) 1988-91 Massachusetts Institute of Technology @@ -43,23 +43,29 @@ MIT in each case. |# (system-library-directory-pathname (string->pathname "options")))) (if (not entry) (error "Unknown option name" name)) - (for-each - (lambda (descriptor) - (let ((environment - (package/environment (find-package (car descriptor))))) - (for-each (lambda (filename) - (load (merge-pathnames (string->pathname filename) - directory) - environment - syntax-table/system-internal - true)) - (cddr descriptor)) - (eval (cadr descriptor) environment))) - (cdr entry)) + (if (not (memq name loaded-options)) + (begin + (for-each + (lambda (descriptor) + (let ((environment + (package/environment (find-package (car descriptor))))) + (for-each (lambda (filename) + (load (merge-pathnames (string->pathname filename) + directory) + environment + syntax-table/system-internal + true)) + (cddr descriptor)) + (eval (cadr descriptor) environment))) + (cdr entry)) + (set! loaded-options (cons name loaded-options)))) name)) (define options '((ARITHMETIC-INTERFACE ((RUNTIME NUMBER INTERFACE) #F "numint")) (FORMAT ((RUNTIME FORMAT) (INITIALIZE-PACKAGE!) "format")) (HASH-TABLE ((RUNTIME HASH-TABLE) (INITIALIZE-PACKAGE!) "hashtb")) - (SUBPROCESS ((RUNTIME SUBPROCESS) (INITIALIZE-PACKAGE!) "process")))) \ No newline at end of file + (SUBPROCESS ((RUNTIME SUBPROCESS) (INITIALIZE-PACKAGE!) "process")))) + +(define loaded-options + '()) \ No newline at end of file -- 2.25.1