[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: (BUG LISPM) at MIT-AI
- From: RG at MIT-AI (Richard Greenblatt)
- Date: Mon ,14 Jan 80 15:11:00 EDT
System 25 is now installed on several machines. This mainly incorporates
bug fixes and generalized updates, but there are some new functions and hooks.
(1) Sequence breaks seem to work pretty well now. It is recommended that all
users turn them on. They will be on by default in the next system.
(SI:SB-ON '(:clock :chaos :keyboard)) turns on all interrupt sources.
SI:SB-ON now does an ADD-INITIALIZATION so the interrupt-enable state
is restored after a warm boot.
(2) (MONITOR-VARIABLE sym &OPTIONAL current-binding-instance-only-p monitor-function)
Arranges for the monitoring function to be called whenever the given symbol
is SETQed. Arguments supplied to the monitor function are the old value and
the new value. At the time the monitor function is called, the SETQ has already
taken place. If monitor-function is not supplied, a simple default is used
which just prints the old and new values. If current-binding-instance-only-p is
non-NIL, the monitoring applies only to the current instance of binding, ie
if the symbol is rebound, SETQs affecting the new binding will not be monitored.
When the original binding is eventually popped back, monitoring will resume.
(UNMONITOR-VARIABLE sym) removes the monitor, (UNMONITOR-VARIABLE) removes all
monitors. A glitch in system 25 is that UNMONITOR-VARIABLE is not global and
must be referred to in SI package.
Note that only SETQ type operations are monitored. BINDing type operations
Implementation note: This feature is triggered by setting the FLAG bit in
the value cell being monitored.
Restriction: It does not work to monitor variables which are forwarded to
A-MEMORY, such as INHIBIT-SCHEDULING-FLAG. Monitoring closure, entity or
instance variables works, although there is no convenient user interface to
allow that currently.
(3) The CHAOSnet receive process is flushed. Instead, its top level function
is called directly from the scheduler process. This saves some time, and reduces the
effective system working set.
(4) Some slight changes have been made to the scheduler with the object of reducing
the number of pages it touches. A semi-visible consequence of this is that
ACTIVE-PROCESSES is now an association list, with the process in the key position.
(5) SI:SCHEDULER-HOOK, if non-nil, should be set to a function of one argument.
The scheduler calls it every time it is about hand control to a process,
supplying as argument the process about to be resumed.
SI:DEFAULT-SCHEDULER-HOOK-FUNCTION is a
simple function suitable to put in SI:SCHEDULER-HOOK that will display the
name of the process last resumed near the lower right corner of the screen.
(6) (TV-STRING-OUT-EXPLICIT string xpos ypos) now exists. This allows you to zonk a string
directly onto a screen without worrying about windows, pieces of paper, locking
problems or interactions with other code. Format effectors are ignored.
Since it does not turn off blinkers, etc
funny things can happen on the screen itself. The main intended use is in
debugging. The actual function takes a lot more (optional) arguments than shown
here, which allow you to specify the font, alu-function, etc etc if you want.
(7) When a PKG-LOAD results in more than one compilation, the compiler-warnings in
the ZWEI buffer COMPILER-WARNINGS will be concatenated.