mit-scheme.git
31 years agoRename declare_compiled_code to declare_compiled_code_block.
Guillermo J. Rozas [Tue, 26 Oct 1993 02:58:01 +0000 (02:58 +0000)]
Rename declare_compiled_code to declare_compiled_code_block.
The name declare_compiled_code was already in use by the C back end.

31 years agoFix crufty problem with highlighting -- indentation was highlighted
Chris Hanson [Tue, 26 Oct 1993 01:12:23 +0000 (01:12 +0000)]
Fix crufty problem with highlighting -- indentation was highlighted
instead of text!

31 years agoChange RETURN-TO-COMMAND-LOOP to accept a condition as its sole
Chris Hanson [Tue, 26 Oct 1993 00:37:59 +0000 (00:37 +0000)]
Change RETURN-TO-COMMAND-LOOP to accept a condition as its sole
argument.  The restart that it invokes is extracted from the
condition, not from the current restarts, and if it is an
ABORT-CURRENT-COMMAND condition, its input is processed.

31 years agoEarlier change I made was lost by careless edit -- put it back in.
Chris Hanson [Tue, 26 Oct 1993 00:31:19 +0000 (00:31 +0000)]
Earlier change I made was lost by careless edit -- put it back in.

31 years agoMore changes all over the place. Remove the picture documentation to
Chris Hanson [Mon, 25 Oct 1993 21:35:08 +0000 (21:35 +0000)]
More changes all over the place.  Remove the picture documentation to
a separate file and conditionalize its inclusion.

31 years agoInitial revision
Chris Hanson [Mon, 25 Oct 1993 21:32:19 +0000 (21:32 +0000)]
Initial revision

31 years agoBind notification-output-port to a null port that does not signal
Chris Hanson [Mon, 25 Oct 1993 19:57:19 +0000 (19:57 +0000)]
Bind notification-output-port to a null port that does not signal
errors.

31 years agoReformatting to fit on page.
Chris Hanson [Mon, 25 Oct 1993 19:06:50 +0000 (19:06 +0000)]
Reformatting to fit on page.

31 years agoSuppress loading messages -- these formerly were harmless because the
Chris Hanson [Mon, 25 Oct 1993 17:13:41 +0000 (17:13 +0000)]
Suppress loading messages -- these formerly were harmless because the
CMDL port soaked them up, now they signal errors.

31 years agoNumerous small changes.
Chris Hanson [Sat, 23 Oct 1993 03:01:17 +0000 (03:01 +0000)]
Numerous small changes.

31 years agoFix typos.
Chris Hanson [Thu, 21 Oct 1993 15:04:31 +0000 (15:04 +0000)]
Fix typos.

31 years ago* New port operation WRITE-SELF is like PRINT-SELF except that it uses
Chris Hanson [Thu, 21 Oct 1993 14:52:45 +0000 (14:52 +0000)]
* New port operation WRITE-SELF is like PRINT-SELF except that it uses
  STANDARD-UNPARSER-METHOD rather than UNPARSER/STANDARD-METHOD.

* Rewrite instances of PRINT-SELF using WRITE-SELF.  Rewrite instances
  of UNPARSER/STANDARD-METHOD using STANDARD-UNPARSER-METHOD.

31 years ago* Implement new procedure STANDARD-UNPARSER-METHOD. This has a
Chris Hanson [Thu, 21 Oct 1993 13:57:33 +0000 (13:57 +0000)]
* Implement new procedure STANDARD-UNPARSER-METHOD.  This has a
  less-idiosyncratic interface than UNPARSER/STANDARD-METHOD.  Uses of
  the latter should be replaced with the former.

* Implement new procedure WITH-CURRENT-UNPARSER-STATE which calls its
  second argument with the port from its first.  The other components
  of the state are fluid-bound so that they become the defaults for
  calls to WRITE and DISPLAY.

* GUARANTEE-UNPARSER-STATE and GUARANTEE-UNPARSER-TABLE now take an
  addition argument, the name of the procedure testing its argument.

