mit-scheme.git
28 years agoInitial cut at writing COERCE-TO-COMPILED-PROCEDURE in Scheme. The
Stephen Adams [Fri, 26 Jul 1996 14:38:26 +0000 (14:38 +0000)]
Initial cut at writing COERCE-TO-COMPILED-PROCEDURE in Scheme.  The
next change will be to make the compiler generate calls to this
procedure rather than the primitive COERCE-TO-COMPILED-PROCEDURE,
which should result in both faster generation and invocation of
trampolines.

Eventually we might make the linker use this code too.

The code is a bit hairy and needs special initialization, hence the
changes in make.scm.

28 years agoInitial revision
Stephen Adams [Fri, 26 Jul 1996 14:25:07 +0000 (14:25 +0000)]
Initial revision

28 years agoTweaked format of time reports so that the non-gc process time is
Stephen Adams [Fri, 26 Jul 1996 01:01:44 +0000 (01:01 +0000)]
Tweaked format of time reports so that the non-gc process time is
always first.

28 years agoFixed bug: LEXPR primitive were being mistaken as having the wrong
Stephen Adams [Fri, 26 Jul 1996 00:59:26 +0000 (00:59 +0000)]
Fixed bug: LEXPR primitive were being mistaken as having the wrong
arity and thus were being applied via short_circuit_apply_n.

28 years agoAdded new stack frame type for preservation frames (restore-regs).
Stephen Adams [Fri, 26 Jul 1996 00:36:11 +0000 (00:36 +0000)]
Added new stack frame type for preservation frames (restore-regs).
Added a debugging-info method.

Changed the illegal-arg error handler for primitive procedures to
avoid using retry restarts when the primitive signalled a type or
range error when called from compiled code.  This is necessary because
the compiler assumes that if it calls a primitive just to raise an
error then teh primitive will not return.  This assumption allows type
inference to eliminate furthur checks.

In order to stop the debugger returning a value, the primitive should
be called `indirectly' via another compiler procedure which refuses to
return.  I.e instead of compiling the error CAR operation as
INVOKE:PRIMITIVE

  (#[primitive-procedure car] x)

call it like this:

  (signal-primitive-error '#[primitive-procedure car] x)

where SIGNAL-PRIMITIVE-ERROR is compiled like this:

  (define (signal-primitive-error primitive . arguments)
     (apply primitive arguments)
     (error "..."))

28 years agoFixed missing argument bug.
Stephen Adams [Wed, 24 Jul 1996 23:42:04 +0000 (23:42 +0000)]
Fixed missing argument bug.

28 years agoFixed typo.
Stephen Adams [Wed, 24 Jul 1996 22:56:34 +0000 (22:56 +0000)]
Fixed typo.

28 years agoFixed a bug with constant folding binary operators: the continuation
Stephen Adams [Wed, 24 Jul 1996 22:32:30 +0000 (22:32 +0000)]
Fixed a bug with constant folding binary operators: the continuation
was being ignored.

Added a whole bunch of code to rewrite return (and calls with few
arguments) sequences that are passing an inlined predicate or
conditional expression.
For limited cases, for example, returning (null? x) or tail-calling, e.g.
  (f (if (pair? x) (car x) #F))
there is small benefit.

28 years agoMade extra arguments in some calls (e.g. %internal-apply) explicit to
Stephen Adams [Wed, 24 Jul 1996 17:07:07 +0000 (17:07 +0000)]
Made extra arguments in some calls (e.g. %internal-apply) explicit to
COMPAT/REWRITE-CALL/SPLIT.

28 years agoAdded code so that %RECORD-REF/SET! at known index 0 does not do a
Stephen Adams [Wed, 24 Jul 1996 15:11:44 +0000 (15:11 +0000)]
Added code so that %RECORD-REF/SET! at known index 0 does not do a
range check.  %RECORDs are always created with at least a descriptor
slot.

28 years agoImproved hashing of flonums.
Stephen Adams [Wed, 24 Jul 1996 04:44:06 +0000 (04:44 +0000)]
Improved hashing of flonums.

28 years agoMade CSE of predicate arguments only occur for REGISTER expressions.
Stephen Adams [Wed, 24 Jul 1996 04:03:51 +0000 (04:03 +0000)]
Made CSE of predicate arguments only occur for REGISTER expressions.
This allows pre-cse-rewriting to block cheap arguments from being
CSE-ed.

28 years ago . Fixed bug that was preventing CSE of flonums.
Stephen Adams [Wed, 24 Jul 1996 03:45:18 +0000 (03:45 +0000)]
 . Fixed bug that was preventing CSE of flonums.
 . Changed `CSE avoiding' rewrites to use CONSTANT-REGISTER-EXPRESSION, thus
   including #F and '() in the games we play with `0'.
 . Punted the `is-rtl-zero?' predicate as no longer used.
 . Simplified REGISTER-KNOWN-FIXNUM-CONSTANT
 . Added `CSE avoiding' rewrites for comparison operators.

