mit-scheme.git
37 years agoFix arguments to `reference-temporary-register!'.
Chris Hanson [Thu, 14 May 1987 10:56:30 +0000 (10:56 +0000)]
Fix arguments to `reference-temporary-register!'.

37 years agoFix broken eq-test generators.
Chris Hanson [Wed, 13 May 1987 11:00:33 +0000 (11:00 +0000)]
Fix broken eq-test generators.

37 years agoAdd operation to test whether a register has an alias.
Chris Hanson [Wed, 13 May 1987 10:59:51 +0000 (10:59 +0000)]
Add operation to test whether a register has an alias.

37 years agoAdd hook to symbol interning code so users can keep track of the
Chris Hanson [Mon, 11 May 1987 17:52:27 +0000 (17:52 +0000)]
Add hook to symbol interning code so users can keep track of the
symbols in the obarray.  This is intended to allow maintaining data
structures for special purposes, e.g. completion of symbol names.

37 years agoInstall new versions of Edwin syntax table primitives.
Chris Hanson [Mon, 11 May 1987 17:51:51 +0000 (17:51 +0000)]
Install new versions of Edwin syntax table primitives.

Add hook to symbol interning code so users can keep track of the
symbols in the obarray.  This is intended to allow maintaining data
structures for special purposes, e.g. completion of symbol names.

37 years agoInitial revision
Chris Hanson [Mon, 11 May 1987 17:47:53 +0000 (17:47 +0000)]
Initial revision

37 years agoImplement new method for mapping pathnames to values. Reimplement
Chris Hanson [Sat, 9 May 1987 23:23:51 +0000 (23:23 +0000)]
Implement new method for mapping pathnames to values.  Reimplement
`sfu?' flag to match documentation for existing optimizer.

37 years agoImplement new method for mapping pathnames to values.
Chris Hanson [Sat, 9 May 1987 23:22:58 +0000 (23:22 +0000)]
Implement new method for mapping pathnames to values.

37 years agoInitial revision
Chris Hanson [Sat, 9 May 1987 23:22:21 +0000 (23:22 +0000)]
Initial revision

37 years ago*** empty log message ***
Chris Hanson [Sat, 9 May 1987 20:30:12 +0000 (20:30 +0000)]
*** empty log message ***

37 years agoAdd fixnum arithmetic for use by compiled code.
Chris Hanson [Sat, 9 May 1987 20:04:56 +0000 (20:04 +0000)]
Add fixnum arithmetic for use by compiled code.

37 years agoChange primitives to signal errors when arguments are of wrong type.
Chris Hanson [Sat, 9 May 1987 18:27:24 +0000 (18:27 +0000)]
Change primitives to signal errors when arguments are of wrong type.
Change predicates to return normal boolean values.

37 years agoSplit `generate/operand' out of `generate/subproblem' to facilitate
Chris Hanson [Sat, 9 May 1987 06:27:14 +0000 (06:27 +0000)]
Split `generate/operand' out of `generate/subproblem' to facilitate
rewrite of primitive combination open-coding routines.

37 years agoRestructure so that operator/operand code is generated before the
Chris Hanson [Sat, 9 May 1987 06:24:34 +0000 (06:24 +0000)]
Restructure so that operator/operand code is generated before the
combination and passed through.  This is because the primitive open
coders will examine the already-generated operands to determine things
about them.

37 years agoAdd new rules for `eq-test', and change rule that pops into register
Chris Hanson [Sat, 9 May 1987 06:23:12 +0000 (06:23 +0000)]
Add new rules for `eq-test', and change rule that pops into register
so that it uses machine registers.

37 years agoTry a different fix for bignum_to_bit_string, as the other one seems
Chris Hanson [Sat, 9 May 1987 05:25:54 +0000 (05:25 +0000)]
Try a different fix for bignum_to_bit_string, as the other one seems
to be screwing things up.

