=============================================================================
Valgrind Roadmap
=============================================================================

This file serves as a rough roadmap for Valgrind development.  It shows a
minimal set of features we hope to implement for each version.  It's in
reverse chronological order.

-----------------------------------------------------------------------------
3.3.0
-----------------------------------------------------------------------------
Scheduled for mid-to-late 2007?

* Add ppc{32,64}/AIX5 support [Done by Julian]

* Rework Massif [Done by Nick]

* Rework Helgrind [Done by Julian]

* Add experimental tools (Omega + DRD) [Julian]

-----------------------------------------------------------------------------
3.2.4
-----------------------------------------------------------------------------
Scheduled for mid-2007?

-----------------------------------------------------------------------------
3.2.3
-----------------------------------------------------------------------------
[Was released on Jan 29, 2007]

-----------------------------------------------------------------------------
3.2.2
-----------------------------------------------------------------------------
[Was released on Jan 22, 2007]

-----------------------------------------------------------------------------
3.2.1
-----------------------------------------------------------------------------
Scheduled for Dec 06?
[Was released on 16 Sep, 2006]

-----------------------------------------------------------------------------
3.2.0
-----------------------------------------------------------------------------
Scheduled for end-Mar 06 (3.1.0 + 4 months) ?
[Was released on Sep 16, 2006]

In order of increasing speculativeness
--------------------------------------

* Add ppc64-linux support.  [Done by Julian]

* Fold in the V bit compression stuff if it works well (early signs
  are promising) and get rid of Addrcheck.
  [Done by Nick.  Average speedup of 1.20x, shadow memory size reduction of
   4.2x.]

* Get function wrapping working again.  [Done by Julian]
  Reinstate basic thread checks.
  Reinstate Helgrind.

* Performance tuning:
  - faster register allocation in vex
  - improve stack-update pass           [Done by Nick]
  - assess effect of branch misprediction in dispatchers

* Try to accelerate development for Darwin ?

Smaller things
--------------
* Consider using the following defaults:
  --leak-check=yes
  --num-callers=20

* Expose some of m_redir's functionality to tools so that Memcheck
  can replace strlen/strcmp on PPC32 (remove the 3.1.0 hack for this
  which checked in m_redir.c if the current tool was Memcheck).
  [Won't bother.  The fix is worse than the problem it's trying to solve;
   the issue is that the replacement functions are in m_trampoline.S and must
   be between VG_(trampoline_stuff_start) and VG_(trampoline_stuff_end) for
   arcane reasons and moving them into a tool-visible place is a pain.]

-----------------------------------------------------------------------------
3.1.1
-----------------------------------------------------------------------------
Tentatively end-Dec 05 (3.1.0 + 1 month): fix any critical bugs in
3.1.0.
[Was released on Mar 16, 2006]

-----------------------------------------------------------------------------
3.1.0
-----------------------------------------------------------------------------
Scheduled for around November 2005.  (Released 27 Nov 05).

Definite
--------
* Get 32-bit and 64-bit programs working smoothly on AMD64 (Tom?).  Several
  levels of smoothness here, we should aim for at least level 3.

  1. Be able to build a 32-bit valgrind on a 64-bit machine, so you can
     build and install both, and manually choose between bin/valgrind and
     bin64/valgrind.
  2. Build both automatically when installing.
  3. Choose the appropriate executable automatically at startup just from
     "valgrind".
  4. With --trace-children=yes, allow 32-bit programs to exec 64-bit
     programs and vice versa, and invoke the appropriate Valgrind
     automatically.
  [All four levels done by Tom]

* Get PPC32 working usably with Memcheck (Julian).  Has already improved a
  lot since.  Get Cachegrind working with it (Nick).
  [Both done by Julian]

* Rewrite address space manager;  statically link the core with
  each tool;  remove all glibc dependencies (Julian).  
  [Done by Julian]

* What about --time-stamp=yes?
  [Fixed by Julian to give relative time since startup]

* Make it work with GCC 2.95 (bug #111781) -- don't put declarations after
  statements in blocks.  Do it after merging ASPACEM with the trunk.
  -Wdeclaration-after-statement is the GCC warning that detects this, but
  it is only present in GCC after 3.4.0 (ie. not in 3.0.X--3.3.X)...
  [Done by Tom and others]

* We need to reintroduce some kind of core/tool interface versioning,
  so that if external tools link with libcoregrind.a incompatibilities
  are detected.

Maybe
-----
* Get pthread modelling and Helgrind working again.  Requires function
  wrapping (Nick).
  [Won't happen for 3.1.0.  Function wrapping is difficult.]

* Reinstate Addrcheck and/or implement V-bit compression in Memcheck (?).
  [Won't happen for 3.1.0.]

* Allow suppressions by filename + line number? (Joseph Link's patch)

