The debugging information have been completely overhauled for the new
authorStephen Adams <edu/mit/csail/zurich/adams>
Thu, 27 Jul 1995 21:03:12 +0000 (21:03 +0000)
committerStephen Adams <edu/mit/csail/zurich/adams>
Thu, 27 Jul 1995 21:03:12 +0000 (21:03 +0000)
commitdafdbb63884e1e8c6b04d862b9494c0e75c5dc40
tree894c6ec8da3b8f16637091920c581624a99ab370
parenta9e1b79bbd00ae85e6c2e07bd08888cd273d72f6
The debugging information have been completely overhauled for the new
compiler.

Compiled files (.com files) now countain a COMPILED-MODULE object.
Debugging information is accessed by a DBG-LOCATOR, and the located
files must contains a DBG-WRAPPER with corresponding timestamps.
These objects also contain a version which allows safe extension of
the dbg information.

DBG-BLOCKs now contain access paths which describe how to find the
value for the bindings (they used to describe the inverse, i.e. the
layout of the object).

DBG-PROCEDURES have been streamlined to get lambda list information
from the source code.

DBG-VARIABLES are implemented as pairs to save on storage.

Improved error message for ENVIRONMENT-* operations.

Now there is only one kind of compiled environment which contains a
root object and a DBG-BLOCK.  The access paths in the DBG-BLOCK are
relative to the root object.

The access paths are evaluated by a stack machine which understands a
fixed vocabulary of operations and 1- and 2- place primitives.

CCENV/LOOKUP and CCENV/ASSIGN! now give an unbound variable error if
he variable is not bound.  They used to return an unavailable
object (currently the symbol "??").

CCENV/ARGUMENTS tries to be clever with #!OPTIONAL arguements - an
assignment trap (i.e. default-object?)  determines the number of
arguments provided that the previous argument is either required or
available.
v8/src/runtime/infstr.scm
v8/src/runtime/infutl.scm
v8/src/runtime/make.scm