mit-scheme.git
34 years agoFix fixnum printing.
Guillermo J. Rozas [Wed, 21 Nov 1990 21:07:33 +0000 (21:07 +0000)]
Fix fixnum printing.

Fix NMV data printing.

Make NMV data print as characters as well as in hex.

34 years agoFasload and Fasdump now handle channels as well as files.
Guillermo J. Rozas [Wed, 21 Nov 1990 07:04:49 +0000 (07:04 +0000)]
Fasload and Fasdump now handle channels as well as files.

A primitive suspension mechanism has been implemented (prmcon.[ch])
and is used by fasload to continue if a GC is needed, rather than
aborting and starting from scratch.

34 years agoAdd prmcon.c and dependencies on prmcon.h .
Guillermo J. Rozas [Wed, 21 Nov 1990 07:01:03 +0000 (07:01 +0000)]
Add prmcon.c and dependencies on prmcon.h .

34 years agoInitial revision
Guillermo J. Rozas [Wed, 21 Nov 1990 07:00:30 +0000 (07:00 +0000)]
Initial revision

34 years agoChange interactive keyboard interrupt's help message to advertise
Chris Hanson [Tue, 20 Nov 1990 22:17:34 +0000 (22:17 +0000)]
Change interactive keyboard interrupt's help message to advertise
option characters that are consistent with GNU Emacs interface.

34 years agoFix bug: `delete-integrated-parameters' was deleting parameter's in a
Chris Hanson [Mon, 19 Nov 1990 22:51:08 +0000 (22:51 +0000)]
Fix bug: `delete-integrated-parameters' was deleting parameter's in a
procedure's interface only when the `procedure-interface-optimizible?'
said that it was OK to do so.  However, `lvalue-integrated?', used in
many places, would return #t for variables in that interface,
independent of `procedure-interface-optimizible?'.  The fix gets
rid of `procedure-interface-optimizible?' and alters
`lvalue-integrated?' to take the procedure interface restrictions into
account.

34 years ago*** empty log message ***
Chris Hanson [Mon, 19 Nov 1990 19:34:35 +0000 (19:34 +0000)]
*** empty log message ***

34 years agoVarious formatting changes.
Chris Hanson [Mon, 19 Nov 1990 19:33:01 +0000 (19:33 +0000)]
Various formatting changes.

34 years agoDon't use `system-library-pathname'. Instead use
Chris Hanson [Mon, 19 Nov 1990 19:30:24 +0000 (19:30 +0000)]
Don't use `system-library-pathname'.  Instead use
`system-library-directory-pathname' to find the options directory, and
then load the option file from there.

34 years ago- Inhibit checksums in load.c
Arthur Gleckler [Fri, 16 Nov 1990 21:20:15 +0000 (21:20 +0000)]
- Inhibit checksums in load.c
- Merge with OS/2 microcode.
- ANSIfy function headers.

34 years ago`indent-relative' changed to take no interactive arguments, since it
Chris Hanson [Fri, 16 Nov 1990 11:38:07 +0000 (11:38 +0000)]
`indent-relative' changed to take no interactive arguments, since it
is always called that way when used as value of
`indent-line-procedure'.

34 years agoChange to use new system-library pathname procedures. Requires runtim
Chris Hanson [Fri, 16 Nov 1990 01:11:44 +0000 (01:11 +0000)]
Change to use new system-library pathname procedures.  Requires runtim
14.103 or later.

34 years agoChange to use new system-library pathname procedures. Requires runtim
Chris Hanson [Fri, 16 Nov 1990 01:07:24 +0000 (01:07 +0000)]
Change to use new system-library pathname procedures.  Requires runtim
14.103 or later.

34 years agoChange `system-library-pathname' so that it signals an error if it
Chris Hanson [Thu, 15 Nov 1990 23:45:39 +0000 (23:45 +0000)]
Change `system-library-pathname' so that it signals an error if it
can't find the file.

34 years agoChange `system-library-directory-pathname' so that it signals an error
Chris Hanson [Thu, 15 Nov 1990 23:37:20 +0000 (23:37 +0000)]
Change `system-library-directory-pathname' so that it signals an error
if its argument is #F and none of the directories in the library path
exist.

