Main Page | Namespace List | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

Todo List

page Main Page
An enhanced startup narrative on the main page might be useful.

page Main Page
Section 2.6.6, value set conversions of floating point numbers are not implemented. See note in table in this section. Likewise for section 2.18, FP-strict expressions, and section 3.8, floating point arithmetic.

page Main Page
The virtual execution engine is still under development as this initial contribution is being made. While the project team is working on learning what is inside the code, this final module will be completed. The relevant code is found in opcode_run in source file opcode.c

Class jvm_pc
Does an arraydims item need to be added for processing of array classes, or is the scalar concept sufficient in code?

Global rjvm::timeslice_expired
Verify this is okay.

Global rthread::name
not impl.

Global rthread::locktarget
This implementation can only handle ONE SINGLE monitor lock.

File commondox.sh
A Windows .BAT version of this script needs to be written

File config.sh
Support the following input parameter format:

File config.sh
A Windows .BAT version of this script needs to be written

Global CONFIG_HACKED_RTJARFILE
Put fuller definition for this symbol and its usage into the code in classpath.c .

Global CONFIG_HACKED_RTJARFILE
Need to find some other way to locate the class library archive in the JDK so that any JDK may be considered (initially). Need to ultimately change out the logic that uses it over time to begin looking for natively constructed class library archive instead of leaning on outside work.

Global CONFIG_HACKED_BOOTCLASSPATH
Put fuller definition for this symbol and its usage into the code in classpath.c and argv.c .

Global CONFIG_HACKED_BOOTCLASSPATH
Remove compiled absolute path name in favor or either a relative path name or removal of this symbol from the logic entirely.

File dist-bin.sh
This script should probably support each and every CPU platform that implements this code instad of having just a single output location for each file. However, that also involves changes to build.sh and clean.sh and common.sh, as well as config.sh. This is left as an exercise for the project team. For an example of such a multi-host script, consider that the original development was done on a Solaris platform. Such distribution should be built using ./clean.sh all followed by ./build.sh all and should contain all formats of documentation. If no CPU-specific directory level were implemented, result should look like the current distribution:

File dist-bin.sh
A Windows .BAT version of this script needs to be written

File dist-doc.sh
A Windows .BAT version of this script needs to be written

File dist-src.sh
A Windows .BAT version of this script needs to be written

File dox.sh
Identify reason for spurious message on RTF output as described above.

File dox.sh
A proper solution to old NetScape 4.7X processing the HTML tag <pre class="fragment"> syntax needs to be found and implemented so that <code> and @verbatim fragments, etc., may be displayed with proper framing and with proper newlines and white space. For the interim solution, see the end of this script. The problem will probably be solved by adjusting the doxygen.css (the default .css file) or supplying one that is customized for the project or perhaps just for old NetScape browsers. The scripts doxpatch.sh and doxunpatch.sh that support the interim solution might also be used in support of the proper solution if an "original" and a "patched" version of the style sheet exists in the HTML output directory. The alternative is to have an original and patched version of the HTML pages, which might be preferable, depending on the actual visual artifacts. In this case, a patch/unpatch script might either not be such a good idea or would be a bit more complex to implement. In any event, the correct approach is to find the HTML problem and fix it, probably in the style sheet.

File dox.sh
Perhaps the above to-do item should be generalized for the old NetScape 4.7X browser since is seems to have some overall problems with fonts in the default 'doxygen.css' style sheet. Perhaps someone with CSS experience could contribute one or more style sheets for use with different types of browsers so the HTML documents look the same on all of them.

File dox.sh
Consider the creation of a .css file that is customized especially for this project.

File dox.sh
A Windows .BAT version of this script needs to be written

File dox_filter.sh
A Windows .BAT version of this script needs to be written

File doxpatch.sh
A Windows .BAT version of this script needs to be written

File doxunpatch.sh
A Windows .BAT version of this script needs to be written

