TODO list for JMP


-- STANDING ITEMS ---

* Comment the code!

* fix all speling errors :-)

* Update and improve the user manual.

* Make it as stable as possible.
  - Seems to be quite stable now, may crash on dump_data sometimes,
    but I hope that this bug is fixed now (from jmp/0.34).


--- NEEDED FOR AN 1.0 RELEASE ---

* Show method callers (which methods called <myMethod>)
  - A first draft of this is available. Needs more work 

* Show method callees (which methods were called from <myMethod>). 
  - A first draft of this is available. Needs more work.

* Fix the UTF8 encoding for the char[] in the inspect instance 
  tree. 


--- PROBABLY POST 1.0 ----

* Automate build for unix and windows.
  unix should be handled correctly by autoconf/automake/libtool,
  windows version should be possible to compile under cygwin. 
  - Linux and solaris seems to work fine.
  - Help needed for windows.
  - Windows .dll quite easily build now.

* Implement filters for every table. It should be possible to say "I
  only want to see methods from class <MyClass>", "I only want to see
  methods from package <mypackage>" and "I only want to see objects of
  types in <mypackage>".
  - This is mostly done.
  - Add a regexp or multiple filters... 

* Graphs for object (count, size), for methods (calls, time) etc.
  - Initial heap graph done.

* Make ui-update timer configurable. 
  - Freeze and unfreeze exists.

* Figure out how heap/object dump work and use it to show objects
  internal state.
  - Heap dump parsing works, currently it only builds upward links
    since that is what is needed for memory leak detection.  
  - Down links are now available on request for objects and some natives.

* Add an option heapdumponly that does not listen to any event but issues 
  heap dumps at request and builds the object list then. This should
  mean that jmp could be run without _any_ slowdown to the jvm (except upon
  request). 

* Build a java interface to control jmp from java classes.
  - First draft implemented.

* Implement custom table/tree models for the ui, the standard way with
  sorting and inserting/update is a lot slower than it has to be.

* Owner information stores jobjectID which means that GC invalidate last 
  heap dump. Change to store obj* and cls* instead => information can be kept
  over GC.