34 years agoChange to use new system-library pathname procedures. Requires runtim
Chris Hanson [Thu, 15 Nov 1990 23:33:36 +0000 (23:33 +0000)]
Change to use new system-library pathname procedures.  Requires runtim
14.103 or later.

34 years agoUse new primitive `microcode-library-path', if present, to get a
Chris Hanson [Thu, 15 Nov 1990 23:27:53 +0000 (23:27 +0000)]
Use new primitive `microcode-library-path', if present, to get a
sequence of library directory names.

Change `system-library-directory-pathname' to search through this
sequence; also change it to accept an argument which is the name of a
subdirectory to look for.

New procedure `system-library-pathname' searches for a given file in
one of the library directories.

`load-option' and `disk-restore' changed to use
`system-library-pathname'.

34 years agoLink "dmpwrld" into Scheme.
Chris Hanson [Thu, 15 Nov 1990 23:20:35 +0000 (23:20 +0000)]
Link "dmpwrld" into Scheme.

34 years agoLink "dmpwrld" into Scheme.
Chris Hanson [Thu, 15 Nov 1990 23:20:21 +0000 (23:20 +0000)]
Link "dmpwrld" into Scheme.
Fix up several incorrect dependency sets.

34 years ago*** empty log message ***
Chris Hanson [Thu, 15 Nov 1990 23:18:45 +0000 (23:18 +0000)]
*** empty log message ***

34 years agoChange `reload-band-name' to return `option_band_file' if no
Chris Hanson [Thu, 15 Nov 1990 23:18:23 +0000 (23:18 +0000)]
Change `reload-band-name' to return `option_band_file' if no
`disk-restore' has been performed since Scheme was started.

34 years agoAdd new primitive `microcode-library-path'.
Chris Hanson [Thu, 15 Nov 1990 23:17:06 +0000 (23:17 +0000)]
Add new primitive `microcode-library-path'.

34 years agoPermit a compiled-code block's debugging-info to be #F. In
Chris Hanson [Thu, 15 Nov 1990 19:07:18 +0000 (19:07 +0000)]
Permit a compiled-code block's debugging-info to be #F.  In
that case, assume there is no debugging-info available.

34 years agoChange GE and GST to change top-level defaults only if in the
Chris Hanson [Thu, 15 Nov 1990 15:42:35 +0000 (15:42 +0000)]
Change GE and GST to change top-level defaults only if in the
top-level REPL.  Eliminate VE, VST, %GE, %VE, %GST, %VST, %IN, %OUT.
Change RE to clobber the reader history with the thing it is
re-evaluating.  Change prompt-for-confirmation to print out invalid
characters.

34 years agoFix another typo.
Chris Hanson [Thu, 15 Nov 1990 10:34:20 +0000 (10:34 +0000)]
Fix another typo.

34 years agoEliminate use of `cond' as variable name.
Chris Hanson [Thu, 15 Nov 1990 10:26:36 +0000 (10:26 +0000)]
Eliminate use of `cond' as variable name.

34 years ago*** empty log message ***
Chris Hanson [Thu, 15 Nov 1990 09:12:26 +0000 (09:12 +0000)]
*** empty log message ***

34 years agoFor cooked input, don't turn on ECHO or CRMOD unless they were on when
Chris Hanson [Thu, 15 Nov 1990 09:03:12 +0000 (09:03 +0000)]
For cooked input, don't turn on ECHO or CRMOD unless they were on when
Scheme was started.  For cooked output, don't turn on OPOST (turn off
LLITOUT) unless it was on (off) when Scheme was started.

34 years agoDisable SIGPIPE. This can happen under a variety of circumstances,
Chris Hanson [Thu, 15 Nov 1990 08:43:06 +0000 (08:43 +0000)]
Disable SIGPIPE.  This can happen under a variety of circumstances,
and we almost never want Scheme to terminate (a possible exception
being when it happens on stdout).  According to HP-UX documentation,
disabling this signal causes the system calls that would have
generated it to return EPIPE instead, which requires no special work
for us to handle.

34 years agoGaak! Fix nasty typo.
Chris Hanson [Wed, 14 Nov 1990 17:38:50 +0000 (17:38 +0000)]
Gaak!  Fix nasty typo.

34 years agoGaak! Fix nasty typo.
Chris Hanson [Wed, 14 Nov 1990 17:05:25 +0000 (17:05 +0000)]
Gaak!  Fix nasty typo.

34 years agoGaak! Fix nasty typo.
Chris Hanson [Wed, 14 Nov 1990 16:41:53 +0000 (16:41 +0000)]
Gaak!  Fix nasty typo.

34 years agoGenerate meaningful error if EOF encountered in keyboard input port.
Chris Hanson [Wed, 14 Nov 1990 15:14:53 +0000 (15:14 +0000)]
Generate meaningful error if EOF encountered in keyboard input port.

34 years agoMake `edwin' be an alias for `edit'.
Chris Hanson [Wed, 14 Nov 1990 15:11:14 +0000 (15:11 +0000)]
Make `edwin' be an alias for `edit'.

