mit-scheme.git
27 years agoOptimize the change implemented in the previous revision, as it had a
Chris Hanson [Mon, 28 Apr 1997 07:10:20 +0000 (07:10 +0000)]
Optimize the change implemented in the previous revision, as it had a
serious impact on performance.

27 years agoChange method used by EXACT->INEXACT on integers. It turns out that
Chris Hanson [Mon, 28 Apr 1997 05:59:49 +0000 (05:59 +0000)]
Change method used by EXACT->INEXACT on integers.  It turns out that
the old method, the INT:->FLONUM, does not round reliably, and as a
consequence the LSB of the result is sometimes wrong.  However, the
conversion performed by INTEGER->FLONUM is accurate provided that the
integer being converted can be exactly represented by a flonum, i.e.
for IEEE double-precision floats, an integer with magnitude less than
(EXPT 2 53).

The algorithm used to convert ratnums to flonums already has this
property, so the integer conversion has been changed to use it.

27 years agoFix two bugs: (1) parser was not recognizing radix prefixes when
Chris Hanson [Mon, 28 Apr 1997 05:32:15 +0000 (05:32 +0000)]
Fix two bugs: (1) parser was not recognizing radix prefixes when
STRING->NUMBER called with an explicit radix argument; and (2) parser
not allowing exponents without an explicit sign.

27 years agoComplete reimplementation of the number parser. New parser is 3.5
Chris Hanson [Thu, 24 Apr 1997 06:35:29 +0000 (06:35 +0000)]
Complete reimplementation of the number parser.  New parser is 3.5
times as fast as the old one (see data below), and includes the
contribution due to the improved EXACT->INEXACT.

New switch FLONUM-PARSER-FAST? allows the number parser to sacrifice
accuracy for performance, and gains another factor of 2.4 in
performance on flonums.

----------------------------------------------------------------------
Tests performed with a list of 100000 randomly-generated strings.  The
strings were generated by "test-numpar.scm", which implements the R4RS
number BNF, so the strings are arbitrary numeric syntax.

This is a test of general number-reading performance.

Results for old exact->inexact and old string->number:

    process time: 9690 (9060 RUN + 630 GC); real time: 9690
    process time: 9460 (8830 RUN + 630 GC); real time: 9458
    process time: 9450 (8820 RUN + 630 GC); real time: 9451
    process time: 9460 (8830 RUN + 630 GC); real time: 9456

    average real time: 9514 msec

Results for new exact->inexact and new string->number:

    process time: 2800 (2800 RUN + 0 GC); real time: 2800
    process time: 2790 (2790 RUN + 0 GC); real time: 2786
    process time: 2700 (2700 RUN + 0 GC); real time: 2703
    process time: 2680 (2680 RUN + 0 GC); real time: 2686

    average real time: 2744 msec

Average improvement is a factor of 3.5 in speed.

27 years agoWorkaround: Linux doesn't seem to record Scheme-program execution time
Chris Hanson [Thu, 24 Apr 1997 05:26:06 +0000 (05:26 +0000)]
Workaround: Linux doesn't seem to record Scheme-program execution time
as "user" process time, so change process-time clock to count both
"user" and "system" time.  Normally only "user" time counts.

27 years agoDramatically improve the performance of EXACT->INEXACT on ratnums and
Chris Hanson [Wed, 23 Apr 1997 07:29:15 +0000 (07:29 +0000)]
Dramatically improve the performance of EXACT->INEXACT on ratnums and
(EXPT 2 x).  Slightly improve INTEGER-ROUND.  These changes require
two new primitives implemented in microcode 11.158.

Here are the results for EXACT->INEXACT.  These tests were run by
calling EXACT->INEXACT on a list of 100000 randomly-generated ratnums.
The numerator and denominator were each chosen using a modulus of
(EXPT 2 64), discarding zero denominators and integer quotients.

The machine was a dual Pentium Pro 200MHz / 512kB cache, 128MB RAM,
running SMP Linux 2.0.26 and libc 5.4.20.  Scheme was run using the
runtime.com band and a heap of 4000.  The machine was otherwise
quiescent.

Results for old EXACT->INEXACT:

    process time: 1750 (1470 RUN + 280 GC); real time: 37350
    process time: 1000 (780 RUN + 220 GC); real time: 37359
    process time: 900 (900 RUN + 0 GC); real time: 37345
    process time: 2460 (2060 RUN + 400 GC); real time: 37370

    average real time: 37356 msec

Results for new EXACT->INEXACT:

    process time: 580 (580 RUN + 0 GC); real time: 5825
    process time: 240 (240 RUN + 0 GC); real time: 5480
    process time: 910 (910 RUN + 0 GC); real time: 5450
    process time: 840 (540 RUN + 300 GC); real time: 5770

    average real time: 5631 msec

