Fix trap_handler so that the saved_* parameters are set up correctly
before invoking trap_recover. This fixes the bug by which all traps
were reported as "User microcode reset".
Add find_signal_code_name to generate a string for the signal code
using DECLARE_UX_SIGNAL_CODES defined in uxtrap.h .
Modify setup_trap_frame to use find_signal_code_name .
Fix find_block_address_in_area to not run into an infinite loop (it
was not incrementing the area pointer on most objects).
Fix consistency test after the second phase of purify. It no longer
depends on FLOATING_ALIGNMENT and only on whether constant space was
not overrun by the purification.
Change find_constant_space_block to return the address of the first
word of the block where the object is found, rather than the address
of the last word of the previous block.
Change impurify to never impurify flonums.
Remove extraneous conditionalization on FLOATING_ALIGNMENT.
Change the definition of PLAUSIBLE_CC_BLOCK_P to handle two cases:
expression blocks, and single procedure blocks generated when the
compiler compiles by procedures.
Better reporting of hardware traps.
compiled-entry/block is the identity on compiled code blocks.
Fixnum operations can now be constant folded by the syntaxer.
Change gpio-read-string and gpio-write-string to take position and
count parameters, rather than just count parameters. This speeds up
output when it is divided into chunks.
Chris Hanson [Thu, 21 Jun 1990 22:11:52 +0000 (22:11 +0000)]
Change console-input-port so that it always buffers the input.
Because of this change there is no need to use the special terminal
input primitives -- these should be flushed from the microcode.
All buffered input channels now support the `interval' argument of the
`char-ready?' operation.
Chris Hanson [Thu, 21 Jun 1990 20:02:06 +0000 (20:02 +0000)]
Change `OS_channel_read' and `OS_channel_write' to be interruptable,
so that any I/O can be interrupted by the user typing ^G. Fix minor
thinko in `OS_channel_close' that caused the console I/O channels to
be marked as closed even though they were still open.
Chris Hanson [Wed, 20 Jun 1990 21:13:44 +0000 (21:13 +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 20:37:44 +0000 (20:37 +0000)]
* Changes to operating system interface to match those introduced in
microcode version 11.33, which is required for this runtime system
version.
* The low-level channel abstraction has been changed -- it now
contains only a microcode channel descriptor and the channel type.
The microcode no longer knows the format of channels.
* Subprocess support has been temporarily removed. New subprocess
support is being designed to accompany changes in the microcode.
* The file-copy primitive is now written in Scheme using lower-level
file system and I/O operations.
* Use `input-port/immediate-mode' and `input-port/normal-mode' to
switch terminal mode. The operations `read-char-immediate' and
`peek-char-immediate' are now obsolete. REP loops force the input
port into normal mode, while the debugger forces it into immediate
mode.
* I/O buffering for input files, output files, and the console output
is now done in Scheme. The microcode provides no buffering.
These ports understand `buffer-size' and `set-buffer-size' operations
to control the amount of buffering. A buffer size of 0 disables
buffering entirely.
* `read-start!' and `read-finish!' are now optional operations on
input ports.
* An input or output port will now report the set of operations that
it responds to.
Chris Hanson [Wed, 20 Jun 1990 20:30:31 +0000 (20:30 +0000)]
* Changes to operating system interface to match those introduced in
microcode version 11.33, which is required for this runtime system
version.
* The low-level channel abstraction has been changed -- it now
contains only a microcode channel descriptor and the channel type.
The microcode no longer knows the format of channels.
* Subprocess support has been temporarily removed. New subprocess
support is being designed to accompany changes in the microcode.
* The file-copy primitive is now written in Scheme using lower-level
file system and I/O operations.
* Use `input-port/immediate-mode' and `input-port/normal-mode' to
switch terminal mode. The operations `read-char-immediate' and
`peek-char-immediate' are now obsolete. REP loops force the input
port into normal mode, while the debugger forces it into immediate
mode.
* I/O buffering for input files, output files, and the console output
is now done in Scheme. The microcode provides no buffering.
These ports understand `buffer-size' and `set-buffer-size' operations
to control the amount of buffering. A buffer size of 0 disables
buffering entirely.
* `read-start!' and `read-finish!' are now optional operations on
input ports.
* An input or output port will now report the set of operations that
it responds to.
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.