Chris Hanson [Wed, 20 Jun 1990 20:00:58 +0000 (20:00 +0000)]
* Complete redesign of the operating-system interface. I/O is more
uniform and is able to take advantage of things like sockets, pipes,
ptys, etc. All I/O buffering is moved into the runtime system for
better performance with Scheme compiler code. Strong knowledge of
POSIX.1 should make porting to VMS easy once VMS supports POSIX.1.
* Change operating system conditionalizations to standard form
suggested by POSIX.1.
* Add FSF macros to support ANSI declarations.
* Add dynamic-stack package and obstacks.
* Provide higher-level utilities for parsing command line options.
* Instead of `Back_To_Eval', there is now a procedure
`abort_to_interpreter' which knows about everything that needs to be
cleaned up.
* Sun assembler can't handle a constant used in "cmpaux-mc68k.m4", so
provide an option to rewrite that instruction as two instructions.
* Some compilers won't cast a function to an integer, so kludge around
it by mis-declaring the external function as an integer, taking it the
integer's address, and casting THAT to an integer.
* Move critical section code and termination code to their own files.
Chris Hanson [Wed, 20 Jun 1990 19:55:07 +0000 (19:55 +0000)]
* Complete redesign of the operating-system interface. I/O is more
uniform and is able to take advantage of things like sockets, pipes,
ptys, etc. All I/O buffering is moved into the runtime system for
better performance with Scheme compiler code. Strong knowledge of
POSIX.1 should make porting to VMS easy once VMS supports POSIX.1.
* Change operating system conditionalizations to standard form
suggested by POSIX.1.
* Add FSF macros to support ANSI declarations.
* Add dynamic-stack package and obstacks.
* Provide higher-level utilities for parsing command line options.
* Instead of `Back_To_Eval', there is now a procedure
`abort_to_interpreter' which knows about everything that needs to be
cleaned up.
* Sun assembler can't handle a constant used in "cmpaux-mc68k.m4", so
provide an option to rewrite that instruction as two instructions.
* Some compilers won't cast a function to an integer, so kludge around
it by mis-declaring the external function as an integer, taking it the
integer's address, and casting THAT to an integer.
* Move critical section code and termination code to their own files.
Chris Hanson [Wed, 20 Jun 1990 19:39:44 +0000 (19:39 +0000)]
* Complete redesign of the operating-system interface. I/O is more
uniform and is able to take advantage of things like sockets, pipes,
ptys, etc. All I/O buffering is moved into the runtime system for
better performance with Scheme compiler code. Strong knowledge of
POSIX.1 should make porting to VMS easy once VMS supports POSIX.1.
* Change operating system conditionalizations to standard form
suggested by POSIX.1.
* Add FSF macros to support ANSI declarations.
* Add dynamic-stack package and obstacks.
* Provide higher-level utilities for parsing command line options.
* Instead of `Back_To_Eval', there is now a procedure
`abort_to_interpreter' which knows about everything that needs to be
cleaned up.
* Sun assembler can't handle a constant used in "cmpaux-mc68k.m4", so
provide an option to rewrite that instruction as two instructions.
* Some compilers won't cast a function to an integer, so kludge around
it by mis-declaring the external function as an integer, taking it the
integer's address, and casting THAT to an integer.
* Move critical section code and termination code to their own files.
Chris Hanson [Wed, 20 Jun 1990 17:42:58 +0000 (17:42 +0000)]
* Complete redesign of the operating-system interface. I/O is more
uniform and is able to take advantage of things like sockets, pipes,
ptys, etc. All I/O buffering is moved into the runtime system for
better performance with Scheme compiler code. Strong knowledge of
POSIX.1 should make porting to VMS easy once VMS supports POSIX.1.
* Change operating system conditionalizations to standard form
suggested by POSIX.1.
* Add FSF macros to support ANSI declarations.
* Add dynamic-stack package and obstacks.
* Provide higher-level utilities for parsing command line options.
* Instead of `Back_To_Eval', there is now a procedure
`abort_to_interpreter' which knows about everything that needs to be
cleaned up.
* Sun assembler can't handle a constant used in "cmpaux-mc68k.m4", so
provide an option to rewrite that instruction as two instructions.
* Some compilers won't cast a function to an integer, so kludge around
it by mis-declaring the external function as an integer, taking it the
integer's address, and casting THAT to an integer.
* Move critical section code and termination code to their own files.
Fix bug in bit_string_to_bignum by which the top digit was not masked
according to the number of valid bits. Thus the result was larger
under certain conditions.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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?
- 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.