mit-scheme.git
34 years agoAdd new style primitives (multiple byte transfers, string based).
Guillermo J. Rozas [Wed, 13 Jun 1990 20:49:58 +0000 (20:49 +0000)]
Add new style primitives (multiple byte transfers, string based).
Add control primitives.
Add locking of the interface.

34 years agoAdd rule for gpio.c .
Guillermo J. Rozas [Wed, 13 Jun 1990 20:45:51 +0000 (20:45 +0000)]
Add rule for gpio.c .

34 years agoRemove scmkit from install.world.
Guillermo J. Rozas [Tue, 12 Jun 1990 17:53:18 +0000 (17:53 +0000)]
Remove scmkit from install.world.

34 years agoAdd a .DEFAULT entry that re-invokes make on the target using
Guillermo J. Rozas [Tue, 12 Jun 1990 17:52:24 +0000 (17:52 +0000)]
Add a .DEFAULT entry that re-invokes make on the target using
xmakefile.

34 years agoAdd a .DEFAULT entry that re-invokes make on the target using
Guillermo J. Rozas [Tue, 12 Jun 1990 17:32:29 +0000 (17:32 +0000)]
Add a .DEFAULT entry that re-invokes make on the target using
xmakefile.

34 years agoAdd Franklyn's microcode and a microcode for hacking the toolkit. It
Guillermo J. Rozas [Tue, 12 Jun 1990 16:38:29 +0000 (16:38 +0000)]
Add Franklyn's microcode and a microcode for hacking the toolkit.  It
is a standard microcode plus gpio primitives.

34 years agoInitial revision
Guillermo J. Rozas [Tue, 12 Jun 1990 16:35:28 +0000 (16:35 +0000)]
Initial revision

34 years agoFix transform/definition to allow non-scanned top-level definitions.
Guillermo J. Rozas [Mon, 11 Jun 1990 16:34:51 +0000 (16:34 +0000)]
Fix transform/definition to allow non-scanned top-level definitions.
The arise due to in-package.

34 years agoFix transform/definition in xform.scm to allow non-scanned top-level
Guillermo J. Rozas [Mon, 11 Jun 1990 16:34:32 +0000 (16:34 +0000)]
Fix transform/definition in xform.scm to allow non-scanned top-level
definitions.  The arise due to in-package.

34 years agoRename references to primitives that have been renamed in the
Chris Hanson [Thu, 7 Jun 1990 19:56:35 +0000 (19:56 +0000)]
Rename references to primitives that have been renamed in the
microcode.

34 years agoWhen loading a .scm file, fetch the repl environment and syntax table
Chris Hanson [Mon, 4 Jun 1990 20:46:42 +0000 (20:46 +0000)]
When loading a .scm file, fetch the repl environment and syntax table
at the beginning of the load rather than for each expression in the
file.  This means that changing the repl environment or syntax table
in the file will have no effect on the load.

34 years agoWhen loading a .scm file, fetch the repl environment and syntax table
Chris Hanson [Mon, 4 Jun 1990 20:45:55 +0000 (20:45 +0000)]
When loading a .scm file, fetch the repl environment and syntax table
at the beginning of the load rather than for each expression in the
file.  This means that changing the repl environment or syntax table
in the file will have no effect on the load.

34 years agoIn bignum division when doing add-back because initial guess was too
Chris Hanson [Wed, 16 May 1990 22:42:55 +0000 (22:42 +0000)]
In bignum division when doing add-back because initial guess was too
large: if the add-back causes a carry it must be discarded.

34 years ago`in-package' must not scan out the defines in its body.
Chris Hanson [Thu, 10 May 1990 19:25:33 +0000 (19:25 +0000)]
`in-package' must not scan out the defines in its body.

34 years agoUse 6-bit type codes.
Chris Hanson [Tue, 8 May 1990 10:20:11 +0000 (10:20 +0000)]
Use 6-bit type codes.

35 years agoInitial revision
Guillermo J. Rozas [Mon, 7 May 1990 04:18:00 +0000 (04:18 +0000)]
Initial revision

35 years ago*** empty log message ***
Guillermo J. Rozas [Mon, 7 May 1990 04:09:24 +0000 (04:09 +0000)]
*** empty log message ***

