Chris Hanson [Sat, 18 May 1996 06:16:11 +0000 (06:16 +0000)]
Change mechanism used to open files and sockets, so that interrupts
are enabled during the open. This is necessary, because any
network-based operation could potentially hang for long periods of
time, and it's desirable for the user to be able to interrupt out of
the operation.
This change requires microcode version 11.154 (or the corresponding
version 13).
In addition to this change, the low-level channel code was changed to
eliminate the now-obsolete gc-daemon interlocking code.
Chris Hanson [Fri, 17 May 1996 17:49:45 +0000 (17:49 +0000)]
Allow keyboard interrupts while opening sockets. This is only a
partial solution: there is a small window in which an interrupt can
arrive, leaving the descriptor open but forgotten.
Chris Hanson [Wed, 15 May 1996 19:10:52 +0000 (19:10 +0000)]
Fix bug: GROUP-INSERT-FILE! was depending on the fact that
INPUT-BUFFER/READ-SUBSTRING did not return until the argument buffer
was full -- which is no longer true.
Chris Hanson [Wed, 15 May 1996 18:48:40 +0000 (18:48 +0000)]
Eliminate random heuristic buffer-size modulation from previous
change. It turns out that the behavior that necessitated this
heuristic was a bug in the runtime system.
Chris Hanson [Wed, 15 May 1996 18:47:19 +0000 (18:47 +0000)]
Eliminate loop in INPUT-BUFFER/READ-SUBSTRING. When line-translation
was in effect, this loop caused this procedure to read input until the
buffer was filled. However, the procedure is supposed to return as
soon as some input is available.
Chris Hanson [Wed, 15 May 1996 04:40:17 +0000 (04:40 +0000)]
Force the reader on-line when the user requests re-reading all of the
headers in a group. Save the database files after refreshing all of
the groups. Fix typo.
Chris Hanson [Wed, 15 May 1996 00:04:34 +0000 (00:04 +0000)]
In SCREEN-MOVE-CURSOR, forget current position of cursor in order to
force it to be moved at the end of the update. This works around bugs
in the terminal implementations: sometimes the cursor is moved as a
side-effect of some other operation. It's easier to fix this here
than to modify each implementation to guarantee that the cursor is not
moved.
Chris Hanson [Tue, 14 May 1996 23:35:22 +0000 (23:35 +0000)]
Yet more work on synchronous-subprocess I/O. The simple loop using
non-blocking I/O has atrocious performance characteristics, at least
under OS/2. It's now been replaced by something that uses blocking
I/O where possible, and modulates the buffer length to provide better
feedback for incremental output.
Chris Hanson [Tue, 14 May 1996 05:42:46 +0000 (05:42 +0000)]
Guarantee that the presentation space for a window is set to its
normal colors at the end of a redisplay. Previously, it was often
left in the highlight colors, which would cause areas of the window to
be painted in the foreground color when they were exposed.
Chris Hanson [Tue, 14 May 1996 05:41:08 +0000 (05:41 +0000)]
Move the cursor only when its position is changed. Previously, the
cursor was being moved many times in a row to the same location. This
was caused by repeated screen updates being run as a result of
processing input events. Input events can be quite common even when
there is no typing going on, as a result of window-system operations,
mouse tracking, etc.
Chris Hanson [Tue, 14 May 1996 01:55:25 +0000 (01:55 +0000)]
Change DISPLAY-STYLE in order to orthogonalize the effects that it can
have. New design allows each of the different style effects to be
selected separately.
Chris Hanson [Tue, 14 May 1996 01:44:28 +0000 (01:44 +0000)]
Change DISPLAY-STYLE in order to orthogonalize the effects that it can
have. New design allows each of the different style effects to be
selected separately.
Chris Hanson [Mon, 13 May 1996 05:01:11 +0000 (05:01 +0000)]
Fix bug: reading output from a subprocess would occasionally signal an
error because the subprocess output channel was closed by Scheme when
it detected that the subprocess had closed the other end of the pipe.
However, the "output-copier" loop continued to operate assuming that
the channel was open.
Chris Hanson [Sun, 12 May 1996 07:13:03 +0000 (07:13 +0000)]
Fix bug in code that writes data to subprocess -- channel was being
closed before output buffer was flushed. Also, add code to specify
whether or not redisplay is allowed during synchronous-process
execution, and default it to disallowed, because it is extremely
distracting while doing a revert-buffer in a Dired buffer.
Chris Hanson [Sun, 12 May 1996 02:34:30 +0000 (02:34 +0000)]
Wrap debugger extent with CLEANUP-POP-UP-BUFFERS. This allows the
debugger to be called at times when there are active popped-up
buffers. Previously, quitting from the debugger in this situation
would cause the previously popped-up buffer to be hidden.
Chris Hanson [Sat, 11 May 1996 08:50:15 +0000 (08:50 +0000)]
Finish changes stared with previous revision: must handle visibility
events specially while previewing events; must also handle paint
events specially. Handling of paint events is different from handling
of X expose events -- this seems to mean that when a window is
exposed, X sends the expose event first, but OS/2 sends something
other than the paint event first.
Chris Hanson [Sat, 11 May 1996 08:46:52 +0000 (08:46 +0000)]
Pop up a buffer showing the "popclient" output so that it is visible
while "popclient" is running. Use new popped-up buffer features to
keep it visible if an error occurs.
Chris Hanson [Sat, 11 May 1996 08:44:28 +0000 (08:44 +0000)]
Implement new procedures: MAYBE-KILL-POP-UP-BUFFER calls
KILL-POP-UP-BUFFER if its argument is the popped-up buffer.
KEEP-POP-UP-BUFFER prevents a popped-up buffer from being killed by an
enclosing CLEANUP-POP-UP-BUFFERS. POPPED-UP-BUFFER returns the
POPPED-UP buffer, if any.
Chris Hanson [Sat, 11 May 1996 08:41:15 +0000 (08:41 +0000)]
Change SYNCHRONOUS-PROCESS-WAIT so that it does redisplay while it's
waiting. This allows the output from a synchronous subprocess to be
incrementally displayed as it is read.
Chris Hanson [Fri, 10 May 1996 18:48:03 +0000 (18:48 +0000)]
Change initialization code to allocate a minimum of 256 file handles
for Scheme. The old default of 20 is too small -- quickly eaten by a
small number of subprocesses in Edwin -- and worse, the default is not
a constant but depends on the method used to invoke Scheme.
The number of file handles can by dynamically changed using a new
primitive. The channel table is initialized to 1024 entries, allowing
plenty of room for growth should that be desired.
Chris Hanson [Thu, 9 May 1996 17:25:52 +0000 (17:25 +0000)]
Eliminate support for use of "tcp" subprocess in place of real socket
support. This was used under OS/2 to work around the lack of socket
support, but did not work properly because the subprocess could not be
reliably killed. This is now moot since OS/2 socket support has been
implemented.
Chris Hanson [Thu, 9 May 1996 17:01:38 +0000 (17:01 +0000)]
Change release version number from 7.4.3 to 7.5, since the former will
be needed for patches to the 7.4 release, and the current sources
contain code that won't go into the 7.4 series. Also replace the
"(alpha)" with "a" to be more succinct.
Stephen Adams [Fri, 26 Apr 1996 17:41:57 +0000 (17:41 +0000)]
Fixed "rtlgen/preservation-state: unknown operation" warning for
MACHINE-CONSTANTs, and prevented the preservation of CONS-NON-POINTER
expressions because they are sometimes non-objects (e.g. non-marked
vector headers).
Chris Hanson [Wed, 24 Apr 1996 04:27:22 +0000 (04:27 +0000)]
Integrate generic procedure mechanism into the runtime system. This
mechanism implements a generic procedure call with good performance,
but does not define an associated class structure as is common in
object-oriented programming systems. It is, however, sufficiently
general to allow such systems to be implemented on top of it, and even
to share objects between different systems if the systems cooperate
slightly.
Much of the change here is to reorganize the cold-load sequence so
that it is possible to bootstrap the runtime system.
Chris Hanson [Wed, 24 Apr 1996 03:39:47 +0000 (03:39 +0000)]
Implement new "init-file" procedures for maintaining a database of
files in the user's home directory. This is used by the Edwin News
reader, which needs a convenient place to save its database files.
Chris Hanson [Wed, 24 Apr 1996 03:27:06 +0000 (03:27 +0000)]
Implement support for time-zone information in decoded-time data
type. Generalize the procedure FILE-TIME->STRING so that it generates
an RFC-822 time string (when time-zone information is available from
the microcode).
Chris Hanson [Wed, 24 Apr 1996 03:21:30 +0000 (03:21 +0000)]
Implement support for time-zone information in decoded-time data
type. Generalize the procedure FILE-TIME->STRING so that it generates
an RFC-822 time string (when time-zone information is available from
the microcode).
Chris Hanson [Wed, 24 Apr 1996 02:45:38 +0000 (02:45 +0000)]
Change synchronous-process code to use line translation that is
appropriate for the file associated with the process buffer, if any.
This is necessary to get newline translation correct for compressed
files.
Chris Hanson [Wed, 24 Apr 1996 02:38:58 +0000 (02:38 +0000)]
Implement new procedure FILE-TIME->LS-STRING, to generate a time
string like that produced by the unix `ls' program. Change Dired and
VC to use this string where appropriate. Consequently rewrite the DOS
directory listing program to be more like that used for OS/2.
Chris Hanson [Wed, 24 Apr 1996 02:30:14 +0000 (02:30 +0000)]
Change GROUP-INSERT-FILE! to accept an additional argument, which
specifies the newline translation to be used for the insertion. This
allows the compressed-file reading code to specify that the
translation being used is that appropriate for the file being
expanded. Formerly, the wrong translation was sometimes used because
the compressed file is expanded into a temporary file, which can
reside on a file system with a different translation, and the
translation appropriate for the temporary was used.
Chris Hanson [Wed, 24 Apr 1996 02:19:57 +0000 (02:19 +0000)]
Change OS/BUFFER-BACKUP-PATHNAME to accept another argument, the
buffer being backed up. This is necessary to ensure that the backup
control variables are properly referenced; formerly local bindings of
these variables would not be referenced correctly.
Chris Hanson [Wed, 24 Apr 1996 02:05:35 +0000 (02:05 +0000)]
Generalize lisp indentation code to support a new method for
specifying how a lisp form is to be indented. The variable
lisp-indent-regexps is an alist of regexp-method pairs, which is
searched linearly for the first regexp that matches the keyword.
This allows the "def" and "with-" rules to be implemented as special
cases of this more general mechanism.
Chris Hanson [Wed, 24 Apr 1996 01:49:19 +0000 (01:49 +0000)]
Change OTHER-SCREEN to take a "count" argument. Change uses of
OTHER-SCREEN to account for this, and to allow selection of
"invisible" windows, which will now be auto-mapped.
Chris Hanson [Wed, 24 Apr 1996 01:07:34 +0000 (01:07 +0000)]
Updating of character-syntax code, to handle C++-style comments. This
is necessary for the new Verilog mode in Edwin. These changes require
corresponding changes in Edwin.
Chris Hanson [Tue, 23 Apr 1996 23:09:44 +0000 (23:09 +0000)]
Change frame-related key bindings to be compatible with Emacs 19.
This means that C-x 5 has been redefined as a prefix key, and M-x
split-window-horizontally is now bound to C-x 3 instead.