Assume database and reset()



We have already closed some bugs related to reset() and the assume
database. I have reported another problem, see Bug ID: 2872505 - Assume
database inconsistent after reset().

If I am right reset() should restore global variables to their initial
values. It is not part of the functionality of reset() to clear the
database. Therefore, I think we should never reset variables which are
related to the assume database.

These are the variables of the assume database in db.lisp which are
restored with reset:

;; External specials

(defmvar context 'global)
(defmvar contexts nil)
(defmvar current 'global)
(defmvar dbtrace nil)
(defmvar dobjects nil)

;; Internal specials

(defmvar *nobjects* nil)
(defmvar *dbcheck* nil)
(defmvar +l)
(defmvar -l)

(defmvar *conindex* 0)
(defmvar *connumber* 50)

;; A cell with the high bit turned on.
(defmvar *lab-high-lab* (list +lab-high-bit+))

(defmvar *world*)
(defmvar *db*)

Furthermore the following variables in compar.lisp are defined with
defmvar. These variables have a no-reset flag, but I have got
nevertheless a problem after a reset with the global $activecontexts. 

(defmvar $context '$initial
  no-reset)

(defmvar $contexts '((mlist) $initial $global)
  no-reset)

(defmvar $activecontexts '((mlist))
  no-reset)

I would like to suggest to replace all defmvar of global variables
related to the assume database with defvar declarations. I think it does
not make sense to destroy the consistency of the database by reseting
any of these variables.

I have tried this change and I have got no problems with the testsuite.
the reported bug will vanish.

Dieter Kaiser