37 years agoFix two bugs: (1) `unsigned-integer->bit-string' was not clearing out
Chris Hanson [Sat, 9 May 1987 04:51:32 +0000 (04:51 +0000)]
Fix two bugs: (1) `unsigned-integer->bit-string' was not clearing out
those parts of the result which were not filled in by copying from a
bignum.  (2) `bit-substring-find-next-set-bit' was not correctly
advancing the scan pointer for the last word of a multi-word string.

37 years agoAdd predicates for examining a combination's compilation type.
Chris Hanson [Sat, 9 May 1987 01:07:56 +0000 (01:07 +0000)]
Add predicates for examining a combination's compilation type.

37 years agoExclude error-procedure combinations from the error generated by
Chris Hanson [Sat, 9 May 1987 00:51:39 +0000 (00:51 +0000)]
Exclude error-procedure combinations from the error generated by
encountering the-environment expressions.  Delete `package/safe?'.

37 years agoExclude error-procedure combinations from the error generated by
Chris Hanson [Sat, 9 May 1987 00:50:09 +0000 (00:50 +0000)]
Exclude error-procedure combinations from the error generated by
encountering the-environment expressions.

37 years agoChange combination optimizations to eliminate bug caused by deleting
Chris Hanson [Fri, 8 May 1987 02:48:24 +0000 (02:48 +0000)]
Change combination optimizations to eliminate bug caused by deleting
unreferenced parameters.  Really need to do side effect analysis to
perform this optimization.  Meanwhile, just deleting integrated
parameters should be sufficient.

Also flushed use of environment constructing load-system since
auxiliary variable compilation is now fixed.

37 years agoAdd new operator to extract the integrated variables from a set of
Chris Hanson [Fri, 8 May 1987 02:34:16 +0000 (02:34 +0000)]
Add new operator to extract the integrated variables from a set of
declarations.

37 years agoChange code that optimizes let-like combinations so that it only
Chris Hanson [Fri, 8 May 1987 02:33:21 +0000 (02:33 +0000)]
Change code that optimizes let-like combinations so that it only
removes parameters that are declared integrable, rather than
unreferenced parameters.  This is a makeshift arrangement until we can
perform side effect analysis on the operands to determine which ones
are really needed.

37 years agoAdd code to keep track of items pushed and popped on the stack, to
Chris Hanson [Thu, 7 May 1987 04:40:16 +0000 (04:40 +0000)]
Add code to keep track of items pushed and popped on the stack, to
produce the offset between the frame-pointer and the stack-pointer
when it is needed.  This is used to convert frame-pointer references
into stack-pointer references.

37 years agoGuarantee that nodes are generated in the control flow ordering. This
Chris Hanson [Thu, 7 May 1987 04:38:32 +0000 (04:38 +0000)]
Guarantee that nodes are generated in the control flow ordering.  This
is because a `combination-value' is converted into a `value-temporary'
by a side-effect when the combination is generated.  So the
combination must be generated before any references to its value are.

37 years agoThe receiver-offset for message senders was including the pushed
Chris Hanson [Thu, 7 May 1987 04:36:15 +0000 (04:36 +0000)]
The receiver-offset for message senders was including the pushed
operands of a call.  Since we are now using a frame pointer, it need
only include the block frame size.  The pushed operands will be taken
care of by the LAP generator.

37 years agoRewrite of RTL generator to new structure, now using frame pointer
Chris Hanson [Thu, 7 May 1987 00:26:03 +0000 (00:26 +0000)]
Rewrite of RTL generator to new structure, now using frame pointer
instead of stack pointer for frame references.

37 years agoAdd frame-pointer register.
Chris Hanson [Thu, 7 May 1987 00:24:20 +0000 (00:24 +0000)]
Add frame-pointer register.

37 years agoInitial revision
Chris Hanson [Thu, 7 May 1987 00:23:08 +0000 (00:23 +0000)]
Initial revision

37 years agoRewrite of RTL generator. Flush `next-generator' mechanism, use
Chris Hanson [Thu, 7 May 1987 00:22:05 +0000 (00:22 +0000)]
Rewrite of RTL generator.  Flush `next-generator' mechanism, use
multiple value return and explicit gluing of CFGs.  Flush offset
argument, use frame-pointer instead; offset will be computed at LAP
generation time.

37 years agoImplement changes required by conversion of RTL generator to use of
Chris Hanson [Thu, 7 May 1987 00:18:15 +0000 (00:18 +0000)]
Implement changes required by conversion of RTL generator to use of
frame pointer.  Flush all special stack modeling.

37 years agoImplement `boolean=?'.
Chris Hanson [Thu, 7 May 1987 00:12:20 +0000 (00:12 +0000)]
Implement `boolean=?'.

