[kaffe] Details on backported stuff...
stack at cs.utah.edu
Sun Aug 31 15:25:02 PDT 2003
I've back ported some stuff from the JanosVM to do run time
access/link checking on the byte code, some verification related
stuff, and test cases for all of the above. Hopefully, it will work
fine, I've tested it with a fair amount of local stuff. However, you
might get an IllegalAccessError in weird places, if so, just send
email and I'll get to fixing it.
The run time checking stuff is used to keep people from accessing
private fields/methods/etc... Note that this is different from
verification since the classes aren't necessarily loaded and at that
time. These checks are done when a method actually does a
dereference. The test cases for this stuff is in FieldErrors.java and
MethodErrors.java, which use the classes in the compile_time and
run_time subdirectories of test/regression. These subdirectories
contain the same sets of classes with different implementations for
use at "compile time" and "run time". That way we can get past the
compiler checking for these problems and force the VM to do it.
The verification stuff is whatever tiny things missed in the current
verifier and a bunch of tests. The tests are mostly split between
some Jasmin (a Java assembler) files that create bad class files and
the BCEL based tests: BadClassFileCode.java and
BadClassFileConstants.java. The configure script will automatically
detect jasmin, but you need to specify a BCEL jar file with
--with-bcel. Note that the BCEL based tests don't work in the test
suite at the moment, the verifier chokes on them. However, you can
run them manually by putting bcel.jar in the boot class path.
More information about the kaffe