File getsvndata.sh
A Windows .BAT version of this script needs to be written

File getsvndups.sh
A Windows .BAT version of this script needs to be written

File build.sh
A Windows .BAT version of this script needs to be written

File build.sh
A Windows .BAT version of this script needs to be written

File build.sh
A Windows .BAT version of this script needs to be written

File build.sh
A Windows .BAT version of this script needs to be written

File build.sh
A Windows .BAT version of this script needs to be written

File build.sh
The linked binary should be converted to a shared object .so/.dll file instead.

File build.sh
A Windows .BAT version of this script needs to be written

File build.sh
The entire project should also have 'gmake' support. It would be a simple thing to add/change the 'config/*' roster files with config.sh to support this.

File build.sh
A Windows .BAT version of this script needs to be written

File clean.sh
A Windows .BAT version of this script needs to be written

File clean.sh
A Windows .BAT version of this script needs to be written

File clean.sh
A Windows .BAT version of this script needs to be written

File clean.sh
A Windows .BAT version of this script needs to be written

File clean.sh
A Windows .BAT version of this script needs to be written

File clean.sh
A Windows .BAT version of this script needs to be written

File common.sh
A Windows .BAT version of this script needs to be written

File common.sh
A Windows .BAT version of this script needs to be written

File common.sh
A Windows .BAT version of this script needs to be written

File common.sh
A Windows .BAT version of this script needs to be written

File common.sh
A Windows .BAT version of this script needs to be written

File common.sh
A Windows .BAT version of this script needs to be written

Global jvm_object_hash
In the JVM spec, an object reference seems to look like an arbitrary integer token. However, looking at the JNI header file for the Solaris JDK 1.4.2_06 implementation, it appears to be a pointer to an empty structure. The apparent purpose of this definition is to have a completely generic definition of use by any implementation. HOWEVER, there is a problem with this: What happens when the implementation is ported to a 64-bit hardware runtime environment? All pointers change from 32 bits (namely, from sizeof(jint)) to 64 bits (namely, sizeof(jlong)), taking a second 32-bit word. This can have significant implications for code, and not only for the JNI interface. This needs some detailed scrutiny so that the JNI interface and the implementation as a whole properly compensates for this situtation or declares it a non-issue.

Global jvm_object_hash
item, the consider that many GC implementations use a variation of "copying garbage collection" (sometimes with adjectives in front, such as "generational copying garbage collection," etc.). These tend to be more efficient than the old mark-and-sweep, even though they usually add an extra layer of indirection. For example, every pointer might actually be an index into a table of pointers or perhaps a pointer to a pointer. The idea is that the GC algorithm can relocate/copy the object, knowing it needs to update only one pointer and all current accesses to the object at its old location will now be able to access it at its new location without missing a beat. In this case, the 32-bit unsigned int might be an index into a table of pointers and the pointers might be 64-bits or 32-bits or anything else.

Global jlString_intern
Is this correct?

Global jlThread_checkAccess
A smart java.lang.SecurityManager will take care of this matter.

Global jlThread_destroy
Should this be implemented? Some JDK's probably don't implement it any more.

Global jlThread_isAlive
CAVEAT: Should this thread eventually get reallocated as pjvm->thread_new_last wraps around after JVMCFG_MAX_THREADS more new threads, this function will return a stale result at the real machine level. This is unlikely, however, because the allocation of java.lang.Thread objects will likely cover this concern at a higher level in the design.

Global jlThread_isDaemon
See notes elsewhere about implementation of the ISDAEMON bit.

Global jlThread_resume
Add logic to detect SecurityException beyond passing in an invalid objhashthis.

Global jlThread_setDaemon
See notes elsewhere about implementation of the ISDAEMON bit. This concept must be implemented in the JVM structures so as to know when to quit (no non-daemon threads running, that is, no user threads running). Currently, it is a status bit in the rthread.status structure named THREAD_STATUS_ISDAEMON but is typically also found as a private class member of java.lang.Thread . If this were always true, then the former could be eliminated. Since this code actually implements this class' native methods, either one could be eliminated if none of the other (non-native) class methods referenced the private variable without going through jlThread_isDaemon. However, this question is why this action item is present.