31 years agoRemove ERROR-OUTPUT-PORT.
Chris Hanson [Thu, 21 Oct 1993 12:25:15 +0000 (12:25 +0000)]
Remove ERROR-OUTPUT-PORT.

31 years agoRemove ERROR-OUTPUT-PORT.
Chris Hanson [Thu, 21 Oct 1993 12:14:20 +0000 (12:14 +0000)]
Remove ERROR-OUTPUT-PORT.

31 years ago* Define new standard ports to replace nearly all instances of
Chris Hanson [Thu, 21 Oct 1993 11:57:46 +0000 (11:57 +0000)]
* Define new standard ports to replace nearly all instances of
  NEAREST-CMDL/PORT.  When a CMDL starts, it binds all of these ports
  to the CMDL port; but they can each be rebound separately without
  affecting the CMDL port.

(ERROR-OUTPUT-PORT) errors and warnings
(NOTIFICATION-OUTPUT-PORT) load messages, etc.
(TRACE-OUTPUT-PORT) output from TRACE
(INTERACTION-I/O-PORT) prompting

* Implement IGNORE-ERRORS procedure.  Change WRITE-CONDITION-REPORT so
  that it ignores errors that occur while writing the report, but only
  if the condition being reported is an error condition.

* Implement GUARANTEE-I/O-PORT.

31 years ago* Define new standard ports to replace nearly all instances of
Chris Hanson [Thu, 21 Oct 1993 11:49:56 +0000 (11:49 +0000)]
* Define new standard ports to replace nearly all instances of
  NEAREST-CMDL/PORT.  When a CMDL starts, it binds all of these ports
  to the CMDL port; but they can each be rebound separately without
  affecting the CMDL port.

(ERROR-OUTPUT-PORT) errors and warnings
(NOTIFICATION-OUTPUT-PORT) load messages, etc.
(TRACE-OUTPUT-PORT) output from TRACE
(INTERACTION-I/O-PORT) prompting

* Implement IGNORE-ERRORS procedure.  Change WRITE-CONDITION-REPORT so
  that it ignores errors that occur while writing the report, but only
  if the condition being reported is an error condition.

* Implement GUARANTEE-I/O-PORT.

31 years agoChange the evaluation commands to bind the default input port to a
Chris Hanson [Thu, 21 Oct 1993 04:59:00 +0000 (04:59 +0000)]
Change the evaluation commands to bind the default input port to a
dummy port that signals an error if it is read from.

31 years agoInstantiate the editor CMDL with a dummy I/O port that signals an
Chris Hanson [Thu, 21 Oct 1993 04:58:12 +0000 (04:58 +0000)]
Instantiate the editor CMDL with a dummy I/O port that signals an
error if it is read from or written to.  Define the CHILD-PORT
operation on that CMDL so that spawning a another CMDL under the
editor CMDL (e.g. by DEBUG-INTERNAL-ERRORS? being true) will cause the
child to use the port that was in effect when the editor was started.

31 years agoSince REPL/START now binds the current input and output ports, there's
Chris Hanson [Thu, 21 Oct 1993 04:55:23 +0000 (04:55 +0000)]
Since REPL/START now binds the current input and output ports, there's
no reason for them to be bound a second time here.

31 years agoChange MAKE-CMDL to allow the I/O port to be specified as #F, which
Chris Hanson [Thu, 21 Oct 1993 04:52:50 +0000 (04:52 +0000)]
Change MAKE-CMDL to allow the I/O port to be specified as #F, which
means to inherit from the parent.  Change PUSH-CMDL to use this
specification.  The parent can override this by defining a CHILD-PORT
operation.

Also change CMDL/START to bind the current input and output ports.

31 years agoGrumble; fix stupid thinko from last change.
Chris Hanson [Wed, 20 Oct 1993 22:05:02 +0000 (22:05 +0000)]
Grumble; fix stupid thinko from last change.

31 years agoGrumble; fix stupid thinko from last change.
Chris Hanson [Wed, 20 Oct 1993 21:48:27 +0000 (21:48 +0000)]
Grumble; fix stupid thinko from last change.

