mit-scheme.git
27 years agoTwo changes to improve inter-thread message-transmission performance:
Chris Hanson [Sun, 11 May 1997 06:35:46 +0000 (06:35 +0000)]
Two changes to improve inter-thread message-transmission performance:

1. Eliminate "msg_list_t" type and implement a fifo abstraction that
   is powerful enough to support the previous applications of message
   lists.  This eliminates the calls to malloc and free that were
   needed to build the lists, and replaces them by an aggregate,
   amortized cost.

2. When transmitting a message for which a receiving thread is
   waiting, call DosSleep to give up the rest of the transmitting
   thread's time slice, so that the receiving thread will run as soon
   as possible.

27 years agoDon't use try...except exception handling with Watcom compiler.
Chris Hanson [Tue, 6 May 1997 04:51:12 +0000 (04:51 +0000)]
Don't use try...except exception handling with Watcom compiler.
Instead use SetUnhandledExceptionFilter.

27 years agoAllow dld support to be disabled.
Chris Hanson [Mon, 5 May 1997 07:29:11 +0000 (07:29 +0000)]
Allow dld support to be disabled.

27 years agoAdd an option to disable dld support, since the Red Hat Linux we are
Chris Hanson [Mon, 5 May 1997 07:25:55 +0000 (07:25 +0000)]
Add an option to disable dld support, since the Red Hat Linux we are
running on the action machines doesn't seem to support it, while the
Debian Linux we're running on everything else does.

27 years agoUnknown change implemented by adams.
Chris Hanson [Mon, 5 May 1997 07:24:13 +0000 (07:24 +0000)]
Unknown change implemented by adams.

27 years agoFix bug: scheme_to_interface must clear the floating-point register
Chris Hanson [Mon, 5 May 1997 06:59:35 +0000 (06:59 +0000)]
Fix bug: scheme_to_interface must clear the floating-point register
stack.  Otherwise, inexplicable floating-point errors can occur.  An
example of such an error can be created by typing `-1e-194' at a
freshly-booted scheme.

The actual problem is somewhat involved.  The C compiler assumes that
all of the floating-point registers are empty on the entry to any
procedure.  As a consequence of this assumption, it feels free to use
all 8 of the registers.  However, if this assumption is violated, a C
procedure that uses too many registers will signal a floating-point
stack overflow.

However, the Scheme compiler does not follow this convention; more
precisely, since it was originally designed to use reasonable
floating-point hardware, in which the floating-point registers are
organized as a bank of registers rather than a stack, it doesn't do
anything about popping registers when it is done with them.  As a
consequence, floating-point operations generated by the Scheme
compiler often leave values on the floating-point stack.

To work around this without redesigning the compiler, the
compiled-code interface clears out the stack whenever it transfers
between C and Scheme code.  The bug fixed by this revision was a
transfer point that did not have code to clear out the stack.

27 years agoFix thinko: INTEGER-ROUND was doing round-to-odd instead of
Chris Hanson [Sat, 3 May 1997 08:47:26 +0000 (08:47 +0000)]
Fix thinko: INTEGER-ROUND was doing round-to-odd instead of
round-to-even.

27 years agoFix stupid typo in previous change.
Chris Hanson [Fri, 2 May 1997 05:46:25 +0000 (05:46 +0000)]
Fix stupid typo in previous change.

27 years agoFix incredibly stupid think-o in previous change.
Chris Hanson [Fri, 2 May 1997 05:32:17 +0000 (05:32 +0000)]
Fix incredibly stupid think-o in previous change.

27 years agoChanges needed to get PTY subprocesses working under BSDI.
Chris Hanson [Thu, 1 May 1997 03:51:13 +0000 (03:51 +0000)]
Changes needed to get PTY subprocesses working under BSDI.

27 years agoFix think-o in previous change.
Chris Hanson [Thu, 1 May 1997 01:30:49 +0000 (01:30 +0000)]
Fix think-o in previous change.

27 years agoCustomize properly for POSIX, eliminating unnecessary prototype for
Chris Hanson [Thu, 1 May 1997 01:27:55 +0000 (01:27 +0000)]
Customize properly for POSIX, eliminating unnecessary prototype for
"lseek", which has been causing problems on some BSD systems.

27 years agoDon't use ** operator, because it isn't recognized on some of the BSD
Chris Hanson [Thu, 1 May 1997 01:26:16 +0000 (01:26 +0000)]
Don't use ** operator, because it isn't recognized on some of the BSD
versions of m4.  Use << instead.

27 years agoDisable declarations for sys_errlist and sys_nerr except where needed.
Chris Hanson [Thu, 1 May 1997 01:24:54 +0000 (01:24 +0000)]
Disable declarations for sys_errlist and sys_nerr except where needed.
Most systems define these nowadays.

27 years agoCustomize for BSDI and FreeBSD.
Chris Hanson [Thu, 1 May 1997 01:23:43 +0000 (01:23 +0000)]
Customize for BSDI and FreeBSD.

27 years agoAdd switch USE_BUILT_IN_LIMITS_FILES for systems that have built-in
Chris Hanson [Thu, 1 May 1997 01:18:42 +0000 (01:18 +0000)]
Add switch USE_BUILT_IN_LIMITS_FILES for systems that have built-in
<limits.h> and <float.h>.  Previously this hack was specific to Linux.

27 years agoAdd new primitive LIST->INTEGER.
Chris Hanson [Mon, 28 Apr 1997 07:20:33 +0000 (07:20 +0000)]
Add new primitive LIST->INTEGER.

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.