Average improvement is a factor of 6.6 in speed.

27 years agoNew primitives to support faster conversion of ratnum to flonum.
Chris Hanson [Wed, 23 Apr 1997 07:01:36 +0000 (07:01 +0000)]
New primitives to support faster conversion of ratnum to flonum.

27 years agoAdd new primitive INTEGER-SHIFT-LEFT. This is a very fast way to
Chris Hanson [Wed, 23 Apr 1997 05:41:03 +0000 (05:41 +0000)]
Add new primitive INTEGER-SHIFT-LEFT.  This is a very fast way to
multiply an integer by a power of two.

27 years agoImplement new primitive INTEGER-LENGTH-IN-BITS. This computes the
Chris Hanson [Tue, 22 Apr 1997 22:42:41 +0000 (22:42 +0000)]
Implement new primitive INTEGER-LENGTH-IN-BITS.  This computes the
length of a non-negative integer in the obvious way; it computes the
length of a negative integer by negating it and then returning the
value for the positive equivalent.

This primitive can be used to greatly speed up the conversion of
rational numbers to flonums.

27 years agoAdd primitive BIGNUM-LENGTH-IN-BITS.
Chris Hanson [Tue, 22 Apr 1997 22:18:06 +0000 (22:18 +0000)]
Add primitive BIGNUM-LENGTH-IN-BITS.

27 years agoSpeed up CHAR->DIGIT and DIGIT->CHAR. Also change all arithmetic to
Chris Hanson [Sun, 20 Apr 1997 05:10:43 +0000 (05:10 +0000)]
Speed up CHAR->DIGIT and DIGIT->CHAR.  Also change all arithmetic to
fixnum arithmetic, and reorganize file slightly.

27 years agoAdd code to prompt user when killing a buffer that is modified or has
Chris Hanson [Thu, 17 Apr 1997 03:49:04 +0000 (03:49 +0000)]
Add code to prompt user when killing a buffer that is modified or has
an active process.  This is done by means of a variable containing a
list of "query" procedures.

27 years agoAdd command M-x clean-manual-entry.
Chris Hanson [Fri, 11 Apr 1997 04:44:07 +0000 (04:44 +0000)]
Add command M-x clean-manual-entry.

27 years agoEliminate a few of the calls to NEWS-GROUP:CLOSE-DATABASE, since they
Chris Hanson [Sat, 5 Apr 1997 06:09:27 +0000 (06:09 +0000)]
Eliminate a few of the calls to NEWS-GROUP:CLOSE-DATABASE, since they
have an adverse effect on performance.

27 years agoChange event-reading loop to block when waiting for an event while
Chris Hanson [Thu, 3 Apr 1997 04:44:32 +0000 (04:44 +0000)]
Change event-reading loop to block when waiting for an event while
none of the Edwin windows is active.  This is safe because we won't
get any events until one of them becomes active, and at that time the
activation messages will cause a return from the block.

27 years agoAdd conditionalized code to generate a trace file showing message
Chris Hanson [Thu, 3 Apr 1997 04:41:15 +0000 (04:41 +0000)]
Add conditionalized code to generate a trace file showing message
receipt, waiting, and event fetching.  This was used to track down a
busy-wait loop in Edwin.

27 years agoDon't barf when a "branch" field appears in the admin block.
Chris Hanson [Wed, 2 Apr 1997 08:17:13 +0000 (08:17 +0000)]
Don't barf when a "branch" field appears in the admin block.

27 years agoRewrite Win32 (as opposed to Win32s) DLL to use auxiliary thread and
Chris Hanson [Wed, 2 Apr 1997 08:16:41 +0000 (08:16 +0000)]
Rewrite Win32 (as opposed to Win32s) DLL to use auxiliary thread and
Sleep() API call to generate async timer interrupts.  Use a critical
section to synchronize the two threads' access to the interrupt
registers.  These changes should eliminate the "spurious interrupt"
error messages that have been showing up from time to time.

27 years agoRewrite Win32 (as opposed to Win32s) DLL to use auxiliary thread and
Chris Hanson [Wed, 2 Apr 1997 07:44:09 +0000 (07:44 +0000)]
Rewrite Win32 (as opposed to Win32s) DLL to use auxiliary thread and
Sleep() API call to generate async timer interrupts.  Use a critical
section to synchronize the two threads' access to the interrupt
registers.  These changes should eliminate the "spurious interrupt"
error messages that have been showing up from time to time.

27 years agoImplement new primitive to get at the OS/2 PM "system values".
Chris Hanson [Tue, 1 Apr 1997 05:58:02 +0000 (05:58 +0000)]
Implement new primitive to get at the OS/2 PM "system values".

