mit-scheme.git
27 years agoNow that MAKE-METHOD calls INITIALIZE-INSTANCE, it is necessary to
Chris Hanson [Mon, 16 Jun 1997 09:00:48 +0000 (09:00 +0000)]
Now that MAKE-METHOD calls INITIALIZE-INSTANCE, it is necessary to
provide a default EMP for INITIALIZE-INSTANCE until the default method
is installed.  This is done by means of the runtime system's default
EMP kludge.

27 years agoExtensive revamp of INSTANCE-CONSTRUCTOR. Optional argument now
Chris Hanson [Mon, 16 Jun 1997 08:59:06 +0000 (08:59 +0000)]
Extensive revamp of INSTANCE-CONSTRUCTOR.  Optional argument now
specifies how many additional arguments the constructor accepts; the
additional arguments are passed to INITIALIZE-INSTANCE.  By default,
any number of additional arguments are accepted and passed.

27 years agoModify the CONSTRUCTOR class option to DEFINE-CLASS to allow it to
Chris Hanson [Sun, 15 Jun 1997 07:02:16 +0000 (07:02 +0000)]
Modify the CONSTRUCTOR class option to DEFINE-CLASS to allow it to
specify the CALL-INIT-INSTANCE? argument to INSTANCE-CONSTRUCTOR.

27 years agoImplement support for INITIAL-VALUE slot keyword. Add new generic
Chris Hanson [Sun, 15 Jun 1997 06:41:44 +0000 (06:41 +0000)]
Implement support for INITIAL-VALUE slot keyword.  Add new generic
procedure INITIALIZE-INSTANCE, and give INSTANCE-CONSTRUCTOR and
optional boolean argument that, if true, says to call
INITIALIZE-INSTANCE on the instance before it is returned.

27 years agoAdd blowfish and MD5 support.
Chris Hanson [Sun, 15 Jun 1997 03:43:43 +0000 (03:43 +0000)]
Add blowfish and MD5 support.

27 years agoFix bug that could cause SEGV when downloading article bodies.
Chris Hanson [Sat, 14 Jun 1997 07:34:04 +0000 (07:34 +0000)]
Fix bug that could cause SEGV when downloading article bodies.

27 years agoFix typo.
Chris Hanson [Sat, 14 Jun 1997 01:22:05 +0000 (01:22 +0000)]
Fix typo.

27 years agoAdd definition for SQUARE.
Chris Hanson [Thu, 12 Jun 1997 21:10:43 +0000 (21:10 +0000)]
Add definition for SQUARE.

27 years agoFix bug: when CALL-NEXT-METHOD used in DEFINE-METHOD, the generated
Chris Hanson [Thu, 12 Jun 1997 07:33:58 +0000 (07:33 +0000)]
Fix bug: when CALL-NEXT-METHOD used in DEFINE-METHOD, the generated
code was using old calling conventions.

27 years agoMove COMPILE-FILE into the compiler proper.
Chris Hanson [Thu, 12 Jun 1997 04:37:55 +0000 (04:37 +0000)]
Move COMPILE-FILE into the compiler proper.

27 years agoAdd COMPILE-FILE incremental file compilation procedure.
Chris Hanson [Thu, 12 Jun 1997 04:36:25 +0000 (04:36 +0000)]
Add COMPILE-FILE incremental file compilation procedure.

27 years agoFix bug: predicate not being generated when other class options given.
Chris Hanson [Wed, 11 Jun 1997 07:45:04 +0000 (07:45 +0000)]
Fix bug: predicate not being generated when other class options given.

27 years agoFix bug: Scheme variable completion was failing in some cases because
Chris Hanson [Tue, 10 Jun 1997 05:58:13 +0000 (05:58 +0000)]
Fix bug: Scheme variable completion was failing in some cases because
the completion code was unable to obtain the correct environment in
which to look up the variables.

27 years agoFix typo.
Chris Hanson [Mon, 9 Jun 1997 21:17:48 +0000 (21:17 +0000)]
Fix typo.