28 years ago . Improved predicates FITS-IN-nn-BITS?.
Stephen Adams [Wed, 24 Jul 1996 03:33:54 +0000 (03:33 +0000)]
 . Improved predicates FITS-IN-nn-BITS?.
 . Split REGISTER-EXPRESSION, extracting CONSTANT-REGISTER-EXPRESSION for the
   pre-loaded registers.

28 years agoTweaked with constant costs.
Stephen Adams [Wed, 24 Jul 1996 03:25:54 +0000 (03:25 +0000)]
Tweaked with constant costs.
Removed some code from the ols split type-code compiler.

28 years agoExtended hashing to include reals rather than just (exact and inexact)
Stephen Adams [Wed, 24 Jul 1996 03:09:30 +0000 (03:09 +0000)]
Extended hashing to include reals rather than just (exact and inexact)
integers.  Enables flonums like PI to be subject to CSE.

28 years agoRemoved rules containing CHAR->ASCII because the rtlgen.scm does not
Stephen Adams [Tue, 23 Jul 1996 20:02:21 +0000 (20:02 +0000)]
Removed rules containing CHAR->ASCII because the rtlgen.scm does not
generate this RTL.

28 years agorevert one line.
Stephen Adams [Tue, 23 Jul 1996 19:23:21 +0000 (19:23 +0000)]
revert one line.

28 years agoRemoved lots (500 lines) of tagged-fixnum code. If you want it, use
Stephen Adams [Tue, 23 Jul 1996 19:11:20 +0000 (19:11 +0000)]
Removed lots (500 lines) of tagged-fixnum code.  If you want it, use
RCS.  Changed the comments to reflect the current code.

Made things more robust:

 . Changed FITS-IN-nn-BITS? predicates to test for fixnum arguments.
 . Changed all the register*constant and constant*register predicates
   to be true only if the constant is a *fixnum* in the correct range.
 . Punted the GUARANTEE-SIGNED-FIXNUM (as the predicates now guarantee it).