34 years agoVarious small cleanups for 7.1 release.
Chris Hanson [Wed, 14 Nov 1990 14:58:18 +0000 (14:58 +0000)]
Various small cleanups for 7.1 release.

34 years agoEliminate conflicting external declaration.
Chris Hanson [Wed, 14 Nov 1990 14:04:51 +0000 (14:04 +0000)]
Eliminate conflicting external declaration.

34 years agoAdd new primitives to save and restore a string through a
Chris Hanson [Wed, 14 Nov 1990 13:30:48 +0000 (13:30 +0000)]
Add new primitives to save and restore a string through a
disk-restore.  Change `get-unused-command-line' to return the unused
arguments on the first call, and #F on subsequent calls.

34 years agoFix handling of standard filename options. Must not perform library
Chris Hanson [Wed, 14 Nov 1990 13:29:38 +0000 (13:29 +0000)]
Fix handling of standard filename options.  Must not perform library
search on absolute pathnames.

34 years ago*** empty log message ***
Chris Hanson [Wed, 14 Nov 1990 13:28:42 +0000 (13:28 +0000)]
*** empty log message ***

34 years agoCheck for unused command-line arguments when Scheme starts.
Chris Hanson [Wed, 14 Nov 1990 13:27:28 +0000 (13:27 +0000)]
Check for unused command-line arguments when Scheme starts.

34 years agoNew operations on input-buffer for saving and restoring the contents
Chris Hanson [Wed, 14 Nov 1990 13:26:46 +0000 (13:26 +0000)]
New operations on input-buffer for saving and restoring the contents
of the buffer.  These are used by the console input port to preserve
the buffer's contents through a disk-restore.

34 years agoChange `fasdump' to return `unspecific'.
Chris Hanson [Wed, 14 Nov 1990 13:24:16 +0000 (13:24 +0000)]
Change `fasdump' to return `unspecific'.

34 years agoOK to make kitscheme now.
Chris Hanson [Wed, 14 Nov 1990 11:40:00 +0000 (11:40 +0000)]
OK to make kitscheme now.

34 years ago*** empty log message ***
Chris Hanson [Wed, 14 Nov 1990 11:32:47 +0000 (11:32 +0000)]
*** empty log message ***

34 years agoDon't define _HPUX_SOURCE.
Chris Hanson [Wed, 14 Nov 1990 11:11:29 +0000 (11:11 +0000)]
Don't define _HPUX_SOURCE.

34 years agoUse DISABLE_HISTORY instead of COMPILE_HISTORY.
Chris Hanson [Wed, 14 Nov 1990 10:59:26 +0000 (10:59 +0000)]
Use DISABLE_HISTORY instead of COMPILE_HISTORY.

34 years agoUse MC68010 instead of MC68020.
Chris Hanson [Wed, 14 Nov 1990 10:59:06 +0000 (10:59 +0000)]
Use MC68010 instead of MC68020.

34 years agoUse DISABLE_HISTORY instead of COMPILE_HISTORY.
Chris Hanson [Wed, 14 Nov 1990 10:58:32 +0000 (10:58 +0000)]
Use DISABLE_HISTORY instead of COMPILE_HISTORY.
Use MC68010 instead of MC68020.

34 years agoFix typo in output format.
Chris Hanson [Wed, 14 Nov 1990 10:53:20 +0000 (10:53 +0000)]
Fix typo in output format.

34 years agoExport CLOSE-TCP-SERVER-SOCKET to initial environment.
Arthur Gleckler [Tue, 13 Nov 1990 19:21:46 +0000 (19:21 +0000)]
Export CLOSE-TCP-SERVER-SOCKET to initial environment.