27 years agoAdd support for Blowfish.
Chris Hanson [Mon, 9 Jun 1997 08:12:28 +0000 (08:12 +0000)]
Add support for Blowfish.

27 years agoAdd procedure to test for availability of Blowfish primitives.
Chris Hanson [Mon, 9 Jun 1997 08:08:00 +0000 (08:08 +0000)]
Add procedure to test for availability of Blowfish primitives.
Modularize ciphertext-file support.

27 years agoAdd interfaces to MD5 and Blowfish.
Chris Hanson [Mon, 9 Jun 1997 07:45:43 +0000 (07:45 +0000)]
Add interfaces to MD5 and Blowfish.

27 years agoInitial revision
Chris Hanson [Mon, 9 Jun 1997 07:43:58 +0000 (07:43 +0000)]
Initial revision

27 years agoChange regular-expression primitives to treat failure-stack overflow
Chris Hanson [Fri, 6 Jun 1997 07:00:53 +0000 (07:00 +0000)]
Change regular-expression primitives to treat failure-stack overflow
as equivalent to "no match".  Also, increase the maximum size of the
failure stack from 1000 to 20000.  This is important because it is far
too easy to overflow the stack, the stack-overflow errors cause Edwin
to bomb out.  This is a problem because stack-overflow errors can be
caused by user data -- the proximate example being a News message that
bombed out the News reader because it had a header line was too
complicated to match.  Better to fail in these situations than to
error.

27 years agoChange regular-expression searches to treat failure-stack overflow as
Chris Hanson [Fri, 6 Jun 1997 06:56:42 +0000 (06:56 +0000)]
Change regular-expression searches to treat failure-stack overflow as
a failure to match, and to continue the search.

27 years agoModify encrypted-file support to allow the ".ky" suffix. This is
Chris Hanson [Fri, 6 Jun 1997 05:06:04 +0000 (05:06 +0000)]
Modify encrypted-file support to allow the ".ky" suffix.  This is
desirable because mixed-case filenames cause trouble when mapping
between unix and case-insensitive file systems.

27 years agoModify encrypted-file support to allow the ".ky" suffix. This is
Chris Hanson [Fri, 6 Jun 1997 05:04:57 +0000 (05:04 +0000)]
Modify encrypted-file support to allow the ".ky" suffix.  This is
desirable because mixed-case filenames cause trouble when mapping
between unix and case-insensitive file systems.

27 years agoFix thinko in SET-RECORD-TYPE-UNPARSER-METHOD!.
Chris Hanson [Thu, 5 Jun 1997 03:06:03 +0000 (03:06 +0000)]
Fix thinko in SET-RECORD-TYPE-UNPARSER-METHOD!.

27 years agoReimplement INSTANCE-PREDICATE to return a generic procedure. Move
Chris Hanson [Wed, 4 Jun 1997 22:44:21 +0000 (22:44 +0000)]
Reimplement INSTANCE-PREDICATE to return a generic procedure.  Move
INSTANCE-PREDICATE and INSTANCE-OF? to "instance.scm".

27 years agoAdd SOS to list of directories needing to be processed.
Chris Hanson [Wed, 4 Jun 1997 22:29:57 +0000 (22:29 +0000)]
Add SOS to list of directories needing to be processed.

27 years agoReimplement INSTANCE-PREDICATE to return a generic procedure. Move
Chris Hanson [Wed, 4 Jun 1997 22:29:00 +0000 (22:29 +0000)]
Reimplement INSTANCE-PREDICATE to return a generic procedure.  Move
INSTANCE-PREDICATE and INSTANCE-OF? to "instance.scm".

27 years agoEliminate references to INSTANCE-PREDICATE.
Chris Hanson [Wed, 4 Jun 1997 22:24:21 +0000 (22:24 +0000)]
Eliminate references to INSTANCE-PREDICATE.

