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.
Stephen Adams [Fri, 8 Mar 1996 17:19:00 +0000 (17:19 +0000)]
Moved functionality of *PHASES-TO-SHOW* into
COMPILER:GENERATE-KMP-FILES? COMPILER:GENERATE-KMP-FILES? can now be
set to a list of KMP phases or 'ALL, which both enables .kmp file
output and specifies the contents.
Stephen Adams [Fri, 8 Mar 1996 15:57:43 +0000 (15:57 +0000)]
Added a warning in DEFINE-OPEN-CODER so warn about primitives that are
unknown because if they are introduced before applicat, applicat will
insert a %primitive-apply.
Stephen Adams [Wed, 6 Mar 1996 14:22:27 +0000 (14:22 +0000)]
Changed the cycle breaking code to use a hash-table to avoid
quadratic behaviour. The bulk of the problem was the code was both
slow and quadratic. There was a higher order call to EQ? in the
middle of a `map lookup', so 10-20% of SIMPLIFY's time was spent going
out of line to funcall EQ?
Added a comment on how to improve the cycle breaking code.
Chris Hanson [Wed, 6 Mar 1996 07:04:10 +0000 (07:04 +0000)]
Fix bug: new screens didn't update correctly under Linux (and probably
other unixes), because their first update occurred before the first
Expose event arrived, and that first update caused the NEEDS-UPDATE?
flag to be cleared. The fix is to clear NEEDS-UPDATE? only when
SCREEN-UPDATE is run.
Stephen Adams [Tue, 5 Mar 1996 18:33:21 +0000 (18:33 +0000)]
Added a check after the FILE-ATTRIBUTES-DIRECT call. The attributes
will be #F if the file is a symlink to hyperspace. Failure to check
was causing a SIGSEGV; now it print a warning.
This still leaves the problem of symbolic link loops. I `fixed' this
in the one place it was occuring by altering the symlinks.
Stephen Adams [Mon, 4 Mar 1996 05:10:46 +0000 (05:10 +0000)]
. Changed environment data structures to use a hash-table. Makes
little difference to small programs but speeds up compilation of big
programs/procedures.
. Added a comment to explaind the wierd %make-stack-closure stuff.
. Fixed typo in STRING->SYMBOL constant-folder.
. The rewrite for NOT is now more `recursive', i.e. it propagates the
injection of a NOT deeper.
Chris Hanson [Sun, 3 Mar 1996 22:58:35 +0000 (22:58 +0000)]
Trace symbolic links pointing to directories as well as those that
point to files. This is necessary to get the directories
"microcode/s" and "microcode/m" in the 7.4 tree.
Chris Hanson [Fri, 1 Mar 1996 07:49:50 +0000 (07:49 +0000)]
Doing M-x reindent-then-newline-and-indent on a blank line would
reindent that line and create a new indented line below it, leaving
indentation in the original line. The fix eliminates this unnecessary
indentation; the original line is empty after the command.
Chris Hanson [Fri, 1 Mar 1996 07:46:00 +0000 (07:46 +0000)]
When deleting files, determine whether a file is a directory using
`file-attributes-direct' rather than `file-directory?'. The latter
will return #t for a symbolic link pointing to a directory, in which
case the deletion will fail.
Chris Hanson [Fri, 1 Mar 1996 07:31:20 +0000 (07:31 +0000)]
* get-pop-account-info, rmail-pop-accounts: allow arbitrary symbols to
be specified as an account password. Currently, the symbol
KERBEROS-V4 is allowed under unix systems.
* rmail-output-to-rmail-file: when creating a new rmail file, put the
header in a buffer and write the buffer out. This allows creation
of a compressed rmail file. Previously, the file would be written
with a ".gz" suffix, but not compressed.
Chris Hanson [Tue, 27 Feb 1996 21:53:14 +0000 (21:53 +0000)]
Fix bug: when an environment variable expands into a string that ends
in a slash, that trailing slash must be ignored if the environment
variable is delimited by a slash.
Chris Hanson [Tue, 27 Feb 1996 21:06:03 +0000 (21:06 +0000)]
Fix bug: code to determine when the user begins typing a new file name
at the end of a file prompt must match the inserted file name in its
entirety; previously it could mistakenly match against a substring of
the inserted file name.
Chris Hanson [Sat, 24 Feb 1996 13:25:16 +0000 (13:25 +0000)]
Directory reader should treat "c:\\cph" differently from "c:\\cph\\",
because the runtime system expects the former to return a listing for
the directory file itself, and the latter to return a listing of the
directory's contents.
Chris Hanson [Thu, 22 Feb 1996 19:02:25 +0000 (19:02 +0000)]
Fix bug: when line translation is in effect, reading a raw
carriage-return would cause the end-index of an input buffer to become
zero, indicating that the input channel had reached end-of-file. This
is a logic error in the design of input buffers; it is fixed by
defining logical end-of-file to be when input-buffer/real-end is zero,
because the latter is unaffected by line translation.
Chris Hanson [Tue, 13 Feb 1996 00:03:32 +0000 (00:03 +0000)]
Fix bug: redisplay was needlessly recentering point whenever a change
started at the first visible position of the buffer. This is rarely
necessary. This bug was deliberately introduced in revision 1.25 to
fix a more serious bug, in which the point could be left off-screen at
the end of redisplay. This change fixes both bugs, by requesting
redisplay whenever a change might affect point's position; previously
it was incorrectly assumed that this request was unnecessary.
Chris Hanson [Thu, 4 Jan 1996 23:58:42 +0000 (23:58 +0000)]
Add call to `declare_builtin' when setting up assembly-language
builtins, so that the exception handler can properly recognize when an
exception has occurred in a builtin.
Chris Hanson [Mon, 20 Nov 1995 10:26:55 +0000 (10:26 +0000)]
Fix bug: when comparing interprogram-paste string to kill-ring,
compare to last string killed, not last string yanked. Otherwise,
when yanking from elsewhere in the ring, another copy of the last
string killed will be inserted in the kill ring.
Chris Hanson [Mon, 20 Nov 1995 08:00:51 +0000 (08:00 +0000)]
Fix bug: when comparing interprogram-paste string to kill-ring,
compare to last string killed, not last string yanked. Otherwise,
when yanking from elsewhere in the ring, another copy of the last
string killed will be inserted in the kill ring.