More stuff.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4280 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/NEWS b/NEWS
index 44f9445..c46f381 100644
--- a/NEWS
+++ b/NEWS
@@ -6,7 +6,8 @@
 3.0.0 is a major overhaul of Valgrind.  The most significant
 user-visible change is that Valgrind now supports architectures other
 than x86.  The new architectures it supports are AMD64 and PPC32, and
-the infrastructure is present for other architectures to be added later.
+the infrastructure is present for other architectures to be added
+later.
 
 The AMD64 support works well, but has some shortcomings:
 
@@ -14,7 +15,7 @@
   support for more obscure instructions and system calls may be missing.
   We will fix these as they arise.
 
-- Address space may be limited;  see the point about
+- Address space may be limited; see the point about
   position-independent executables below.
 
 - If Valgrind is built on an AMD64 machine, it will only run 64-bit
@@ -26,12 +27,13 @@
   in the future.
 
 The PPC32 support is very basic.  It may not work reliably even for
-small programs, but it's a start.  Many thanks to Paul Mackerras for his
-great work that enabled this support.
+small programs, but it's a start.  Many thanks to Paul Mackerras for
+his great work that enabled this support.  We are working to make
+PPC32 usable as soon as possible.
 
 Other user-visible changes:
 
-- No longer building Valgrind as a position-indendependent executable
+- No longer building Valgrind as a position-independent executable
   (PIE) by default, as it caused too many problems.
 
   Without PIE enabled, AMD64 programs will only be able to access 2GB of
@@ -51,9 +53,11 @@
   flag, although the default setting should work in most cases.
 
 - Output can now be printed in XML format.  This should make it easier
-  for other tools (such as GUI front-ends) to use Valgrind output as
-  input.  The --xml flag controls this.  [[TODO: describe the related
-  CLOs added (eg. --log-file-qualifier)]]
+  for tools such as GUI front-ends and automated error-processing
+  schemes to use Valgrind output as input.  The --xml flag controls this.
+  As part of this change, ELF directory information is read from executables,
+  so absolute source file paths are available if needed.
+  [[TODO: describe the related CLOs added (eg. --log-file-qualifier)]]
 
 - Programs that allocate many heap blocks may run faster, due to
   improvements in certain data structures.
@@ -62,17 +66,44 @@
   soon.  Helgrind is still not working, as was the case for the 2.4.0
   release.
 
+- The JITter has been completely rewritten, and is now in a separate
+  library, called Vex.  This enabled a lot of the user-visible changes,
+  such as new architecture support.  The new JIT unfortunately translates
+  more slowly than the old one, so programs may take longer to start.
+  We believe the code quality is produces is about the same, so once
+  started, programs should run at about the same speed.  Feedback about
+  this would be useful.
+
+  On the plus side, Vex and hence Memcheck tracks value flow properly
+  through floating point and vector registers, something the 2.X line
+  could not do.  That means that Memcheck is much more likely to be
+  usably accurate on vectorised code.
+
+- There is a subtle change to the way exiting of threaded programs 
+  is handled.  In 3.0, Valgrind's final diagnostic output (leak check,
+  etc) is not printed until the last thread exits.  If the last thread
+  to exit was not the original thread which started the program, any
+  other process wait()-ing on this one to exit may conclude it has
+  finished before the diagnostic output is printed.  This may not be
+  what you expect.  2.X had a different scheme which avoided this
+  problem, but caused deadlocks under obscure circumstances, so we
+  are trying something different for 3.0.
+
+- Small changes in control log file naming which make it easier to
+  use valgrind for debugging MPI-based programs.
+
+- As part of adding AMD64 support, DWARF2 CFI-based stack unwinding
+  support was added.  In principle this means Valgrind can produce
+  meaningful backtraces on x86 code compiled with -fomit-frame-pointer
+  providing you also compile your code with [[TODO: Tom: what's the
+  name of the magic flag?]]
+
 - [[TODO: add more here]]
 
 Changes that are not user-visible:
 
-- The JITter has been completely rewritten, and is now in a separate
-  library, called Vex.  This enabled a lot of the user-visible changes,
-  such as new architecture support.  It may run slower than the old
-  JITter; feedback about this would be useful.
-
-- The code has been modularized significantly, and should be easier to
-  navigate and understand.
+- The code has been massively overhauled in order to modularise it.
+  As a result we hope it is easier to navigate and understand.
 
 - Lots of code has been rewritten.