Global jlThread_setPriority
Add logic to detect SecurityException.

Global jlThread_stop
Add logic to detect SecurityException beyond passing in an invalid objhashthis.

Global jlThread_suspend
Add logic to detect SecurityException beyond passing in an invalid objhashthis.

File arch.h
There needs to be a Java equivalent written for the macros ARCH_COPYRIGHT_TEXT_APACHE, ARCH_LICENSE_TEXT_APACHE, and ARCH_COPYRIGHT_APACHE()

Global cfattrib_loadattribute
Delete this when TODO: items below satisfied

Global cfattrib_loadattribute
Verify "ConstantValue" attribute contents

Global cfattrib_loadattribute
Verify "Code" attribute contents

Global cfattrib_loadattribute
Verify "Exceptions" attribute contents

Global cfattrib_loadattribute
Verify "InnerClasses" attribute contents

Global cfattrib_loadattribute
"EnclosingMethod" attribute has nothing to verify

Global cfattrib_loadattribute
"Signature" attribute has nothing to verify

Global cfattrib_loadattribute
"Synthetic" attribute has nothing to verify

Global cfattrib_loadattribute
Verify "SourceFile" attribute contents

Global cfattrib_loadattribute
Verify "LineNumberTable" attribute contents

Global cfattrib_loadattribute
Verify "LocalVariableTable" attribute contents

Global cfattrib_loadattribute
Verify "LocalVariableTypeTable" attribute contents

Global cfattrib_loadattribute
"Deprecated" attribute has nothing to verify

Global cfattrib_loadattribute
Verify "RuntimeVisibleAnnotations" attribute contents

Global cfattrib_loadattribute
Verify "RuntimeInvisibleAnnotations" attribute contents

Global cfattrib_loadattribute
Verify "RuntimeVisibleParameterAnnotations" contents

Global cfattrib_loadattribute
Verify "RuntimeInvisibleParameterAnnotations" contents

Global cfattrib_loadattribute
"AnnotationDefault" attribute has nothing to verify

Global cfattrib_loadattribute
Ignore unrecognized attribute. There really should not be anything to do here since the return value already points to the next attribute.

Global cfmsgs_typemsg
Widen pointer format logic for 64-bit pointers

Global cfmsgs_typemsg
Above logic works, 64-bitlogic below needs testing:

Global cfmsgs_typemsg
Make format string properly reflect 64-bit int

Global cfmsgs_typemsg
Above logic works, 64-bit logic below needs testing:

Global cfmsgs_atrmsg
Verify (jlong) retrieval of bytes for both -m32 and -m64 compilations.

Global cfmsgs_atrmsg
Above logic works, logic below needs testing:

Global cfmsgs_atrmsg
Make format string properly reflect 64-bit (rlong)/(jlong)

Global cfmsgs_atrmsg
Verify (jfloat) retrieval of bytes for both -m32 and -m64 compilations.

Global cfmsgs_atrmsg
Verify (jdouble) retrieval of bytes for both -m32 and -m64 compilations.

Global cfmsgs_atrmsg
Above logic works, 64-bit logic below needs testing:

Global cfmsgs_atrmsg
Make format string properly reflect 64-bit (double)/(jdouble)

Global cfmsgs_atrmsg
Verify (jint) retrieval of bytes for both -m32 and -m64 compilations.

Global class_load_from_cp_entry_utf
Throw UnsupportedClassVersionError

Global class_load_from_cp_entry_utf
(The <clinit> procedure is run when the JVM virtual machine execution engine moves a new class from the START state into the RUNNABLE state.)

Global class_load_from_cp_entry_utf
Make sure that this superclass and all of its superclasses are not only loaded, but also linked and have <clinit> run also.