34 years agoInitial revision
Chris Hanson [Tue, 13 Nov 1990 08:46:44 +0000 (08:46 +0000)]
Initial revision

34 years ago* Consolidate command-line option processing. Several new options:
Chris Hanson [Tue, 13 Nov 1990 08:45:37 +0000 (08:45 +0000)]
* Consolidate command-line option processing.  Several new options:
  -large, -edwin, -library, -option-summary.  Each major option now
  has a two-step default: first an environment variable is checked,
  and if that doesn't exist, a built-in default is used.

  The point of these changes is to permit a Scheme executable program
  to have sufficient flexibility that it can be installed at many
  sites without modification to the built-in defaults.

* Move all option defaults and option specifications to new file
  "option.c".

* New primitive `get-unused-command-line' returns only that part of
  the command line that was left unused by the option-processing code.

* Rename `parent_process_is_emacs' to `option_emacs_subprocess'.

* Move all specialized exit handling to "term.c".

* Move several macro defaults from "default.h" to the files in which
  they are referenced.

34 years agoAdd new channel types for character and block devices.
Chris Hanson [Mon, 12 Nov 1990 04:01:05 +0000 (04:01 +0000)]
Add new channel types for character and block devices.

34 years agoEliminate overlong line. Change iterative algorithm to recursive.
Chris Hanson [Mon, 12 Nov 1990 04:00:05 +0000 (04:00 +0000)]
Eliminate overlong line.  Change iterative algorithm to recursive.

34 years agoAdd `character-device' and `block-device' file types.
Chris Hanson [Mon, 12 Nov 1990 03:52:29 +0000 (03:52 +0000)]
Add `character-device' and `block-device' file types.

34 years agoInitialize file descriptors of `struct terminal_state_recording'
Chris Hanson [Sun, 11 Nov 1990 00:25:13 +0000 (00:25 +0000)]
Initialize file descriptors of `struct terminal_state_recording'
variables.

34 years agoUpdate kitscheme to use libndvio, rather than libdvio. This solves
Guillermo J. Rozas [Sat, 10 Nov 1990 16:33:18 +0000 (16:33 +0000)]
Update kitscheme to use libndvio, rather than libdvio.  This solves
the problems with the GNU linker.

34 years agoFix braino in change making INPUT-BUFFER/READ-UNTIL-DELIMITER a linear
Arthur Gleckler [Sat, 10 Nov 1990 00:32:55 +0000 (00:32 +0000)]
Fix braino in change making INPUT-BUFFER/READ-UNTIL-DELIMITER a linear
time algorithm.

34 years agoChange INPUT-BUFFER/READ-UNTIL-DELIMITER to a linear time algorithm.
Arthur Gleckler [Fri, 9 Nov 1990 21:31:56 +0000 (21:31 +0000)]
Change INPUT-BUFFER/READ-UNTIL-DELIMITER to a linear time algorithm.
Previously was quadratic time when more than one buffer-full was read through.

34 years agoChange OPEN-TCP-SERVER-SOCKET to take a service name, not a port number.
Arthur Gleckler [Fri, 9 Nov 1990 20:59:30 +0000 (20:59 +0000)]
Change OPEN-TCP-SERVER-SOCKET to take a service name, not a port number.

34 years agoFix stupid think-o from last change.
Chris Hanson [Fri, 9 Nov 1990 10:10:35 +0000 (10:10 +0000)]
Fix stupid think-o from last change.

34 years agoFix stupid think-o from last change.
Chris Hanson [Fri, 9 Nov 1990 09:07:33 +0000 (09:07 +0000)]
Fix stupid think-o from last change.

34 years agoChange peek-char, read-char, and read-string operations to return EOF
Chris Hanson [Fri, 9 Nov 1990 08:56:28 +0000 (08:56 +0000)]
Change peek-char, read-char, and read-string operations to return EOF
objects when they reach the end of the input region.  This is an
incompatible change required by runtime system version 14.101.

34 years agoInitial revision
Chris Hanson [Fri, 9 Nov 1990 08:46:27 +0000 (08:46 +0000)]
Initial revision

34 years agoRequires microcode 11.52 or later.
Chris Hanson [Fri, 9 Nov 1990 08:44:55 +0000 (08:44 +0000)]
Requires microcode 11.52 or later.

