I apologize it has taken me
so long to generate this javadoc. I have been working on this in every
spare moment for the past several weeks.
I just don't have enough spare moments...
Here are some clarifications
and explanations:
1. I used the Beta JDK
1.5
compiler to compile all of this code and to produce the javadoc. I do not yet have any tools to validate
consistency of the meta-data annotations.
The intent is that a safety-critical Java byte-code verifier would
provide this consistency checking.
2. There are a few bugs in
the JDK 1.5 javadoc. In particular:
a) Annotations associated with
parameters are not being displayed, and
b) Annotations associated with
constructors are not being displayed.
For both of these, I went
back and inserted redundant comments into the corresponding javadoc
commentary. Another shortcoming of
the 1.5 beta software is that mif-doclet has not yet been released.
3. I have not yet had time
to scrutinize this source with a fine tooth comb.
There are likely to be
errors and/or inconsistencies.
Please let me know if you turn anything up. More detail is needed in many
descriptions, especially those of the java.lang package. In case it is not perfectly clear,
my
proposal is that the API described in the attached zip file represent the
entire safety-critical Java platform.
Any library not described here is not "generally" available to
safety-critical developers.
Individual vendors are
free
to supplement the platform with additional libraries if they choose to do so,
but those additional libraries should be clearly distinguished from the
"standard platform".
4. A careful reader of
the
draft spec raised the following question: In each of the following code
fragments, what method(s) does the InvocationMode apply to
assert
StaticLimit.InvocationMode(MyMode);
x =3D y ? foo() : bar() + zot();
assert
StaticLimit.InvocationMode(YourMode);
x =3D foo(bar(), zot());
This needs to be
clarified. I'm inclined to say that
the effects of each InvocationMode assertion endure until a subsequent
contradictory InvocationMode assertion.
We can discuss when we next meet.
5. The same careful reader
says: "It bothers me that some of the StaticLimit assertions apply to
the
next statement (e.g. InvocationMode) while others apply to the previous
statment (e.g. ArrayLength).
This
seems like an easy source of programmer errors." We should discuss this as well. There is "good rationale" for
the way things are currently specified, but maybe I have to do a better job
of
explaining it.
----
Kelvin Nilsen, Ph.D.
Chief Technology Officer
Aonix North America
877 S. Alvernon Way, Ste. 100
Tucson, AZ
85711
520-323-9011, ext. 118 (direct),
520-991-6727 (cell), 520-323-9014 (fax)