This document tries to catch both requirements and specification together.
Since there is only me at the time, there isn't much difference between the
two, except for specifications may contain some technical information that
requirements would never be controlling.
This document may not be complete. Ideally, when a need to understand,
why the code does something, or whether should it do something or not,
this document is consulted. If it doesn't provide an answer, a decision
should be made, and entered into this document for future reference.
- Verificaion is based on the latest Java ™ Virtual Machine specificaion
document (currently 2nd edition). It virtually should verify every condition
required by the JVM spec.
- Exceptions from first requirement can be derived from observing existing
implementations of compliant Java ™ Virtual Machines. If there exists
a JVM, widely enough used, which contradicts a statement in JVM spec,
such condition should not then mark a class being verified as incorrect,
but instead be reported as a warning.
- When BCV encouters references to other class files, it should verify
the the references actually correspond to the information that referenced
classes themselves report. (for example, a referenced field or method does
not exist).
- Given (3), it should be possible that verification is done without
checking outiside class files. The difference in behaviour (3) and (4)
should be configurable by a runtime flag.