* Reimplement subprocess abstraction to match new microcode support.

* Implement socket abstraction.

* Create new "generic channel" input and output ports.  These share
  operations with file and console ports.

* Add `buffer-size' and `set-buffer-size' operations to file and
  console input ports.

* Add `eof?' operation to file input port.

* Add `channel' operation to file input and output ports.

* Change input and output buffer abstractions to permit a buffer-size
  of zero.  Input buffer treats this the same as a buffer size of one,
  since at least one character of buffering is needed to implement the
  peek-char operation.

* Change the peek-char and read-char input port operations to return
  an EOF object at end of file, or #F if no characters are available
  and the input port is set to non-blocking mode.  This is an
  incompatible change.

* Change the read-string input port operation to return an EOF object
  at end of file.  This is an incompatible change.

* Change the read-string and discard-chars input-port operations to
  for their input channels into blocking mode.

* Add new channel types: TCP-SERVER-SOCKET and DIRECTORY.

* Change the file-opening code to signal a range error if an attempt
  is made to open a channel of type DIRECTORY or UNKNOWN.

* Remove error check from `open-pty-master'; the primitive now takes
  care of this.

* Add new operations on PTY masters: pty-master-kill, pty-master-stop,
  pty-master-continue, pty-master-interrupt, and pty-master-quit.

* Change the input-buffer abstraction to handle non-blocking channels
  correctly.

* Use new microcode primitive `file-mod-time-indirect' to implement
  `file-modification-time'.

34 years agoDon't compile kitscheme -- it doesn't compile successfully so this is
Chris Hanson [Thu, 8 Nov 1990 11:17:40 +0000 (11:17 +0000)]
Don't compile kitscheme -- it doesn't compile successfully so this is
a waste of time.

34 years agoBug fixes and enhancement of socket and subprocess code.
Chris Hanson [Thu, 8 Nov 1990 11:14:54 +0000 (11:14 +0000)]
Bug fixes and enhancement of socket and subprocess code.

34 years agoEdit dependencies -- many missing dependencies in operating system
Chris Hanson [Thu, 8 Nov 1990 11:14:11 +0000 (11:14 +0000)]
Edit dependencies -- many missing dependencies in operating system
files.

34 years ago(OS_initialize): Initialize processes after initializing signals,
Chris Hanson [Thu, 8 Nov 1990 11:13:28 +0000 (11:13 +0000)]
(OS_initialize): Initialize processes after initializing signals,
otherwise assignment to `subprocess_death_hook' is lost.

34 years ago* (OS_job_control_p): New procedure.
Chris Hanson [Thu, 8 Nov 1990 11:12:58 +0000 (11:12 +0000)]
* (OS_job_control_p): New procedure.

* (OS_open_pty_master): Signal error if none available.

* (OS_pty_master_send_signal): Conditionalize use of TIOCSIGSEND on
  that symbol, not on _HPUX.

* (OS_pty_master_kill, OS_pty_master_stop, OS_pty_master_continue,
  OS_pty_master_interrupt, OS_pty_master_quit): New procedures.

34 years ago* (OS_open_tcp_stream_socket): Change `host' argument to be `char *',
Chris Hanson [Thu, 8 Nov 1990 11:11:57 +0000 (11:11 +0000)]
* (OS_open_tcp_stream_socket): Change `host' argument to be `char *',
  and don't assume that it is the same length as a `long'.

* (OS_get_host_by_name): Change interface to return `char **', and
  eliminate `struct host_addresses'.  Assume that all addresses are
  `sizeof (struct in_addr)' in length.

* (OS_open_server_socket, OS_server_connection_accept): New procedures
  support server sockets.

34 years ago* (OS_make_subprocess): Permit 0 as environment pointer argument,
Chris Hanson [Thu, 8 Nov 1990 11:10:56 +0000 (11:10 +0000)]
* (OS_make_subprocess): Permit 0 as environment pointer argument,
  meaning use value of `environ'.  Fix a couple of bugs in the child
  process initialization sequence.

* (OS_process_stop, OS_process_continue): Don't check to see if job
  control is available -- just do it.

34 years agoSupport for server sockets.
Chris Hanson [Thu, 8 Nov 1990 11:10:08 +0000 (11:10 +0000)]
Support for server sockets.