37 years agoAdd frame-pointer register.
Chris Hanson [Thu, 7 May 1987 00:11:33 +0000 (00:11 +0000)]
Add frame-pointer register.

37 years ago*** empty log message ***
Chris Hanson [Thu, 7 May 1987 00:10:45 +0000 (00:10 +0000)]
*** empty log message ***

37 years agoAdd `frame-pointer-offset' slot to all rnodes, for use by
Chris Hanson [Thu, 7 May 1987 00:10:04 +0000 (00:10 +0000)]
Add `frame-pointer-offset' slot to all rnodes, for use by
lap-generator so it can convert frame pointer references into
stack-pointer references.

37 years agoSplit off application of result from main body of matcher to
Chris Hanson [Thu, 7 May 1987 00:09:08 +0000 (00:09 +0000)]
Split off application of result from main body of matcher to
facilitate timing measurements.

37 years agoChange dependencies to account for reorganization of RTL generator
Chris Hanson [Thu, 7 May 1987 00:06:42 +0000 (00:06 +0000)]
Change dependencies to account for reorganization of RTL generator
into several files.

37 years agoDelete `continuation-delta'. Add `continuation-frame-pointer-offset'
Chris Hanson [Thu, 7 May 1987 00:05:52 +0000 (00:05 +0000)]
Delete `continuation-delta'.  Add `continuation-frame-pointer-offset'
for use by new frame-pointer code.

37 years agoImplement CFG combinators that are generic in the latter argument.
Chris Hanson [Thu, 7 May 1987 00:04:58 +0000 (00:04 +0000)]
Implement CFG combinators that are generic in the latter argument.

37 years agoIf a lambda expression was traced twice, it was being added to the
Chris Hanson [Wed, 6 May 1987 04:54:08 +0000 (04:54 +0000)]
If a lambda expression was traced twice, it was being added to the
advice population twice, despite the fact that it was already there.
However, only one copy of the trace advice would be installed.  Then,
do untrace would cause a failure because the second time that the
lambda expression was looked at it would contain no advice of that type.

37 years agoImplement special handling for variables of the form
Chris Hanson [Mon, 4 May 1987 23:52:57 +0000 (23:52 +0000)]
Implement special handling for variables of the form

