[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

7.4 Zmacs Query

1] Locks.  When Zwei was enhanced in 7.2 to permit multiple Zmacs
processes, they added reader/writer locks to nodes to handle the
possibility of two Zmacs processes trying to access the same node
concurrently.  The Release Locks command exists to handle the case
where, due to some bug, a lock isn't unlocked when it shouldn't be.

2] Mode-Lock: Check the value of TV:*MODE-LOCK-STATE*.  In 7.2 this
defaults to :DEBUGGER, which allows the Mode-Lock key to be used to
enable debugging code (e.g. DBG:WHEN-MODE-LOCK forms and conditional
breakpoints).  If it's set to :KEYBOARD then it acts like another
shift key, causing an alternate keyboard mapping table to be used (the
Set Mode Lock State Controller command can be used to switch between
these two modes).  The alternate keyboard mapping table is the value
of the I/O buffer's :MODE-LOCK-KEYBOARD-TABLE property, defaulting to
the value of TV:*MODE-LOCK-KEYBOARD-TABLE* (in contrast, the normal
keyboard mapping is defined by the buffer's :KEYBOARD-TABLE,
defaulting to TV:*KEYBOARD-TABLE*).  The apparent intent of this is to
allow the Mode-Lock key to be used to remap the entire keyboard (e.g.
to switch to Dvorak layout, or to make the Lispm keyboard more like a
Sun keyboard (just a silly example -- no one in their right mind would
ever do this)).

On my 7.2 system the values of TV:*KEYBOARD-TABLE* and
TV:*MODE-LOCK-KEYBOARD-TABLE* are EQ, so setting the mode lock mode to
:KEYBOARD causes the Mode-Lock key to be ignored.  Perhaps it is being
used in 7.4 for something (perhaps related to MacIvory keyboards).