31 years agoAllow parent CMDL to override the port used for spawning children.
Chris Hanson [Wed, 20 Oct 1993 21:22:23 +0000 (21:22 +0000)]
Allow parent CMDL to override the port used for spawning children.

31 years agoReplace Constant_Top with Stack_Bottom in out-of-line code for
Guillermo J. Rozas [Wed, 20 Oct 1993 20:49:57 +0000 (20:49 +0000)]
Replace Constant_Top with Stack_Bottom in out-of-line code for
set-interrupt-enables.

31 years agoVarious minor edits.
Chris Hanson [Tue, 19 Oct 1993 23:46:58 +0000 (23:46 +0000)]
Various minor edits.

31 years agoGeneralize interface to hash tables so that users can construct
Chris Hanson [Tue, 19 Oct 1993 08:17:39 +0000 (08:17 +0000)]
Generalize interface to hash tables so that users can construct
efficient address-based hashing procedures.

31 years agoDocument the address-hashing facilities for hash tables. Change the
Chris Hanson [Tue, 19 Oct 1993 08:06:33 +0000 (08:06 +0000)]
Document the address-hashing facilities for hash tables.  Change the
documentation of the PROMPT-FOR-COMMAND- procedures to indicate that
they print the REP level number.

31 years agoDocument the address-hashing facilities for hash tables. Change the
Chris Hanson [Tue, 19 Oct 1993 08:03:11 +0000 (08:03 +0000)]
Document the address-hashing facilities for hash tables.  Change the
documentation of the PROMPT-FOR-COMMAND- procedures to indicate that
they print the REP level number.

31 years agoGeneralize interface to hash tables so that users can construct
Chris Hanson [Tue, 19 Oct 1993 07:16:30 +0000 (07:16 +0000)]
Generalize interface to hash tables so that users can construct
efficient address-based hashing procedures.

31 years agoDon't invoke variable assignment daemons if the editor is not running.
Chris Hanson [Mon, 18 Oct 1993 23:19:30 +0000 (23:19 +0000)]
Don't invoke variable assignment daemons if the editor is not running.

31 years agoDon't do STRING-TRIM on PROMPT-FOR-COMMAND- strings.
Chris Hanson [Mon, 18 Oct 1993 22:51:14 +0000 (22:51 +0000)]
Don't do STRING-TRIM on PROMPT-FOR-COMMAND- strings.

31 years agoChange Constant_Top to Stack_Bottom in set_interrupt_enables. This
Chris Hanson [Sun, 17 Oct 1993 11:16:34 +0000 (11:16 +0000)]
Change Constant_Top to Stack_Bottom in set_interrupt_enables.  This
was necessitated by recent changes to the microcode.

31 years agoInitial revision
Guillermo J. Rozas [Sat, 16 Oct 1993 17:59:23 +0000 (17:59 +0000)]
Initial revision

31 years agoAdd hasthb and rbtree options and remove base/{hashtb,rbtree}
Guillermo J. Rozas [Sat, 16 Oct 1993 17:57:43 +0000 (17:57 +0000)]
Add hasthb and rbtree options and remove base/{hashtb,rbtree}

31 years agoAdd rbtree option.
Guillermo J. Rozas [Sat, 16 Oct 1993 17:56:21 +0000 (17:56 +0000)]
Add rbtree option.

31 years agoFix fencepost bug.
Chris Hanson [Sat, 16 Oct 1993 12:17:49 +0000 (12:17 +0000)]
Fix fencepost bug.

31 years agoFix typo in last change.
Chris Hanson [Sat, 16 Oct 1993 11:07:21 +0000 (11:07 +0000)]
Fix typo in last change.

31 years agoGenerate minibuffer message while automatically decompressing files.
Chris Hanson [Sat, 16 Oct 1993 10:22:46 +0000 (10:22 +0000)]
Generate minibuffer message while automatically decompressing files.

31 years agoChange PROMPT-FOR-COMMAND-xxx port operations to take an additional
Chris Hanson [Sat, 16 Oct 1993 10:11:21 +0000 (10:11 +0000)]
Change PROMPT-FOR-COMMAND-xxx port operations to take an additional
argument, which is a level number; (NEAREST-CMDL/LEVEL) is passed for
this argument.

