mit-scheme.git
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))

34 years agoThis runtime requires microcode 11.49 or later.
Chris Hanson [Tue, 16 Oct 1990 21:03:42 +0000 (21:03 +0000)]
This runtime requires microcode 11.49 or later.

* Take advantage of new primitives for terminals by adding operations
  to console input and output that use them.

* Define new arithmetic operations:

    FIX:<=
    FIX:>=
    INT:<=
    INT:>=

* Change record package so that record types do not contain
  procedures.  This is needed to permit records and record types to be
  fasdumped.

34 years ago* Flush curses support, add new primitives for termcap and terminfo.
Chris Hanson [Tue, 16 Oct 1990 20:57:29 +0000 (20:57 +0000)]
* Flush curses support, add new primitives for termcap and terminfo.

* Add new primitives to control terminals:

    TERMINAL-GET-ISPEED
    TERMINAL-GET-OSPEED
    BAUD-INDEX->RATE
    BAUD-RATE->INDEX
    TERMINAL-COOKED-OUTPUT?
    TERMINAL-COOKED-OUTPUT
    TERMINAL-RAW-OUTPUT

* Change X line scrolling so that it does not clear the region that
  the lines are being scrolled out of.  The update optimizer will take
  care of this if it needs to.

34 years agoInitial revision
Chris Hanson [Tue, 16 Oct 1990 20:52:15 +0000 (20:52 +0000)]
Initial revision

34 years agoFix parsing of octal escape sequences in strings.
Chris Hanson [Wed, 10 Oct 1990 06:30:35 +0000 (06:30 +0000)]
Fix parsing of octal escape sequences in strings.

34 years agoFix parsing of octal escape sequences in strings.
Chris Hanson [Wed, 10 Oct 1990 06:15:56 +0000 (06:15 +0000)]
Fix parsing of octal escape sequences in strings.

34 years agoInitial revision
Chris Hanson [Wed, 10 Oct 1990 02:48:47 +0000 (02:48 +0000)]
Initial revision

34 years agoAdd "-YPOSIX" to compiler switches.
Chris Hanson [Wed, 10 Oct 1990 02:36:36 +0000 (02:36 +0000)]
Add "-YPOSIX" to compiler switches.

34 years agoAdd CPH's changes to check the date/time of the last compilation, and
Guillermo J. Rozas [Wed, 10 Oct 1990 02:03:40 +0000 (02:03 +0000)]
Add CPH's changes to check the date/time of the last compilation, and
avoid if unnecessary.

34 years ago* The "-in-new-screen" commands have been replaced with
Chris Hanson [Tue, 9 Oct 1990 16:24:53 +0000 (16:24 +0000)]
* The "-in-new-screen" commands have been replaced with
  "-other-screen" commands.  This is more analogous to the
  "-other-window" commands.

* New editor variable `use-multiple-screens', if set true, causes
  various window commands to use multiple screens instead of multiple
  windows.  Affected commands include C-x o, C-M-v, C-x 4, and
  commands that pop-up buffers.  This needs more work but is an
  interesting first cut.

* With multiple X screens, the selected screen is distinguished by
  having a cursor -- a screen's cursor is erased when it is
  deselected.  This is desirable because it is no longer the case that
  the selected screen and the focus screen are always the same.

* Modeline formats have been extended to allow procedures as elements.
  Such a procedure is called with the modeline's window as an
  argument, and is expected to produce another modeline-format element
  which is used in its place.

* Selecting a window in a screen other than the selected screen will
  also select that screen.

* New procedure `other-screen' will choose a different screen if one
  is available.

* New screen operations `screen-scroll-lines-down!' and
  `screen-scroll-lines-up!' return a flag saying whether they
  performed the scrolling.  Redisplay code tries to use them when it
  scrolls, and repaints if they don't work.  Currently these
  operations are implemented for X screens but not for curses.

* The `screen-write-substrings!' operation is now written in terms of
  the `screen-write-substring!' operation, so that it need not be
  implemented separately for each screen abstraction.