27 years agoAdd code to close the NNTP database files after each high-level
Chris Hanson [Mon, 31 Mar 1997 20:55:06 +0000 (20:55 +0000)]
Add code to close the NNTP database files after each high-level
operation.  This is desirable on OS/2 because keeping the files open
prevents other programs from reading them.

27 years agoFlush purification queue after loading an option. Otherwise, if the
Chris Hanson [Mon, 31 Mar 1997 19:27:09 +0000 (19:27 +0000)]
Flush purification queue after loading an option.  Otherwise, if the
option creates a new environment, and that environment has state
variables, the contents of those state variables will be purified at
the time of the next GC.

27 years agoReplace incorrect use of stderr with outf_error.
Chris Hanson [Mon, 31 Mar 1997 05:33:54 +0000 (05:33 +0000)]
Replace incorrect use of stderr with outf_error.

27 years agoFix bug in code generation for the HEAP-AVAILABLE? primitive. The
Chris Hanson [Sun, 30 Mar 1997 23:33:24 +0000 (23:33 +0000)]
Fix bug in code generation for the HEAP-AVAILABLE? primitive.  The
primitive compares addresses using an unsigned comparison, but the
compiled code was using a signed comparison.  This was the cause of
sporadic failures that have been seen while running Edwin with a large
heap on OS/2; it could have happened on any operating system when
Edwin was run with a sufficiently large heap.  This fix changes the
compiled code to use an unsigned comparison.

27 years agoFix bug in code generation for the HEAP-AVAILABLE? primitive. The
Chris Hanson [Sun, 30 Mar 1997 23:27:07 +0000 (23:27 +0000)]
Fix bug in code generation for the HEAP-AVAILABLE? primitive.  The
primitive compares addresses using an unsigned comparison, but the
compiled code was using a signed comparison.  This was the cause of
sporadic failures that have been seen while running Edwin with a large
heap on OS/2; it could have happened on any operating system when
Edwin was run with a sufficiently large heap.  This fix changes the
compiled code to use an unsigned comparison.

27 years agoFix bug: C-x 5 o was not causing the selected frame to become active.
Chris Hanson [Sun, 30 Mar 1997 06:58:04 +0000 (06:58 +0000)]
Fix bug: C-x 5 o was not causing the selected frame to become active.

27 years agoEliminate error that would occur when updating news groups while any
Chris Hanson [Sun, 30 Mar 1997 06:26:45 +0000 (06:26 +0000)]
Eliminate error that would occur when updating news groups while any
groups list other than the subscribed-groups list was being shown in a
buffer.

27 years agoMake sure that evaluation buffers have the correct setting for the
Chris Hanson [Sun, 30 Mar 1997 06:23:43 +0000 (06:23 +0000)]
Make sure that evaluation buffers have the correct setting for the
scheme-environment variable; this is needed so that completion will
work correctly.  This was a problem in debugger buffers.

27 years agoIn linux_heap_malloc, use the MAP_FIXED flag to force the kernel to
Chris Hanson [Fri, 21 Mar 1997 02:06:08 +0000 (02:06 +0000)]
In linux_heap_malloc, use the MAP_FIXED flag to force the kernel to
provide the page at the given address.  Version 1.2 kernels ignore the
"start address" argument if this flag is unspecified.

27 years agoFix bug: info-directory-list should be allowed to contain pathnames as
Chris Hanson [Wed, 19 Mar 1997 05:23:43 +0000 (05:23 +0000)]
Fix bug: info-directory-list should be allowed to contain pathnames as
well as strings.

27 years agoFix bug: Watcom compiler passes arguments in registers by default, and
Chris Hanson [Tue, 18 Mar 1997 04:06:32 +0000 (04:06 +0000)]
Fix bug: Watcom compiler passes arguments in registers by default, and
trick of pointing to first argument doesn't get pointer that points
"into the stack".

27 years agoBackup filenames being returned for deletion are supposed to be fully
Chris Hanson [Fri, 14 Mar 1997 05:12:55 +0000 (05:12 +0000)]
Backup filenames being returned for deletion are supposed to be fully
qualified; they were not.

27 years ago* Create interface to allow keyparser description to be built up
Chris Hanson [Mon, 10 Mar 1997 05:40:35 +0000 (05:40 +0000)]
* Create interface to allow keyparser description to be built up
  incrementally.  This aids in development and debugging of
  descriptions.

* Modify indentation computation so that comment lines are indented
  properly.  Previously they were indented just like code lines.

* Change definition of MATCH-HEADER so that it accepts the keyparser
  stack as an argument.  Also open up the stack-entry abstraction.
  These changes allow MATCH-HEADER to use contextual information in
  its decision-making process.

