Chris Hanson [Sat, 15 Apr 1989 01:24:10 +0000 (01:24 +0000)]
Use new procedure `%make-combination' to construct the combinations
being returned. This is needed because one of those combinations
might have failed because of a bad operand, and `make-combination'
might try to constant fold the combination. The new procedure doesn't
try to perform any constant folding.
Chris Hanson [Sat, 15 Apr 1989 01:15:37 +0000 (01:15 +0000)]
Many changes for GNU Emacs compatibility:
Change names of all commands, variables and modes; the new names are
symbols. All command names match those of Emacs; many variable names
also match.
Redesign command invocation code: new design uses `interactive'
specification nearly identical to that of Emacs. This permits
implementation of [repeat-complex-command]. The redesign necessitated
reworking some of the command prompting to make it fit the model.
Completion has been redesigned to work just like Emacs. The
performance of filename completion has been significantly improved.
Tags table stuff has been changed to be more like Emacs.
The performance of incremental search has been improved. Incremental
regexp search is now implemented.
The `recenter' command now clears the screen and redraws it if there
is no argument.
Scheme mode indentation is now like that in Emacs.
Keyboard interrupts are disabled while reading most characters.
[find-file] will call Dired if the argument is a directory.
The "Reading file ..." message is suppressed. Set the variable
`read-file-message' to true if you want it as it used to be.
The "override-message" (which is used to display messages and errors
in the typein window) now moves the typein window's cursor to the end
of the message. This results in the cursor moving to the end of the
message when an override-message overlays a typein in progress.
The prompting for [query-replace] and associated commands has been
changed to resemble Emacs'.
Chris Hanson [Sat, 15 Apr 1989 00:54:03 +0000 (00:54 +0000)]
Many changes for GNU Emacs compatibility:
Change names of all commands, variables and modes; the new names are
symbols. All command names match those of Emacs; many variable names
also match.
Redesign command invocation code: new design uses `interactive'
specification nearly identical to that of Emacs. This permits
implementation of [repeat-complex-command]. The redesign necessitated
reworking some of the command prompting to make it fit the model.
Completion has been redesigned to work just like Emacs. The
performance of filename completion has been significantly improved.
Tags table stuff has been changed to be more like Emacs.
The performance of incremental search has been improved. Incremental
regexp search is now implemented.
The `recenter' command now clears the screen and redraws it if there
is no argument.
Scheme mode indentation is now like that in Emacs.
Keyboard interrupts are disabled while reading most characters.
[find-file] will call Dired if the argument is a directory.
The "Reading file ..." message is suppressed. Set the variable
`read-file-message' to true if you want it as it used to be.
The "override-message" (which is used to display messages and errors
in the typein window) now moves the typein window's cursor to the end
of the message. This results in the cursor moving to the end of the
message when an override-message overlays a typein in progress.
The prompting for [query-replace] and associated commands has been
changed to resemble Emacs'.
Chris Hanson [Wed, 5 Apr 1989 18:23:37 +0000 (18:23 +0000)]
Modify `char-controlify' and `char-control-metafy' to use new
procedure `ascii-controlified?' when determining whether or not to set
the control bit in the result.
Chris Hanson [Wed, 5 Apr 1989 18:19:54 +0000 (18:19 +0000)]
Change `find-file', `read-buffer', and related procedures to separate
out certain functionality in new procedure `after-find-file'. This
new procedure sets the read-only bit, puts up any special messages
regarding the read/write status of the file, and does mode
initialization. In addition, `find-file' now catches file errors and
recovers from them in a reasonably graceful way.
1) Add support for ordinary terminals by using the curses library.
2) Eliminate some interrupt windows in direct output.
3) Add operations to the screen data structure to accomodate curses.
4) Add a new structure, a display, which consists of a keyboard and a screen.
5) Conditions not trapped by edwin now revert to the user in a
reasonable way, ie. the terminal should be in the same state that it
was before edwin was entered.
6) Reentering edwin after an unhandled condition updates the display.
7) The interaction buffer prompt is now inserted in the "exit" thunk
of the dynamic unwind, so that an abort will insert it as well.
8) Fix wrong number of args bug in ^R Screen Video.
Fix a trivial bug in the open coding of SYSTEM-VECTOR-SIZE and
VECTOR-LENGTH. The header's type code field must be cleared before
or'ing in the new type.
Add support for trap recovery:
- New condition types for hardware traps have been added.
- The stack parser knows how to parse (heuristically) the trap
recovery information.
- The debugger prints a description of the context of the trap.
- hardware-trap-frame/print-registers and
hardware-trap-frame/print-stack can be used on stack-frames of type
hardware-trap to display more information.
- The debugger's Y command (new) prints the stack frame structure
corresponding to the current subproblem.
Trap recovery has been changed. The microcode attempts to determine
how much state is valid and then saves all the pertinent information
(pc, registers, etc) so that the context of the trap and the rest of
the stack can be examined from scheme.
Primitives for reading/setting/enabling the keyboard interrupt
characters have been added. There is now a single C keyboard
interrupt handler which dispatches according to the signal received
and what the current handler is supposed to do.
Scheme tty input has been rewritten for the NTH time. reader_context
and reader_state structures have been merged.
Chris Hanson [Tue, 14 Mar 1989 19:45:15 +0000 (19:45 +0000)]
`undrift-procedure!' must set the block-parent of the procedure's
block to match the new closing-limit. Also: change the handling of
the closing-limit to guarantee that it is always either the same as
the closing-block, or #F; reorganize the code a bit.
Chris Hanson [Tue, 14 Mar 1989 19:42:25 +0000 (19:42 +0000)]
Rule which prevents lifting procedures of some "LET-like" procedures
is too general. Should not prevent trivial closures from being lifted
as far as they can.
Chris Hanson [Tue, 14 Mar 1989 19:38:55 +0000 (19:38 +0000)]
Can't pass a context to `make-return', because it expects a block.
This is because this procedure is usually called from fggen, and the
contexts are constructed later. Change this code to pass the block
and then clobber it.
Chris Hanson [Tue, 28 Feb 1989 18:23:55 +0000 (18:23 +0000)]
Allow stored description of named structure to be either a defstruct
structure description, or a procedure. In the latter case the
procedure is just called to produce the description.
Some changes to unix.c to remove most conditionalization by machine
and OS type. Most of the code is now conditionalized according to
flags like HAS_<mumble> or macros defined by the included files.
mul.c is now included by fixnum.c, and all the assembly language
versions have been moved to mul.c.
Add #@ to read back hashed objects.
Fix within-continuation and rewrite invocation-method/reentrant to
perform the state space motion after the control throw.