The net effect is that the compiler now compiles code like (fix:+ x
1.2) or (fix:* 'a n) to the obvious, albeit meaningless, instructions
rather than signalling a confusing error.  Note that the midend
typerew phase can generate error messages for any of these conditions.

28 years agoChanged FORM->SOURCE-IRRITANT to give a more useful output when source
Stephen Adams [Tue, 23 Jul 1996 16:13:42 +0000 (16:13 +0000)]
Changed FORM->SOURCE-IRRITANT to give a more useful output when source
is not available.

28 years agoRemoved old (mostly unused) method of reporting type errors via bogus
Stephen Adams [Tue, 23 Jul 1996 15:41:23 +0000 (15:41 +0000)]
Removed old (mostly unused) method of reporting type errors via bogus
re-writes that issue the warning and leave the program unchanged.

Replaced with type-checks based on the typedb information.  All
operators with typedb information are checked (not just those with
rewrites).  Checking (and thus warnings) are disabled by setting
COMPILER:TYPE-ERROR-WARNINGS? to false.

28 years agoAdded type:user-description, which gives an english description of the
Stephen Adams [Tue, 23 Jul 1996 15:34:53 +0000 (15:34 +0000)]
Added type:user-description, which gives an english description of the
type for some simple types.

28 years agoFixed typo.
Stephen Adams [Tue, 23 Jul 1996 15:33:51 +0000 (15:33 +0000)]
Fixed typo.

28 years agoRemoved debugging print code, reformated 2 small procedures.
Stephen Adams [Tue, 23 Jul 1996 15:17:13 +0000 (15:17 +0000)]
Removed debugging print code, reformated 2 small procedures.

28 years agoAdded switch compiler:type-error-warnings?, default true.
Stephen Adams [Tue, 23 Jul 1996 14:57:33 +0000 (14:57 +0000)]
Added switch compiler:type-error-warnings?, default true.

28 years agoAdded SORT[!], FOR-EACH and MAP, and some generic arithmetic operators.
Stephen Adams [Tue, 23 Jul 1996 14:49:42 +0000 (14:49 +0000)]
Added SORT[!], FOR-EACH and MAP, and some generic arithmetic operators.

28 years agoFixed to keep runtime and runtime-check debugging info separate.
Stephen Adams [Tue, 23 Jul 1996 03:44:03 +0000 (03:44 +0000)]
Fixed to keep runtime and runtime-check debugging info separate.

28 years agoDisable optimizations with INTEGER-<relation> because it causes loops
Stephen Adams [Tue, 23 Jul 1996 02:28:13 +0000 (02:28 +0000)]
Disable optimizations with INTEGER-<relation> because it causes loops
in the arith.scm generic handlers.

28 years agoFix typos.
Stephen Adams [Tue, 23 Jul 1996 02:27:12 +0000 (02:27 +0000)]
Fix typos.

28 years agoFixed bug in typerew/remember* (it was sometimes returning unspecific).
Stephen Adams [Mon, 22 Jul 1996 23:12:49 +0000 (23:12 +0000)]
Fixed bug in typerew/remember* (it was sometimes returning unspecific).

28 years agoAdded EXACT->INEXACT, INEXACT->EXACT, MAKE-STRING, MAKE-VECTOR,
Stephen Adams [Mon, 22 Jul 1996 19:04:06 +0000 (19:04 +0000)]
Added EXACT->INEXACT, INEXACT->EXACT, MAKE-STRING, MAKE-VECTOR,
STRING, STRING-APPEND and STRING-COPY to global procedures.

28 years agoRemoved suggestion mechanism for rewrites. It was no longer used and
Stephen Adams [Mon, 22 Jul 1996 18:48:32 +0000 (18:48 +0000)]
Removed suggestion mechanism for rewrites.  It was no longer used and
might be a problem because it couples type analysis to the use of the
information.

28 years agoDeleted unused let-binding.
Stephen Adams [Mon, 22 Jul 1996 18:06:48 +0000 (18:06 +0000)]
Deleted unused let-binding.

28 years ago. Changes to permit use of procedures with variable arity in the
Stephen Adams [Mon, 22 Jul 1996 18:04:14 +0000 (18:04 +0000)]
. Changes to permit use of procedures with variable arity in the
  typedb.scm database.

. EXACT->INEXACT may be replaced by %fixnum->flonum if appropriate.

. Changes to generic arithmetic for fix*flo combinations.  Now these
  are open-coded with an explicit conversion (which man be constant
  folded).

28 years agoAdded LENGTH, and vector and string constructors.
Stephen Adams [Mon, 22 Jul 1996 17:49:20 +0000 (17:49 +0000)]
Added LENGTH, and vector and string constructors.

28 years agoImproved the ascii byte store code (elide object->datum on store).
Stephen Adams [Mon, 22 Jul 1996 17:47:18 +0000 (17:47 +0000)]
Improved the ascii byte store code (elide object->datum on store).

28 years agoRemoved useless rule for flonum-subtract.
Stephen Adams [Mon, 22 Jul 1996 17:46:16 +0000 (17:46 +0000)]
Removed useless rule for flonum-subtract.

28 years agoCanonicalized (flonum-less? x 0.) to flonum-negative? etc.
Stephen Adams [Mon, 22 Jul 1996 17:45:29 +0000 (17:45 +0000)]
Canonicalized (flonum-less? x 0.) to flonum-negative? etc.

28 years agoAdded open-coder for %fixnum->flonum.
Stephen Adams [Mon, 22 Jul 1996 16:24:01 +0000 (16:24 +0000)]
Added open-coder for %fixnum->flonum.

28 years ago*** empty log message ***
Stephen Adams [Mon, 22 Jul 1996 04:46:15 +0000 (04:46 +0000)]
*** empty log message ***

28 years agoAdded (FLONUM-1-ARG FIXNUM->FLONUM ...) rules.
Stephen Adams [Mon, 22 Jul 1996 04:45:41 +0000 (04:45 +0000)]
Added (FLONUM-1-ARG FIXNUM->FLONUM ...) rules.

28 years agoAdded constant-folding of %fixnum->flonum.
Stephen Adams [Sat, 20 Jul 1996 23:03:03 +0000 (23:03 +0000)]
Added constant-folding of %fixnum->flonum.

28 years agoAdded %fixnum->flonum.
Stephen Adams [Sat, 20 Jul 1996 22:57:13 +0000 (22:57 +0000)]
Added %fixnum->flonum.

28 years agoTypo.
Stephen Adams [Sat, 20 Jul 1996 22:36:00 +0000 (22:36 +0000)]
Typo.

28 years agoAdded FIXNUM->FLONUM.
Stephen Adams [Sat, 20 Jul 1996 22:26:26 +0000 (22:26 +0000)]
Added FIXNUM->FLONUM.

28 years agoAdded STRING relational operators.
Stephen Adams [Sat, 20 Jul 1996 18:30:14 +0000 (18:30 +0000)]
Added STRING relational operators.

28 years agoAdded switch compiler:rtl-instruction-scheduling?
Stephen Adams [Sat, 20 Jul 1996 18:08:46 +0000 (18:08 +0000)]
Added switch compiler:rtl-instruction-scheduling?

28 years agoFixed type checked indexed operators to not generate a type check for
Stephen Adams [Sat, 20 Jul 1996 17:59:37 +0000 (17:59 +0000)]
Fixed type checked indexed operators to not generate a type check for
indexes that are known to be fixnums.

28 years agoFixed bug in PROCEDURE-TYPE.
Stephen Adams [Fri, 19 Jul 1996 23:53:58 +0000 (23:53 +0000)]
Fixed bug in PROCEDURE-TYPE.

Added TYPE:->CONSTANT.

28 years agoAdded rewrite code to replace an expression with a literal if the type
Stephen Adams [Fri, 19 Jul 1996 23:32:03 +0000 (23:32 +0000)]
Added rewrite code to replace an expression with a literal if the type
system tells us what the value must be.  Most useful for
IF-predicates, as replacing <pred> by, e.g., (BEGIN <pred> '#T) allows
the dead code to be removed.

Added predicate code to yield a #T or #F value.  Previously the
predicate information was being used only in the branches of an if.
Obviously, it is nice to know when the predicate is always true or
false.

Tweaked with inference rules for EQ?/EQV?/EQUAL?.  This could be
better, for example, if (eq? x y) then we know the types must be in
the intersection.  This would require work in TYPEREW/PRED.

28 years agoAdded an arity check so that primitives with rewrite rules but used
Stephen Adams [Fri, 19 Jul 1996 18:27:18 +0000 (18:27 +0000)]
Added an arity check so that primitives with rewrite rules but used
with teh wrong arity are silently ignored.  The applicat phase will
give a warning.

Added rewrites for most int: primitives to produce fixnum diamonds, or
to use the generic operations (for comparisons).

28 years agoExported flag compiler:rtl-instruction-scheduling?
Stephen Adams [Fri, 19 Jul 1996 02:50:10 +0000 (02:50 +0000)]
Exported flag compiler:rtl-instruction-scheduling?

28 years agoSET-INTERRUPT-ENABLES! is now open-coded as a special primitive unless
Stephen Adams [Fri, 19 Jul 1996 02:49:36 +0000 (02:49 +0000)]
SET-INTERRUPT-ENABLES! is now open-coded as a special primitive unless
'SET-INTERRUPT-ENABLES! is in compiler:primitives-with-no-open-coding.

28 years agoSET-INTERRUPT-ENABLES! is now open-coded as a special primitive unless
Stephen Adams [Fri, 19 Jul 1996 02:28:32 +0000 (02:28 +0000)]
SET-INTERRUPT-ENABLES! is now open-coded as a special primitive unless
'SET-INTERRUPT-ENABLES! is in compiler:primitives-with-no-open-coding.

28 years agoAdded set_interrupt_enables_hook
Stephen Adams [Fri, 19 Jul 1996 02:22:05 +0000 (02:22 +0000)]
Added set_interrupt_enables_hook

28 years agoAdded rules for %/, which enables &/ -> flo:/
Stephen Adams [Wed, 17 Jul 1996 21:37:45 +0000 (21:37 +0000)]
Added rules for %/, which enables &/ -> flo:/

28 years agoFixed bug in TYPEREW/EXPR*/UNORDERED/HARD where type information was
Stephen Adams [Wed, 17 Jul 1996 20:48:42 +0000 (20:48 +0000)]
Fixed bug in TYPEREW/EXPR*/UNORDERED/HARD where type information was
being lost because the list had been REVERSE!-ed.

28 years agoAdded graphcis operations DRAW-ARC, DRAW-CIRCLE and FILL-CIRCLE.
Stephen Adams [Fri, 12 Jul 1996 20:20:56 +0000 (20:20 +0000)]
Added graphcis operations DRAW-ARC, DRAW-CIRCLE and FILL-CIRCLE.

28 years agoFixed X-GRAPHICS-DRAW-ARC to do the right thing when the X and/or Y
Stephen Adams [Fri, 12 Jul 1996 20:12:15 +0000 (20:12 +0000)]
Fixed X-GRAPHICS-DRAW-ARC to do the right thing when the X and/or Y
axes are flipped.

28 years agoAdded X-graphics documentation about DRAW-CIRCLE and FILL-CIRCLE.
Stephen Adams [Fri, 12 Jul 1996 18:51:05 +0000 (18:51 +0000)]
Added X-graphics documentation about DRAW-CIRCLE and FILL-CIRCLE.

28 years agoAdded X-GRAPHICS/DRAW-ARC, X-GRAPHICS/DRAW-CIRCLE and X-GRAPHICS/FILL-CIRCLE.
Stephen Adams [Fri, 12 Jul 1996 18:03:45 +0000 (18:03 +0000)]
Added X-GRAPHICS/DRAW-ARC, X-GRAPHICS/DRAW-CIRCLE and X-GRAPHICS/FILL-CIRCLE.

28 years agoAdded X-GRAPHICS-DRAW-ARC for drawing filled and unfilled arcs.
Stephen Adams [Fri, 12 Jul 1996 17:52:28 +0000 (17:52 +0000)]
Added X-GRAPHICS-DRAW-ARC for drawing filled and unfilled arcs.

28 years agoRewrite `poll' support to make it conditionalized more cleanly.
Chris Hanson [Tue, 2 Jul 1996 21:13:29 +0000 (21:13 +0000)]
Rewrite `poll' support to make it conditionalized more cleanly.

28 years agoUse POLLNORM in preference to POLLIN since the former is supported
Chris Hanson [Tue, 2 Jul 1996 21:03:25 +0000 (21:03 +0000)]
Use POLLNORM in preference to POLLIN since the former is supported
more widely.

28 years agoFix minor bug in handling of cursor during SCREEN-FORCE-UPDATE.
Chris Hanson [Tue, 2 Jul 1996 21:01:15 +0000 (21:01 +0000)]
Fix minor bug in handling of cursor during SCREEN-FORCE-UPDATE.

28 years agoIf the `poll' system call is available, use it in preference to
Chris Hanson [Mon, 1 Jul 1996 23:28:17 +0000 (23:28 +0000)]
If the `poll' system call is available, use it in preference to
`select'.  This is needed for HP-UX 10.10 because `select' is broken
in that release.

28 years agoAdd conditionalization to detect versions of HP-UX that supply the
Chris Hanson [Mon, 1 Jul 1996 23:27:18 +0000 (23:27 +0000)]
Add conditionalization to detect versions of HP-UX that supply the
`poll' system call.

28 years agoAdd conditionalization to detect HP-UX version 10.10.
Chris Hanson [Mon, 1 Jul 1996 23:25:27 +0000 (23:25 +0000)]
Add conditionalization to detect HP-UX version 10.10.

28 years agoFix bug that caused RMAIL to signal an error when converting poorly
Chris Hanson [Sun, 16 Jun 1996 05:18:24 +0000 (05:18 +0000)]
Fix bug that caused RMAIL to signal an error when converting poorly
formed messages to RMAIL format.

28 years agoImplement "engineering" display mode.
Chris Hanson [Tue, 11 Jun 1996 04:29:58 +0000 (04:29 +0000)]
Implement "engineering" display mode.

28 years agoIncluded "load.scm" in syntax sequence.
Stephen Adams [Fri, 7 Jun 1996 04:34:16 +0000 (04:34 +0000)]
Included "load.scm" in syntax sequence.
Added copyright notice.

28 years agoAny identifier containing `protect' is no longer exported.
Stephen Adams [Fri, 7 Jun 1996 04:29:09 +0000 (04:29 +0000)]
Any identifier containing `protect' is no longer exported.

28 years agoExtend FLONUM-UNPARSER-CUTOFF to allow specification of the display
Chris Hanson [Thu, 6 Jun 1996 21:07:57 +0000 (21:07 +0000)]
Extend FLONUM-UNPARSER-CUTOFF to allow specification of the display
mode, e.g. SCIENTIFIC or ENGINEERING.

28 years agoFix bug: don't enqueue a process in the process-input-queue if it is
Chris Hanson [Fri, 24 May 1996 07:33:41 +0000 (07:33 +0000)]
Fix bug: don't enqueue a process in the process-input-queue if it is
already in the queue.  Otherwise, it can easily get entered very many
times: if there is input waiting, and the editor is busy, the process
will be queued as often as the select code can run.

28 years agoChange mechanism used to open files and sockets, so that interrupts
Chris Hanson [Sat, 18 May 1996 06:16:11 +0000 (06:16 +0000)]
Change mechanism used to open files and sockets, so that interrupts
are enabled during the open.  This is necessary, because any
network-based operation could potentially hang for long periods of
time, and it's desirable for the user to be able to interrupt out of
the operation.

This change requires microcode version 11.154 (or the corresponding
version 13).

In addition to this change, the low-level channel code was changed to
eliminate the now-obsolete gc-daemon interlocking code.

28 years agoFix code so that interrupts delivered during socket calls will
Chris Hanson [Sat, 18 May 1996 06:10:25 +0000 (06:10 +0000)]
Fix code so that interrupts delivered during socket calls will
deallocated sockets where necessary.

28 years agoAdd code to allow delivery of interrupts during socket-opening system
Chris Hanson [Sat, 18 May 1996 06:09:25 +0000 (06:09 +0000)]
Add code to allow delivery of interrupts during socket-opening system
calls.

28 years agoImplement new primitives to support new method for opening files and
Chris Hanson [Sat, 18 May 1996 06:08:14 +0000 (06:08 +0000)]
Implement new primitives to support new method for opening files and
sockets.  This code is required for runtime version 14.170.

28 years agoAllow keyboard interrupts while opening sockets. This is only a
Chris Hanson [Fri, 17 May 1996 17:49:45 +0000 (17:49 +0000)]
Allow keyboard interrupts while opening sockets.  This is only a
partial solution: there is a small window in which an interrupt can
arrive, leaving the descriptor open but forgotten.

28 years agoImplement new procedure, like WITHOUT-INTERRUPTS, except that it
Chris Hanson [Fri, 17 May 1996 17:47:59 +0000 (17:47 +0000)]
Implement new procedure, like WITHOUT-INTERRUPTS, except that it
allows keyboard interrupts.

28 years agoAllow interrupt delivery during socket system calls.
Chris Hanson [Fri, 17 May 1996 17:26:03 +0000 (17:26 +0000)]
Allow interrupt delivery during socket system calls.

28 years agoFix typo.
Chris Hanson [Fri, 17 May 1996 17:10:18 +0000 (17:10 +0000)]
Fix typo.

28 years agoFix thinko.
Chris Hanson [Wed, 15 May 1996 20:05:50 +0000 (20:05 +0000)]
Fix thinko.

28 years agoFix bug: GROUP-INSERT-FILE! was depending on the fact that
Chris Hanson [Wed, 15 May 1996 19:10:52 +0000 (19:10 +0000)]
Fix bug: GROUP-INSERT-FILE! was depending on the fact that
INPUT-BUFFER/READ-SUBSTRING did not return until the argument buffer
was full -- which is no longer true.

28 years agoEliminate random heuristic buffer-size modulation from previous
Chris Hanson [Wed, 15 May 1996 18:48:40 +0000 (18:48 +0000)]
Eliminate random heuristic buffer-size modulation from previous
change.  It turns out that the behavior that necessitated this
heuristic was a bug in the runtime system.

28 years agoEliminate loop in INPUT-BUFFER/READ-SUBSTRING. When line-translation
Chris Hanson [Wed, 15 May 1996 18:47:19 +0000 (18:47 +0000)]
Eliminate loop in INPUT-BUFFER/READ-SUBSTRING.  When line-translation
was in effect, this loop caused this procedure to read input until the
buffer was filled.  However, the procedure is supposed to return as
soon as some input is available.

28 years agoFix thinko: point was not being moved appropriately when marking
Chris Hanson [Wed, 15 May 1996 06:10:56 +0000 (06:10 +0000)]
Fix thinko: point was not being moved appropriately when marking
headers backwards.

28 years agoFix typo.
Chris Hanson [Wed, 15 May 1996 05:51:26 +0000 (05:51 +0000)]
Fix typo.

28 years agoForce the reader on-line when the user requests re-reading all of the
Chris Hanson [Wed, 15 May 1996 04:40:17 +0000 (04:40 +0000)]
Force the reader on-line when the user requests re-reading all of the
headers in a group.  Save the database files after refreshing all of
the groups.  Fix typo.

28 years agoIn SCREEN-MOVE-CURSOR, forget current position of cursor in order to
Chris Hanson [Wed, 15 May 1996 00:04:34 +0000 (00:04 +0000)]
In SCREEN-MOVE-CURSOR, forget current position of cursor in order to
force it to be moved at the end of the update.  This works around bugs
in the terminal implementations: sometimes the cursor is moved as a
side-effect of some other operation.  It's easier to fix this here
than to modify each implementation to guarantee that the cursor is not
moved.

28 years agoIn SCREEN-FORCE-UPDATE, forget the cursor position, so that it will be
Chris Hanson [Tue, 14 May 1996 23:46:07 +0000 (23:46 +0000)]
In SCREEN-FORCE-UPDATE, forget the cursor position, so that it will be
updated during the redisplay.

28 years agoYet more work on synchronous-subprocess I/O. The simple loop using
Chris Hanson [Tue, 14 May 1996 23:35:22 +0000 (23:35 +0000)]
Yet more work on synchronous-subprocess I/O.  The simple loop using
non-blocking I/O has atrocious performance characteristics, at least
under OS/2.  It's now been replaced by something that uses blocking
I/O where possible, and modulates the buffer length to provide better
feedback for incremental output.

28 years agoGuarantee that the presentation space for a window is set to its
Chris Hanson [Tue, 14 May 1996 05:42:46 +0000 (05:42 +0000)]
Guarantee that the presentation space for a window is set to its
normal colors at the end of a redisplay.  Previously, it was often
left in the highlight colors, which would cause areas of the window to
be painted in the foreground color when they were exposed.

28 years agoMove the cursor only when its position is changed. Previously, the
Chris Hanson [Tue, 14 May 1996 05:41:08 +0000 (05:41 +0000)]
Move the cursor only when its position is changed.  Previously, the
cursor was being moved many times in a row to the same location.  This
was caused by repeated screen updates being run as a result of
processing input events.  Input events can be quite common even when
there is no typing going on, as a result of window-system operations,
mouse tracking, etc.

28 years agoChange DISPLAY-STYLE in order to orthogonalize the effects that it can
Chris Hanson [Tue, 14 May 1996 01:55:25 +0000 (01:55 +0000)]
Change DISPLAY-STYLE in order to orthogonalize the effects that it can
have.  New design allows each of the different style effects to be
selected separately.

28 years agoChange DISPLAY-STYLE in order to orthogonalize the effects that it can
Chris Hanson [Tue, 14 May 1996 01:44:28 +0000 (01:44 +0000)]
Change DISPLAY-STYLE in order to orthogonalize the effects that it can
have.  New design allows each of the different style effects to be
selected separately.

28 years agoChange definition of UPDATE-INFERIOR! in order to centralize the
Chris Hanson [Tue, 14 May 1996 01:24:18 +0000 (01:24 +0000)]
Change definition of UPDATE-INFERIOR! in order to centralize the
testing of DISPLAY-STYLE when deciding whether or not to update the
inferior.

28 years agoWhen doing redisplay in a synchronous subprocess, update once before
Chris Hanson [Tue, 14 May 1996 01:07:46 +0000 (01:07 +0000)]
When doing redisplay in a synchronous subprocess, update once before
starting I/O loop.

28 years agoDefine new operations: CLOSE-INPUT, CLOSE-OUTPUT, INPUT-OPEN?,
Chris Hanson [Tue, 14 May 1996 00:53:56 +0000 (00:53 +0000)]
Define new operations: CLOSE-INPUT, CLOSE-OUTPUT, INPUT-OPEN?,
OUTPUT-OPEN?, and WRITE-CHARS.

28 years agoRewrite SYNCHRONOUS-PROCESS-WAIT to reduce the amount of redisplay
Chris Hanson [Tue, 14 May 1996 00:13:04 +0000 (00:13 +0000)]
Rewrite SYNCHRONOUS-PROCESS-WAIT to reduce the amount of redisplay
activity, and to eliminate direct references to channels.