Add -gc-start-position and -gc-end-position options for bchscheme.
These options delimit the region of the gc file where bchscheme will
write, thus two bchschemes can share the same file. The region is
locked using lockf.
Change sleep_on_pid to sleep_awaiting_drones that uses a bit mask
specifying which drones we are waiting for.
Reorder some operations to reduce the size of some potential interrupt
windows.
Split the actual search in search_path_for_file into
search_for_library_file so that other parts of the microcode can call
it without terminating in case of failure.
Change the default values of some bchscheme options.
Split the actual search in search_path_for_file into
search_for_library_file so that other parts of the microcode can call
it without terminating in case of failure.
Major overhaul of bchscheme:
- Bchscheme can now overlap I/O by using shared memory and drone
processes.
- Bchscheme parameters can be re-set while running.
Only the gc-file is specified exclusively from the command line.
- Many statistics are taken and can be read and manipulated from scheme.
Major overhaul of bchscheme:
- Bchscheme can now overlap I/O by using shared memory and drone
processes.
- Bchscheme parameters can be re-set while running.
Only the gc-file is specified exclusively from the command line.
- Many statistics are taken and can be read and manipulated from scheme.
Chris Hanson [Tue, 29 Oct 1991 14:32:22 +0000 (14:32 +0000)]
Introduce new condition type FILE-OPERATION-ERROR to handle errors
generated by all file and directory primitives. Consequently
eliminate FILE-TOUCH-ERROR and OPEN-FILE-ERROR.
Chris Hanson [Tue, 29 Oct 1991 13:59:31 +0000 (13:59 +0000)]
Change all primitives that use the `stat' and `lstat' system calls to
check for EINTR, and to signal system-call errors if the file's
existence cannot be determined. Change the FILE-EXISTS? primitive to
return zero (instead of #F, as previously) if the file being tested is
a symbolic link but it doesn't point at anything.
Chris Hanson [Sat, 26 Oct 1991 21:08:33 +0000 (21:08 +0000)]
M-x shell-command and M-x shell-command-on-region changed to make
process's working directory be the current buffer's default directory.
Procedures SHELL-COMMAND and RUN-SYNCHRONOUS-SUBPROCESS changed to
permit specification of this directory, and also to specify whether
PTYs should be used. SHELL-COMMAND-ON-REGION eliminated because
SHELL-COMMAND now takes an input-region argument.
Chris Hanson [Sat, 26 Oct 1991 16:21:08 +0000 (16:21 +0000)]
When file- or directory-opening primitives get errors, signal those
errors as open-file-error conditions. In those cases, don't use
another condition as the explanation: create a meaninful error string
from the error's context.
This change has these effects:
* All file/directory-opening primitives now signal the same condition.
* RETRY and USE-VALUE handlers are available whenever that condition
is signalled; previously these handlers were only sometimes
available, and there was no reasonable way to provide them when they
were not.
Chris Hanson [Fri, 25 Oct 1991 12:57:32 +0000 (12:57 +0000)]
* Introduce new RTL expression type CONS-NON-POINTER and change
appropriate instances of CONS-POINTER to use the new type.
* Replace RTL expression type @ADDRESS->FLOAT with new type
OBJECT->FLOAT.
* Introduce new internal switch USE-PRE/POST-INCREMENT?. Change code
generation of in-line consing to pay attention to this switch.
* Merge common parts of "machine/make" into new file "base/make".
On MIPS:
* Change code sequence that assigns type codes to assume that the type
field has a known value. This eliminates one instruction in every
type-code assignment. It assumes that the data segment bits have a
certain value, but the microcode already does this.
* Cache immediate constants in registers, and remember which registers
contain which constants. (This should be improved by noticing when
arithmetic operations are done on known constants and cacheing the
results.)
* Set USE-PRE/POST-INCREMENT? to false, saving one instruction in
every CONS, and multiple instructions in each call to VECTOR.
Chris Hanson [Fri, 25 Oct 1991 12:29:56 +0000 (12:29 +0000)]
* Introduce new RTL expression type CONS-NON-POINTER and change
appropriate instances of CONS-POINTER to use the new type.
* Replace RTL expression type @ADDRESS->FLOAT with new type
OBJECT->FLOAT.
* Introduce new internal switch USE-PRE/POST-INCREMENT?. Change code
generation of in-line consing to pay attention to this switch.
* Merge common parts of "machine/make" into new file "base/make".
On MIPS:
* Change code sequence that assigns type codes to assume that the type
field has a known value. This eliminates one instruction in every
type-code assignment. It assumes that the data segment bits have a
certain value, but the microcode already does this.
* Cache immediate constants in registers, and remember which registers
contain which constants. (This should be improved by noticing when
arithmetic operations are done on known constants and cacheing the
results.)
* Set USE-PRE/POST-INCREMENT? to false, saving one instruction in
every CONS, and multiple instructions in each call to VECTOR.
Chris Hanson [Fri, 25 Oct 1991 12:24:32 +0000 (12:24 +0000)]
* Introduce new RTL expression type CONS-NON-POINTER and change
appropriate instances of CONS-POINTER to use the new type.
* Replace RTL expression type @ADDRESS->FLOAT with new type
OBJECT->FLOAT.
* Introduce new internal switch USE-PRE/POST-INCREMENT?. Change code
generation of in-line consing to pay attention to this switch.
* Merge common parts of "machine/make" into new file "base/make".
On MIPS:
* Change code sequence that assigns type codes to assume that the type
field has a known value. This eliminates one instruction in every
type-code assignment. It assumes that the data segment bits have a
certain value, but the microcode already does this.
* Cache immediate constants in registers, and remember which registers
contain which constants. (This should be improved by noticing when
arithmetic operations are done on known constants and cacheing the
results.)
* Set USE-PRE/POST-INCREMENT? to false, saving one instruction in
every CONS, and multiple instructions in each call to VECTOR.
Chris Hanson [Fri, 25 Oct 1991 06:50:06 +0000 (06:50 +0000)]
* Introduce new RTL expression type CONS-NON-POINTER and change
appropriate instances of CONS-POINTER to use the new type.
* Replace RTL expression type @ADDRESS->FLOAT with new type
OBJECT->FLOAT.
* Introduce new internal switch USE-PRE/POST-INCREMENT?. Change code
generation of in-line consing to pay attention to this switch.
* Merge common parts of "machine/make" into new file "base/make".
On MIPS:
* Change code sequence that assigns type codes to assume that the type
field has a known value. This eliminates one instruction in every
type-code assignment. It assumes that the data segment bits have a
certain value, but the microcode already does this.
* Cache immediate constants in registers, and remember which registers
contain which constants. (This should be improved by noticing when
arithmetic operations are done on known constants and cacheing the
results.)
* Set USE-PRE/POST-INCREMENT? to false, saving one instruction in
every CONS, and multiple instructions in each call to VECTOR.
Chris Hanson [Fri, 25 Oct 1991 00:15:37 +0000 (00:15 +0000)]
* Introduce new RTL expression type CONS-NON-POINTER and change
appropriate instances of CONS-POINTER to use the new type.
* Replace RTL expression type @ADDRESS->FLOAT with new type
OBJECT->FLOAT.
* Introduce new internal switch USE-PRE/POST-INCREMENT?. Change code
generation of in-line consing to pay attention to this switch.
* Merge common parts of "machine/make" into new file "base/make".
On MIPS:
* Change code sequence that assigns type codes to assume that the type
field has a known value. This eliminates one instruction in every
type-code assignment. It assumes that the data segment bits have a
certain value, but the microcode already does this.
* Cache immediate constants in registers, and remember which registers
contain which constants. (This should be improved by noticing when
arithmetic operations are done on known constants and cacheing the
results.)
* Set USE-PRE/POST-INCREMENT? to false, saving one instruction in
every CONS, and multiple instructions in each call to VECTOR.
Chris Hanson [Tue, 22 Oct 1991 12:27:55 +0000 (12:27 +0000)]
* Fix code that extracts filename from dired line so that it handles
symbolic links correctly.
* Fix DIRED-REVERT-BUFFER to keep point on the same filename line if
possible.
* Fix DIRED-COPY-FILES: when a condition handler returns it means that
it has declined to handle the condition; if it handles the condition
it must throw.
Chris Hanson [Tue, 22 Oct 1991 10:48:44 +0000 (10:48 +0000)]
Improve NUKE-NROFF-BS a little more: speed up nuke loops, generalize
header pattern to handle hyphens within section number, simplify
nuking of blank lines at buffer start.
Chris Hanson [Tue, 22 Oct 1991 09:53:38 +0000 (09:53 +0000)]
RTL comment should precede prefix instructions in output. That way
all instructions generated as a result of that RTL will appear
between that comment and the next.
Chris Hanson [Mon, 21 Oct 1991 12:49:45 +0000 (12:49 +0000)]
Various improvements to NUKE-NROFF-BS: speed up implementation,
particularly the removal of underlining and overstriking; remove
"Reformatting page" message if one appears; remove generic footers;
remove blank lines at end.
Chris Hanson [Tue, 15 Oct 1991 18:01:55 +0000 (18:01 +0000)]
Modified by Max Hailperin <max@nic.gac.edu> to support Schematik-style
interrupts if the environment variable USE_SCHEMATIK_STYLE_INTERRUPTS
is defined. What this means is that the following signals are
redefined to generate the corresponding keyboard interrupt (to avoid
the unreliable behavior of the the interactive interrupt handler):
Thanos Siapas [Mon, 14 Oct 1991 23:51:19 +0000 (23:51 +0000)]
Fix two problems that manifested themselves on the nitpicky snakes:
- array-set! could cause an overflow exception when reading
un-initialized garbage. ARRAY-ALLOCATE now initializes all array
components to 0.
- array-set! could cause an underflow exception when storing a valid
double too small for a float. It now silently stores 0.
There are other problems left (overflow when storing a large
number), etc, but...
Arthur Gleckler [Sun, 13 Oct 1991 01:50:08 +0000 (01:50 +0000)]
Make "WITH-" expressions do the right thing. This should cause on
problems with forms like WITHOUT-INTERRUPTS, since I've included a
hyphen after "with".
Chris Hanson [Fri, 11 Oct 1991 03:58:56 +0000 (03:58 +0000)]
Be more careful about order of events in M-x shell-command-on-region
when the prefix arg is given. Make sure that the output replaces the
input atomically.
Chris Hanson [Fri, 11 Oct 1991 03:32:51 +0000 (03:32 +0000)]
In M-x visit-tags-table, if the user types something that looks like a
directory, then treat it as a directory. Previously it only did this
if the file was actually a directory.
Chris Hanson [Fri, 11 Oct 1991 03:31:24 +0000 (03:31 +0000)]
Don't ignore pathname-version when generating buffer name. Ignoring
it is confusing on unix filenames. Perhaps this should be made
operating-system specific.
Arthur Gleckler [Thu, 10 Oct 1991 22:54:44 +0000 (22:54 +0000)]
Make RMAIL update mode line when SHOW-MESSAGE is called and there are
no messages. This makes the mode line correct when all the messages
are deleted and expunged. Previously, the mode line stayed as it was
when RMAIL last displayed a message (before it was deleted).
Mark Friedman [Tue, 8 Oct 1991 21:46:43 +0000 (21:46 +0000)]
Cached the current working directory to avoid needless calls to the
unix getcwd. It is put here, so that the call to get_wd() in options.c
will cause the cache to fill BEFORE the heap and constant spaces get
allocated. This way it is much more likely that the fork that getcwd
tries to do will be successful.
Mark Friedman [Tue, 8 Oct 1991 21:42:37 +0000 (21:42 +0000)]
Changed parse_path_string() to make sure that get_wd is called so that
the unix getcwd is called now, before it allocates heap space. This is
because getcwd forks off a new process and we want to do that before
the scheme process gets too big.