31 years agoDocument prompting procedures.
Chris Hanson [Sat, 16 Oct 1993 08:48:11 +0000 (08:48 +0000)]
Document prompting procedures.

31 years agoFix old typo.
Chris Hanson [Sat, 16 Oct 1993 07:41:27 +0000 (07:41 +0000)]
Fix old typo.

31 years agoPrompting commands now do standard modifications to prompt strings
Chris Hanson [Sat, 16 Oct 1993 07:34:43 +0000 (07:34 +0000)]
Prompting commands now do standard modifications to prompt strings
BEFORE passing them to custom operations; operations must compensate.

31 years agoChange prompting commands to do standard modifications to prompt
Chris Hanson [Sat, 16 Oct 1993 07:32:43 +0000 (07:32 +0000)]
Change prompting commands to do standard modifications to prompt
strings BEFORE passing them to custom operations.

31 years agoRestrict result of PROMPT-FOR-COMMAND-CHAR to be a graphic character.
Chris Hanson [Sat, 16 Oct 1993 06:33:09 +0000 (06:33 +0000)]
Restrict result of PROMPT-FOR-COMMAND-CHAR to be a graphic character.

31 years agoPerform prompting differently: always use the current CMDL level as
Chris Hanson [Sat, 16 Oct 1993 06:02:08 +0000 (06:02 +0000)]
Perform prompting differently: always use the current CMDL level as
the level in the modeline, and recognize DEBUG and WHERE prompts as
needing suppression.

31 years agoPerform prompting differently: always send the current CMDL level as
Chris Hanson [Sat, 16 Oct 1993 05:59:35 +0000 (05:59 +0000)]
Perform prompting differently: always send the current CMDL level as
part of the prompt, and allow a new form of prompt that prints stuff
in the Scheme buffer.

31 years agoRecognize patterned prompts that should print in the Scheme buffer.
Chris Hanson [Sat, 16 Oct 1993 05:57:46 +0000 (05:57 +0000)]
Recognize patterned prompts that should print in the Scheme buffer.

31 years agoI examples for the list-transform-mumble functions.
Jason Wilson [Sat, 16 Oct 1993 05:31:51 +0000 (05:31 +0000)]
I examples for the list-transform-mumble functions.

31 years agoFix typo.
Chris Hanson [Sat, 16 Oct 1993 04:56:45 +0000 (04:56 +0000)]
Fix typo.

31 years agoClarify handling of run lights for inferior-REPL buffers. There is
Chris Hanson [Fri, 15 Oct 1993 23:50:20 +0000 (23:50 +0000)]
Clarify handling of run lights for inferior-REPL buffers.  There is
now a "global" REPL buffer that is responsible for driving the
"global" run light.  Run lights of individual REPL buffers are handled
separately.

31 years agoWhen evaluate-in-inferior-repl is true, distinguish between
Chris Hanson [Fri, 15 Oct 1993 12:50:15 +0000 (12:50 +0000)]
When evaluate-in-inferior-repl is true, distinguish between
evaluations done in inferior REPL buffers and evaluations done in
other buffers (and the minibuffer); change the latter so that the
value of the evaluation is printed in the minibuffer, just as it would
have been if evaluate-in-inferior-repl were false.  Furthermore, if
there is no inferior REPL, M-x eval-expression now works anyway.

31 years ago* Breakpoints have been reimplemented to use the condition system. A
Chris Hanson [Fri, 15 Oct 1993 10:26:42 +0000 (10:26 +0000)]
* Breakpoints have been reimplemented to use the condition system.  A
  breakpoint is now a condition, and the continuation of that
  condition is the continuation of the breakpoint.  (The debugger
  will not show the internal frames of the breakpoint any more.)

* The procedure BREAKPOINT now takes a condition as an additional
  optional argument.

* The environment of a breakpoint may be specified as the symbol
  CONTINUATION-ENVIRONMENT, in which case the breakpoint signaller
  will attempt to extract an environment from the continuation.  If
  that fails, it uses the REPL environment, and prints a message
  informing the user that it was unable to find an appropriate
  environment for the breakpoint.

