Chris Hanson [Sat, 9 May 1987 23:22:58 +0000 (23:22 +0000)]
Implement new method for mapping pathnames to values.
Chris Hanson [Sat, 9 May 1987 23:22:21 +0000 (23:22 +0000)]
Initial revision
Chris Hanson [Sat, 9 May 1987 20:30:12 +0000 (20:30 +0000)]
*** empty log message ***
Chris Hanson [Sat, 9 May 1987 20:04:56 +0000 (20:04 +0000)]
Add fixnum arithmetic for use by compiled code.
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.
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.
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.
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.
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.
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.
Chris Hanson [Sat, 9 May 1987 01:07:56 +0000 (01:07 +0000)]
Add predicates for examining a combination's compilation type.
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?'.
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.
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.
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.
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.
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.
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.
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.
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.
Chris Hanson [Thu, 7 May 1987 00:24:20 +0000 (00:24 +0000)]
Add frame-pointer register.
Chris Hanson [Thu, 7 May 1987 00:23:08 +0000 (00:23 +0000)]
Initial revision
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.
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.
Chris Hanson [Thu, 7 May 1987 00:12:20 +0000 (00:12 +0000)]
Implement `boolean=?'.
Chris Hanson [Thu, 7 May 1987 00:11:33 +0000 (00:11 +0000)]
Add frame-pointer register.
Chris Hanson [Thu, 7 May 1987 00:10:45 +0000 (00:10 +0000)]
*** empty log message ***
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.
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.
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.
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.
Chris Hanson [Thu, 7 May 1987 00:04:58 +0000 (00:04 +0000)]
Implement CFG combinators that are generic in the latter argument.
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.
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.
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.
Chris Hanson [Sun, 3 May 1987 20:39:41 +0000 (20:39 +0000)]
Split off expression stuff.
Chris Hanson [Sun, 3 May 1987 20:39:08 +0000 (20:39 +0000)]
Initial revision
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.
Chris Hanson [Wed, 29 Apr 1987 21:53:04 +0000 (21:53 +0000)]
Split off handling of primitive combinations to another file.
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.
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.
Chris Hanson [Wed, 29 Apr 1987 15:50:43 +0000 (15:50 +0000)]
Define hook for recording primitive profiling information.
Chris Hanson [Wed, 29 Apr 1987 15:41:59 +0000 (15:41 +0000)]
Define variables to contain maximum primitive numbers.
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.
Chris Hanson [Wed, 29 Apr 1987 13:51:11 +0000 (13:51 +0000)]
Add hook for primitive procedure profiling.
Chris Hanson [Wed, 29 Apr 1987 13:19:32 +0000 (13:19 +0000)]
Add PRIMITIVE-PROFILING-TABLE slot to fixed objects vector.
Chris Hanson [Tue, 28 Apr 1987 16:38:00 +0000 (16:38 +0000)]
Add slot for table to contain profiling information for primitives.
Chris Hanson [Tue, 28 Apr 1987 16:29:33 +0000 (16:29 +0000)]
Initialize `ENABLE_PRIMITIVE_PROFILING' flag when debugging features
are selected.
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.
Chris Hanson [Mon, 27 Apr 1987 20:26:11 +0000 (20:26 +0000)]
Turn on integration dependencies that were commented out here.
Chris Hanson [Mon, 27 Apr 1987 20:25:33 +0000 (20:25 +0000)]
Add integration dependency between the bobcat machine instruction
definition files.
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.
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.
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.
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.
Chris Hanson [Sat, 25 Apr 1987 20:27:27 +0000 (20:27 +0000)]
Install new primitives for vectors and bit strings.
Chris Hanson [Sat, 25 Apr 1987 20:26:27 +0000 (20:26 +0000)]
Install new primitives.
Chris Hanson [Sat, 25 Apr 1987 20:24:49 +0000 (20:24 +0000)]
Initial revision
Chris Hanson [Sat, 25 Apr 1987 20:19:20 +0000 (20:19 +0000)]
Install new built-in 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.
Guillermo J. Rozas [Sat, 25 Apr 1987 09:45:17 +0000 (09:45 +0000)]
Fix IO redirection bug.
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.
Chris Hanson [Fri, 24 Apr 1987 14:15:53 +0000 (14:15 +0000)]
Change state implementation so that register quantities are allocated
on demand.
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.
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.
Chris Hanson [Wed, 22 Apr 1987 09:45:57 +0000 (09:45 +0000)]
Forgot to add "rtlcon" and "rtlexp" to the integration dependency set.
Chris Hanson [Tue, 21 Apr 1987 23:52:08 +0000 (23:52 +0000)]
Change structure of closing block 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.
Chris Hanson [Tue, 21 Apr 1987 23:50:17 +0000 (23:50 +0000)]
Initial revision
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.
Chris Hanson [Tue, 21 Apr 1987 16:57:05 +0000 (16:57 +0000)]
Allow constant combinations to have any temporary as a target.
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).
Chris Hanson [Tue, 21 Apr 1987 15:02:02 +0000 (15:02 +0000)]
Change some error messages to go out to stderr.
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.
Chris Hanson [Tue, 21 Apr 1987 15:00:46 +0000 (15:00 +0000)]
Initialize `GC_Space_Needed' to a reasonable value.
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.
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.
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.
Guillermo J. Rozas [Mon, 20 Apr 1987 12:30:20 +0000 (12:30 +0000)]
Update the version: release.
Guillermo J. Rozas [Mon, 20 Apr 1987 12:27:22 +0000 (12:27 +0000)]
Update the version: release.
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.
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.
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.
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.
Guillermo J. Rozas [Fri, 17 Apr 1987 15:56:08 +0000 (15:56 +0000)]
Accommodate VMS (bug in VMS 4 scanf).
Chris Hanson [Fri, 17 Apr 1987 10:55:42 +0000 (10:55 +0000)]
*** empty log message ***
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.
Chris Hanson [Fri, 17 Apr 1987 10:53:25 +0000 (10:53 +0000)]
Initial revision
Chris Hanson [Fri, 17 Apr 1987 10:52:41 +0000 (10:52 +0000)]
Split into three files to aid in compilation.
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.
Chris Hanson [Fri, 17 Apr 1987 08:02:27 +0000 (08:02 +0000)]
Initial revision
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.
Chris Hanson [Fri, 17 Apr 1987 07:38:02 +0000 (07:38 +0000)]
External primitives are not safe.
Chris Hanson [Fri, 17 Apr 1987 04:03:23 +0000 (04:03 +0000)]
*** empty log message ***
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.
Chris Hanson [Fri, 17 Apr 1987 00:58:33 +0000 (00:58 +0000)]
Eliminate use of `mapcar', clean up some other things too.
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.
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.
Guillermo J. Rozas [Thu, 16 Apr 1987 23:20:46 +0000 (23:20 +0000)]
Primitive-type returns "safe" types.
Guillermo J. Rozas [Thu, 16 Apr 1987 15:30:25 +0000 (15:30 +0000)]
Eliminate reference to TC_STRING