diff options
Diffstat (limited to 'src/interp')
-rw-r--r-- | src/interp/Makefile.in | 7 | ||||
-rw-r--r-- | src/interp/msgdb.boot | 29 | ||||
-rw-r--r-- | src/interp/patches.lisp | 70 | ||||
-rw-r--r-- | src/interp/setvars.boot | 1 |
4 files changed, 28 insertions, 79 deletions
diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in index 6407f63b..76fc6029 100644 --- a/src/interp/Makefile.in +++ b/src/interp/Makefile.in @@ -106,11 +106,7 @@ OBJS= boot-pkg.$(FASLEXT) types.$(FASLEXT) \ termrw.$(FASLEXT) \ trace.$(FASLEXT) word.$(FASLEXT) \ fortcall.$(FASLEXT) i-parser.$(FASLEXT) \ - $(OCOBJS) $(BROBJS) $(INOBJS) - -# Last minite patches. -# FIXMEL: should be folded into the main object list. -INOBJS= setvart.$(FASLEXT) patches.$(FASLEXT) + $(OCOBJS) $(BROBJS) setvart.$(FASLEXT) # Main compiler files. OCOBJS= \ @@ -271,7 +267,6 @@ hypertex.$(FASLEXT): types.$(FASLEXT) ## OpenAxiom's interpreter. makeint.$(FASLEXT): util.$(FASLEXT) -patches.$(FASLEXT): macros.$(FASLEXT) g-timer.$(FASLEXT) sys-driver.$(FASLEXT) setvars.$(FASLEXT): macros.$(FASLEXT) debug.$(FASLEXT) profile.$(FASLEXT): macros.$(FASLEXT) rulesets.$(FASLEXT): vmlisp.$(FASLEXT) diff --git a/src/interp/msgdb.boot b/src/interp/msgdb.boot index a1fbc880..149ea132 100644 --- a/src/interp/msgdb.boot +++ b/src/interp/msgdb.boot @@ -81,9 +81,9 @@ namespace BOOT --% Message Database Code and Message Utility Functions +$msgHash := nil $msgDatabase := nil $cacheMessages := 'T -- for debugging purposes -$msgAlist := nil $msgDatabaseName := nil $testingErrorPrefix := '"Daly Bug" $testingSystem := false @@ -114,6 +114,32 @@ wordFrom(l,i) == getKeyedMsg key == fetchKeyedMsg(key,false) +fetchKeyedMsg(key,x) == + if $msgHash = nil then + $msgHash := hashTable 'EQ + cacheKeyedMsg $defaultMsgDatabaseName + tableValue($msgHash,object2Identifier key) + +cacheKeyedMsg p == + try + instream := inputTextFile p + msg := '"" + key := nil + repeat + line := readLine instream + line = %nothing => + key ~= nil => + tableValue($msgHash,key) := msg + leave nil + #line = 0 => nil + stringChar(line,0) = char "S" => + if key ~= nil then + tableValue($msgHash,key) := msg + key := makeSymbol line + msg := '"" + msg := strconc(msg,line) + finally closeStream instream + --% Formatting and Printing Keyed Messages segmentKeyedMsg(msg) == string2Words msg @@ -559,7 +585,6 @@ spadStartUpMsgs() == sayKeyedMsg("S2GL0018D",nil) sayKeyedMsg("S2GL0003B",[$opSysName]) sayMSG bar - $msgAlist := nil -- these msgs need not be saved sayMSG " " HELP() == sayKeyedMsg("S2GL0019",nil) diff --git a/src/interp/patches.lisp b/src/interp/patches.lisp deleted file mode 100644 index 20b0c6e8..00000000 --- a/src/interp/patches.lisp +++ /dev/null @@ -1,70 +0,0 @@ -;; Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd. -;; All rights reserved. -;; Copyright (C) 2007-2011, Gabriel Dos Reis. -;; All rights reserved. -;; -;; Redistribution and use in source and binary forms, with or without -;; modification, are permitted provided that the following conditions are -;; met: -;; -;; - Redistributions of source code must retain the above copyright -;; notice, this list of conditions and the following disclaimer. -;; -;; - Redistributions in binary form must reproduce the above copyright -;; notice, this list of conditions and the following disclaimer in -;; the documentation and/or other materials provided with the -;; distribution. -;; -;; - Neither the name of The Numerical Algorithms Group Ltd. nor the -;; names of its contributors may be used to endorse or promote products -;; derived from this software without specific prior written permission. -;; -;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -;; IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -;; TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -;; PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER -;; OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -;; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -;; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -(import-module "macros") -(import-module "g-timer") -(import-module "sys-driver") -(in-package "BOOT") -;;patches for now - -(setq *print-escape* nil) ;; so stringimage doesn't escape idents? - -(defvar *msghash* nil "hash table keyed by msg number") - -(defun cacheKeyedMsg (file) - (let ((line "") (msg "") key) - (with-open-file (in file) - (catch 'done - (loop - (setq line (read-line in nil nil)) - (cond - ((null line) - (when key - (setf (gethash key *msghash*) msg)) - (throw 'done nil)) - ((= (length line) 0)) - ((char= (schar line 0) #\S) - (when key - (setf (gethash key *msghash*) msg)) - (setq key (intern line "BOOT")) - (setq msg "")) - ('else - (setq msg (concatenate 'string msg line))))))))) - -(defun |fetchKeyedMsg| (key ignore) - (declare (ignore ignore)) - (setq key (|object2Identifier| key)) - (unless *msghash* - (setq *msghash* (make-hash-table)) - (cacheKeyedMsg |$defaultMsgDatabaseName|)) - (gethash key *msghash*)) diff --git a/src/interp/setvars.boot b/src/interp/setvars.boot index 493c5ced..1907a738 100644 --- a/src/interp/setvars.boot +++ b/src/interp/setvars.boot @@ -151,7 +151,6 @@ resetWorkspaceVariables() == SETQ($slamFlag , nil) SETQ($CommandSynonymAlist , COPY($InitialCommandSynonymAlist)) SETQ($UserAbbreviationsAlist , nil) - SETQ($msgAlist , nil) SETQ($msgDatabase , nil) SETQ($msgDatabaseName , nil) SETQ($IOindex , 1 ) |