* CMDL/START has been modified to detect the situation where the
  thread starting the CMDL is not the owner of its port.  Previously
  this check was done only for errors.  As a result of this change,
  CONDITION-TYPE:DERIVED-THREAD-ERROR has been generalized to accept
  any kind of condition, not just error conditions.

* The WRITE-RESULT output-port operation has been redefined to accept
  an additional argument: the expression that was evaluated to produce
  the value being printed.  This expression is useful if the
  CURRENT-EXPRESSION-CONTEXT operation is implemented; it is the key
  needed to get the context information.  As a result of this change,
  HOOK/REPL-WRITE was redefined to accept the same additional
  argument.

* A new procedure CURRENT-LOAD-PATHNAME has been defined.  When a file
  is being loaded, this procedure returns that file's pathname.  At
  other times, it signals an error of type CONDITION-TYPE:NOT-LOADING.
  LOAD/PUSH-HOOK! has been changed to signal this error in the same
  situation, rather than the anonymous error it signalled before.

31 years agoHandle eval-boundary frame when it is the first subproblem in the
Chris Hanson [Fri, 15 Oct 1993 10:01:09 +0000 (10:01 +0000)]
Handle eval-boundary frame when it is the first subproblem in the
continuation being debugged.

31 years agoChange special treatment of evaluate-in-inferior-repl and run-light
Chris Hanson [Fri, 15 Oct 1993 05:35:22 +0000 (05:35 +0000)]
Change special treatment of evaluate-in-inferior-repl and run-light
editor variables.  These variables are now given buffer-local values
to disable the use of an inferior repl when either scheme-environment
or scheme-syntax-table is given a local binding that overrides the
default.  Also, these automatic bindings are only performed if the
variables do not already have buffer-local bindings.

31 years ago* Editor variables can now define a procedure that will "normalize"
Chris Hanson [Fri, 15 Oct 1993 02:09:17 +0000 (02:09 +0000)]
* Editor variables can now define a procedure that will "normalize"
  their values.  The DEFINE-VARIABLE has been extended to allow the
  specification of this normalization procedure to follow the
  specification of a validity test.

* New procedure VARIABLE-LOCAL-VALUE? is true iff the given variable
  is locally bound in the given buffer.

* Procedure VARIABLE-VALUE-VALID? has been eliminated.

31 years agoFix broken #endif.
Guillermo J. Rozas [Fri, 15 Oct 1993 00:13:50 +0000 (00:13 +0000)]
Fix broken #endif.

31 years ago* Editor variables can now define a procedure that will "normalize"
Chris Hanson [Thu, 14 Oct 1993 22:43:35 +0000 (22:43 +0000)]
* Editor variables can now define a procedure that will "normalize"
  their values.  The DEFINE-VARIABLE has been extended to allow the
  specification of this normalization procedure to follow the
  specification of a validity test.

* New procedure VARIABLE-LOCAL-VALUE? is true iff the given variable
  is locally bound in the given buffer.

* Procedure VARIABLE-VALUE-VALID? has been eliminated.

31 years agoEliminate random local variable bindings at file's end.
Chris Hanson [Thu, 14 Oct 1993 22:42:46 +0000 (22:42 +0000)]
Eliminate random local variable bindings at file's end.

31 years agoUpdate date.
Guillermo J. Rozas [Thu, 14 Oct 1993 21:50:25 +0000 (21:50 +0000)]
Update date.

31 years agoUpdate date.
Guillermo J. Rozas [Thu, 14 Oct 1993 21:44:20 +0000 (21:44 +0000)]
Update date.

31 years agoChange Scheme memory layout and make constant space grow as needed
Guillermo J. Rozas [Thu, 14 Oct 1993 19:23:18 +0000 (19:23 +0000)]
Change Scheme memory layout and make constant space grow as needed
when things are purified.

