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.
Chris Hanson [Tue, 23 Apr 1996 20:58:11 +0000 (20:58 +0000)]
Add primitive to allow unix systems to detect file-system type. This
is particularly useful on systems like Linux which support many
file-system types.
Chris Hanson [Tue, 23 Apr 1996 20:50:46 +0000 (20:50 +0000)]
Add primitive to allow unix systems to detect file-system type. This
is particularly useful on systems like Linux which support many
file-system types.
Chris Hanson [Wed, 10 Apr 1996 01:06:34 +0000 (01:06 +0000)]
Fix bug: dired commands that operate on multiple files were merging in
the target directory without the target device; this works fine on
Unix but not OS/2 or Windows.
Stephen Adams [Tue, 9 Apr 1996 20:19:13 +0000 (20:19 +0000)]
Fixed the problem of not being able to (edit and) save a file that is
open for reading (usually by an error REPL). Files are now opened
allowing concurrent reads AND writes.
Stephen Adams [Tue, 9 Apr 1996 20:13:30 +0000 (20:13 +0000)]
Kludged DOS/FS-LONG-FILENAMES? to return #F for ant FAT volume because
of Windows'95 confusion about which names is the primary name and
which names is the 8.3 alias
Chris Hanson [Mon, 8 Apr 1996 23:41:35 +0000 (23:41 +0000)]
Fix bug: primitives can't be conditionally defined, because the
findprim program doesn't parse the conditionals. The previous change,
which introduced a conditional primitive, broke this file on other
operating systems.
Chris Hanson [Thu, 4 Apr 1996 18:37:13 +0000 (18:37 +0000)]
Differentiate between the primary Edwin window and all other
(secondary) Edwin windows. Use distinct resource properties to
determine the geometry of each type of window. If geometry is
obtained from the resource class "Emacs", ignore the position
information when creating secondary windows.
This will make it possible to have secondary windows come up in
non-overlapping positions on the display.
Chris Hanson [Thu, 4 Apr 1996 18:32:09 +0000 (18:32 +0000)]
When window is hidden, either by being obscured or unmapped, and then
revealed again, invalidate our model of the on-screen contents
immediately, so that it is repainted the next time someone writes
anything to the window.
Stephen Adams [Wed, 27 Mar 1996 23:12:45 +0000 (23:12 +0000)]
Win32 version:
Made the VirtualFree/VirtualAlloc code optional and controlled by
primitives. By default it is off, since it incurs the cost of
zero-filling pages as they allocated. The main garbage collector
should turn the feature is GC was paging, but how to measure this is
not clear.
Stephen Adams [Sat, 23 Mar 1996 19:25:23 +0000 (19:25 +0000)]
Changes to the Windows 3.1/95/NT version: auto-configuration and
better virtual memory behaviour.
There used to be two version of the library NTSCMLIB.DLL, one version
for WIN32S, and another version for NT (and '95). The WIN32S version
had a partner, NTW16LIB.DLL, to handle the 16-bit side of things.
The system was configured for Windows 3.1 or NT by copying the
appropriate version of NTSCMLIB.DLL into the same directory as
SCHEME.EXE, or putting an appropriate directory in the PATH.
The new scheme is that instead of two NTSCMLIB.DLL files and a
NTW16LIB.DLL file there will be three files:
SCHEME32.DLL The true 32 bit version (NT & '95)
SCHEME31.DLL The windows 3.1 (win32s) version
SCHEME16.DLL and its 16 bit buddy
These are no longer bound at link time. Instead, nttop.c now detects
WIN32S vs. NT and explicitly loads the appropriate version. To
support this dynamic linking, the utilities referenced via a
WIN32_SYSTEM_UTILITIES structure.
Now both SCHEME31.DLL and SCHEME32.DLL use VirtualAlloc, so the
garbage collector has been changed to de-commit and re-commit the
pages in the old half-space. Toy experiments show that roughly 30-50%
of the working set is in the old half-space.
The allocation code *could* be changed to reserve the virtual address
space of the whole heap as this would allow an extensible heap.
Stephen Adams [Thu, 21 Mar 1996 16:44:57 +0000 (16:44 +0000)]
Added new global variables WIN32/DEFINE-COLOR and WIN32/FIND-COLOR.
Adjusted graphics code to work with them.
Added new API `cover' procedure GET-WINDOW-RECT.
Stephen Adams [Thu, 21 Mar 1996 16:36:29 +0000 (16:36 +0000)]
Improved font handling:
. Added ability to parse a string (e.g. "Courier New bold underline 20")
into a font.
. Use this to parse MITSCHEME_FONT. Removed MITSCHEME_FONT_SIZE env
variable.
. Added primitives WIN32-SCREEN-SET-FONT and WIN32-SCREEN-SET-DEFAULT-FONT
Improved window sizing.
Previously, if the main window was launched minimized, it woudl
believe the main window should be the size of the icon, about 3x3
characters: too small to hold an error message. Now it figures out
or guesses what the size and position would have been if and
initializes to that.
Chris Hanson [Wed, 20 Mar 1996 23:52:27 +0000 (23:52 +0000)]
Change code that selects initial font so that it tries several fonts
from a list, failing only when none of them is found. This is
desirable because one user has reported that "System VIO" isn't
available on his system.
Chris Hanson [Wed, 20 Mar 1996 23:51:49 +0000 (23:51 +0000)]
Change code that selects initial font of console window so that it
tries several fonts from a list, failing only when none of them is
found. This is desirable because one user has reported that "System
VIO" isn't available on his system.
Chris Hanson [Mon, 11 Mar 1996 20:38:29 +0000 (20:38 +0000)]
Fix bug: subprocesses were being started with SIGPIPE set to SIG_IGN.
Some programs, notably gzip, depend on SIGPIPE being set to SIG_DFL
(and don't bother to force this true themselves).
Stephen Adams [Fri, 8 Mar 1996 22:27:09 +0000 (22:27 +0000)]
Added code to deal with primitives called with the wrong number of
arguments. A warning is issued. The primitive is called with
%internal-apply to ensure correct behaviour at run time.
Note: Perhaps this processing should go later, in case something
clever finds more primitives to substitute. For non open-coded
primitives, this can be done as late a compat. The problem with this
is that after CPS conversion, it is impossible to convert an open
coded primitive into a subproblem call. One way to solve this is not
open code NO primitives, only cookie calls.