* The display-type abstraction has been redesigned so that it has no
  internal state -- the current display type is now part of the editor
  structure.  Most of the operations have been renamed.  The procedure
  `editor-display-type' has been eliminated, the procedure
  `editor-display-types' now returns display-type objects rather than
  their names.

* Each display-type now indicates whether it supports multiple
  screens.  This information is returned by procedure
  `multiple-screens?'.

* The buffer that appears in the typein window when no typein is
  occurring is now different than the level-0 typein buffer.  This
  means that, under normal circumstances, only one typein window shows
  the typein buffer when typein is occurring.  The previous method of
  obscuring the typein buffer with an override message on non-selected
  screens is no longer used.

* The file "winmis" has been eliminated.

* The procedure `using-screen' has been eliminated.

34 years ago* The "-in-new-screen" commands have been replaced with
Chris Hanson [Tue, 9 Oct 1990 16:23:40 +0000 (16:23 +0000)]
* The "-in-new-screen" commands have been replaced with
  "-other-screen" commands.  This is more analogous to the
  "-other-window" commands.

* New editor variable `use-multiple-screens', if set true, causes
  various window commands to use multiple screens instead of multiple
  windows.  Affected commands include C-x o, C-M-v, C-x 4, and
  commands that pop-up buffers.  This needs more work but is an
  interesting first cut.

* With multiple X screens, the selected screen is distinguished by
  having a cursor -- a screen's cursor is erased when it is
  deselected.  This is desirable because it is no longer the case that
  the selected screen and the focus screen are always the same.

* Modeline formats have been extended to allow procedures as elements.
  Such a procedure is called with the modeline's window as an
  argument, and is expected to produce another modeline-format element
  which is used in its place.

* Selecting a window in a screen other than the selected screen will
  also select that screen.

* New procedure `other-screen' will choose a different screen if one
  is available.

* New screen operations `screen-scroll-lines-down!' and
  `screen-scroll-lines-up!' return a flag saying whether they
  performed the scrolling.  Redisplay code tries to use them when it
  scrolls, and repaints if they don't work.  Currently these
  operations are implemented for X screens but not for curses.

* The `screen-write-substrings!' operation is now written in terms of
  the `screen-write-substring!' operation, so that it need not be
  implemented separately for each screen abstraction.

* The display-type abstraction has been redesigned so that it has no
  internal state -- the current display type is now part of the editor
  structure.  Most of the operations have been renamed.  The procedure
  `editor-display-type' has been eliminated, the procedure
  `editor-display-types' now returns display-type objects rather than
  their names.

* Each display-type now indicates whether it supports multiple
  screens.  This information is returned by procedure
  `multiple-screens?'.

* The buffer that appears in the typein window when no typein is
  occurring is now different than the level-0 typein buffer.  This
  means that, under normal circumstances, only one typein window shows
  the typein buffer when typein is occurring.  The previous method of
  obscuring the typein buffer with an override message on non-selected
  screens is no longer used.

* The file "winmis" has been eliminated.

* The procedure `using-screen' has been eliminated.

34 years agoChange `xterm-erase-cursor' and `xterm-draw-cursor' primitives to be
Chris Hanson [Sun, 7 Oct 1990 13:34:49 +0000 (13:34 +0000)]
Change `xterm-erase-cursor' and `xterm-draw-cursor' primitives to be
direct calls to do exactly that.  Add new primitive
`xterm-enable-cursor' which enables or disables the drawing of the
cursor.

34 years agoImplement `%set-inferior-start!' that does not force redisplay.
Chris Hanson [Sat, 6 Oct 1990 21:10:32 +0000 (21:10 +0000)]
Implement `%set-inferior-start!' that does not force redisplay.

34 years ago* Add new procedure `window-override-message' that returns the
Chris Hanson [Sat, 6 Oct 1990 00:16:37 +0000 (00:16 +0000)]
* Add new procedure `window-override-message' that returns the
  override message, or #F if none.  This is used to implement
  `current-message', which operates on the current typein window.
  `clear-message!' renamed to `clear-current-message!'.
  `set-message!', renamed to `set-current-message!', now accepts #F as
  an argument, in which case it acts like `clear-current-message!'.

* Split `select-buffer-in-new-screen' into two parts: a procedure
  `make-screen' that generates a new screen, and a call to
  `select-screen'.  The new procedure `make-screen' replaces the
  procedure of the same name which is now considered internal to the
  screen abstraction.