34 years ago* (UX_channel_close_all): Don't signal errors -- this is run when
Chris Hanson [Thu, 8 Nov 1990 11:08:07 +0000 (11:08 +0000)]
* (UX_channel_close_all): Don't signal errors -- this is run when
  there is no runtime system to field them, and in any case they can
  be safely ignored here.

* (OS_channel_close_on_abort): New utility procedure.

34 years ago* (fd_channel_type): Don't signal error if the system call fails, just
Chris Hanson [Thu, 8 Nov 1990 11:07:33 +0000 (11:07 +0000)]
* (fd_channel_type): Don't signal error if the system call fails, just
  return unknown type.  Add case for directory type.

* (OS_open_load_file, OS_open_dump_file): Permit only files and FIFOs.

34 years ago* (host-address-length): New primitive specifies the size of a host
Chris Hanson [Thu, 8 Nov 1990 11:06:58 +0000 (11:06 +0000)]
* (host-address-length): New primitive specifies the size of a host
  name in characters.

* (get-host-by-name): Changes to match `OS_get_host_by_name'.

* (open-tcp-server-socket, tcp-server-connection-accept): New
  primitives permit Scheme to act as a TCP server.

34 years ago(file-mod-time, file-mod-time-indirect): New primitives to obtain the
Chris Hanson [Thu, 8 Nov 1990 11:06:12 +0000 (11:06 +0000)]
(file-mod-time, file-mod-time-indirect): New primitives to obtain the
modification time of a file.

34 years ago* (os-job-control?): New primitive tells the runtime system whether or
Chris Hanson [Thu, 8 Nov 1990 11:05:26 +0000 (11:05 +0000)]
* (os-job-control?): New primitive tells the runtime system whether or
  not the operating system supports job control.  This is needed when
  hacking subprocesses.

* (open-pty-master): Close the channel if allocation forces GC.

* (pty-master-kill, pty-master-stop, pty-master-continue,
  pty-master-interrupt, pty-master-quit): New primitives to send
  standard signals down a PTY master.

34 years ago* (make-subprocess): Now accepts #F as third arg, meaning
Chris Hanson [Thu, 8 Nov 1990 11:04:37 +0000 (11:04 +0000)]
* (make-subprocess): Now accepts #F as third arg, meaning
  give Scheme's process environment to the subprocess.

* (scheme-environment): New primitive returns Scheme's process
  environment in a form suitable for passing to `make-subprocess'.

* (convert_string_vector): Fix fencepost error.

34 years ago(enum channel_type): New types for server sockets and directories.
Chris Hanson [Thu, 8 Nov 1990 11:03:44 +0000 (11:03 +0000)]
(enum channel_type): New types for server sockets and directories.

34 years agoFix typo from last change.
Chris Hanson [Mon, 5 Nov 1990 22:59:52 +0000 (22:59 +0000)]
Fix typo from last change.

34 years ago* Eliminate obsolete TTY I/O primitives. These have not been used for
Chris Hanson [Mon, 5 Nov 1990 11:55:48 +0000 (11:55 +0000)]
* Eliminate obsolete TTY I/O primitives.  These have not been used for
  several months now.

* If stdin or stdout is a terminal, save its state when entering
  Scheme, and restore it when leaving, as is done with the control
  terminal.  Ignore any attempts to change the state if Scheme is not
  in the foreground.  This code helps prevent buggy Scheme programs
  from screwing up the user's terminal.

* On machines with TERMIOS and BSD_JOB_CONTROL, such as HP-UX, alter
  VSUSPC and t_suspc together.  Altering one and not the other can
  cause the change to be lost.

34 years agoRequires microcode 11.50 and runtime 14.100.
Chris Hanson [Fri, 2 Nov 1990 04:19:34 +0000 (04:19 +0000)]
Requires microcode 11.50 and runtime 14.100.

* Implementation of update optimizer, and direct use of termcap rather
  than the buggy curses.

* Extensive rewrite of display update code.  New display update
  scrolls lines in some cases, and is tuned to offset the added cost
  of running the update optimizer.

* New display update event-tracing facility for debugging.

* If the last line of the buffer is empty, and the previous line is
  completely visible, the modeline says that the bottom of the buffer
  is visible.