27 years agoAdd options allowing DEFINE-CLASS to automatically generate predicate
Chris Hanson [Wed, 4 Jun 1997 22:15:31 +0000 (22:15 +0000)]
Add options allowing DEFINE-CLASS to automatically generate predicate
and constructor procedures.  By default, generate a predicate.

27 years agoModify undigestifier so that it handles newer digests, e.g. the Debian
Chris Hanson [Wed, 4 Jun 1997 21:58:14 +0000 (21:58 +0000)]
Modify undigestifier so that it handles newer digests, e.g. the Debian
mailing-list digestifier.

27 years agoInitial revision
Chris Hanson [Wed, 4 Jun 1997 20:01:31 +0000 (20:01 +0000)]
Initial revision

27 years agoAdd line to startup banner.
Chris Hanson [Wed, 4 Jun 1997 06:11:24 +0000 (06:11 +0000)]
Add line to startup banner.

27 years agoInitial revision
Chris Hanson [Wed, 4 Jun 1997 06:09:57 +0000 (06:09 +0000)]
Initial revision

27 years agoChange Linux file-system-type code to define explicit constants for
Chris Hanson [Sun, 1 Jun 1997 17:54:27 +0000 (17:54 +0000)]
Change Linux file-system-type code to define explicit constants for
many types.  The reason is that many of these types are hard to get
from the headers, either due to versioning problems with the header
files, or because the desired definitions are hidden behind kernel
conditionalizations.

27 years agoFix bug: news server can return #(0 0 0) as server-info for a news
Chris Hanson [Tue, 27 May 1997 19:35:17 +0000 (19:35 +0000)]
Fix bug: news server can return #(0 0 0) as server-info for a news
group, indicating that there are no articles on the server.  News
reader was expecting the last two numbers to be article numbers, but
zero is not a valid article number.

27 years agoFix bug: news server can return #(0 0 0) as server-info for a news
Chris Hanson [Tue, 27 May 1997 07:30:31 +0000 (07:30 +0000)]
Fix bug: news server can return #(0 0 0) as server-info for a news
group, indicating that there are no articles on the server.  News
reader was expecting the last two numbers to be article numbers, but
zero is not a valid article number.

27 years agoRead and write .KY files as binary rather than text.
Chris Hanson [Wed, 21 May 1997 18:01:46 +0000 (18:01 +0000)]
Read and write .KY files as binary rather than text.

27 years agoFix some bugs, including an uninitialized-field bug for the QID_FILTER
Chris Hanson [Wed, 21 May 1997 07:32:34 +0000 (07:32 +0000)]
Fix some bugs, including an uninitialized-field bug for the QID_FILTER
field, and an ambiguity in the allowable values for the end pointer of
a msg_fifo.  Add a QID_LOCK field, and use it to control access to the
QID_SUBQUEUE field.  Rearrange the locking slightly to make it more
efficient and directed: the top-level qid_lock is now used only to
mediate the QID_ALLOCATEDP and QID_TWIN fields.

27 years agoChange error-reporting procedure to eliminate redundant sentences for
Chris Hanson [Wed, 21 May 1997 06:30:59 +0000 (06:30 +0000)]
Change error-reporting procedure to eliminate redundant sentences for
fatal errors.

27 years agoReimplement CLOSE-ALL-OPEN-FILES to close only file channels, and also
Chris Hanson [Mon, 19 May 1997 17:38:00 +0000 (17:38 +0000)]
Reimplement CLOSE-ALL-OPEN-FILES to close only file channels, and also
to close the associated port of a file channel rather than the
channel.  Implement and export two new procedures: ALL-OPEN-CHANNELS
and CLOSE-ALL-OPEN-CHANNELS.

27 years ago* Add new command to show the full subject line of an article in a
Chris Hanson [Sun, 18 May 1997 08:00:10 +0000 (08:00 +0000)]
* Add new command to show the full subject line of an article in a
  news-group buffer.

* Add new command to show the full header of an article in a
  news-group buffer.