* Change `select-screen' not to abort to top level, to run the
  `select-buffer-hook', and to transfer the typein override message
  from the previously-selected screen to the newly-selected one.  The
  X screen event handler now does the abort to top level, since it is
  still needed in that case.

* Eliminate the typein bufferset -- typein buffers are shared by all
  screens.  Display of the typein buffers is suppressed in
  non-selected screens by a blank override message.  This has the
  drawback that direct update of the typein window does not work if
  there are multiple screens, which makes typein feel sluggish.

* Implement procedures `screen0', `screen1+', `screen-1+', and
  `screen+' for moving around the screen list.

* `buffer-list' no longer copies its result -- don't clobber it!

* New procedure `change-selected-buffer' makes the handling of buffer
  selection more uniform.

* Eliminate cacheing of `editor-input-port' from "input.scm".  Just
  extract the input port from `current-editor' every time.  Change the
  keyboard reader to use `input-port/read-char' instead of
  `read-char', since the former is faster.

* Redesign the `button' abstraction to make it cleaner and more
  general.  Rename the `buttonN-down' and `buttonN-up' variables to
  `x-buttonN-down' and `x-buttonN-up'.  Change button-handling code so
  that up buttons don't beep if they aren't bound to commands.

* Updating of an X screen is now terminated if a non-keypress event
  arrives while checking for update preemption.  This is done by
  throwing out of the update.  I believe this test only happens in
  places where it is safe to do this.

* Make screen highlight control independent of the screen type.
  Change screen abstractions so that screens support two operations,
  one to turn on highlighting, and the other to turn it off.

34 years agoFix bug in `find-tag-default': don't use `re-search-forward' to find
Chris Hanson [Sat, 6 Oct 1990 00:00:30 +0000 (00:00 +0000)]
Fix bug in `find-tag-default': don't use `re-search-forward' to find
the end of the current symbol, use `re-match-forward' instead.

34 years ago* `hack-fastmap' needed to call `syntax-table/entries' because
Chris Hanson [Fri, 5 Oct 1990 23:54:51 +0000 (23:54 +0000)]
* `hack-fastmap' needed to call `syntax-table/entries' because
the syntax-table abstraction has changed since it was written.