35 years agoFix one more problem in the interaction between multiclosures and
Guillermo J. Rozas [Sun, 6 May 1990 00:34:56 +0000 (00:34 +0000)]
Fix one more problem in the interaction between multiclosures and
subproblem free variables.

35 years agoFix a bug in walk-procedure that manifested itself in sf/subst.
Guillermo J. Rozas [Fri, 4 May 1990 15:15:18 +0000 (15:15 +0000)]
Fix a bug in walk-procedure that manifested itself in sf/subst.
The free variables in closures are determined exclusively by the
closure block, not by the free variables of the procedure block.

35 years agoAdd support for multi-closures, ie. closures with multiple (or no)
Guillermo J. Rozas [Thu, 3 May 1990 15:22:29 +0000 (15:22 +0000)]
Add support for multi-closures, ie. closures with multiple (or no)
entry points that share the environment "frame".

35 years agoChange generate/sequence to process forms in order (left to right).
Guillermo J. Rozas [Thu, 3 May 1990 15:06:40 +0000 (15:06 +0000)]
Change generate/sequence to process forms in order (left to right).
In this way, compilation by procedures compiles the procedures in the
order in which they appear in the file, producing predictable output.

35 years agoFix the lap->code example.
Guillermo J. Rozas [Thu, 3 May 1990 15:03:49 +0000 (15:03 +0000)]
Fix the lap->code example.
procedure-variables are now cleaned up after phase/setup-block-types
rather than phase/identify-closure-limits, since the multi-closure
code in phase/setup-block-types needs this information.

35 years agoIncrease the size of symbol tables. Symbol tables should be growing
Guillermo J. Rozas [Thu, 3 May 1990 14:59:34 +0000 (14:59 +0000)]
Increase the size of symbol tables.  Symbol tables should be growing
(re-hashing) hash tables, but are currently fixed.  The previous value
was too small for large compilation units.  The current one may be too
large for small units, but oh well.

35 years agoOne more step of making file-touch work better in a distributed
Guillermo J. Rozas [Fri, 27 Apr 1990 23:43:27 +0000 (23:43 +0000)]
One more step of making file-touch work better in a distributed
environment.  Some changes for NFS (addition of special handling of
ESTALE), and better handling of some other conditions.

35 years agoAdd ADJUST_CLOSURE_AT_CALL.
Guillermo J. Rozas [Mon, 23 Apr 1990 02:43:10 +0000 (02:43 +0000)]
Add ADJUST_CLOSURE_AT_CALL.

35 years agoRemove the interrupt multiclosure register setup and special entry
Guillermo J. Rozas [Mon, 23 Apr 1990 02:36:21 +0000 (02:36 +0000)]
Remove the interrupt multiclosure register setup and special entry
point.

35 years agoAdd ADJUST_CLOSURE_AT_CALL.
Guillermo J. Rozas [Mon, 23 Apr 1990 02:35:49 +0000 (02:35 +0000)]
Add ADJUST_CLOSURE_AT_CALL.
Remove the interrupt multiclosure register setup.

35 years agoEliminate comutil_interrupt_multiclosure. It was not correct.
Guillermo J. Rozas [Mon, 23 Apr 1990 02:35:00 +0000 (02:35 +0000)]
Eliminate comutil_interrupt_multiclosure.  It was not correct.
Modify comutil_interrupt_closure to accomodate closures in machines
where the environment pointer does not match the entry point.
This is done using a new macro ADJUST_CLOSURE_AT_CALL from
cmpint-xxx.h