* When first unread article in a group has an associated body, expand
  the thread to select that article when the group is opened.

* Change posting mechanism to use "_-_" in message-id to indicate
  subject changes, as required by News standard.

27 years agoChange SET-BUFFER-POINT! to change the first window that the buffer is
Chris Hanson [Sun, 18 May 1997 07:53:03 +0000 (07:53 +0000)]
Change SET-BUFFER-POINT! to change the first window that the buffer is
shown in if it is not the selected buffer.

27 years agoFix bug: STRING-COLUMNS was being called with incorrect arguments.
Chris Hanson [Sun, 18 May 1997 07:51:53 +0000 (07:51 +0000)]
Fix bug: STRING-COLUMNS was being called with incorrect arguments.
Apparently this reference was missed when the imaging code was
rewritten.

27 years agoImplement POP-UP-TEMPORARY-BUFFER, a fairly general mechanism for
Chris Hanson [Sun, 18 May 1997 07:50:51 +0000 (07:50 +0000)]
Implement POP-UP-TEMPORARY-BUFFER, a fairly general mechanism for
popping up temporary buffers.  Redefine several old uses of such
buffers to use this new mechanism.

27 years agoChange NT:MSGWAITFORMULTIPLEOBJECTS to check for messages that were
Chris Hanson [Sat, 17 May 1997 07:00:23 +0000 (07:00 +0000)]
Change NT:MSGWAITFORMULTIPLEOBJECTS to check for messages that were
removed from the input queue and placed on one of the screen queues.
This eliminates a serious bug in Edwin: running an asynchronous
evaluation that did no output would cause Edwin to lock up until the
evaluation completed.

27 years agoAdd ability to specify custom color palette when creating a window.
Chris Hanson [Thu, 15 May 1997 03:11:58 +0000 (03:11 +0000)]
Add ability to specify custom color palette when creating a window.

27 years agoAdd generic operation to determine the bit-depth of an image
Chris Hanson [Thu, 15 May 1997 00:18:35 +0000 (00:18 +0000)]
Add generic operation to determine the bit-depth of an image
associated with a window.

27 years agoAdd X-specific operation to return the visual-info data structures for
Chris Hanson [Thu, 15 May 1997 00:18:02 +0000 (00:18 +0000)]
Add X-specific operation to return the visual-info data structures for
a display, and a structure definition for these structures.

27 years agoAdd X-specific operation to return the visual-info data structures for
Chris Hanson [Thu, 15 May 1997 00:14:06 +0000 (00:14 +0000)]
Add X-specific operation to return the visual-info data structures for
a display, and a structure definition for these structures.

27 years agoAdd generic operation to determine the bit-depth of an image
Chris Hanson [Thu, 15 May 1997 00:12:07 +0000 (00:12 +0000)]
Add generic operation to determine the bit-depth of an image
associated with a window.

27 years agoAdd generic operation to determine the bit-depth of an image
Chris Hanson [Thu, 15 May 1997 00:11:39 +0000 (00:11 +0000)]
Add generic operation to determine the bit-depth of an image
associated with a window.  Add X-specific operation to return the
visual-info data structures for a display, and a structure definition
for these structures.

27 years agoModify X image procedures to support images with depths greater than 8
Chris Hanson [Thu, 15 May 1997 00:10:06 +0000 (00:10 +0000)]
Modify X image procedures to support images with depths greater than 8
bits.  Add documentation strings to all of the image primitives.

27 years agoInitial revision
Chris Hanson [Tue, 13 May 1997 05:32:30 +0000 (05:32 +0000)]
Initial revision

27 years agoAdd "FAR WINAPI" declarations to the functions exported from this DLL,
Chris Hanson [Tue, 13 May 1997 05:31:59 +0000 (05:31 +0000)]
Add "FAR WINAPI" declarations to the functions exported from this DLL,
so that the Watcom compiler will compile them using the calling
conventions that Scheme is expecting.

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.