* Fixed bug in `re-disassemble-pattern' that showed the wrong syntax
  class for syntax operators.

34 years agoFix bug: `line-inferiors-changed!' must update the `inferiors'
Chris Hanson [Fri, 5 Oct 1990 23:32:36 +0000 (23:32 +0000)]
Fix bug: `line-inferiors-changed!' must update the `inferiors'
instance variable even if `override-message' is set.

34 years agoAdd checksumming code. Binary files dumped by Psbtobin or fasdump
Guillermo J. Rozas [Fri, 5 Oct 1990 19:00:09 +0000 (19:00 +0000)]
Add checksumming code.  Binary files dumped by Psbtobin or fasdump
have checksums in the header.  If the checksum field is SHARP_F, the
checksum is ignored on the way in.

Currently bchscheme's fasdump does not dump files with checksums.
This should be fixed.

34 years agoAdd checksum field in header.
Guillermo J. Rozas [Fri, 5 Oct 1990 18:58:53 +0000 (18:58 +0000)]
Add checksum field in header.

34 years agoAdd checksumming code.
Guillermo J. Rozas [Fri, 5 Oct 1990 18:58:30 +0000 (18:58 +0000)]
Add checksumming code.

34 years agoInhibit checksum check within Bintopsb.
Guillermo J. Rozas [Fri, 5 Oct 1990 18:57:37 +0000 (18:57 +0000)]
Inhibit checksum check within Bintopsb.

34 years agoEliminate compiler warning.
Chris Hanson [Fri, 5 Oct 1990 13:32:48 +0000 (13:32 +0000)]
Eliminate compiler warning.

34 years agoUse one ".free" file to cache data for entire package model. Compress
Chris Hanson [Fri, 5 Oct 1990 12:58:18 +0000 (12:58 +0000)]
Use one ".free" file to cache data for entire package model.  Compress
the data stored in this file by eliminating duplicates and using
vectors instead of lists.

34 years agoUse one ".free" file to cache data for entire package model. Compress
Chris Hanson [Fri, 5 Oct 1990 11:36:32 +0000 (11:36 +0000)]
Use one ".free" file to cache data for entire package model.  Compress
the data stored in this file by eliminating duplicates and using
vectors instead of lists.

34 years agoUse one ".free" file to cache data for entire package model. Compress
Chris Hanson [Thu, 4 Oct 1990 10:21:24 +0000 (10:21 +0000)]
Use one ".free" file to cache data for entire package model.  Compress
the data stored in this file by eliminating duplicates and using
vectors instead of lists.

34 years agoChange to use `error:illegal-datum' and `error:datum-out-of-range'.
Chris Hanson [Thu, 4 Oct 1990 02:42:24 +0000 (02:42 +0000)]
Change to use `error:illegal-datum' and `error:datum-out-of-range'.

34 years agoChange to use `error:illegal-datum' and `error:datum-out-of-range'.
Chris Hanson [Thu, 4 Oct 1990 02:25:12 +0000 (02:25 +0000)]
Change to use `error:illegal-datum' and `error:datum-out-of-range'.

34 years agoUpdate handler for error COMPILED-CODE-ERROR, and add handler for
Guillermo J. Rozas [Wed, 3 Oct 1990 21:54:30 +0000 (21:54 +0000)]
Update handler for error COMPILED-CODE-ERROR, and add handler for
return code COMPILER-ERROR-RESTART.

34 years agoUpdate handler for COMPILED-CODE-ERROR.
Guillermo J. Rozas [Wed, 3 Oct 1990 21:53:53 +0000 (21:53 +0000)]
Update handler for COMPILED-CODE-ERROR.

34 years agoAdd handler for COMPILER-ERROR-RESTART.
Guillermo J. Rozas [Wed, 3 Oct 1990 21:53:21 +0000 (21:53 +0000)]
Add handler for COMPILER-ERROR-RESTART.

34 years agoAdd handler for RC_COMP_ERROR_RESTART.
Guillermo J. Rozas [Wed, 3 Oct 1990 18:57:28 +0000 (18:57 +0000)]
Add handler for RC_COMP_ERROR_RESTART.