* Fix some problems in the VHDL implementation.  Use new MATCH-HEADER
  extension to distinguish two cases of FOR keyword that are otherwise
  syntactically identical.

27 years agoFix typo. Add another combinator.
Chris Hanson [Mon, 10 Mar 1997 05:32:44 +0000 (05:32 +0000)]
Fix typo.  Add another combinator.

27 years agoAdd entry for "loop" structure.
Chris Hanson [Sat, 8 Mar 1997 00:21:37 +0000 (00:21 +0000)]
Add entry for "loop" structure.

27 years agoRemove evaluation information that is no longer accurate.
Chris Hanson [Sat, 8 Mar 1997 00:16:14 +0000 (00:16 +0000)]
Remove evaluation information that is no longer accurate.

27 years agoImplement VHDL mode. Generalize the keyword parser used by Verilog
Chris Hanson [Fri, 7 Mar 1997 23:34:54 +0000 (23:34 +0000)]
Implement VHDL mode.  Generalize the keyword parser used by Verilog
mode so that it is powerful enough to parse both languages.  Implement
a high-level extensible pattern matcher to allow the VHDL indenter to
recognize keyword contexts in cases where it is necessary.

27 years agoInitial revision
Chris Hanson [Fri, 7 Mar 1997 23:31:22 +0000 (23:31 +0000)]
Initial revision

27 years agoFix typo in previous revision.
Chris Hanson [Fri, 7 Mar 1997 23:30:32 +0000 (23:30 +0000)]
Fix typo in previous revision.

27 years agoCreate new data type for a compiled regular expression; this type
Chris Hanson [Tue, 4 Mar 1997 06:49:05 +0000 (06:49 +0000)]
Create new data type for a compiled regular expression; this type
contains the case-fold information used to compile the regexp.  Modify
the low-level regular-expression procedures to accept this new type
and to no longer have an argument for case-fold.  Modify the
high-level regular-expression procedures to accept a compiled regular
expression in place of a regular-expression string; in this case the
optional case-fold argument is ignored.

Edit all references to the low-level procedures to conform to this new
design.

27 years agoChange to conform to new design of Edwin regular-expression
Chris Hanson [Tue, 4 Mar 1997 06:45:17 +0000 (06:45 +0000)]
Change to conform to new design of Edwin regular-expression
procedures.

27 years agoCreate new data type for a compiled regular expression; this type
Chris Hanson [Tue, 4 Mar 1997 06:43:51 +0000 (06:43 +0000)]
Create new data type for a compiled regular expression; this type
contains the case-fold information used to compile the regexp.  Modify
the low-level regular-expression procedures to accept this new type
and to no longer have an argument for case-fold.  Modify the
high-level regular-expression procedures to accept a compiled regular
expression in place of a regular-expression string; in this case the
optional case-fold argument is ignored.

Edit all references to the low-level procedures to conform to this new
design.

27 years agoAdd procedure to generate regular-expression "groups" from lists of
Chris Hanson [Mon, 3 Mar 1997 23:04:13 +0000 (23:04 +0000)]
Add procedure to generate regular-expression "groups" from lists of
alternatives.

27 years agoAdd procedure to find the start of a definition that a mark is in.
Chris Hanson [Mon, 3 Mar 1997 23:03:47 +0000 (23:03 +0000)]
Add procedure to find the start of a definition that a mark is in.

27 years agoChange data structures and calling conventions of screen abstraction
Chris Hanson [Sun, 23 Feb 1997 06:24:43 +0000 (06:24 +0000)]
Change data structures and calling conventions of screen abstraction
so that "highlighting" can specify the "face" in which the text will
appear.  This generalization allows us to modify the terminal
abstractions to support multiple fonts and colors.

27 years agoAdd several new operations on vectors. Eliminate unnecessary
Chris Hanson [Sun, 23 Feb 1997 06:16:12 +0000 (06:16 +0000)]
Add several new operations on vectors.  Eliminate unnecessary
bindings.

27 years agoAdd several new operations on vectors. Eliminate unnecessary
Chris Hanson [Sun, 23 Feb 1997 06:11:12 +0000 (06:11 +0000)]
Add several new operations on vectors.  Eliminate unnecessary
bindings.

27 years agoAdd several new operations on vectors. Eliminate unnecessary
Chris Hanson [Sun, 23 Feb 1997 06:10:13 +0000 (06:10 +0000)]
Add several new operations on vectors.  Eliminate unnecessary
bindings.

27 years agoAdd several new operations on vectors. Eliminate unnecessary
Chris Hanson [Sat, 22 Feb 1997 07:49:39 +0000 (07:49 +0000)]
Add several new operations on vectors.  Eliminate unnecessary
bindings.