(ACCESS <name> #F)

These are integrated regardless of the declarations given for the
program.

Also fix bug in `integrate/reference-operator' which caused the
optimizer to hang in a loop.

37 years agoImplement special handling for variables of the form
Chris Hanson [Mon, 4 May 1987 23:50:20 +0000 (23:50 +0000)]
Implement special handling for variables of the form

(ACCESS <name> #F)

These are integrated regardless of the declarations given for the
program.

37 years agoSplit off expression stuff.
Chris Hanson [Sun, 3 May 1987 20:39:41 +0000 (20:39 +0000)]
Split off expression stuff.

37 years agoInitial revision
Chris Hanson [Sun, 3 May 1987 20:39:08 +0000 (20:39 +0000)]
Initial revision

38 years agoIn `Keyboard_Input_Procedure', the test for interrupts just before
Chris Hanson [Thu, 30 Apr 1987 22:56:49 +0000 (22:56 +0000)]
In `Keyboard_Input_Procedure', the test for interrupts just before
calling `getchar' was only looking for `INT_Character'.  Expand this
to include `INT_Timer' as well, since that was causing a problem for
Mitch Resnick.  Why is this restricting which interrupts it looks at?
A priori, I would think it should look at all interrupts.

38 years agoSplit off handling of primitive combinations to another file.
Chris Hanson [Wed, 29 Apr 1987 21:53:04 +0000 (21:53 +0000)]
Split off handling of primitive combinations to another file.

38 years agoChange profile recording hook to use 32 bit C long arithmetic rather
Chris Hanson [Wed, 29 Apr 1987 20:12:20 +0000 (20:12 +0000)]
Change profile recording hook to use 32 bit C long arithmetic rather
than 24 bit fixnum arithmetic.

38 years agoChange profile recording hook to use 32 bit C long arithmetic rather
Chris Hanson [Wed, 29 Apr 1987 19:46:39 +0000 (19:46 +0000)]
Change profile recording hook to use 32 bit C long arithmetic rather
than 24 bit fixnum arithmetic.

38 years agoDefine hook for recording primitive profiling information.
Chris Hanson [Wed, 29 Apr 1987 15:50:43 +0000 (15:50 +0000)]
Define hook for recording primitive profiling information.

38 years agoDefine variables to contain maximum primitive numbers.
Chris Hanson [Wed, 29 Apr 1987 15:41:59 +0000 (15:41 +0000)]
Define variables to contain maximum primitive numbers.

38 years agoCause generated fixed objects vector to have some extra slots for
Chris Hanson [Wed, 29 Apr 1987 15:39:14 +0000 (15:39 +0000)]
Cause generated fixed objects vector to have some extra slots for
expansion and debugging purposes.

38 years agoAdd hook for primitive procedure profiling.
Chris Hanson [Wed, 29 Apr 1987 13:51:11 +0000 (13:51 +0000)]
Add hook for primitive procedure profiling.

38 years agoAdd PRIMITIVE-PROFILING-TABLE slot to fixed objects vector.
Chris Hanson [Wed, 29 Apr 1987 13:19:32 +0000 (13:19 +0000)]
Add PRIMITIVE-PROFILING-TABLE slot to fixed objects vector.

38 years agoAdd slot for table to contain profiling information for primitives.
Chris Hanson [Tue, 28 Apr 1987 16:38:00 +0000 (16:38 +0000)]
Add slot for table to contain profiling information for primitives.

38 years agoInitialize `ENABLE_PRIMITIVE_PROFILING' flag when debugging features
Chris Hanson [Tue, 28 Apr 1987 16:29:33 +0000 (16:29 +0000)]
Initialize `ENABLE_PRIMITIVE_PROFILING' flag when debugging features
are selected.

38 years agoFix bug in copying of declarations, where variable was passed to
Chris Hanson [Mon, 27 Apr 1987 21:45:33 +0000 (21:45 +0000)]
Fix bug in copying of declarations, where variable was passed to
`block/lookup-name' rather than the variable's name.

38 years agoTurn on integration dependencies that were commented out here.
Chris Hanson [Mon, 27 Apr 1987 20:26:11 +0000 (20:26 +0000)]
Turn on integration dependencies that were commented out here.

38 years agoAdd integration dependency between the bobcat machine instruction
Chris Hanson [Mon, 27 Apr 1987 20:25:33 +0000 (20:25 +0000)]
Add integration dependency between the bobcat machine instruction
definition files.

38 years agoDo not use the "load" package any longer. Defaultly load some
Chris Hanson [Mon, 27 Apr 1987 20:11:22 +0000 (20:11 +0000)]
Do not use the "load" package any longer.  Defaultly load some
compiled files.

38 years agoFlush junk to put compiled code in constant space rather than pure
Chris Hanson [Mon, 27 Apr 1987 17:33:22 +0000 (17:33 +0000)]
Flush junk to put compiled code in constant space rather than pure
space.  New compiler doesn't need that.

38 years agoChange `apply-stack' prefix to subtract 1 from the n-levels, because
Chris Hanson [Mon, 27 Apr 1987 16:28:49 +0000 (16:28 +0000)]
Change `apply-stack' prefix to subtract 1 from the n-levels, because
the innermost stack frame does not have a message receiver pushed.

38 years ago`make-non-pointer-literal' was not being careful to handle negative
Chris Hanson [Mon, 27 Apr 1987 14:21:48 +0000 (14:21 +0000)]
`make-non-pointer-literal' was not being careful to handle negative
`datum' values correctly, resulting in the type code of the literal
being off by one.

38 years agoInstall new primitives for vectors and bit strings.
Chris Hanson [Sat, 25 Apr 1987 20:27:27 +0000 (20:27 +0000)]
Install new primitives for vectors and bit strings.

38 years agoInstall new primitives.
Chris Hanson [Sat, 25 Apr 1987 20:26:27 +0000 (20:26 +0000)]
Install new primitives.

38 years agoInitial revision
Chris Hanson [Sat, 25 Apr 1987 20:24:49 +0000 (20:24 +0000)]
Initial revision

38 years agoInstall new built-in primitives for microcode 9.46.
Chris Hanson [Sat, 25 Apr 1987 20:19:20 +0000 (20:19 +0000)]
Install new built-in primitives for microcode 9.46.

38 years agoAdd new primitives for microcode 9.46.
Chris Hanson [Sat, 25 Apr 1987 20:06:59 +0000 (20:06 +0000)]
Add new primitives for microcode 9.46.

38 years agoFix IO redirection bug.
Guillermo J. Rozas [Sat, 25 Apr 1987 09:45:17 +0000 (09:45 +0000)]
Fix IO redirection bug.

38 years agoChange rules database so that it is sorted by statement-type. Treat
Chris Hanson [Fri, 24 Apr 1987 14:17:28 +0000 (14:17 +0000)]
Change rules database so that it is sorted by statement-type.  Treat
ASSIGN specially since it is by far the most common type.

38 years agoChange state implementation so that register quantities are allocated
Chris Hanson [Fri, 24 Apr 1987 14:15:53 +0000 (14:15 +0000)]
Change state implementation so that register quantities are allocated
on demand.

38 years agoChange stack parser, unparser, and pretty-printer to handle
Chris Hanson [Fri, 24 Apr 1987 13:37:27 +0000 (13:37 +0000)]
Change stack parser, unparser, and pretty-printer to handle
reference-trap objects specially, detecting them before they get
assigned to variables, and printing them in a reasonable way.

38 years agoRewrite `hash-table-copy' so that it is O(n) instead of O(n^2) in the
Chris Hanson [Wed, 22 Apr 1987 10:09:28 +0000 (10:09 +0000)]
Rewrite `hash-table-copy' so that it is O(n) instead of O(n^2) in the
number of elements.

38 years agoForgot to add "rtlcon" and "rtlexp" to the integration dependency set.
Chris Hanson [Wed, 22 Apr 1987 09:45:57 +0000 (09:45 +0000)]
Forgot to add "rtlcon" and "rtlexp" to the integration dependency set.

38 years agoChange structure of closing block to aid compilation.
Chris Hanson [Tue, 21 Apr 1987 23:52:08 +0000 (23:52 +0000)]
Change structure of closing block to aid compilation.

38 years agoSplit `front-end/rtl' into two files to aid compilation.
Chris Hanson [Tue, 21 Apr 1987 23:51:35 +0000 (23:51 +0000)]
Split `front-end/rtl' into two files to aid compilation.

38 years agoInitial revision
Chris Hanson [Tue, 21 Apr 1987 23:50:17 +0000 (23:50 +0000)]
Initial revision

38 years agoA variety of small changes related to the GC out of space error.
Chris Hanson [Tue, 21 Apr 1987 23:39:56 +0000 (23:39 +0000)]
A variety of small changes related to the GC out of space error.

38 years agoAllow constant combinations to have any temporary as a target.
Chris Hanson [Tue, 21 Apr 1987 16:57:05 +0000 (16:57 +0000)]
Allow constant combinations to have any temporary as a target.

38 years agoChange string_to_symbol to compute the correct argument to
Chris Hanson [Tue, 21 Apr 1987 15:22:08 +0000 (15:22 +0000)]
Change string_to_symbol to compute the correct argument to
Primitive_GC.  Previously it was using (Memtop - Free) which could
have been negative (and we saw at least one case where something like
that had happened).

38 years agoChange some error messages to go out to stderr.
Chris Hanson [Tue, 21 Apr 1987 15:02:02 +0000 (15:02 +0000)]
Change some error messages to go out to stderr.

38 years agoCause all GCs to return through the return code RC_NORMAL_GC_DONE.
Chris Hanson [Tue, 21 Apr 1987 15:01:18 +0000 (15:01 +0000)]
Cause all GCs to return through the return code RC_NORMAL_GC_DONE.

38 years agoInitialize `GC_Space_Needed' to a reasonable value.
Chris Hanson [Tue, 21 Apr 1987 15:00:46 +0000 (15:00 +0000)]
Initialize `GC_Space_Needed' to a reasonable value.

38 years agoCause all GCs to return through the return code RC_NORMAL_GC_DONE.
Chris Hanson [Tue, 21 Apr 1987 14:54:50 +0000 (14:54 +0000)]
Cause all GCs to return through the return code RC_NORMAL_GC_DONE.

38 years agoDefine new per-combination flag which indicates whether or not the
Chris Hanson [Tue, 21 Apr 1987 14:29:17 +0000 (14:29 +0000)]
Define new per-combination flag which indicates whether or not the
combination has been constant-folded.

38 years agoSolution to constant folding problem is overly conservative. Earlier
Chris Hanson [Tue, 21 Apr 1987 14:23:43 +0000 (14:23 +0000)]
Solution to constant folding problem is overly conservative.  Earlier
change (which guaranteed that the combination-value became unknown
when the operator or operands were) is sufficient.

38 years agoUpdate the version: release.
Guillermo J. Rozas [Mon, 20 Apr 1987 12:30:20 +0000 (12:30 +0000)]
Update the version: release.

38 years agoUpdate the version: release.
Guillermo J. Rozas [Mon, 20 Apr 1987 12:27:22 +0000 (12:27 +0000)]
Update the version: release.

38 years agoWhen building a closure frame, do not attempt to lookup variables
Chris Hanson [Sat, 18 Apr 1987 00:26:35 +0000 (00:26 +0000)]
When building a closure frame, do not attempt to lookup variables
which are integrated, as it will cause an error.  This is probably not
needed given the change which has been made elsewhere which deletes
such variables from the closure block previous to this point.

38 years agoChange the analysis performed to determine whether a variable has been
Chris Hanson [Sat, 18 Apr 1987 00:22:35 +0000 (00:22 +0000)]
Change the analysis performed to determine whether a variable has been
assigned.  Do not treat auxiliary bindings specially, except those
that have been identified as having constant or procedure values.

This unfortunately produces less efficient code, but guarantees that
there will be no troubles with the order of events when creating
closures.

38 years agoIf a combination's value is constant, do not replace it by the
Chris Hanson [Sat, 18 Apr 1987 00:18:35 +0000 (00:18 +0000)]
If a combination's value is constant, do not replace it by the
constant value, because we have no side-effect analyzer to determine
whether that is safe.

38 years ago`goto-command', when selecting a subproblem with no reductions, tried
Chris Hanson [Sat, 18 Apr 1987 00:15:53 +0000 (00:15 +0000)]
`goto-command', when selecting a subproblem with no reductions, tried
to set the reduction number to 1, rather than 0.  This previously
"worked" because

(list-ref '() 1) ==> '()

instead of signalling an error as it now does.

38 years agoAccommodate VMS (bug in VMS 4 scanf).
Guillermo J. Rozas [Fri, 17 Apr 1987 15:56:08 +0000 (15:56 +0000)]
Accommodate VMS (bug in VMS 4 scanf).

38 years ago*** empty log message ***
Chris Hanson [Fri, 17 Apr 1987 10:55:42 +0000 (10:55 +0000)]
*** empty log message ***

38 years agoAdd new rules for cases which arise when dead-code-elimination phase
Chris Hanson [Fri, 17 Apr 1987 10:55:17 +0000 (10:55 +0000)]
Add new rules for cases which arise when dead-code-elimination phase
is not performed.

38 years agoInitial revision
Chris Hanson [Fri, 17 Apr 1987 10:53:25 +0000 (10:53 +0000)]
Initial revision

38 years agoSplit into three files to aid in compilation.
Chris Hanson [Fri, 17 Apr 1987 10:52:41 +0000 (10:52 +0000)]
Split into three files to aid in compilation.

38 years agoTwo bugs:
Chris Hanson [Fri, 17 Apr 1987 10:21:49 +0000 (10:21 +0000)]
Two bugs:

1. When searching the formals list in `extend_frame', the variable
`scan' was not being incremented.

2. The primitive procedure `lexical-unassigned?' should signal an
error if the argument variable is unbound.

38 years agoInitial revision
Chris Hanson [Fri, 17 Apr 1987 08:02:27 +0000 (08:02 +0000)]
Initial revision

38 years agoForgot to add one (for GC header) to vector-ref index when
Chris Hanson [Fri, 17 Apr 1987 07:46:08 +0000 (07:46 +0000)]
Forgot to add one (for GC header) to vector-ref index when
open-coding.

38 years agoExternal primitives are not safe.
Chris Hanson [Fri, 17 Apr 1987 07:38:02 +0000 (07:38 +0000)]
External primitives are not safe.