Chris Hanson [Fri, 25 Mar 1988 21:22:06 +0000 (21:22 +0000)]
Add missing rule. Generalize `increment-anl' to
`increment-machine-register'. Generalize
`reuse-pseudo-register-alias!' to capture idea of reuse without making
assumptions about loading the target register from the source
register.
Add some overflow checking in entity apply code. It will not work in
fscheme/multischeme, but figuring out what the right thing to do there
is not easy.
Joe Marshall [Wed, 23 Mar 1988 18:31:25 +0000 (18:31 +0000)]
Make Entity application check for interrupts to avoid blowing machine
away in the case of an entity's procedure being that entity.
This will allow you to abort if you are quick enough, but no stack
check is currently being done, so errors here would probably blow
scheme away anyhow.
Fix bchscheme to handle new representation of compiled procedures.
Add coerce-to-compiled-procedure primitive for inner loops.
Clean up some gc macros.
Fix bchscheme to handle new representation of compiled procedures.
Add coerce-to-compiled-procedure primitive for inner loops.
Clean up some gc macros.
Change the representation of compiled procedures and other entries:
They are now just the address of an instruction with a gc offset
preceding the instruction and an arity/type word preceding that.
Compiled closures are done by creating a tiny fake compiled code block
which jumps to the right place and sets up the free variables for
reference.
Uuo style links are now just jump instructions to the correct address.
All relocators have been updated to reflect this change.
Variable caches have no type code. The relocators know about this.
New types:
TC_COMPILED_ENTRY
TC_MANIFEST_CLOSURE
TC_LINKAGE_SECTION
Change the representation of compiled procedures and other entries:
They are now just the address of an instruction with a gc offset
preceding the instruction and an arity/type word preceding that.
Compiled closures are done by creating a tiny fake compiled code block
which jumps to the right place and sets up the free variables for
reference.
Uuo style links are now just jump instructions to the correct address.
All relocators have been updated to reflect this change.
Variable caches have no type code. The relocators know about this.
New types:
TC_COMPILED_ENTRY
TC_MANIFEST_CLOSURE
TC_LINKAGE_SECTION
Change the representation of compiled procedures and other entries:
They are now just the address of an instruction with a gc offset
preceding the instruction and an arity/type word preceding that.
Compiled closures are done by creating a tiny fake compiled code block
which jumps to the right place and sets up the free variables for
reference.
Uuo style links are now just jump instructions to the correct address.
All relocators have been updated to reflect this change.
Variable caches have no type code. The relocators know about this.
New types:
TC_COMPILED_ENTRY
TC_MANIFEST_CLOSURE
TC_LINKAGE_SECTION
Change the representation of compiled procedures and other entries:
They are now just the address of an instruction with a gc offset
preceding the instruction and an arity/type word preceding that.
Compiled closures are done by creating a tiny fake compiled code block
which jumps to the right place and sets up the free variables for
reference.
Uuo style links are now just jump instructions to the correct address.
All relocators have been updated to reflect this change.
Variable caches have no type code. The relocators know about this.
Incorporate JRM's fix to signal to close interrupt gap in hp-ux.
New types:
TC_COMPILED_ENTRY
TC_MANIFEST_CLOSURE
TC_LINKAGE_SECTION
Change the representation of compiled procedures and other entries:
They are now just the address of an instruction with a gc offset
preceding the instruction and an arity/type word preceding that.
Compiled closures are done by creating a tiny fake compiled code block
which jumps to the right place and sets up the free variables for
reference.
Uuo style links are now just jump instructions to the correct address.
All relocators have been updated to reflect this change.
Variable caches have no type code. The relocators know about this.
Incorporate JRM's fix to signal to close interrupt gap in hp-ux.
New types:
TC_COMPILED_ENTRY
TC_MANIFEST_CLOSURE
TC_LINKAGE_SECTION
Change the representation of compiled procedures and other entries:
They are now just the address of an instruction with a gc offset
preceding the instruction and an arity/type word preceding that.
Compiled closures are done by creating a tiny fake compiled code block
which jumps to the right place and sets up the free variables for
reference.
Uuo style links are now just jump instructions to the correct address.
All relocators have been updated to reflect this change.
Variable caches have no type code. The relocators know about this.
Incorporate JRM's fix to signal to close interrupt gap in hp-ux.
New types:
TC_COMPILED_ENTRY
TC_MANIFEST_CLOSURE
TC_LINKAGE_SECTION
Change the representation of compiled procedures and other entries:
They are now just the address of an instruction with a gc offset
preceding the instruction and an arity/type word preceding that.
Compiled closures are done by creating a tiny fake compiled code block
which jumps to the right place and sets up the free variables for
reference.
Uuo style links are now just jump instructions to the correct address.
All relocators have been updated to reflect this change.
Variable caches have no type code. The relocators know about this.
Incorporate JRM's fix to signal to close interrupt gap in hp-ux.
New types:
TC_COMPILED_ENTRY
TC_MANIFEST_CLOSURE
TC_LINKAGE_SECTION
Change the representation of compiled procedures and other entries:
They are now just the address of an instruction with a gc offset
preceding the instruction and an arity/type word preceding that.
Compiled closures are done by creating a tiny fake compiled code block
which jumps to the right place and sets up the free variables for
reference.
Uuo style links are now just jump instructions to the correct address.
All relocators have been updated to reflect this change.
Variable caches have no type code. The relocators know about this.
Incorporate JRM's fix to signal to close interrupt gap in hp-ux.
New types:
TC_COMPILED_ENTRY
TC_MANIFEST_CLOSURE
TC_LINKAGE_SECTION
Change the representation of compiled procedures and other entries:
They are now just the address of an instruction with a gc offset
preceding the instruction and an arity/type word preceding that.
Compiled closures are done by creating a tiny fake compiled code block
which jumps to the right place and sets up the free variables for
reference.
Uuo style links are now just jump instructions to the correct address.
All relocators have been updated to reflect this change.
Variable caches have no type code. The relocators know about this.
Incorporate JRM's fix to signal to close interrupt gap in hp-ux.
New types:
TC_COMPILED_ENTRY
TC_MANIFEST_CLOSURE
TC_LINKAGE_SECTION
Chris Hanson [Wed, 2 Mar 1988 09:00:38 +0000 (09:00 +0000)]
Implement two new primitives, `file-directory?' and `file-symlink?'.
Change `file-attributes' to use `lstat' rather than `stat', and to
return more information about symbolic links.
Chris Hanson [Mon, 29 Feb 1988 01:33:33 +0000 (01:33 +0000)]
Reimplement unix I/O using buffered stdio instead of unbuffered
low-level I/O. The latter had bad performance on TTYs and possibly
other devices as well.
1) Patch compiler code interface problem:
Dynamic links were not saved when a procedure was interrupted.
The typical symptoms would be that the program would jump to
an unpredictable location after a garbage collection. This could
cause it do die with almost any signal, typically illegal instruction
and segmentation violation.
1) Patch compiler code interface problem:
Dynamic links were not saved when a procedure was interrupted.
The typical symptoms would be that the program would jump to
an unpredictable location after a garbage collection. This could
cause it do die with almost any signal, typically illegal instruction
and segmentation violation.
- Add code and data patch areas to cmp68020.s
- Clean up the display of interrupt character information in unix.c
- Change the interrupt characters in unix.c so it matches the sequences
used in emacs.
- Add a gc_death utility procedure which saves scan and free.
Fix a bug in the continuation analyzer which was causing the compiler
to avoid static links in cases where they were in fact needed.
Add a few missing code generation rules.
Make the compiler print its phase information in a nicer format.
Add a few top level utilities:
- cf (SFs your file first)
- compiler:batch-compile (not exported). In case of error it prints
the error information and aborts the current compilation, thus when
compiling multiple files (ie. compiling the compiler) it will continue
with the next one.
1) Fix allocation bug in FILE-ATTRIBUTES.
2) Make some error messages nicer.
3) Add ENTITY and RATNUM types.
4) Add apply time support for ENTITYs.
5) Add a type code name table to types.h and storage.c .
6) Clean up some code in debug.c and Ppband.c .
1) Update Psbtobin, Bintopsb, and Ppband to take care of compiled code
versions.
2) Make Psbtobin and Bintopsb use a new programmable command line
parser.