34 years agoAdd comutil_primitive_error and associated changes (new return code,
Guillermo J. Rozas [Wed, 3 Oct 1990 18:57:03 +0000 (18:57 +0000)]
Add comutil_primitive_error and associated changes (new return code,
and re-use ERR_COMPILED_CODE_ERROR).

34 years agoChange ERR_BAD_COMBINATION to ERR_COMPILED_CODE_ERROR.
Guillermo J. Rozas [Wed, 3 Oct 1990 18:55:46 +0000 (18:55 +0000)]
Change ERR_BAD_COMBINATION to ERR_COMPILED_CODE_ERROR.
Change how comutil_primitive_error works, and add comp_error_restart.

34 years agoAdd RC_COMP_ERROR_RESTART.
Guillermo J. Rozas [Wed, 3 Oct 1990 16:49:32 +0000 (16:49 +0000)]
Add RC_COMP_ERROR_RESTART.

34 years agoAdd COMPILER-ERROR-RESTART.
Guillermo J. Rozas [Wed, 3 Oct 1990 16:49:07 +0000 (16:49 +0000)]
Add COMPILER-ERROR-RESTART.

34 years agoRemove compiled_code_error_code, no longer used.
Guillermo J. Rozas [Wed, 3 Oct 1990 15:16:32 +0000 (15:16 +0000)]
Remove compiled_code_error_code, no longer used.

34 years agoDisable ERR_BAD_COMBINATION.
Guillermo J. Rozas [Wed, 3 Oct 1990 15:12:51 +0000 (15:12 +0000)]
Disable ERR_BAD_COMBINATION.

34 years ago* X terminal interface extensively changed to use new event-handling
Chris Hanson [Wed, 3 Oct 1990 04:56:28 +0000 (04:56 +0000)]
* X terminal interface extensively changed to use new event-handling
  model -- this requires microcode 11.45 or later.

* `delete-screen' command now works.  `create-new-screen' command
  removed.

* `save-buffers-kill-scheme' command now prompts for confirmation.

* Changed all "event" hook variables to have event distributors as
  their values.  Users get access to an event by adding themselves to
  the event distributor.

* X screens now update their window and icon names under the control
  of the new variables `x-screen-name-format' and
  `x-screen-icon-name-format'.

Changes to programming interface:

* Changed names:

  current-screen selected-screen
  all-windows window-list (replacing old definition)
  all-screens screen-list
  create-new-frame select-buffer-in-new-screen
  screen-window screen-root-window
  change-screen select-screen

* `typein-window?' is now true if the window is a typein window of any
  screen.  Previously it was only true of the typein window of the
  selected screen.

* `select-window' and `select-cursor' now work for windows in any
  screen, rather than just for the selected screen.

* Changed `make-buffer' to use `editor-default-mode' for new buffers,
  rather than `fundamental-mode'.

* New procedure `typein-edit-other-window' returns the non-typein
  window that was active immediately before the current typein edit
  began.

* New procedure `format-modeline-string' permits more general use of
  the formatting language used for `mode-line-format'.

* Implemented `command-reader/reset-and-execute', which aborts to the
  top-level command reader and executes a thunk there before reading
  the next command.  This mechanism replaces the
  `set-reader-do-before-next-read!' procedure.

Internal changes:

* Modeline events for each window are now passed to the window's
  screen, in case the screen needs them.

* Guaranteed that `buffer-modified' modeline event is only signalled
  when the "modified" bit of the buffer changes.

* Eliminated `cursor-moved' modeline event.

* Screens now cache their dimensions.  X screens use this cached
  information to determine when a screen's size has changed.

* Removed `reader-continuation' stuff, which was commented out anyway.
  Current assumption is that, no matter how many screens there are,
  there is only one input port.  For X, this means that all screens
  are on the same display.

* Editor-frame operations are now subsumed by screen operations.
  There are no editor-frame operations in the (edwin) package.

* Many references to `update-screens!' changed to be calls to
  `update-selected-screen!'.

* Incremental search bullet-proofed to remove its message when it is
  aborted by any means.

* `standard-editor-initialization' bullet-proofed against aborts.

* Typein edits must consistenly use `current-typein-bufferset' for
  typein buffers.

* Eliminated "rescrn" by moving `toggle-screen-width' into "wincom".

34 years agoRemove most of the calls to `guarantee-input-port'. This is overkill,
Chris Hanson [Wed, 3 Oct 1990 01:29:12 +0000 (01:29 +0000)]
Remove most of the calls to `guarantee-input-port'.  This is overkill,
and the performance penalty is undesirable.

34 years agoUpdate to match new X interface. Also reformat to fit on 80x80 pages.
Chris Hanson [Wed, 3 Oct 1990 00:11:45 +0000 (00:11 +0000)]
Update to match new X interface.  Also reformat to fit on 80x80 pages.

34 years agoExtensive rewrite of X11 interface. New event-handling model, cleanup
Chris Hanson [Tue, 2 Oct 1990 22:52:47 +0000 (22:52 +0000)]
Extensive rewrite of X11 interface.  New event-handling model, cleanup
of several bugs, general reformatting of code.

Requires runtime version 14.97 or later, and edwin 3.21 or later.

34 years agoChange X graphics to match new event-handling in microcode.
Chris Hanson [Tue, 2 Oct 1990 22:45:01 +0000 (22:45 +0000)]
Change X graphics to match new event-handling in microcode.

34 years agoDon't use obsolete primitive `setup-timer-interrupt'.
Chris Hanson [Tue, 2 Oct 1990 22:43:13 +0000 (22:43 +0000)]
Don't use obsolete primitive `setup-timer-interrupt'.

34 years agoMake gpio primitives interruptible.
Guillermo J. Rozas [Tue, 2 Oct 1990 21:51:25 +0000 (21:51 +0000)]
Make gpio primitives interruptible.

34 years agoAdd asm_primitive_error.
Guillermo J. Rozas [Tue, 2 Oct 1990 21:50:09 +0000 (21:50 +0000)]
Add asm_primitive_error.

34 years agoAdd comutil_primitive_error.
Guillermo J. Rozas [Tue, 2 Oct 1990 21:49:25 +0000 (21:49 +0000)]
Add comutil_primitive_error.

34 years agoArthur's fixes to some text.
Guillermo J. Rozas [Mon, 1 Oct 1990 23:04:37 +0000 (23:04 +0000)]
Arthur's fixes to some text.

34 years ago`OS_process_timer_clear' must not signal errors, even if
Chris Hanson [Mon, 1 Oct 1990 22:42:02 +0000 (22:42 +0000)]
`OS_process_timer_clear' must not signal errors, even if
`OS_process_timer_set' isn't defined.

34 years agoAdd a note about integrations.
Guillermo J. Rozas [Mon, 1 Oct 1990 22:17:05 +0000 (22:17 +0000)]
Add a note about integrations.

34 years agoInitial revision
Guillermo J. Rozas [Sat, 29 Sep 1990 23:00:31 +0000 (23:00 +0000)]
Initial revision

34 years agoAdded (guarantee-input-port port) where necessary to improve type
Arthur Gleckler [Fri, 28 Sep 1990 01:56:48 +0000 (01:56 +0000)]
Added (guarantee-input-port port) where necessary to improve type
safety.

34 years agoPretty printer didn't handle #() correctly.
Chris Hanson [Thu, 27 Sep 1990 03:33:02 +0000 (03:33 +0000)]
Pretty printer didn't handle #() correctly.

34 years agoAdd nbits = 0 case to copy_bits to compensate for division bug in gcc.
Guillermo J. Rozas [Thu, 20 Sep 1990 03:02:26 +0000 (03:02 +0000)]
Add nbits = 0 case to copy_bits to compensate for division bug in gcc.
The bug arises when dividing by OBJECT_LENGTH inside
BIT_STRING_INDEX_TO_WORD.  The division is optimized into an unsigned
left shift that works for non-negative values, but not for -1, used
when the number of bits is 0!

34 years agoFix pretty printer's handling of custom pair and vector unparsers.
Chris Hanson [Wed, 19 Sep 1990 00:35:10 +0000 (00:35 +0000)]
Fix pretty printer's handling of custom pair and vector unparsers.

34 years agoAlter `unparser/tagged-pair-method' and
Chris Hanson [Wed, 19 Sep 1990 00:32:55 +0000 (00:32 +0000)]
Alter `unparser/tagged-pair-method' and
`unparser/tagged-vector-method' to disallow futures as tags.

34 years agoFix recaching bug in extend_frame when the root of the chain is not
Guillermo J. Rozas [Mon, 17 Sep 1990 19:54:34 +0000 (19:54 +0000)]
Fix recaching bug in extend_frame when the root of the chain is not
the global environment and there is no cell being shadowed.
Compiler_uncache was not called so shadowing_recache called from
higher levels was called on the wrong shadowed cell.  There is no
shadowed cell in this case so we use the cell containing the
unbound_trap_object.  This makes compiler_uncache and compiler_recache
punt the caching operation.

34 years ago*** empty log message ***
Chris Hanson [Fri, 14 Sep 1990 01:47:22 +0000 (01:47 +0000)]
*** empty log message ***

34 years agoTeach pretty-printer to respect the list depth and breadth limits.
Chris Hanson [Thu, 13 Sep 1990 23:46:06 +0000 (23:46 +0000)]
Teach pretty-printer to respect the list depth and breadth limits.

34 years agoChange subproblem marker to "###".
Chris Hanson [Thu, 13 Sep 1990 23:43:13 +0000 (23:43 +0000)]
Change subproblem marker to "###".

34 years agoChange subproblem marker to "###".
Chris Hanson [Thu, 13 Sep 1990 23:33:49 +0000 (23:33 +0000)]
Change subproblem marker to "###".

34 years agoAdd list depth and breadth limiting to the debugger. Export the
Chris Hanson [Thu, 13 Sep 1990 23:30:16 +0000 (23:30 +0000)]
Add list depth and breadth limiting to the debugger.  Export the
debugger's control variables to the global environment.

34 years agoImplement new `fresh-line' operation.
Chris Hanson [Thu, 13 Sep 1990 23:08:53 +0000 (23:08 +0000)]
Implement new `fresh-line' operation.

34 years agoAdd new procedure `with-output-string-port'.
Chris Hanson [Thu, 13 Sep 1990 22:31:59 +0000 (22:31 +0000)]
Add new procedure `with-output-string-port'.

34 years agoRecognize infinities and NaNs, and print them out specially.
Chris Hanson [Thu, 13 Sep 1990 20:12:50 +0000 (20:12 +0000)]
Recognize infinities and NaNs, and print them out specially.

34 years agoSupport for multiple screens.
Mark Friedman [Wed, 12 Sep 1990 20:12:53 +0000 (20:12 +0000)]
Support for multiple screens.
Support for new runtime debugger stuff.
Uses apply-hooks instead of entities.

34 years agodelete-screen doesn't yet work.
Mark Friedman [Wed, 12 Sep 1990 19:56:55 +0000 (19:56 +0000)]
delete-screen doesn't yet work.

34 years agoentity.scm is now obsolete. Apply hooks are used instead.
Mark Friedman [Wed, 12 Sep 1990 19:33:34 +0000 (19:33 +0000)]
entity.scm is now obsolete. Apply hooks are used instead.

34 years agoUpdate continuation browser to match changes in the debugger.
Chris Hanson [Wed, 12 Sep 1990 16:45:01 +0000 (16:45 +0000)]
Update continuation browser to match changes in the debugger.

34 years agoUpdate continuation browser to match changes in the debugger.
Chris Hanson [Wed, 12 Sep 1990 07:53:39 +0000 (07:53 +0000)]
Update continuation browser to match changes in the debugger.

34 years agoFix typo in `debug'. Change `command/return' so that the $ option
Chris Hanson [Wed, 12 Sep 1990 02:47:19 +0000 (02:47 +0000)]
Fix typo in `debug'.  Change `command/return' so that the $ option
doesn't unsyntax and then resyntax the expression.

34 years agoFix a number of instances of syntactic keywords being used as
Chris Hanson [Wed, 12 Sep 1990 02:44:12 +0000 (02:44 +0000)]
Fix a number of instances of syntactic keywords being used as
variables.

34 years agoFix a number of instances of syntactic keywords being used as
Chris Hanson [Wed, 12 Sep 1990 02:29:32 +0000 (02:29 +0000)]
Fix a number of instances of syntactic keywords being used as
variables.

34 years agoFix a number of instances of syntactic keywords being used as
Chris Hanson [Wed, 12 Sep 1990 02:23:23 +0000 (02:23 +0000)]
Fix a number of instances of syntactic keywords being used as
variables.