[set 51 0].#
.# This is the list of things we were going to do,
.# but Ed Hunt left, so there isn't any one to do it.
.#
.MH "Future Enhancements"
.in +4
.ti -4
[num +51].[bl 2]The compiler will be able to generate calls to "shortcall"
(JSXB) procedures.  It may also be possible to write "shortcall"
procedures in C, probably in an implementation-dependent way.

.ti -4
[num +51].[bl 2]The compiler will be able to generate code to profile the number
of times procedures are called and the number of times statements
are executed.

.ti -4
[num +51].[bl 2]The structure member name handling will be revised to allow
duplicated member names between structures, as is done by the
Berkeley and System III compilers.  (The compiler currently
handles structure members as is described in K&R.)  The old scheme
will probably be left in as an option.

.ti -4
[num +51].[bl 2]We are going to try to add an option to the compiler to use 32-bit
integers by default.  The problem with this is not the compiler,
it's the library:  it expects 16-bit integers.  If you take a
VAX/Unix program and toss it on the Primes, even if you could
make the compiler generate 32-bit arithmetic for ints, you
would have to change most of the library calls.  What we will
probably have to do is implement a separate version of the
C library to handle 32-bit integer programs.

.ti -4
[num +51].[bl 2]Since the restriction of matching formal and actual parameter
declarations seems to upset some of our customers, we are going
to implement a compiler option that causes all parameters to
be passed by value-copy (rather than just non-pointer parameters).
This will not solve all the problems, since the copying will be
done by the called routine and not the calling routine.
(Please note that in general, mismatched formal/actual parameter
lists are NOT portable unless you use "varargs.h".)
.in -4
.MH "Bug Reports"
If the compiler does not behave to your expectations, we definitely
want to hear about it.  Our first priority is to make sure that the
compiler and run time system behave as closely as possible to that
described in K&R.  After that, we want to make the compiler as
reasonable and compatible as possible with other C implementations.
.pp
If you find a problem with the compiler, it is best if you can
isolate the problem in a few-line program.  If you can send us
small misbehaving program, we can usually isolate the problem
in just a few minutes.  (Of course, repairing it may take
longer!)  If it is a crucial problem for you, we may be able
to send you the necessary patches within a week or two.
.pp
If you send us a 3,000 line program with only the note
"we can't make this program work on Primes, but it works
on Unix," please be prepared to wait a very long time for
a response.  Since you know your programs the best, you are
much better at tracking down the problem that we are.  We
will be glad to help as much as possible, but because our
manpower is very limited, we cannot afford to spend weeks
tracking down a single problem.
.MH "Test Programs"
We intend to keep a rather large library of programs with which
to do regression testing on the compiler.  We plan to
incorporate all "problem" program segments that come with
bug reports.  If you also have obscure program segments that
currently work--and you wish to make sure that they will continue
to work--please send them to us (on 1600bpi magnetic tape, if
possible) along with small test data files.  In this way, we can
ensure that bug fixes do not break correctly working features.
This will become especially important if there is turnover on
the compiler support team.