27 years agoGuarantee that all input ports have a READ-SUBSTRING operation.
Chris Hanson [Fri, 21 Feb 1997 06:18:45 +0000 (06:18 +0000)]
Guarantee that all input ports have a READ-SUBSTRING operation.
Implement procedures READ-STRING! and READ-LINE.

27 years agoGuarantee that all input ports have a READ-SUBSTRING operation.
Chris Hanson [Fri, 21 Feb 1997 06:12:33 +0000 (06:12 +0000)]
Guarantee that all input ports have a READ-SUBSTRING operation.
Implement procedures READ-STRING! and READ-LINE.

27 years agoGuarantee that all input ports have a READ-SUBSTRING operation.
Chris Hanson [Fri, 21 Feb 1997 05:42:58 +0000 (05:42 +0000)]
Guarantee that all input ports have a READ-SUBSTRING operation.
Implement procedures READ-STRING! and READ-LINE.

27 years agoFix typo in translation of unix time to NT file time.
Chris Hanson [Thu, 20 Feb 1997 05:26:20 +0000 (05:26 +0000)]
Fix typo in translation of unix time to NT file time.

27 years agoUpdate documentation for FLONUM-UNPARSER-CUTOFF. Change names for
Chris Hanson [Thu, 13 Feb 1997 02:24:02 +0000 (02:24 +0000)]
Update documentation for FLONUM-UNPARSER-CUTOFF.  Change names for
x-graphics procedures to match code.

27 years agoMove only reference to COMPILE_STEPPER from "scheme.h" to "interp.c",
Chris Hanson [Wed, 12 Feb 1997 08:23:35 +0000 (08:23 +0000)]
Move only reference to COMPILE_STEPPER from "scheme.h" to "interp.c",
since that is the only file affected.  Also, the previous location of
this reference prevented the assignment in "config.h" from being
properly seen.

27 years agoFix thinko from change to implement "krypt" support.
Chris Hanson [Wed, 12 Feb 1997 08:08:16 +0000 (08:08 +0000)]
Fix thinko from change to implement "krypt" support.

27 years agoFix what appears to have been a thinko in the rounding of
Chris Hanson [Wed, 12 Feb 1997 08:00:19 +0000 (08:00 +0000)]
Fix what appears to have been a thinko in the rounding of
floating-point printed representations.  This fix prevents the code
from diverging with certain combinations of numbers and rounding
modes.  An example that caused this problem:

(set! flonum-unparser-cutoff '(relative 4))
(/ (* 10e3 100e-15))

I'm not entirely convinced I understand the problem at this point; I
don't have a copy of the paper at hand to remind me how the printer
algorithm works.  But the change fixes the bug, seems to work
correctly on other test cases, and matches what my partial
understanding says should be happening.

27 years agoFix bug in C indentation.
Chris Hanson [Sat, 8 Feb 1997 07:08:43 +0000 (07:08 +0000)]
Fix bug in C indentation.

27 years agoAdd hack suggested by "amu@mit.edu (Aaron M. Ucko)" to locally bind
Chris Hanson [Wed, 5 Feb 1997 19:03:58 +0000 (19:03 +0000)]
Add hack suggested by "amu@mit.edu (Aaron M. Ucko)" to locally bind
the BackSpace key to DEL.

27 years agoFix bug: code for make-decoded-time can easily signal an error when
Chris Hanson [Sat, 25 Jan 1997 10:38:36 +0000 (10:38 +0000)]
Fix bug: code for make-decoded-time can easily signal an error when
the time being represented is earlier than 1970 on a unix machine.
Fix allows such times to be represented, but without filling in
day-of-week, timezone, and daylight-savings fields.

27 years ago* Fix bug in INPUT-BUFFER/DISCARD-CHAR: was not doing anything if the
Chris Hanson [Wed, 22 Jan 1997 20:44:39 +0000 (20:44 +0000)]
* Fix bug in INPUT-BUFFER/DISCARD-CHAR: was not doing anything if the
  input buffer was empty.

* Change INPUT-BUFFER/READ-SUBSTRING to read a whole buffer from the
  input channel if the required number of characters is less than the
  size of the buffer.

* Change INPUT-BUFFER/READ-SUBSTRING to continue reading from the
  input channel until the substring is filled or the channel has no
  more characters available.  This is a correct fix for the change
  made in revision 14.47; this fix does a probe of the channel to
  determine if there are any characters immediately available.
  Previous to 14.47 the procedure might have blocked waiting for input
  that was not ready, even if it had already partly filled the
  substring.  Now it will immediately return any characters that are
  available, and block only when nothing is available.

27 years agoFix call to APPEND-TO-FILE that should have been patched in the
Chris Hanson [Wed, 15 Jan 1997 07:09:05 +0000 (07:09 +0000)]
Fix call to APPEND-TO-FILE that should have been patched in the
previous change.

27 years agoGeneralize version-number handling to detect IBM's continued use of
Chris Hanson [Fri, 10 Jan 1997 08:00:17 +0000 (08:00 +0000)]
Generalize version-number handling to detect IBM's continued use of
version numbers such as 2.4 rather than 4.0.

27 years agoUse new directory reader to get better attribute information from
Chris Hanson [Mon, 6 Jan 1997 00:18:19 +0000 (00:18 +0000)]
Use new directory reader to get better attribute information from
Win32.  This requires microcode 11.156 and runtime 14.172.

27 years agoUse new directory reader to get better attribute information from
Chris Hanson [Sun, 5 Jan 1997 23:46:13 +0000 (23:46 +0000)]
Use new directory reader to get better attribute information from
Win32.  This requires microcode 11.156 and runtime 14.172.

27 years agoAdd new file to customize Win32 directory reader. Extend Win32 file
Chris Hanson [Sun, 5 Jan 1997 23:45:13 +0000 (23:45 +0000)]
Add new file to customize Win32 directory reader.  Extend Win32 file
attributes vector to include the mode bits.  This version of the
runtime system requires microcode 11.156 or later.

27 years agoInitial revision
Chris Hanson [Sun, 5 Jan 1997 23:43:10 +0000 (23:43 +0000)]
Initial revision

27 years agoExtensive changes to the code that gets information about files; new
Chris Hanson [Sun, 5 Jan 1997 23:41:52 +0000 (23:41 +0000)]
Extensive changes to the code that gets information about files; new
code is smarter about reading protected files.  Also add new
directory-reading primitive to allow the runtime system to get full
file-attribute information; this is otherwise impossible as the
directory reader is able to get file information that the
file-attribute calls can't.

27 years agoAdd new procedure to get all of the information from the directory
Chris Hanson [Sun, 5 Jan 1997 23:38:50 +0000 (23:38 +0000)]
Add new procedure to get all of the information from the directory
reader.

27 years agoAdd file-opening flags that hint to the operating system about how to
Chris Hanson [Sun, 5 Jan 1997 23:38:12 +0000 (23:38 +0000)]
Add file-opening flags that hint to the operating system about how to
optimize file caching.

27 years agoAdd new system call.
Chris Hanson [Sun, 5 Jan 1997 23:37:21 +0000 (23:37 +0000)]
Add new system call.

27 years agoAdd dependencies for ntapi.h.
Chris Hanson [Sun, 5 Jan 1997 23:36:47 +0000 (23:36 +0000)]
Add dependencies for ntapi.h.

27 years agoAdd explicit dependencies to many of the files as wmake seems not to
Chris Hanson [Sun, 5 Jan 1997 23:36:01 +0000 (23:36 +0000)]
Add explicit dependencies to many of the files as wmake seems not to
have this behavior.

27 years agoChange output procedures to ignore translate-file-data-on-output in
Chris Hanson [Fri, 3 Jan 1997 04:40:03 +0000 (04:40 +0000)]
Change output procedures to ignore translate-file-data-on-output in
some circumstances.  This is necessary because RMAIL files want this
variable set to #F, but M-x write-region should ignore the variable
binding in that case and do translation anyway.

27 years agoChange output procedures to ignore translate-file-data-on-output in
Chris Hanson [Fri, 3 Jan 1997 04:07:00 +0000 (04:07 +0000)]
Change output procedures to ignore translate-file-data-on-output in
some circumstances.  This is necessary because RMAIL files want this
variable set to #F, but M-x write-region should ignore the variable
binding in that case and do translation anyway.

27 years agoRearrange the code that sets memtop to trigger an interrupt. I have a
Chris Hanson [Thu, 2 Jan 1997 07:07:19 +0000 (07:07 +0000)]
Rearrange the code that sets memtop to trigger an interrupt.  I have a
strong suspicion that these timer interrupts run in a separate thread
under NT.  If so, this is a really dangerous thing to be doing without
synchronization.  This rearrangement will minimize the window in which
problems can occur.

27 years agoEliminate compiler warnings generated under NT.
Chris Hanson [Thu, 2 Jan 1997 05:23:15 +0000 (05:23 +0000)]
Eliminate compiler warnings generated under NT.

27 years agoChange event-reading code to use SELECT rather than kludge of giving
Chris Hanson [Thu, 2 Jan 1997 04:39:45 +0000 (04:39 +0000)]
Change event-reading code to use SELECT rather than kludge of giving
up time slice and polling.  This requires corresponding changes in
microcode 11.155 and runtime 14.171.

27 years ago*** Note: this version of the runtime system requires microcode
Chris Hanson [Thu, 2 Jan 1997 04:37:53 +0000 (04:37 +0000)]
*** Note: this version of the runtime system requires microcode
    version 11.155 or later.  ***

* Implement heuristic to detect unix drivers and perform appropriate
  end-of-line translations for them.

* Provide names for Win32 file-system info flags.

* Reimplement SELECT support to match changes in microcode.  The
  improved support helps to prevent Scheme from getting stuck while
  waiting for input.

27 years agoExtensive changes to provide proper support for Win32 API calls. This
Chris Hanson [Thu, 2 Jan 1997 04:33:45 +0000 (04:33 +0000)]
Extensive changes to provide proper support for Win32 API calls.  This
new support integrates with the runtime system to provide correct
names for procedures and errors, and eliminates the need to use a
unix-style name in association with a Win32 API entity.

* Create new Win32-specific channel types.  Eliminate non-OS-specific
  channel type names.

* Introduce new file "ntapi.h" to encapsulate information about the
  Win32 API.  Rename macros for NT system calls, separating them into
  two groups: one to handle unix-style calls, the other to handle
  Win32-style calls.  Eliminate NT_<foo> aliases of C library
  procedures.  Create Win32-specific system-call names, API-call
  names, and errors.  Update all references to the old names.

* Implement OS_malloc, OS_realloc, and OS_free; change various call
  sites to use these.

* Change the low-level timer-interrupt handler to generate a GUI
  message when a Scheme interrupt is generated; this is necessary to
  unblock Scheme if it is blocked inside MsgWaitForMultipleObjects.

27 years agoInitial revision
Chris Hanson [Wed, 1 Jan 1997 22:58:34 +0000 (22:58 +0000)]
Initial revision

27 years agoExtensive changes to provide proper support for Win32 API calls. This
Chris Hanson [Wed, 1 Jan 1997 22:58:18 +0000 (22:58 +0000)]
Extensive changes to provide proper support for Win32 API calls.  This
new support integrates with the runtime system to provide correct
names for procedures and errors, and eliminates the need to use a
unix-style name in association with a Win32 API entity.

* Create new Win32-specific channel types.  Eliminate non-OS-specific
  channel type names.

* Introduce new file "ntapi.h" to encapsulate information about the
  Win32 API.  Rename macros for NT system calls, separating them into
  two groups: one to handle unix-style calls, the other to handle
  Win32-style calls.  Eliminate NT_<foo> aliases of C library
  procedures.  Create Win32-specific system-call names, API-call
  names, and errors.  Update all references to the old names.

* Implement OS_malloc, OS_realloc, and OS_free; change various call
  sites to use these.

* Change the low-level timer-interrupt handler to generate a GUI
  message when a Scheme interrupt is generated; this is necessary to
  unblock Scheme if it is blocked inside MsgWaitForMultipleObjects.

27 years agoSimplify code that changes a window's size. Both the old and new code
Chris Hanson [Wed, 1 Jan 1997 10:13:19 +0000 (10:13 +0000)]
Simplify code that changes a window's size.  Both the old and new code
produces incorrect results on my machine.  This seems to be an OS/2
bug, as it consistently adds too much padding to the frame window's
header height.

27 years agoDisable byte alignment for windows created by Scheme.
Chris Hanson [Wed, 1 Jan 1997 10:10:34 +0000 (10:10 +0000)]
Disable byte alignment for windows created by Scheme.

27 years ago* Change terminology to refer to "seen" articles as "deleted".
Chris Hanson [Wed, 25 Dec 1996 07:20:15 +0000 (07:20 +0000)]
* Change terminology to refer to "seen" articles as "deleted".

* Introduce new marking, "browsed", to indicate articles whose headers
  have been shown in a news-group buffer.  These "browsed" markings
  are used to prevent a common problem with cross posts: after having
  marked an article in one group, re-marking the cross-posted article
  differently in another group clobbers the original markings.  The
  news reader now examines the "browsed" marking, and does not re-mark
  any cross post that has already been "browsed".

* Change code that selects initial header when opening a news-group
  buffer for the first time.  New code does not automatically expand a
  thread whose first message is "deleted".

27 years ago* Change terminology to refer to "seen" articles as "deleted".
Chris Hanson [Wed, 25 Dec 1996 06:50:07 +0000 (06:50 +0000)]
* Change terminology to refer to "seen" articles as "deleted".

* Introduce new marking, "browsed", to indicate articles whose headers
  have been shown in a news-group buffer.  These "browsed" markings
  are used to prevent a common problem with cross posts: after having
  marked an article in one group, re-marking the cross-posted article
  differently in another group clobbers the original markings.  The
  news reader now examines the "browsed" marking, and does not re-mark
  any cross post that has already been "browsed".

* Change code that selects initial header when opening a news-group
  buffer for the first time.  New code does not automatically expand a
  thread whose first message is "deleted".

27 years agoDon't disable stack checks for this architecture; stack overflow is
Chris Hanson [Wed, 25 Dec 1996 06:39:51 +0000 (06:39 +0000)]
Don't disable stack checks for this architecture; stack overflow is
impossible to debug without them (except on OS/2 which has clever
virtual-memory support for this).  Also note that all other
architectures generate them by default.

27 years agoModify BACKUP-BUFFER to chase through symbolic links so that the
Chris Hanson [Tue, 24 Dec 1996 22:33:27 +0000 (22:33 +0000)]
Modify BACKUP-BUFFER to chase through symbolic links so that the
backup operates on the file rather than the link.

27 years agoSimplify OS/BACKUP-BUFFER? to be consistent with Emacs 19.
Chris Hanson [Tue, 24 Dec 1996 22:32:15 +0000 (22:32 +0000)]
Simplify OS/BACKUP-BUFFER? to be consistent with Emacs 19.

27 years agoFix bug: not showing all headers when reverting group buffer. Also
Chris Hanson [Tue, 24 Dec 1996 08:50:32 +0000 (08:50 +0000)]
Fix bug: not showing all headers when reverting group buffer.  Also
rewrite handling of cross posts to concentrate cross-post management
in one place.

27 years agoImplement new variable news-group-keep-ignored-headers. Change
Chris Hanson [Thu, 19 Dec 1996 04:50:07 +0000 (04:50 +0000)]
Implement new variable news-group-keep-ignored-headers.  Change
purging code to use new interface.

27 years agoReimplement code to purge pre-read headers and bodies. New code calls
Chris Hanson [Thu, 19 Dec 1996 04:48:35 +0000 (04:48 +0000)]
Reimplement code to purge pre-read headers and bodies.  New code calls
predicate with a header instead of with a message number, deletes
message-id entries properly, and eliminates any body without a
corresponding header.

27 years agoPreserve time stamp of file when reverting to previous revision.
Chris Hanson [Mon, 16 Dec 1996 04:57:32 +0000 (04:57 +0000)]
Preserve time stamp of file when reverting to previous revision.

27 years agoUse special allocator to allocate the heap when running under Linux.
Chris Hanson [Mon, 16 Dec 1996 04:53:17 +0000 (04:53 +0000)]
Use special allocator to allocate the heap when running under Linux.
Linux ELF pushes the text and data segments up into high addresses,
leaving most of the low addresses empty.  To get access to them, we
must use mmap.

27 years agoUse special allocator to allocate the heap when running under Linux.
Chris Hanson [Mon, 16 Dec 1996 04:40:03 +0000 (04:40 +0000)]
Use special allocator to allocate the heap when running under Linux.
Linux ELF pushes the text and data segments up into high addresses,
leaving most of the low addresses empty.  To get access to them, we
must use mmap.

27 years agoAdd one final tweak to get X-WINDOW-SET-POSITION working properly.
Chris Hanson [Wed, 11 Dec 1996 07:23:10 +0000 (07:23 +0000)]
Add one final tweak to get X-WINDOW-SET-POSITION working properly.
It now works correctly under XFree86; I haven't tested it under HP-UX
mwm, but I think it is probably still failing there.  There seems to
be some kind of translation problem on that system.

27 years agoChange location of X11 library; the previous location is not valid for
Chris Hanson [Wed, 11 Dec 1996 07:21:37 +0000 (07:21 +0000)]
Change location of X11 library; the previous location is not valid for
many distributions now.

27 years agoChange implementation of M-x show-frame-size to use new primitive to
Chris Hanson [Wed, 11 Dec 1996 00:45:10 +0000 (00:45 +0000)]
Change implementation of M-x show-frame-size to use new primitive to
determine size of frame in pixels.

27 years agoReimplement X-WINDOW-GET-POSITION and add new X-WINDOW-GET-SIZE.
Chris Hanson [Wed, 11 Dec 1996 00:43:08 +0000 (00:43 +0000)]
Reimplement X-WINDOW-GET-POSITION and add new X-WINDOW-GET-SIZE.

27 years agoImplement commands to show the size and position of the editor frame.
Chris Hanson [Tue, 10 Dec 1996 22:49:58 +0000 (22:49 +0000)]
Implement commands to show the size and position of the editor frame.