ack/util/int/ChangeLog
1989-11-22 13:38:37 +00:00

731 lines
30 KiB
Plaintext

22-Nov-89 Ceriel Jacobs (ceriel) at ceriel
Some more speed-up changes, resulting in another 5%.
13-Nov-89 Ceriel Jacobs (ceriel) at ceriel
Many changes for speed-up (resulting speed-up: 20-25%).
Also fixed serious problem in floating point handling: the existing
code assumed that the low order 4 bytes of a double could be used as
a float (4 bytes). This is NOT true for most floating point
implementations, notably IEEE ones.
3-Oct-88 Dick Grune (dick) at dick
Since the definitions of VERSION and MAGIC are now available from
standard include files, e.out.h can be simplified.
27-May-88 Dick Grune (dick) at dick
Testing with the UNIX system call tester by Leonie van der Voort
revealed a few errors: when length was negative in a call of read
or write, funny values were passed to Malloc; the size of the
elements in the mtime/atime array passed to a call of utime was
wsize rather than INT4SIZE, as it probably should have been.
25-May-88 Dick Grune (dick) at dick
It is just too much of a drag to be able to unstack even the last
RSB, the one that contains the initial setting of the machine.
newLB has to be patched, and now it seems that also newPC has to
make an exeception for this case. We now don't unstack the
original RSB.
19-May-88 Dick Grune (dick) at dick
We now also dump the Function Return Area, when giving a stack
dump.
17-May-88 Dick Grune (dick) at dick
Segment checking for pointers should also be done for subtraction,
and give a different warning.
16-May-88 Dick Grune (dick) at dick
The implementation of the MON call 'exec' was sloppy about the
buffers used: all strings were assumed to have a maximum length of
128, and the maximum number of args or environ entries was built
in. We now scan the whole works to determine the size.
16-May-88 Dick Grune (dick) at dick
A stack dump with given size would look funny if the size was large
than the original stack, or when the dump happened to start in the
middle of a RSB.
14-May-88 Dick Grune (dick) at dick
Rethinking the start-up procedure has resulted in the removal of the
flag LB_def and the RSB is now stacked and unstacked in one blow.
LB = ML + 1 is now a special case.
11-May-88 Dick Grune (dick) at dick
Code handling the Function Return Area was spread over a number of
files; since there was already an include file fra.h, I made a file
fra.c. Likewise for alloc.[ch]
10-May-88 Dick Grune (dick) at dick
The whole segment-checking stuff is now concentrated in segment.c
(and made correct!)
9-May-88 Dick Grune (dick) at dick
Things would be a lot simpler if LB and AB and SP could start from
ML+1, but they cannot because ML+1 gives overflow. So we now set ML
to the highest word boundary minus 1.
8-May-88 Dick Grune (dick) at dick
The whole business of deriving AB from LB every time you need it is
unnatural: it is a separate register in its own right and
recalculation is only possible since we happen to have a linear
stack implementation. -> a normal register in the EM machine, set
in newLB().
7-May-88 Dick Grune (dick) at dick
In the non-checking version it did not even check for bad proc
idfs, actions on double words with wsize == 4, etc., in text.h. It
now checks.
7-May-88 Dick Grune (dick) at dick
When a trap occurs it is often not at all clear why it happened;
e.g., the trap ESTACK may have several causes except stack
overflow: setting SP to an odd value, setting LB to a place where
there is no RSB, and so on. Now all such traps are preceded by a
warning; the combined action is written as wtrap(W..., E...)
with W... the warning number and E... the trap number.
6-May-88 Dick Grune (dick) at dick
The offsets in the RSB and its size were recalculated every time;
this was especially ridiculous in accessing a formal parameter
based on AB; they are now precalculated as soon as psize and wsize
are known.
6-May-88 Dick Grune (dick) at dick
The one-bit register HaltOnTrap is not powerful enough; it has to
have a special value during loading the EM file (for floating
overflow in calculations). We now have OnTrap with three values.
3-May-88 Dick Grune (dick) at dick
If we want to check that PC does not jump from procedure to
procedure, we have to know which procedure is running. Introduced
an EM register PI for Procedure Identifier. We also need the limits
for each procedure; for this purpose, the procedure descriptor
table is now preprocessed on start-up. New files: proctab.[ch].
3-May-88 Dick Grune (dick) at dick
There was still a considerable confusion between ignorable and
non-ignorable traps. All ignorable traps are now handled on the
spot and the procedure trap() is not called if the trap is ignored.
This means that arm_trap() has disappeared.
2-May-88 Dick Grune (dick) at dick
The GTO was done by a rude store in LB, SP and PC; now it properly
unwinds the stack.
25-Apr-88 Dick Grune (dick) at dick
With the advent of the Sun 4 RISC machine, the use of variable length
argument lists has become a liability. The answer is the include file
<varargs.h>. It appears that _doprnt() is sufficiently universal,
fortunately.
24-Apr-88 Dick Grune (dick) at dick
There are two levels to stack dumping, the RSB list and the whole
contents; we now control the first by d1 and the rest by d2.
24-Apr-88 Dick Grune (dick) at dick
Dumping the GDA and heap is under control of the GDA= and HEAP=
parameters rather than under d3 or d4. Changed their id-s to +1
and *1, so they can be set in the program but not from the
LOGMASK=.
24-Apr-88 Dick Grune (dick) at dick
Now that the Logging Machine has been baptized, time has come to
call the controlling define LOGGING again. Sorry for the confusion.
24-Apr-88 Dick Grune (dick) at dick
Trying to have the interpreter interpret itself has given rise to
many small improvements, and a considerable correction to npush() and
st_lds(). We are again trying.
15-Apr-88 Dick Grune (dick) at dick
The tallying does in no way belong to the logging machine, so I
removed the dependency on the flag CHECKING (see 15-Feb-88).
15-Apr-88 Dick Grune (dick) at dick
The instruction counter inr is properly speaking no part of the
EM machine, but belongs to the logging machine.
15-Apr-88 Dick Grune (dick) at dick
It is unnatural for the logging machine to derive the values of its
variables from shell variables. Shell variables are very global
and represent a setting in which the user wishes to work. The
values of the logging variables change from moment to moment. They
are now derived from make-like assignments in the command line.
14-Apr-88 Dick Grune (dick) at dick
To allow testing routines that handle heap and stack overflow, two
command line parameters have been added, -hN and -sN, that limit
the heap and stack size.
14-Apr-88 Dick Grune (dick) at dick
The EM Manual provides two traps for undefined integers and floats.
Since the interpreter does not have special values for undefined;
since it relies on the shadow bytes to give a warning; and in view
of the frequent occurrence of such undefined values, the
interpreter just gives a warning.
It would be nice if the interpreter could also, on request, exhibit
the formally correct behaviour of giving a trap. This is, however,
impossible, since such a trap would have to rely on the shadow bits
and the shadow bits are only present in the checking version.
The conclusion is that we do not give a trap on use of undefined,
ever.
2-Apr-88 Dick Grune (dick) at dick
The warnings about type T expected left one in the dark as to what
*was* there. Now it prints a continued warning telling about the
type found. To this end, warningcont() prints a chained warning.
1-Apr-88 Dick Grune (dick) at dick
When a pointer is needed and it turns out to be an integer, a test
is done to see if it happens to be zero, in which case all is well.
This was, however, a rather weird test; it is much simpler, when
storing a zero value, to switch on both the SH_INT bit and the
SH_DATAP bit.
31-Mar-88 Dick Grune (dick) at dick
The logging machine has now been separated from the EM machine as
much as is reasonably possible. Weak points are still forking and
the handling of the abbreviations AT= and L= .
29-Mar-88 Dick Grune (dick) at dick
On many systems it is inappropriate to grab file descriptors 19 and
18 for messages and logging. It now finds the highest ones (with a
limit of 99, for systems that have an unlimited supply of them).
29-Mar-88 Dick Grune (dick) at dick
There were some terminological inaccuracies about the difference
between a procedure identifier and a procedure descriptor.
29-Mar-88 Dick Grune (dick) at dick
Since the disassembler is in no way involved in the logging machine,
it seems inappropriate to use LOG(()) to produce the text. Just
using printf() is much cleaner.
28-Mar-88 Dick Grune (dick) at dick
Although trap handling had a file for itself, trap.c, warning
handling was still done inside io.c. Introduced a new file,
warn.c, to handle the warnings.
26-Mar-88 Dick Grune (dick) at dick
Providing a good dump of a 2/4 machine is not easy; it is not clear
where a pointer may be found. This was solved by just printing
words everywhere, which was unsatisfactory. Now pointers are
printed wherever the shadow bits indicate that there might be a
pointer there, i.e. when the address is a word multiple and the 4
bytes all have the pointer bit on. This is less unsatisfactory,
though not good.
23-Mar-88 Dick Grune (dick) at dick
Adapted to the new u flag in ip_spec.t; this cleared up the text
segment access in text.h.
21-Mar-88 Dick Grune (dick) at dick
Implemented the requirement that, when doing an RET or RTT, the stack
pointer must be back where it started. This required the proc.
idf to be recorded in the Return Status Block.
20-Mar-88 Dick Grune (dick) at dick
Likewise (see below) for the text of the trap messages.
20-Mar-88 Dick Grune (dick) at dick
Having the text, defines and numerical values in three different
files is kind of inconvenient. They are now centralized in
../doc/appA (Appendix A of the manual) where they appear with
explanations. The files warn_msg (with texts) and warn.h (with
defines) are generated from it through M.warn_msg and M.warn_h,
resp.
20-Mar-88 Dick Grune (dick) at dick
Introduced the use of $(EM)/h/em_abs.h to include the trap numbers
and the positions of LIN and FIL (although this seems a funny place
to find them).
20-Mar-88 Dick Grune (dick) at dick
Concentrated all e.out.h defines in e.out.h; this should probably
go into $(EM)/h one of these days.
20-Mar-88 Dick Grune (dick) at dick
The interpreter in the EM Manual does not use EBADLIN; we now decide
that it is raised if the line number is larger than that mentioned
in the EM header, part 2.
19-Mar-88 Dick Grune (dick) at dick
The EM Manual states that a number of overflow tests need not be done
if the FB_TEST bit in the second header word is not on.
Experimental implementation of this shows a speed-up of 16%, so it
is probably worth while.
18-Mar-88 Dick Grune (dick) at dick
Reading the opcode and the argument bytes from the text segment was
done by a procedure call, but the procedure call (newPC()) did not
test for running out of the text segment. Replaced by a macro + a
number of other similar speed-ups.
18-Mar-88 Dick Grune (dick) at dick
Reraising the signal is not really useful; it is more useful never
to catch a synchronous trap. UNIX then automatically does what it
has to do.
17-Mar-88 Dick Grune (dick) at dick
Redoing the trap mechanism lead to looking at the RTT vs RET
instruction; it is nice to know where a Return Status Block
originated: start-up, call, trap, non-restartable trap. We now
push this info as topmost item on the stack. Values etc. in rsb.h
15-Mar-88 Dick Grune (dick) at dick
I finally found out why the interpreter was spending 30% of
its time in the system: it did a setjmp for each and every EM
instruction, and IT does a call of signal(). Redoing this lead to
considerable hacking in the trap handling mechanism. See the
chapter in the documentation.
11-Mar-88 Dick Grune (dick) at dick
Not all C compilers provide floating point operations. Installed a
file nofloat.h with a flag NOFLOAT, which, if defined, suppresses
the use of fp operations. The resulting interpreter will load EM
files with floats in the GDA (but ignore them) but will give a
fatal error upon attempt to execute a fp instruction.
10-Mar-88 Dick Grune (dick) at dick
Added procedure identifier indications in the disassembly output,
which helps in reading it.
8-Mar-88 Dick Grune (dick) at dick
Implemented the other half of the type checking on ptr; this involved
a macro i2p() to convert from index to pointer.
6-Mar-88 Dick Grune (dick) at dick
Officially C does not have a type 'unsigned long', but the
interpreter uses it heavily. Now it would be nice if we could make
a version that does not use unsigned long. The main difficulty is
the file do_unsar.c for doing unsigned arithmetic; for the rest it
is possible and partway done. Most sizes are now of the type size.
4-Mar-88 Dick Grune (dick) at dick
The list of warnings was fixed and contiguous, which was a nuisance
when adding warnings. Now there is a mapping from warning numbers
to the corresponding strings through a routine which does the
lookup.
3-Mar-88 Dick Grune (dick) at dick
The whole address testing for system calls in MON was shaky; most
of them just produced traps. Corrected; they now return -1 and set
errno to 14 (EFAULT).
1-Mar-88 Dick Grune (dick) at dick
Some compilers use V7 ioctl request codes, some use the local
codes. To accommodate both, we have a compile-time flag, V7IOCTL,
which, if defined, causes the ioctl requests to be interpreted as
V7 requests (of the form 't'<<8 | x)
1-Mar-88 Dick Grune (dick) at dick
String arguments to system calls were, for the most part, just
picked up, without any serious testing. Corrected in moncalls.c;
violation results in errno == 14 (EFAULT) as it should.
29-Feb-88 Dick Grune (dick) at dick
Concentrates all exits in a function close_down() which does
calls to fclose() on the opened files, may reraise a caught signal
and exits with the given return code.
26-Feb-88 Dick Grune (dick) at dick
The type ptr was used very loosely; tightened up the code in many,
many places. Introduced a macro p2i(p) which converts a "pointer"
(EM address) to an index in the machine array. This modification
necessitated a great many small changes and allowed some
considerable simplifications.
22-Feb-88 Dick Grune (dick) at dick
The format of a procedure identifier was a pointer in places and a
long in others. It is now a psize unsigned integer.
16-Feb-88 Dick Grune (dick) at dick
The code for calculating the sizes of the environ strings and the
argument strings was unreadable. Rewritten in init.c.
15-Feb-88 Dick Grune (dick) at dick
The tallying is not likely to be used by a user of the non-logging
version, so it may as well be absent then, to save space. Made all
tallying dependent on CHECKING.
15-Feb-88 Dick Grune (dick) at dick
When allocating space for the stack and the global data area, the
shadow bytes were not set to SH_UNDEF. Since the undef-ing of the
shadow bytes occurs in several places, I introduced two routines,
st_clear_area() and dt_clear_area() for the purpose.
12-Feb-88 Dick Grune (dick) at dick
The dumping format of the text segment (just bytes in decimal) was
unsatisfactory. It turned out quite easy to use the mkswitch from
the switch directory to hack together a simple disassembler, which
produced readable EM instructions.
Moreover, text does not change while the program runs, so dumping
it at a given instruction is quite meaningless. We now dump it
right at the beginning, when the -T option is given.
4-Feb-88 Dick Grune (dick) at dick
The whole idea of a driver (int.c) is superfluous now. Moreover
there were naming problems all the time. Removed references to the
driver.
1-Feb-88 Dick Grune (dick) at dick
Measurements have shown that a checking but not logging interpreter
is only a few percents faster that one that does both, at the
expense of considerably lower functionality. So I merged logging and
checking in the file checking.h. Made testing for logging more
efficient by having a single variable logging which is set as
soon as must_log && inr >= log_start is true. This is faster
and much leaner code. Exit the function interesting().
1-Feb-88 Dick Grune (dick) at dick
Removed the warning about switched-off warnings and traps; they
were a nuisance.
29-Jan-88 Dick Grune (dick) at dick
The zero pointer arithmetic check was implemented incorrectly.
While correcting this, I cleaned up all the checking and warning
mechanisms, up to a point. There is much more one can do.
Unfortunately this involved renumbering the warnings, so we hack
the manual to match.
27-Jan-88 Dick Grune (dick) at dick
Line number and file name also in last line of stack dump, for
uniformity with RSB descriptions.
25-Jan-88 Dick Grune (dick) at dick
The default log mask is better at A-Z9d4twx9 than at A-Z9d1twx9.
23-Jan-88 Dick Grune (dick) at dick
Warnings are now tallied not only by warning number, but also by
file name and line number. Used simple linked lists in io.c.
23-Jan-88 Dick Grune (dick) at dick
Having an address space of 2**32 is absurd; it will have to be 2**31
to implement uninitialized pointers. Just to be able to give a
good example in "How To Use the Interpreter", I changed MAX_ADR4 to
I_MAXS4 (was I_MAXU4).
22-Jan-88 Dick Grune (dick) at dick
The grammar of a float in the manual, the grammar of an UnsignedReal
in the Pascal manual and the implementation in read.c were all
slightly different. I made a clear distinction between the Pascal
version (OK), the more loose implementation of "acceptable float"
(with warning) and just garbage (with fatal error). ".e3" is an
acceptable float.
21-Jan-88 Dick Grune (dick) at dick
The interpreter did not catch stores at location 0. Changed this
by making the LIN and FIL locations ROM. Introduced macros for
protecting the data space (analogous to protecting the RSB in the
stack). Moved all shadow byte handling to shadow.h. LIN, LNI and FIL
are implemented by first lifting the write ban by dt_unprot, writing
and then restoring it by dt_prot.
8-Jan-88 Dick Grune (dick) at dick
The AT shell variable stopped one instruction too late. Corrected
in main.c.
8-Dec-87 Dick Grune (dick) at dick
I was explained that there is a subtle difference between the trap
routine address being 0 and the default action upon trap. It says
in the beginning of chapter 9 (Traps and Interrupts) of IR-81:
Initially the pointer used is zero and all traps halt the program
with ... The meaning of the SIG instruction is stated as: Trap
errors to proc identifier on top of stack, -2 resets default. This
means, I am told, that SIG with -2 restores the "pointer used" to
zero and "directs all traps to halt the program ...", and that SIG
with 0 just registers proc 0 as the trap routine.
Although I think this raises more questions than it answers (how
can I see if the previous trap routine was 0 or default?) I
implemented it by adding an EM machine register HaltOnTrap, which
is set in the non-default case.
1-Dec-87 Dick Grune (dick) at dick
When debugging with the interpreter one often uses a call like
LOG=123455 STOP=123457 int .....
Added a shell variable AT which effects the above:
AT=123456 int ...
27-Nov-87 Dick Grune (dick) at dick
The shift distance in shifts and rotates must be in the range 0
to object size in bits - 1, as it says in IR-81. This introduced a
lot of inline code in DoSLI .. DoROR that should maybe go into
subroutines.
23-Nov-87 Dick Grune (dick) at dick
It turned out that LOG(("@S was a prefix both in do_store.c and in
do_sets.c. Changed to @Y in the latter.
23-Nov-87 Dick Grune (dick) at dick
SLI (shift left int) did an incorrect overflow test (failed on
negative shift argument).
22-Nov-87 Dick Grune (dick) at dick
Reformatted the output of the dump of the text and of the
procedure descriptors. The latter is now more or less
readable.
22-Nov-87 Dick Grune (dick) at dick
Took all the direct memory access actions together in memdirect.h.
This allows more readable code in dump.c and in a few other places.
10-Nov-87 Dick Grune (dick) at dick
The stack dump is too unstructured and does not give enough
information. Moreover, the position reporting in the various dump
lines is erratic. Changed the routine do_log() to have two
variants, one in which the format starts with @, which causes the
position to be reported, and one in which the format starts with a
blank, which is printed as is.
Added two routines st_raw() and st_rsb() to print the raw and
Return Status Block portions of the stack, resp., and displ_fil(),
to print the name of the file, if at all possible. The stack
parsing can be switched off with the -r option.
9-Nov-87 Dick Grune (dick) at dick
Redressed the treatment of the Return Status Block, to give a
better dump.
1-Nov-87 Dick Grune (dick) at dick
The present segment checking is not very informative and produces
complaints about intermediate results, which is annoying.
This is not easily corrected. For each pointer, one should keep
track where it originated, and when it is dereferenced a check
should be made to see if it is applied to the original segment.
This is kind of stiff to implement.
For the time being, I have made the whole segment checking subject
to a compile-time flag, SEGCHECK, to be kept in segcheck.h. The
flag will normally be off, which saves time, space and
inappropriate warnings.
28-Oct-87 Dick Grune (dick) at dick
Small changes:
- put Malloc etc in a header file: alloc.h
- removed dt_ldf() (unused)
- make static routines and data PRIVATE, to allow both
static and extern
25-Oct-87 Dick Grune (dick) at dick
arg_lae() should not check against HB but against max_addr, for
funny address calculations as performed by e.g. lex.
14-Oct-87 Dick Grune (dick) at dick
Exece in moncalls.c cannot succeed (if it succeeds, it's gone!)
Corresponding code removed and rest straightened out.
13-Oct-87 Dick Grune (dick) at dick
Brought the interpreter under RCS and CVS.
12-Oct-87 Dick Grune (dick) at dick
Added a -t option in main.c to switch the tallying on.
11-Oct-87 Dick Grune (dick) at dick
Added two routines, tally() and out_tally() for (you guessed it)
tallying. out_tally() produces a readable file with for each
source file the name followed by a number of lines, each
containing a line number, the number of times that line was
entered and the number of instructions executed on that line.
Somebody should write a program to merge this with the original
files.
3-Oct-87 Dick Grune (dick) at dick
Added routines for fabs(), pow() and floor() to avoid having to
invoke -lm.
2-Oct-87 Dick Grune (dick) at dick
Floating point constants that started with a . were read
incorrectly, as the mantissa was not initialized in that case.
25-Sep-87 Dick Grune (dick) at tjalk
All access to the LIN and FIL information has been brought
together in a header file linfil.h, which contains #defines for
putLIN(), getLIN(), putFIL() and getFIL().
20-Sep-87 Dick Grune (dick) at tjalk
Added a routine core_dump() which dumps core after a fatal error.
The core image consists of the values of the EM parameters and
registers, by name; ie.
wsize=4
psize=4
ML=4294967295
HB=816
etc., one to a line, followed by
fwrite(text, 1, DB, core_file);
fwrite(FRA, 1, FRALimit, core_file);
fwrite(data, 1, HL, core_file);
fwrite(stack, 1, ML+1-SL, core_file);
possibly followed by
fwrite(FRA_sh, 1, FRALimit, core_file);
fwrite(data_sh, 1, HL, core_file);
fwrite(stack_sh, 1, ML+1-SL, core_file);
so somebody could write a formatter for it.
18-Sep-87 Dick Grune (dick) at tjalk
The function return area was a fixed-size array. Now it is
allocated through Malloc(), like the other memory constituents of
the EM machine. This introduced the -R-option, to set the size of
the return area (default is 8).
13-Sep-87 Dick Grune (dick) at tjalk
Restructured global.h to better reflect what are EM registers and
what are implementation variables. This introduced read.h to
concentrate the EM header quantities.
10-Sep-87 Dick Grune (dick) at tjalk
Implemented a shell-variable STOP= more or less analogous to LOG=
such that a call of the interpreter
STOP=321456 int ...
will stop the interpreter after an instruction count of 321456, to
avoid run-away interpreters.
27-Aug-87 Dick Grune (dick) at tjalk
The idea has been raised to let int read the default values of
LOG, LOGMASK, etc., for a file in the working directory, e.g.
.em_intrc or so. I have not done so since only for the LOGMASK
a reasonable default can be given; the others are case-specific.
So I gave LOGMASK the default value "A-Z9d1twx9" instead.
25-Aug-87 Dick Grune (dick) at tjalk
Changed the name of the instruction counter from ino to inr, to
avoid confusion with "inode numbers".
20-Aug-87 Dick Grune (dick) at tjalk
The EM report specifies a list of UNIX Version 7 -like system
calls, not full access to the system calls on the underlying
machine. Therefore an attempt has been made to use or emulate
the Version 7 system calls on the various machines.
18-Aug-87 Dick Grune (dick) at tjalk
Introduced a file sysidf.h which holds the #define for the
present system: BSD4_1, BSD4_2 or SYS_V0. Based on these, it
defines generic #defines: BSD_X and SYS_V . Added various
#ifdefs for the various systems, guided by cc, acc and lint.
16-Aug-87 Dick Grune (dick) at tjalk
There were some portability problems with dup2 .
Since dup2 is not available on all UNIX systems, and since
it was a kludge in the first place, I implemented a routine
move_file_descriptor, again with slightly different semantics:
it closes the original file descriptor. (io.c)
13-Aug-87 Dick Grune (dick) at tjalk
Renamed set_log to set_lmask and set_log_file to set_lfile, all in
the name of System V compatibility. Perhaps we should rename
everything, to SetLogMask, SetLogFile, etc., Modula-2 style.
13-Aug-87 Dick Grune (dick) at tjalk
And changed names like do_LAEl4 to DoLAEl4, to get them through
the assembler in System V.
11-Aug-87 Dick Grune (dick) at tjalk
Changed names like do_LAEl4 to do_lae_l4, to keep within 8
characters.
10-Jul-87 Dick Grune (dick) at tjalk
Introduced monstruct.h and monstruct.c, to contain the code for
copying UNIX system call structures to and from EM MON call
structures.
9-Jul-87 Dick Grune (dick) at tjalk
Made -W option always available.
8-Jul-87 Dick Grune (dick) at tjalk
Why is the -W option available only when CHECKING is on? What am I
missing?
6-Jul-87 Dick Grune (dick) at tjalk
It turned out that emsig.h is included in m_sigtrp.c only and
contains only definitions of functions from same m_sigtrp.c.
Eliminated emsig.h.
Better identification of the position from where a message is
given, through the new routine position().
3-Jul-87 Dick Grune (dick) at tjalk
Did the rest of dump.c (and found an error in the administration
of the undefineds in hp_dump).
Changed LOG to LOGGING, and log(( to LOG((, just for
readability and uniformity.
2-Jul-87 Dick Grune (dick) at tjalk
Changed switch.c to be a normal file in this directory; it now
includes the cases in the switch from ../switch/cases , which
allows greater freedom in programming the rest of switch.c.
1-Jul-87 Dick Grune (dick) at tjalk
Read.c nested to excessive length. Isolated a function rd_descr()
which reads one descriptor.
There were many almost similar #defines for setting bits in
'trapped'. Concentrated them in arm_trap(ENUMBER).
30-Jun-87 Dick Grune (dick) at tjalk
Handling of failure of ftime (moncalls.c) was wrong. Corrected.
Corrected many lint gripes.
28-Jun-87 Dick Grune (dick) at tjalk
The routine st_dump in dump.c does nothing but testing whether
or not to log at level d1. Why not test so right at the
beginning? So I did: the same test now runs in 7 sec. See macro
interesting() in dump.c.
25-Jun-87 Dick Grune (dick) at tjalk
Restructured the file dump.c, because of excessive nesting depth.
The result, however, was an efficiency loss of 50 % (from 65 sec.
to 96 sec.!). The restructuring will have to be rethought!
24-Jun-87 Dick Grune (dick) at tjalk
The shadow-byte checking macro's are used only in data.c, dump.c
and stack.c. They are brought into a new header file, shadow.h,
which reduces the weight of mem.h.
22-Jun-87 Dick Grune (dick) at tjalk
Removed or changed macros that assign to their parameters; these
introduce a parameter mechanism that is alien to C and is misleading.
Made testing calls of malloc and realloc into functions Malloc and
Realloc in init.c.
21-Jun-87 Dick Grune (dick) at tjalk
Created global.c to contain the actual definitions from
global.h. The declarations stay behind in global.h , thus
avoiding multiple definitions.
Removed io.h altogether. All handling of the EM object file is
now concentrated in read.c (fopen was in io.c, fclose in init.c).
21-Jun-87 Dick Grune (dick) at tjalk
Renamed def.h global.h (in anticipation of global.c ).
Removed test if (warnmark) from init.c. Here warnmark is an
array, an error not caught by the VAX C compiler.
20-Jun-87 Dick Grune (dick) at tjalk
Removed initializations from .h files. This resulted in the
complete removal of trapmess.h and warnmess.h. Concentrated data
about the return area in return.h. Slimmed down io.h considerably.
19-Jun-87 Dick Grune (dick) at tjalk
Moved contents of ../include to here (src) since a separate
include directory is only meaningful if it is referenced in other
places as well. Updated Makefile and all #include's.
Replaced SECUNDAIR by SECONDARY and TERTIAIR by TERTIARY.
All files included log.h and nocheck.h , which contain compile
time flags. This is not logical; only the files that use LOG and
NOCHECK should have any business of knowing about them.
Reorganized the files in this sense. Dependencies recalculated by
$(EM)/bin/mkdep.
18-Jun-87 Dick Grune (dick) at tjalk
More reformatting, especially the complicated #define's.
Established a small test environment.
17-Jun-87 Dick Grune (dick) at tjalk
Made all indentation conform to tabulation scheme.
Replaced register by register int where appropriate.
16-Jun-87 Dick Grune (dick) at tjalk
Received the directory from Eddo de Groot and Leo van den Berge.
$Header$