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

38 years ago*** empty log message ***
Chris Hanson [Fri, 17 Apr 1987 04:03:23 +0000 (04:03 +0000)]
*** empty log message ***

38 years agoPrim_bit_string_zero_p had 2 as its arity rather than 1, causing the
Chris Hanson [Fri, 17 Apr 1987 03:50:09 +0000 (03:50 +0000)]
Prim_bit_string_zero_p had 2 as its arity rather than 1, causing the
stack to get out of sync.

38 years agoEliminate use of `mapcar', clean up some other things too.
Chris Hanson [Fri, 17 Apr 1987 00:58:33 +0000 (00:58 +0000)]
Eliminate use of `mapcar', clean up some other things too.

38 years agoLoop which was walking around reductions used `eq?' to test for
Chris Hanson [Fri, 17 Apr 1987 00:54:28 +0000 (00:54 +0000)]
Loop which was walking around reductions used `eq?' to test for
termination.  Because the arguments to `eq?' were variables, the
variable lookup code was stripping the danger bits off of the values.
The new microcode does not do this so it was necessary to explicitly
strip the danger bits off in the appropriate places.

38 years agoPatch to accommodate a bug in the 4.2 bsd vax C compiler.
Guillermo J. Rozas [Fri, 17 Apr 1987 00:04:05 +0000 (00:04 +0000)]
Patch to accommodate a bug in the 4.2 bsd vax C compiler.

38 years agoPrimitive-type returns "safe" types.
Guillermo J. Rozas [Thu, 16 Apr 1987 23:20:46 +0000 (23:20 +0000)]
Primitive-type returns "safe" types.

38 years agoEliminate reference to TC_STRING
Guillermo J. Rozas [Thu, 16 Apr 1987 15:30:25 +0000 (15:30 +0000)]
Eliminate reference to TC_STRING

38 years agoDeclare external procedure Make_Prim_Exts.
Guillermo J. Rozas [Thu, 16 Apr 1987 14:35:15 +0000 (14:35 +0000)]
Declare external procedure Make_Prim_Exts.

38 years agoMove Make_Prim_Exts to primutl.c.
Guillermo J. Rozas [Thu, 16 Apr 1987 14:34:28 +0000 (14:34 +0000)]
Move Make_Prim_Exts to primutl.c.

38 years agoMake built-in primitive table be generated automatically.
Guillermo J. Rozas [Thu, 16 Apr 1987 12:21:36 +0000 (12:21 +0000)]
Make built-in primitive table be generated automatically.

38 years agoMake built in primitive tables be generated automatically.
Guillermo J. Rozas [Thu, 16 Apr 1987 02:33:24 +0000 (02:33 +0000)]
Make built in primitive tables be generated automatically.
Attempt to fix OS_read_char_ready on bsd.
Some changes for VMS.

38 years agoMake built in primitive tables be generated automatically.
Guillermo J. Rozas [Thu, 16 Apr 1987 02:08:53 +0000 (02:08 +0000)]
Make built in primitive tables be generated automatically.
Attempt to fix OS_read_char_ready on bsd.
Some changes for VMS.

38 years ago*** empty log message ***
Guillermo J. Rozas [Thu, 16 Apr 1987 02:01:51 +0000 (02:01 +0000)]
*** empty log message ***

38 years agoChange error messages so that error message truncation does not
Chris Hanson [Wed, 15 Apr 1987 05:07:31 +0000 (05:07 +0000)]
Change error messages so that error message truncation does not
discard interesting information.

38 years agoAdd `set-current-history!' to list of unsafe primitives.
Chris Hanson [Mon, 13 Apr 1987 23:59:26 +0000 (23:59 +0000)]
Add `set-current-history!' to list of unsafe primitives.

38 years agoDelete `extended-fixnum' type.
Chris Hanson [Mon, 13 Apr 1987 19:25:31 +0000 (19:25 +0000)]
Delete `extended-fixnum' type.

38 years ago*** empty log message ***
Chris Hanson [Mon, 13 Apr 1987 18:44:18 +0000 (18:44 +0000)]
*** empty log message ***