* Editor variables can have value validity tests, which are applied
  whenever the variable's value is altered.  If the test fails, an
  error is signalled, so that user code can depend on the variable's
  contents satisfying the validity test.

* `(buffer-point (current-buffer))' now equivalent to
  `(current-point)'.

* `window-redraw!' no longer takes a second argument.  It's new
  meaning is to force the window to be redrawn from scratch, without
  affecting the window starting point or cursor position.

* Removed procedures:
window-end-index
window-redraw-preserving-point!

* Changed `window-start-index' to `window-start-mark'.

* Change terminal state control to use new I/O port operations that
  extract channels, and perform the terminal controls directly on
  those channels.

* Internal flag `debug-internal-errors?' facilitates debugging Edwin
  if set true.  Normally this is false.

* When first starting the editor, the default behavior is to try to
  use Scheme's controlling terminal, and if that isn't available, to
  use X.  If Scheme is started under Emacs, it has no controlling
  terminal, and therefore it will use X.

34 years agoInitial revision
Chris Hanson [Fri, 2 Nov 1990 04:16:38 +0000 (04:16 +0000)]
Initial revision

34 years agoRequires microcode 11.50 and runtime 14.100.
Chris Hanson [Fri, 2 Nov 1990 03:25:13 +0000 (03:25 +0000)]
Requires microcode 11.50 and runtime 14.100.

* Implementation of update optimizer, and direct use of termcap rather
  than the buggy curses.

* Extensive rewrite of display update code.  New display update
  scrolls lines in some cases, and is tuned to offset the added cost
  of running the update optimizer.

* New display update event-tracing facility for debugging.

* If the last line of the buffer is empty, and the previous line is
  completely visible, the modeline says that the bottom of the buffer
  is visible.

* Editor variables can have value validity tests, which are applied
  whenever the variable's value is altered.  If the test fails, an
  error is signalled, so that user code can depend on the variable's
  contents satisfying the validity test.

* `(buffer-point (current-buffer))' now equivalent to
  `(current-point)'.

* `window-redraw!' no longer takes a second argument.  It's new
  meaning is to force the window to be redrawn from scratch, without
  affecting the window starting point or cursor position.

* Removed procedures:
window-end-index
window-redraw-preserving-point!

* Changed `window-start-index' to `window-start-mark'.

* Change terminal state control to use new I/O port operations that
  extract channels, and perform the terminal controls directly on
  those channels.

* Internal flag `debug-internal-errors?' facilitates debugging Edwin
  if set true.  Normally this is false.

* When first starting the editor, the default behavior is to try to
  use Scheme's controlling terminal, and if that isn't available, to
  use X.  If Scheme is started under Emacs, it has no controlling
  terminal, and therefore it will use X.

34 years agoTuning. Fix bug in mark comparison operations. Add operations to get
Chris Hanson [Fri, 2 Nov 1990 03:15:58 +0000 (03:15 +0000)]
Tuning.  Fix bug in mark comparison operations.  Add operations to get
display text limits.

34 years agoTuning.
Chris Hanson [Fri, 2 Nov 1990 03:13:38 +0000 (03:13 +0000)]
Tuning.

34 years agoUse the `recenter' command rather than the procedure `window-redraw!'.
Chris Hanson [Fri, 2 Nov 1990 03:09:52 +0000 (03:09 +0000)]
Use the `recenter' command rather than the procedure `window-redraw!'.

34 years agoDon't warn about redefining class if the new definition appears to be
Chris Hanson [Fri, 2 Nov 1990 02:54:34 +0000 (02:54 +0000)]
Don't warn about redefining class if the new definition appears to be
the same as the original.

34 years agoRequires microcode version 11.50 or later.
Chris Hanson [Fri, 2 Nov 1990 02:07:08 +0000 (02:07 +0000)]
Requires microcode version 11.50 or later.

Many changes to provide for smooth control of terminal state:

* Procedures `make-cmdl' and `push-cmdl' each take additional argument
  that specifies how to spawn a child CMDL object -- a good default
  for this argument is `make-cmdl'.  `make-cmdl' should not be used
  except by this "spawning" operation -- always use `(cmdl/spawn-child
  cmdl)' to do that.  Command loops should be extended to have generic
  operations for reading input, evaluating, writing results,
  prompting, etc.  This would simplify switching between the editor
  and user code.

* Command loops now temporarily switch input and output modes of
  terminals to appropriate values when doing input or output.  Thus
  REP loops and the debugger need not worry about what state the
  terminal is in -- the user can change it arbitrarily.

* New procedures `input-port/channel' and `output-port/channel' return
  a port's underlying channel if known, else #F.  This is not yet
  completely implemented, but since it is only used for terminals it
  is OK for now.