31 years ago* Document FLONUM-UNPARSER-CUTOFF and RANDOM.
Chris Hanson [Thu, 14 Oct 1993 10:41:01 +0000 (10:41 +0000)]
* Document FLONUM-UNPARSER-CUTOFF and RANDOM.

* Document many new file-system operations.

* Specify the condition-types of errors that are signalled, when those
  errors are mentioned in the text.

* Merge the two indices into one.

31 years agoAllow MAKE-RANDOM-STATE to accept #T as an argument.
Chris Hanson [Thu, 14 Oct 1993 10:13:58 +0000 (10:13 +0000)]
Allow MAKE-RANDOM-STATE to accept #T as an argument.

31 years agoAllow MAKE-RANDOM-STATE to accept #T as an argument.
Chris Hanson [Thu, 14 Oct 1993 09:44:21 +0000 (09:44 +0000)]
Allow MAKE-RANDOM-STATE to accept #T as an argument.

31 years agoRewrite "Input/Output" chapter to incorporate many changes that have
Chris Hanson [Thu, 14 Oct 1993 06:42:03 +0000 (06:42 +0000)]
Rewrite "Input/Output" chapter to incorporate many changes that have
been implemented since the 7.1 release.

31 years agoDescribe red-black trees. Fix and update description of
Chris Hanson [Wed, 13 Oct 1993 08:53:11 +0000 (08:53 +0000)]
Describe red-black trees.  Fix and update description of
object-hashing mechanism.  Plus many small fixes and updates
throughout.

31 years agoFix definition of STRING-PAD-LEFT: it's supposed to truncate from the
Chris Hanson [Wed, 13 Oct 1993 07:40:50 +0000 (07:40 +0000)]
Fix definition of STRING-PAD-LEFT: it's supposed to truncate from the
left, not the right.

31 years ago*** empty log message ***
Chris Hanson [Wed, 13 Oct 1993 01:36:14 +0000 (01:36 +0000)]
*** empty log message ***

31 years agoUpdate documentation of hash tables to reflect new implementation.
Chris Hanson [Wed, 13 Oct 1993 01:33:49 +0000 (01:33 +0000)]
Update documentation of hash tables to reflect new implementation.
Update node pointers and menus throughout the document.

31 years agoEliminate another vestige of "base/hashtb".
Chris Hanson [Wed, 13 Oct 1993 00:01:31 +0000 (00:01 +0000)]
Eliminate another vestige of "base/hashtb".

31 years agoFix think-o in last change.
Chris Hanson [Tue, 12 Oct 1993 23:52:08 +0000 (23:52 +0000)]
Fix think-o in last change.

31 years agoChange names:
Chris Hanson [Tue, 12 Oct 1993 22:19:14 +0000 (22:19 +0000)]
Change names:
hash-table/strong-constructor => strong-hash-table/constructor
hash-table/weak-constructor => weak-hash-table/constructor

31 years agoEliminate "base/btree" and "base/hashtb" files. Rewrite code to use
Chris Hanson [Tue, 12 Oct 1993 07:30:29 +0000 (07:30 +0000)]
Eliminate "base/btree" and "base/hashtb" files.  Rewrite code to use
runtime system's rb-tree and hash-table abstractions.

31 years agoUse SYMBOL<? defined by runtime system.
Chris Hanson [Tue, 12 Oct 1993 00:18:15 +0000 (00:18 +0000)]
Use SYMBOL<? defined by runtime system.

31 years agoSYMBOL=? was dumb mistake. Deleted.
Chris Hanson [Tue, 12 Oct 1993 00:00:56 +0000 (00:00 +0000)]
SYMBOL=? was dumb mistake.  Deleted.

31 years agoEliminate BTREE data structure, replacing it with RB-TREE
Chris Hanson [Mon, 11 Oct 1993 23:31:45 +0000 (23:31 +0000)]
Eliminate BTREE data structure, replacing it with RB-TREE
implementation that is built in to the runtime system.  This
replacement improves overall performance by a factor of three.

31 years agoNew procedures SYMBOL=? and SYMBOL<?.
Chris Hanson [Mon, 11 Oct 1993 23:16:41 +0000 (23:16 +0000)]
New procedures SYMBOL=? and SYMBOL<?.