Global class_static_new
Where is this mkref's GC_CLASS_RMREF() ???

Global class_reload
This function needs more testing. Also, is it really needed in the implementation?

Global class_static_delete
Make sure all objects of this class type have been destroyed before destroying this class itself!

Global class_static_delete
This function may be used to declutter the class table when a class has not been used for some period of time (including any static methods and fields, watch out for static final constants), so as to free up its slot for other purposes.

Global class_static_delete
Determine what to do, if anything, when rfalse is returned from linkage_unresolve_class(). Is the class slot unusable? Should class_static_delete() proceed?

Global class_static_delete
Is there anything equivalent to calling java.lang.Object.finalize() for an object that must be invoked before unloading a class?

Global class_load_resolve_clinit
Any JAR file passed in here that has a [ in its first one or more characters may be interpreted as an array class. I have not tested this, and it is an oddball, but somebody needs to make sure that either, (a) such a name is never passed in, which is preferred due to standard industry file naming practices, and/or (b) that no array processing happens in the lower levels.

Global class_load_resolve_clinit
Currently, return valid class index even if no <clinit> was available. Is this correct? Or should it throw a VerifyError since a method was declared, yet had no code area? Take the easy way out for now, evaluate and maybe fix later.

Global class_get_constant_field_attribute
Need to recognize signatures

Global class_get_constant_field_attribute
Above logic works, 64-bit logic below needs testing:

Global class_get_constant_field_attribute
Above logic works, 64-bit logic below needs testing:

Global class_get_constant_field_attribute
Load up this string into a java.lang.String using the source from

File classfile.c
Per spec section 5.4.1, need to verify the contents of the file read in before initializing the class, else throw VerifyError.

File classfile.c
Need to verify which web document for the Java 5 class file definition is either "official", actually correct, or is the de facto standard.

Global classfile_readjarfile
Need a version of this that works on MS Windows

Global classfile_readjarfile
Check `pwd` overflow and rnull returned

Global classfile_allocate_primative
Need to take a hard look at the requirements for java.lang.Class and see if this is sufficient or even accurately implemented.

Global classfile_allocate_primative
Needs more thought

Global classfile_allocate_primative
Is this assumption valid/meaningful?

Global classfile_loadclassdata
Need a much better way to free partially built class structure when an error occurs. The current scheme is only piecemeal and will leave orphaned memory blocks lying around when something is freed that has the pointer to it, case in point, the constant_pool[] table when freeing the main ClassFile structure block on error. The partial solutions of adding heap pointer parameters to LOAD_SYSCALL_FAILURE() and GENERIC_FAILURExxx() macros is not useful here since so many allocations are done in this function.

Global classfile_loadclassdata
Throw UnsupportedClassVersionError for bad versions

Global classfile_loadclassdata
Need better and more complete heap free here

Global classfile_loadclassdata
Need to free constant_pool[0..n] also if failure

Global classfile_loadclassdata
HEAP_FREE_METHOD(pcfs->constan_pool[0..n]);

Global classfile_loadclassdata
Throw VerifyError for classes w/ questionable contents

File classfile.h
Need to verify which web document for the Java 5 class file definition is either "official", actually correct, or is the de facto standard.

Global classpath_get_from_prchar
VM Spec section 5.3.1: Throw 'NoClassDeffoundError' if no match.

Global classpath_list
Add proper searching for rt.jar file and Xbootclasspath . For the moment, they are defined in config.h as the CONFIG_HACKED_RTJARFILE and CONFIG_HACKED_BOOTCLASSPATH pre-processor symbols and are commented in jvmcfg.h after this fashion.

Global gc_run_stub
Write the object GC algorithm

File jlObject.c
Perform intelligent check on input parameter objhash range for all functions.

File jlObject.c
In real life, the objhashthis values and clsidxthis values will be valid or these functions could not be invoked since these data types are mandatory for referencing them. This probably means that the parameter valididty checking could probably be relaxed.

File jlString.c
Perform intelligent check on input parameter objhash range for all functions.

File jlThread.c
Perform intelligent check on input parameter objhash range for all functions.

File jlThread.c
In real life, the objhashthis values and clsidxthis values will be valid or these functions could not be invoked since these data types are mandatory for referencing them. This probably means that the parameter valididty checking could probably be relaxed.

File jvm.c
Need to verify which web document for the Java 5 class file definition is either "official", actually correct, or is the de facto standard.

Global jvm_init
Create a java.lang.String as java.lang.String(byte[], int, int) where the call is made, as it were, to java.lang.String.<init>(pjvm->argv[i], 0, strlen(pjvm->argv[i]));

Global jvm_init
POP_FRAME() and do new PUSH_FRAME() with startup class PC (Do new Thread() and hack the PC with startup class main() entry.)

File jvm.h
Need to verify which web document for the Java 5 class file definition is either "official", actually correct, or is the de facto standard.

File jvmcfg.h
Add proper searching for 'rt.jar' file and '-bootclasspath'. For the moment, they are defined in config.h as the CONFIG_HACKED_RTJARFILE and CONFIG_HACKED_BOOTCLASSPATH pre-processor symbols and are implemented in classpath.c in this way.

File jvmcfg.h
Need to evaluate if and when and how to phase out use of the configuration variables CONFIG_HACKED_RTJARFILE and CONFIG_HACKED_BOOTCLASSPATH

Global JVMCFG_TIMESLICE_PERIOD_ENABLE
Make sure to enable the time slicer for normal JVM operation. It may be handy to disable it for debugging, but no threading will occur in the JVM outer loop until it is enabled!

Global DEREFERENCE_PC_GENERIC_ATTRIBUTE
Watch out for when codeatridx is a BAD index, namely jvm_attribute_index_bad

Global jvmutil_print_stack_common
Get line numbers

Global jvmutil_print_stack_common
Show details of stack frame

Global jvmutil_print_stack_common
Show local variables in stack frame

Global linkage_resolve_class
What needs to happen when base type is BASETYPE_ARRAY or BASETYPE_ERROR or BASETYPE_VOID?

Global linkage_resolve_class
Should this instance permit use of find_registerNatives since interaces are not a part of the JVM startup, just a few foundational classes? Should it just be rfalse instead?

Global manifest_get_main
Although such a continuation is supported by the JAR file, this implementation does not support it (yet). With this restriction, the if only one single space separates the name of the attribute and the class name, then since a line may be up to 72 characters long (that is JVMCFG_JARFILE_MANIFEST_LINE_MAX characters), then the class name may be 61 characters long.

Global method_return_type
Should this throw a VerifyError instead? Is it better to let caller do this?

Global POP_JDOUBLE
Perform value set conversion here for native methods and elsewhere for virtual methods.

Global POP_JFLOAT
Perform value set conversion here for native methods and elsewhere for virtual methods.

Global native_run_method
Invoke the full JNI interface for this method at this place. Additional parameters will be needed.

Global native_run_method
Which is the better error, VerifyError or NoSuchMethodError ?

Global object_instance_new
case needs testing: 0 == arraylength[0]

Global object_instance_delete
Is the java.lang.Object.finalize() method (or its subclass) invoked by the actual Java code when an object reference is removed? Is this a GC function? Where should this method be called when tearing down this object?

Global objectutil_synchronize
Make sure IllegalMonitorStateException logic covers all possibilities or needs to be removed.

Global objectutil_unsynchronize
Make sure thread interruption logic below here is working.

File opcode.c
The code fragment macros used by the opcode switch in opcode_run() need to have the local variables documented as to which as required upon macro startup and which are set for use at macro completion.

Global FORCE_JINT
A careful review of this macro across different compilers is very much in order.

Global FORCE_JFLOAT
A careful review of this macro across different compilers is very much in order.

Global PUTDATA
The various type casting games of integer/sub-integer and integer/float/double and integer/objhash need to be carefully scrutinized for correctness at run time.

Global PUTDATA
Is BASTYPE_CHAR_ARRAY a legal case for PUTSTATIC and PUTFIELD ?

Global GETDATA
The various type casting games of integer/sub-integer and integer/float/double and integer/objhash need to be carefully scrutinized for correctness at run time.

Global GETDATA
Is BASTYPE_CHAR_ARRAY a legal case for GETSTATIC and GETFIELD ?

Global opcode_end_thread_test
Should FP condition be fp_end_program <= THREAD().fp instead of < condition?

Global opcode_load_run_throwable
Make this load and run the error class <clinit> and default <init> method instead of/in addition to fprintf(). Other exit_throw_exception() handlers will have invoked this method, so it must be rearmed again at this point, lest an error that invokes it causes an infinite loop.

Global opcode_run
See if there is a better time-slicing algorithm that is just as easy to use and keeps good real clock time.

Global opcode_run
: having run_init_ (parm 7) for invocations of opject_instance_new() to be rfalse the right thing to do for array initialization, namely opcodes NEWARRAY and ANEWARRAY ? Initializing an array is really not a constructor type of operation, but the individual components (elements) of the array probably would be, and with default parameters.

Global opcode_run
What needs to go here?

Global opcode_run
What needs to go here?

Global opcode_run
What needs to go here?

Global opcode_run
Get ThreadGroup logic working that figures out which java.lang.ThreadGroup this thread is a part of and invoke java.lang.ThreadGroup.uncaughtException() for that specific object instead of this general method. Probably the class library will gripe about not knowing which object to associate with the method call since java.lang.ThreadGroup.uncaughtException() is not a static method.

Global opcode_run
What needs to go here, if anything?

Global opcode_run
Test this opcode

Global opcode_run
Test this opcode

Global opcode_run
Test this opcode

Global opcode_run
Test this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Is this test needed here, or only in xRETURN ?

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Implement test for same number of locks/unlocks per JVM spec section 8.13.

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Make sure that all of "class, array, or interface type" is supported by this test:

Global opcode_run
: Is 'rfalse' correct?

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Test this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Write this opcode

Global opcode_run
Should this if() statement be inside of the block requesting COMPLETE state? Should a simple return(rtrue) be there? Should this if() statement be expanded to consider other conditions? Etc. Just needs review for other possibilities.

Global thread_new_common
Need to also implement java.lang.ThreadGroup as a preparatory step to instantiating java.lang.Thread

Global thread_new_common
Any time the isdaemon field is modified, MAKE SURE that the value in the java.lang.Thread instance variable is set to the same value. This should never be an issue except when instantiating a new java.lang.Thread object since the API docs say that it can only be set once.

Global thread_init
What should the priority be on these threads?

Global thread_die
Could leave stack in place for post-mortem if it is assumed that there would be a reasonable amount of contents still valid in memory.

Global threadutil_update_blockingevents
Interruptible from class java.nio.channels.InterruptibleChannel

File threadutil.c
Timers for Thread.sleep() and Thread.wait() and Object.wait() that use millisecond timers are supported. The variation that supports higher resolution of milliseconds and nanoseconds are not supported, but the millisecond version is used instead.

Global timeslice_shutdown
Is this necessary at JVM shutdown time?

Global GETRS2
Make sure GETRI4() works with -m64 compilations (64-bit ptrs)

Global GETRS2
Make sure GETRL8() works with -m64 compilations (64-bit ptrs)

File README
Need to verify which web document for the Java 5 class file definition is either "official", actually correct, or is the de facto standard.

File svnstat.sh
The sed(1) command as documented is not valid. See also the @bug entry for this script.

File undox.sh
A Windows .BAT version of this script needs to be written


Generated on Fri Sep 30 19:01:22 2005 by  doxygen 1.4.4