35 years agoFixed bug in comutil_interrupt_dlink (passing 2 instead of 3 arguments
Jim Miller [Sat, 21 Apr 1990 17:18:08 +0000 (17:18 +0000)]
Fixed bug in comutil_interrupt_dlink (passing 2 instead of 3 arguments
to compiler_interrupt_common).

35 years agoNew information in closure dbg blocks to accomodate multiclosures and
Guillermo J. Rozas [Sat, 21 Apr 1990 16:26:47 +0000 (16:26 +0000)]
New information in closure dbg blocks to accomodate multiclosures and
make the accessors/mutators architecture independent.

35 years agoNew information in closure dbg blocks to accomodate multiclosures and
Guillermo J. Rozas [Sat, 21 Apr 1990 15:20:05 +0000 (15:20 +0000)]
New information in closure dbg blocks to accomodate multiclosures and
make the accessors/mutators architecture independent.

35 years ago- Change "link.l" into "link" because Asmcvt does not understand it.
Guillermo J. Rozas [Thu, 19 Apr 1990 19:09:56 +0000 (19:09 +0000)]
- Change "link.l" into "link" because Asmcvt does not understand it.
- Change "jmp(%a0)" into "jmp (%a0)" because Asmcvt does not parse
it correctly.

35 years ago*** empty log message ***
Chris Hanson [Tue, 17 Apr 1990 22:20:34 +0000 (22:20 +0000)]
*** empty log message ***

35 years agoFor hp-ux 7.0, must define _HPUX_SOURCE if the compiler is ANSI C.
Chris Hanson [Tue, 17 Apr 1990 22:20:00 +0000 (22:20 +0000)]
For hp-ux 7.0, must define _HPUX_SOURCE if the compiler is ANSI C.

35 years agoEliminate (now incorrect) declarations for various procedures defined
Chris Hanson [Tue, 17 Apr 1990 22:16:44 +0000 (22:16 +0000)]
Eliminate (now incorrect) declarations for various procedures defined
in the C library.

35 years agoEliminate (now incorrect) declarations for various procedures defined
Chris Hanson [Tue, 17 Apr 1990 21:56:23 +0000 (21:56 +0000)]
Eliminate (now incorrect) declarations for various procedures defined
in the C library.

35 years agoFix conversion of Scheme argument to fopen.
Chris Hanson [Tue, 17 Apr 1990 21:54:56 +0000 (21:54 +0000)]
Fix conversion of Scheme argument to fopen.

35 years ago"bignum.o" depends on "limits.h".
Chris Hanson [Tue, 17 Apr 1990 19:16:28 +0000 (19:16 +0000)]
"bignum.o" depends on "limits.h".

35 years agoAdded LOAD-LATEST and FASLOAD-LATEST to load the most recently
Mark Friedman [Fri, 13 Apr 1990 14:14:58 +0000 (14:14 +0000)]
Added LOAD-LATEST and FASLOAD-LATEST to load the most recently
modified of the LOAD/DEFAULT-TYPES (or FASLOAD/DEFAULT-TYPES). Also
added a LOAD/DEFAULT-FIND-PATHNAME-WITH-TYPE variable which LOAD and
FASLOAD will use (indirectly) to determine what file type to load. See
the rcs log for load.scm for more info.

35 years agoDon't treat `restore-value' frame as a subproblem.
Chris Hanson [Thu, 12 Apr 1990 22:54:21 +0000 (22:54 +0000)]
Don't treat `restore-value' frame as a subproblem.

35 years agoRewrite file_touch to use fstat after open rather than stat and then
Guillermo J. Rozas [Thu, 12 Apr 1990 22:51:15 +0000 (22:51 +0000)]
Rewrite file_touch to use fstat after open rather than stat and then
open.  This seems to reduce the problems with stale NFS handles, and
should affect nothing else.

35 years agoOops, forgot some initializations for the LOAD-LATEST stuff. See the
Mark Friedman [Thu, 12 Apr 1990 22:50:28 +0000 (22:50 +0000)]
Oops, forgot some initializations for the LOAD-LATEST stuff. See the
log for the last version for more info.

35 years agoAdd multi closure interrupt support.
Guillermo J. Rozas [Thu, 12 Apr 1990 22:47:59 +0000 (22:47 +0000)]
Add multi closure interrupt support.
Merge in some MIPS changes (bug fix to bitstrings, and file_touch).

35 years agoAdd asm_interrupt_multiclosure.
Guillermo J. Rozas [Thu, 12 Apr 1990 22:46:59 +0000 (22:46 +0000)]
Add asm_interrupt_multiclosure.

35 years agoAdd comutil_interrupt_multiclosure.
Guillermo J. Rozas [Thu, 12 Apr 1990 22:46:26 +0000 (22:46 +0000)]
Add comutil_interrupt_multiclosure.

35 years agoAdded LOAD-LATEST and FASLOAD-LATEST to load the most recently
Mark Friedman [Thu, 12 Apr 1990 21:56:31 +0000 (21:56 +0000)]
Added LOAD-LATEST and FASLOAD-LATEST to load the most recently
modified version among the LOAD/DEFAULT-TYPES.

Added a variable LOAD/DEFAULT-FIND-PATHNAME-WITH-TYPE which may be set
to a procedure which tells load how to decide which file type to use.
The procedure accepts a pathname and a list of file type strings
(usually this will be LOAD/DEFAULT-TYPES) and should return the
complete pathname for load to use.

35 years agoFix a bug in BIT_STRING_INDEX_PAIR_TO_INDEX for machines with vax byte
Guillermo J. Rozas [Thu, 12 Apr 1990 21:12:22 +0000 (21:12 +0000)]
Fix a bug in BIT_STRING_INDEX_PAIR_TO_INDEX for machines with vax byte
order.

35 years agoForgot to change the copyright date.
Guillermo J. Rozas [Thu, 12 Apr 1990 21:08:14 +0000 (21:08 +0000)]
Forgot to change the copyright date.

35 years agoAdd `#undef ultrix' for unknown reasons -- JMiller.
Guillermo J. Rozas [Thu, 12 Apr 1990 21:07:04 +0000 (21:07 +0000)]
Add `#undef ultrix' for unknown reasons -- JMiller.

35 years agoBump the default space parameters on the MIPS when there is compiler
Guillermo J. Rozas [Thu, 12 Apr 1990 21:05:34 +0000 (21:05 +0000)]
Bump the default space parameters on the MIPS when there is compiler
support.

35 years agoAdd 6 bit type codes and an optimizer switch to be able to handle
Guillermo J. Rozas [Thu, 12 Apr 1990 21:04:06 +0000 (21:04 +0000)]
Add 6 bit type codes and an optimizer switch to be able to handle
interp.c

35 years agoChange `file-open-channel' primitive to permit opening a file in
Chris Hanson [Tue, 10 Apr 1990 20:10:04 +0000 (20:10 +0000)]
Change `file-open-channel' primitive to permit opening a file in
append mode.  The second argument to this primitive is now interpreted
as follows:

#F => open for input
#T => open for output
else => open for append

35 years agoAdd optional second argument to `open-output-file': if supplied and
Chris Hanson [Tue, 10 Apr 1990 20:05:26 +0000 (20:05 +0000)]
Add optional second argument to `open-output-file': if supplied and
not false, the file is opened for append.

35 years agoRename local variable to prevent confusion during debugging.
Chris Hanson [Tue, 10 Apr 1990 16:03:03 +0000 (16:03 +0000)]
Rename local variable to prevent confusion during debugging.

35 years agoDetect and signal error for `(let 3 4)'.
Chris Hanson [Tue, 10 Apr 1990 15:53:35 +0000 (15:53 +0000)]
Detect and signal error for `(let 3 4)'.

35 years agoForce top-level syntax definitions to be local to the file in which
Chris Hanson [Tue, 10 Apr 1990 15:53:06 +0000 (15:53 +0000)]
Force top-level syntax definitions to be local to the file in which
they appear.

35 years agoForce top-level syntax definitions to be local to the file in which
Chris Hanson [Tue, 10 Apr 1990 15:46:39 +0000 (15:46 +0000)]
Force top-level syntax definitions to be local to the file in which
they appear.

35 years agoFix broken movb and movib instruction definitions.
Chris Hanson [Mon, 9 Apr 1990 21:21:01 +0000 (21:21 +0000)]
Fix broken movb and movib instruction definitions.

35 years agoFix broken qualifier.
Chris Hanson [Mon, 9 Apr 1990 21:07:36 +0000 (21:07 +0000)]
Fix broken qualifier.

35 years agoFix definition of type-scale-factor.
Chris Hanson [Mon, 9 Apr 1990 20:35:44 +0000 (20:35 +0000)]
Fix definition of type-scale-factor.

35 years agoFix macro definition from last change.
Guillermo J. Rozas [Mon, 9 Apr 1990 15:10:07 +0000 (15:10 +0000)]
Fix macro definition from last change.

35 years agoAdd code to flush the I-cache at the right times: After storing an
Guillermo J. Rozas [Mon, 9 Apr 1990 14:52:57 +0000 (14:52 +0000)]
Add code to flush the I-cache at the right times: After storing an
execute cache entry, and after major relocations (GC and
disk-restore).

35 years agoRemove check window by using file-touch, that returns #t or #f
Guillermo J. Rozas [Wed, 4 Apr 1990 19:47:29 +0000 (19:47 +0000)]
Remove check window by using file-touch, that returns #t or #f
depending on whether the file existed or not.

35 years agoChange file-touch to return #t if the file did not exist previously
Guillermo J. Rozas [Wed, 4 Apr 1990 18:52:12 +0000 (18:52 +0000)]
Change file-touch to return #t if the file did not exist previously
and was succesfully created, #f if it existed, and was succesfully
modified, and an error string otherwise.

35 years agoChange file-touch to return #t if the file did not exist previously
Guillermo J. Rozas [Wed, 4 Apr 1990 18:51:37 +0000 (18:51 +0000)]
Change file-touch to return #t if the file did not exist previously
and was succesfully created, #f if it existed, and was succesfully
modified, and an error string otherwise.

35 years agoChange file-touch to give an error only if the result of the primitive
Guillermo J. Rozas [Wed, 4 Apr 1990 18:23:16 +0000 (18:23 +0000)]
Change file-touch to give an error only if the result of the primitive
is an error string.

35 years agoAllow (pseudo) instructions to expand into no code.
Guillermo J. Rozas [Tue, 3 Apr 1990 23:21:21 +0000 (23:21 +0000)]
Allow (pseudo) instructions to expand into no code.

35 years agoMake BSR to the following instruction cause an error at assembly time.
Guillermo J. Rozas [Tue, 3 Apr 1990 23:20:52 +0000 (23:20 +0000)]
Make BSR to the following instruction cause an error at assembly time.

35 years agoPrevent the diamond rule for pblocks from generating the same block on
Guillermo J. Rozas [Tue, 3 Apr 1990 23:20:21 +0000 (23:20 +0000)]
Prevent the diamond rule for pblocks from generating the same block on
both branches, the assembler will then complain because of duplicate
labels.

35 years agoForgot to change > to != in last change.
Guillermo J. Rozas [Tue, 3 Apr 1990 19:57:05 +0000 (19:57 +0000)]
Forgot to change > to != in last change.

35 years agoEliminate dependency on byte order from BIT-SUBSTRING-FIND-NEXT-SET-BIT.
Guillermo J. Rozas [Tue, 3 Apr 1990 19:53:47 +0000 (19:53 +0000)]
Eliminate dependency on byte order from BIT-SUBSTRING-FIND-NEXT-SET-BIT.
Use INC_BIT_STR_PTR rather than pre-decrementing.

35 years agoFix load-interface-args! which was clearing the wrong registers.
Guillermo J. Rozas [Tue, 3 Apr 1990 06:17:26 +0000 (06:17 +0000)]
Fix load-interface-args! which was clearing the wrong registers.

Fix rulrew which was constant folding object->type and object->datum
incorrectly.

Improve code sequences generated for inline-coded generic arithmetic
in reduction position when arguments are constant.

Make compiler declarations propagate when compile-by-procedures? is
on.

35 years agoFix load-interface-args! which was clearing the wrong registers.
Guillermo J. Rozas [Tue, 3 Apr 1990 06:10:06 +0000 (06:10 +0000)]
Fix load-interface-args! which was clearing the wrong registers.

35 years agoPatch inline code so that inliners that call out of line will see
Guillermo J. Rozas [Tue, 3 Apr 1990 06:01:54 +0000 (06:01 +0000)]
Patch inline code so that inliners that call out of line will see
constant operands rather than stack locations.

35 years agoFix broken rewrite rules by which generic arithmetic with a constant
Guillermo J. Rozas [Tue, 3 Apr 1990 04:52:59 +0000 (04:52 +0000)]
Fix broken rewrite rules by which generic arithmetic with a constant
argument was always calling off-line.

35 years agoMake top level declarations propagate when compile-by-procedures is
Guillermo J. Rozas [Tue, 3 Apr 1990 04:51:16 +0000 (04:51 +0000)]
Make top level declarations propagate when compile-by-procedures is
turned on.

35 years agoFix bugs in rulrew by which generic arithmetic with a constant
Guillermo J. Rozas [Tue, 3 Apr 1990 04:50:08 +0000 (04:50 +0000)]
Fix bugs in rulrew by which generic arithmetic with a constant
argument was always calling off-line.

Make top level declarations propagate when compile-by-procedures is
turned on.

35 years agoAdd MIPS compiler support, and remove nesting of #if's on PROC_TYPE.
Guillermo J. Rozas [Tue, 3 Apr 1990 00:15:53 +0000 (00:15 +0000)]
Add MIPS compiler support, and remove nesting of #if's on PROC_TYPE.

35 years agoAdd typedef of format_word when not HAS_COMPILER_SUPPORT.
Guillermo J. Rozas [Tue, 3 Apr 1990 00:04:44 +0000 (00:04 +0000)]
Add typedef of format_word when not HAS_COMPILER_SUPPORT.
It should never be used, but the macro stubs should guarantee this.

35 years agoUpdate to match 68k.
Guillermo J. Rozas [Mon, 2 Apr 1990 15:32:24 +0000 (15:32 +0000)]
Update to match 68k.

lap:make-unconditional-branch returns an instruction sequence rather
than a single instruction because on machines with branch delay slots
and no nullification, a NOP must appear as well.

Comment out uses of expt, since compiler declarations don't work with
compile-by-procedures?

Add a test on endianness to expand-fields so that the same macros can
be used for all RISC machines.

35 years agoAdd a test on endianness to expand-fields so that the same macros can
Guillermo J. Rozas [Mon, 2 Apr 1990 15:30:54 +0000 (15:30 +0000)]
Add a test on endianness to expand-fields so that the same macros can
be used for all RISC machines.

35 years agoComment out uses of expt, since compiler declarations don't work with
Guillermo J. Rozas [Mon, 2 Apr 1990 15:30:02 +0000 (15:30 +0000)]
Comment out uses of expt, since compiler declarations don't work with
compile-by-procedures?

35 years agolap:make-unconditional-branch returns an instruction sequence rather
Guillermo J. Rozas [Mon, 2 Apr 1990 15:28:32 +0000 (15:28 +0000)]
lap:make-unconditional-branch returns an instruction sequence rather
than a single instruction because on machines with branch delay slots
and no nullification, a NOP must appear as well.

Comment out uses of expt, since compiler declarations don't work with
compile-by-procedures?

35 years agoMajor change:
Guillermo J. Rozas [Sun, 1 Apr 1990 22:31:56 +0000 (22:31 +0000)]
Major change:

- New drifting/undrifting code and closure analysis.

Minor changes:

- lap:make-uncoditional-branch now returns a sequence of instructions,
rather than a single instruction.

- Uses of `expt' in machin and lapgen have temporarily been commented
out because the `usual-definition' declaration does not work when
`compile-by-procedures?' is turned on.

- letrec-value now gives only a warning when binding a trivial
closure.

- close-procedure! in blktyp now only gives a warning when a
non-trivial closure becomes trivial.

35 years agoSubstitute constants for expressions computed with `expt'. The expt
Guillermo J. Rozas [Sun, 1 Apr 1990 22:28:28 +0000 (22:28 +0000)]
Substitute constants for expressions computed with `expt'.  The expt
constant-folding declaration is currently ignored (because of
compile-by-procedures? breaking compiler declarations) and since the
values are integrated, they were being computed in a zillion places.

35 years agolap:make-unconditional-branch now returns a sequence rather than a
Guillermo J. Rozas [Sun, 1 Apr 1990 22:26:21 +0000 (22:26 +0000)]
lap:make-unconditional-branch now returns a sequence rather than a
single instructions.  On machines with branch delay slots and no
nullification, a nop must be returned in addition to the branch
instruction.

35 years agolap:make-unconditional-branch now returns a sequence rather than a
Guillermo J. Rozas [Sun, 1 Apr 1990 22:26:01 +0000 (22:26 +0000)]
lap:make-unconditional-branch now returns a sequence rather than a
single instructions.  On machines with branch delay slots and no
nullification, a nop must be returned in addition to the branch
instruction.

35 years agoletrec-value no longer errors if a binding is a trivial closure.
Guillermo J. Rozas [Sun, 1 Apr 1990 22:24:35 +0000 (22:24 +0000)]
letrec-value no longer errors if a binding is a trivial closure.
There are perfectly legal programs where this happens, although they
are written in poor style.  It now just gives a warning.

35 years agoNth revision of this code.
Guillermo J. Rozas [Sun, 1 Apr 1990 22:23:16 +0000 (22:23 +0000)]
Nth revision of this code.

Improve the closing and undrifting code significantly.  Many of the
procedures that were (needlessly) closed by the previous version are
no longer closed.

Undrifting constraints are computed more precisely.

Additionally, closing checks connectivity of the environment chain
(generating undrifting constraints as necessary) to ensure that all
the free variables captured are in fact available, and it also ensures
that disowned children (spliced out by the drifting code) are
undrifted if they depend on the closed-over variables.

One potential non-improvement introduced:  Undrifting any procedure
forces its compatibility class to close, in order to avoid a harder
analysis.  This is a cop-out for now.

35 years agoGet rid of funny drifting rules. Let-like procedures and others that
Guillermo J. Rozas [Sun, 1 Apr 1990 22:19:41 +0000 (22:19 +0000)]
Get rid of funny drifting rules.  Let-like procedures and others that
were previously not allowed to drift are now allowed to.  The
undrifting code takes care of them.

35 years agoIt's OK for a non-trivial closure to become trivial, not the other way
Guillermo J. Rozas [Sun, 1 Apr 1990 22:18:32 +0000 (22:18 +0000)]
It's OK for a non-trivial closure to become trivial, not the other way
around.  The previous error is now split into a warning (in the
unexpected but bad case), and an error (in the bad case).

35 years agoFix bch system to run on machines with floating alignment.
Guillermo J. Rozas [Sun, 1 Apr 1990 20:32:02 +0000 (20:32 +0000)]
Fix bch system to run on machines with floating alignment.

35 years agoInitial revision
Guillermo J. Rozas [Sun, 1 Apr 1990 20:19:57 +0000 (20:19 +0000)]
Initial revision

35 years agoInitial revision
Guillermo J. Rozas [Sun, 1 Apr 1990 20:14:51 +0000 (20:14 +0000)]
Initial revision

35 years agoAdd MIPS compiler support.
Guillermo J. Rozas [Sun, 1 Apr 1990 20:10:29 +0000 (20:10 +0000)]
Add MIPS compiler support.

35 years agoInitial revision
Guillermo J. Rozas [Wed, 28 Mar 1990 22:05:00 +0000 (22:05 +0000)]
Initial revision

35 years agoAdd new method for finding variable that is used by stack-overwrite
Guillermo J. Rozas [Wed, 28 Mar 1990 06:11:39 +0000 (06:11 +0000)]
Add new method for finding variable that is used by stack-overwrite
mechanism.  This new method does not use any tricks like variable
indirection to find the value, but produces a locative for that
particular variable.

35 years agoUndrifting constraints must propagate transitively to free callers.
Guillermo J. Rozas [Wed, 28 Mar 1990 06:07:59 +0000 (06:07 +0000)]
Undrifting constraints must propagate transitively to free callers.
Undrifted procedures must be re-analyzed for Exporting.

35 years agoMove switch.scm back to compiler/base, so it can be shared.
Guillermo J. Rozas [Tue, 27 Mar 1990 00:50:00 +0000 (00:50 +0000)]
Move switch.scm back to compiler/base, so it can be shared.
Update to match 68k version.

35 years agoAdd compiler:noisy?
Guillermo J. Rozas [Mon, 26 Mar 1990 23:46:08 +0000 (23:46 +0000)]
Add compiler:noisy?
Move switch.scm back to compiler/base, so it can be shared.
Update to match 68k version.