31 years agoUse new procedures RE-MATCH-DATA and SET-RE-MATCH-DATA! in an attempt
Chris Hanson [Mon, 11 Oct 1993 11:41:33 +0000 (11:41 +0000)]
Use new procedures RE-MATCH-DATA and SET-RE-MATCH-DATA! in an attempt
to guarantee that the match data isn't trashed by hidden calls to the
matching code.  Use SAVE-EXCURSION to preserve the values of point and
mark when doing a recursive edit.

31 years agoImplement RE-MATCH-DATA and SET-RE-MATCH-DATA! to allow more general
Chris Hanson [Mon, 11 Oct 1993 11:39:37 +0000 (11:39 +0000)]
Implement RE-MATCH-DATA and SET-RE-MATCH-DATA! to allow more general
control over match data.

31 years agoImplement SAVE-EXCURSION.
Chris Hanson [Mon, 11 Oct 1993 11:37:49 +0000 (11:37 +0000)]
Implement SAVE-EXCURSION.

31 years ago* SET-HASH-TABLE/REHASH-THRESHOLD! now preserves the table's usable
Chris Hanson [Mon, 11 Oct 1993 10:59:38 +0000 (10:59 +0000)]
* SET-HASH-TABLE/REHASH-THRESHOLD! now preserves the table's usable
  size.  Previously it preserved the physical size.

* SET-HASH-TABLE/REHASH-SIZE! now might reduce the table's usable size
  if the new value adjusts the shrink threshold upwards.

* The REHASH-SIZE of a table is now used to adjust the usable size (as
  documented).  Previously it was adjusting the physical size.

* If an INITIAL-SIZE is given, the table's usable size is initialized
  to that value.  Subsequently, the usable size does not change until
  the table's count exceeds it, at which point normal resizing
  (growing AND shrinking) begins.  If the INITIAL-SIZE is not given or
  is #F, the table is initialized to some unspecified usable size and
  resizes itself according to need.

31 years agoImplement MAKE-EQUAL-HASH-TABLE. Change EQV? hash tables to hold onto
Chris Hanson [Sun, 10 Oct 1993 10:08:20 +0000 (10:08 +0000)]
Implement MAKE-EQUAL-HASH-TABLE.  Change EQV? hash tables to hold onto
numbers strongly; other pointer objects are still held weakly.

31 years agoUse fixnum arithmetic on vectors. Convert explicit type code tests to
Chris Hanson [Sun, 10 Oct 1993 08:33:30 +0000 (08:33 +0000)]
Use fixnum arithmetic on vectors.  Convert explicit type code tests to
predicates that open-code into the same thing.

31 years agoArrange for CELL? to be open-coded by the compiler.
Chris Hanson [Sun, 10 Oct 1993 07:50:46 +0000 (07:50 +0000)]
Arrange for CELL? to be open-coded by the compiler.

31 years agoHASH-TABLE/STRONG-CONSTRUCTOR and HASH-TABLE/WEAK-CONSTRUCTOR simplify
Chris Hanson [Sat, 9 Oct 1993 08:15:05 +0000 (08:15 +0000)]
HASH-TABLE/STRONG-CONSTRUCTOR and HASH-TABLE/WEAK-CONSTRUCTOR simplify
definition of most common constructors.

31 years agoFix rehashing code to handle invalid keys correctly. Merge two places
Chris Hanson [Sat, 9 Oct 1993 07:15:46 +0000 (07:15 +0000)]
Fix rehashing code to handle invalid keys correctly.  Merge two places
that did rehashing into a single procedure.

31 years agoFix think-o in previous change.
Chris Hanson [Fri, 8 Oct 1993 23:30:39 +0000 (23:30 +0000)]
Fix think-o in previous change.

31 years agoImplement eqv?-hash tables.
Chris Hanson [Fri, 8 Oct 1993 23:06:41 +0000 (23:06 +0000)]
Implement eqv?-hash tables.