* New procedures `terminal-get-state' and `terminal-set-state' can be
  used to save and restore a terminal's state.

* Renamed procedures:
terminal-buffered? terminal-cooked-input?
terminal-buffered terminal-cooked-input
terminal-nonbuffered terminal-raw-input

* Eliminated procedure `make-repl'.  Most instances of this should
  have been `push-repl' instead.

* Eliminated procedures `input-port/immediate-mode' and
  `input-port/normal-mode'.  Eliminated output-port operations
  `raw-mode' and `cooked-mode'.  Eliminated port operation
  `baud-rate'.

* Eliminated ill-advised `fresh-line' operation on output ports.  This
  should be supplied directly by each type of port.

34 years agoFix typo.
Chris Hanson [Thu, 1 Nov 1990 06:16:39 +0000 (06:16 +0000)]
Fix typo.

34 years ago* New primitives `terminal-get-state' and `terminal-set-state' allow
Chris Hanson [Thu, 1 Nov 1990 04:33:46 +0000 (04:33 +0000)]
* New primitives `terminal-get-state' and `terminal-set-state' allow
  Scheme programs to get an object representing a terminal's state
  structure, and to restore the terminal's state from such an object.

* When Scheme is terminated, restore the control terminal state.
  Previously this was done only when suspending Scheme.

* On machines that have it, disable `t_dsuspc' (the delayed suspend
  character).  Save this and any other TIOCGLTC state in the terminal
  state structure.  Previously POSIX machines ignored this state even
  if it was present.

34 years agoWhen scrolling part of an X terminal window, don't redraw the cursor
Chris Hanson [Thu, 25 Oct 1990 21:34:27 +0000 (21:34 +0000)]
When scrolling part of an X terminal window, don't redraw the cursor
unless it is within the part of the window that is being overwritten.

34 years agoProvide expanders for `values' and `with-values' that avoid expensive
Chris Hanson [Wed, 24 Oct 1990 15:09:57 +0000 (15:09 +0000)]
Provide expanders for `values' and `with-values' that avoid expensive
rest arguments and calls to eval.

34 years ago* Expand CHAR=? to EQ?.
Chris Hanson [Fri, 19 Oct 1990 22:25:50 +0000 (22:25 +0000)]
* Expand CHAR=? to EQ?.

* Don't signal errors during expansion -- let them happen later.

34 years ago* Expand CHAR=? to EQ?.
Chris Hanson [Fri, 19 Oct 1990 22:05:45 +0000 (22:05 +0000)]
* Expand CHAR=? to EQ?.

* Don't signal errors during expansion -- let them happen later.

34 years agoProvide load/loading? flag, true while loading, false otherwise, and
Guillermo J. Rozas [Wed, 17 Oct 1990 03:31:36 +0000 (03:31 +0000)]
Provide load/loading? flag, true while loading, false otherwise, and
load/push-hook! to add a hook to execute after loading the current
file.

34 years agoExport load/loading? and load/push-hook! from (runtime load).
Guillermo J. Rozas [Wed, 17 Oct 1990 03:30:37 +0000 (03:30 +0000)]
Export load/loading? and load/push-hook! from (runtime load).

34 years agoUpdate the 6003 and Toolkit microcodes.
Gerald Jay Sussman [Wed, 17 Oct 1990 02:24:25 +0000 (02:24 +0000)]
Update the 6003 and Toolkit microcodes.

Rename scmkit to kitscheme.

34 years agoProvide expansions for fixnum comparison operators:
Chris Hanson [Tue, 16 Oct 1990 21:07:11 +0000 (21:07 +0000)]
Provide expansions for fixnum comparison operators:

    (FIX:= X Y)   --->   (EQ? X Y)
    (FIX:ZERO? X) --->   (EQ? X 0)
    (FIX:<= X Y)  --->   (NOT (FIX:> X Y))
    (FIX:>= X Y)  --->   (NOT (FIX:< X Y))