31 years agoImplementation of new, very efficient EQ?-hash tables. These tables
Chris Hanson [Fri, 8 Oct 1993 11:03:27 +0000 (11:03 +0000)]
Implementation of new, very efficient EQ?-hash tables.  These tables
use address hashing, automatically rehash themselves when garbage
collections move their keys around, and automatically clean themselves
as their keys are reclaimed by the GC.  MAKE-EQ-HASH-TABLE is used to
create these tables; MAKE-OBJECT-HASH-TABLE and MAKE-SYMBOL-HASH-TABLE
are now aliases for this new procedure.

HASH-TABLE/SIZE now returns the "usable size" of the table, as claimed
by the documentation, rather than the "physical size".

New enumeration procedures HASH-TABLE->ALIST, HASH-TABLE/KEY-LIST, and
HASH-TABLE/DATUM-LIST.

31 years agoModify RB-TREE->ALIST, RB-TREE/KEY-LIST, and RB-TREE/DATUM-LIST to be
Chris Hanson [Fri, 8 Oct 1993 09:03:43 +0000 (09:03 +0000)]
Modify RB-TREE->ALIST, RB-TREE/KEY-LIST, and RB-TREE/DATUM-LIST to be
iterative rather than recursive.  Previously they were recursive with
a stack depth proportional to the length of the result; since balanced
trees are designed for use with very large collections this was
disastrous.

31 years agoLimit interrupt locking to minimum needed for single process. This
Chris Hanson [Thu, 7 Oct 1993 06:03:53 +0000 (06:03 +0000)]
Limit interrupt locking to minimum needed for single process.  This
protects against interrupts occurring during a critical section, but
does not prevent concurrent access to the data structures.

31 years agoComplete rewrite of hash-table implementation to improve efficiency,
Chris Hanson [Thu, 7 Oct 1993 04:30:40 +0000 (04:30 +0000)]
Complete rewrite of hash-table implementation to improve efficiency,
to implement shrinking of hash tables, and to fix amortization of
table growth.

31 years agoAdd type-checking of tree arguments and interrupt locking. Add new
Chris Hanson [Wed, 6 Oct 1993 21:17:13 +0000 (21:17 +0000)]
Add type-checking of tree arguments and interrupt locking.  Add new
operations RB-TREE/KEY-LIST and RB-TREE/DATUM-LIST.

31 years agoAdd new editor variable info-selection-key which implements
Chris Hanson [Wed, 6 Oct 1993 02:40:26 +0000 (02:40 +0000)]
Add new editor variable info-selection-key which implements
mouse-sensitive, highlighted regions for selecting Info nodes and menu
items.

31 years agoExport COMTAB-KEY? which is true of keys that can be placed in
Chris Hanson [Wed, 6 Oct 1993 01:50:22 +0000 (01:50 +0000)]
Export COMTAB-KEY? which is true of keys that can be placed in
comtabs.

31 years agoExport new Info editor variable. Also export Info commands.
Chris Hanson [Wed, 6 Oct 1993 01:34:58 +0000 (01:34 +0000)]
Export new Info editor variable.  Also export Info commands.

31 years agoDefine some procedures to hide the use of the text-property mechanism
Chris Hanson [Wed, 6 Oct 1993 00:59:18 +0000 (00:59 +0000)]
Define some procedures to hide the use of the text-property mechanism
for highlighting, local comtabs, and read-only regions.

31 years agoMajor rewrite of text property mechanism. New implementation uses
Chris Hanson [Tue, 5 Oct 1993 23:05:56 +0000 (23:05 +0000)]
Major rewrite of text property mechanism.  New implementation uses
red/black trees for properties within intervals, and uses red/black
balancing algorithm for intervals.  Interface to editor is simplified,
as is the interface to the undo mechanism.  The redisplay code no
longer uses the internals of the implementation, but instead uses
standard external entries.  Adjacent intervals are now merged together
when their property sets are the same; property data are compared for
equality using EQV?.

31 years agoLoad red/black tree implementation for use by text-property code.
Chris Hanson [Tue, 5 Oct 1993 22:57:50 +0000 (22:57 +0000)]
Load red/black tree implementation for use by text-property code.