Tidy this up for the 3.10.0 beta.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14425 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/NEWS b/NEWS
index 84df31f..47124dd 100644
--- a/NEWS
+++ b/NEWS
@@ -1,117 +1,167 @@
-Release 3.10.0 (?? ?????? 201?)
+Release 3.10.0 (?? ?????? 2014)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.10.0 is not yet released.
 
-* ================== DEPRECATED FEATURES =================
+3.10.0 is not yet released.  This is a beta of 3.10.0.
 
-* --db-attach is now a deprecated feature which will be removed in the
-  next valgrind release (not counting bug-fix releases). The vgdb
-  capabilities are superior and should be used instead. Learn more here:
-  http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver
+3.10.0 is a feature release with many improvements and the usual
+collection of bug fixes.
+
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux,
+ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux,
+MIPS32/Linux, MIPS64/Linux, ARM/Android, X86/Android, X86/MacOSX 10.9
+and AMD64/MacOSX 10.9.  Support for MacOSX 10.8 and 10.9 is
+significantly improved relative to the 3.9.0 release.
 
 * ================== PLATFORM CHANGES =================
 
+* Support for the 64-bit ARM Architecture (AArch64 ARMv8).  This port
+  is mostly complete, and is usable, but some SIMD instructions are as
+  yet unsupported.
+
+* Support for little-endian variant of the 64-bit POWER architecture.
+
 * Support for Android on MIPS32.
+
 * Support for 64bit FPU on MIPS32 platforms.
 
+* Both 32- and 64-bit executables are supported on MacOSX 10.8 and 10.9.
+
+* ================== DEPRECATED FEATURES =================
+
+* --db-attach is now deprecated and will be removed in the next
+  valgrind feature release.  The built-in GDB server capabilities are
+  superior and should be used instead. Learn more here:
+  http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver
+
 * ==================== TOOL CHANGES ====================
 
 * Memcheck:
-  - new client requests 
-    VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE and
-    VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE
-  - new leak check heuristic 'length64' to detect interior pointers
-    pointing at offset 64bit of a block, when the first 8 bytes contains
-    the block size - 8. This is e.g. used by sqlite3MemMalloc.
-  - if a syscall param (e.g. bind struct sockaddr, sendmsg struct msghdr,
-    ...) has several fields not initialised, an error is now reported for
-    each field. Previously, an error was reported only for the first wrong
-    field.
-  - new flag --show-mismatched-frees=no|yes [yes], to optionally disable
-    allocator/deallocator mismatch checking.
+
+  - Client code can now selectively disable and re-enable reporting of
+    invalid address errors in specific ranges using the new client
+    requests VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE and
+    VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE.
+
+  - Leak checker: there is a new leak check heuristic called
+    "length64".  This is used to detect interior pointers pointing 8
+    bytes inside a block, on the assumption that the first 8 bytes
+    holds the value "block size - 8".  This is used by
+    sqlite3MemMalloc, for example.
+
+  - Checking of system call parameters: if a syscall parameter
+    (e.g. bind struct sockaddr, sendmsg struct msghdr, ...) has
+    several fields not initialised, an error is now reported for each
+    field. Previously, an error was reported only for the first
+    uninitialised field.
+
+  - Mismatched alloc/free checking: a new flag
+    --show-mismatched-frees=no|yes [yes] makes it possible to turn off
+    such checks if necessary.
 
 * Helgrind:
-  - Race condition error message with allocated blocks also show
-    the thread nr that allocated the racy block.
-  - All locks referenced by an error message are now announced.
-    Previously, some error messages were just showing the lock addresses.
-  - The message indicating where a lock was first observed now also
-    describes the address/location of the lock.
-  - Helgrind now understands the Ada task termination rules
-    and creates a 'H-B relationship' between a terminated task and
-    its master. This avoids some false positive and avoids big
-    memory usage when a lot of Ada tasks are created and terminated.
+
+  - Improvements to error messages:
+
+    o Race condition error message involving heap allocated blocks also
+      show the thread number that allocated the raced-on block.
+
+    o All locks referenced by an error message are now announced.
+      Previously, some error messages only showed the lock addresses.
+
+    o The message indicating where a lock was first observed now also
+      describes the address/location of the lock.
+
+  - Helgrind now understands the Ada task termination rules and
+    creates a happens-before relationship between a terminated task
+    and its master.  This avoids some false positives and avoids a big
+    memory leak when a lot of Ada tasks are created and terminated.
     The interceptions are only activated with forthcoming releasses of
     gnatpro >= 7.3.0w-20140611 and gcc >= 5.0.
-  - Helgrind GDB server monitor command 'info locks' giving
-    the list of locks, their location, and their status.
+
+  - A new GDB server monitor command "info locks" giving the list of
+    locks, their location, and their status.
 
 * Callgrind:
+
   - callgrind_control now supports the --vgdb-prefix argument,
     which is needed if valgrind was started with this same argument.
 
 * ==================== OTHER CHANGES ====================
 
-* The semantic of stack start/end boundaries in valgrind.h
-  VALGRIND_STACK_REGISTER has been clarified/documented.
-  The convention is that start and end are respectively the lowest
-  and highest addressable bytes of the stack.
+* Unwinding through inlined function calls.  By default, stack
+  unwinding now makes use of Dwarf3 inlined-unwind information if it
+  is available.  The practical effect is that inlined calls become
+  visible in stack traces.  The suppression matching machinery has
+  been adjusted accordingly.  This is controlled by the new option
+  --read-inline-info=yes|no [yes].
 
-* Better stacktraces and suppression matching for inlined function calls.
-  The new option --read-inline-info=yes|no allows to control the reading
-  of the dwarf debug information describing inlined function calls.
-  When this debug info is read, stacktraces will properly show inlined
-  function calls.
+  In the 3.10.0 beta release(s), inlined unwinding is only enabled for
+  Memcheck and Helgrind.  It is hoped to enable it for all tools in
+  the 3.10.0 final release.
 
-* Address description logic has been improved and is now common 
-  between memcheck and helgrind, resulting in better address
-  descriptions for some error messages.
+* Valgrind can now read EXIDX unwind information on 32-bit ARM
+  targets.  If an object contains both CFI and EXIDX unwind
+  information, Valgrind will prefer the CFI over the EXIDX.  This
+  facilitates unwinding through system libraries on arm-android
+  targets.
 
-* New and modified GDB server monitor features:
+* Address description logic has been improved and is now common
+  between Memcheck and Helgrind, resulting in better address
+  descriptions for some kinds of error messages.
 
-  - thread local variables/storage (__thread) can now be displayed.
-
-  - The GDB server monitor command 'v.info location <address>'
-    outputs information about an address. The information produced depends
-    on the tool and on the options given to valgrind.
-    Possibly, the following are described: global variables, local (stack)
-    variables, allocated or freed blocks, ...
-
-  - The option "--vgdb-stop-at=event1,event2,..." allows the user
-    to ask GDB server to stop before program execution, at the end
-    of the program execution and on Valgrind internal errors.
-
-  - A new monitor command "v.info stats" that shows various valgrind core and
-    tool statistics.
-
-  - A new monitor command "v.set hostvisibility" that allows GDB server
-    to provide access to Valgrind internal host status/memory.
-
-* New option --aspace-minaddr=<address> allows to (possibly) make
-  use of some more memory by decreasing the default value above which
-  Valgrind maps memory or solve some conflicts with system libraries
-  by increasing the value.
-  See user manual for details.
- 
-* Minor improvements in dwarf handling with --read-var-info=yes
-  - Ada and C struct containing VLA do not cause a bad DIE error anymore
-  - Code compiled with -ffunction-sections -fdata-sections -Wl,--gc-sections
-    does not cause assert errors anymore.
+* Error messages about dubious arguments (eg, to malloc or calloc) are
+  output like other errors.  This means that they can be suppressed
+  and they have a stack trace.
 
 * The C++ demangler has been updated for better C++11 support.
 
-* Error messages about fishy arguments (formerly known as silly arguments)
-  are output like other errors (e.g. they can be suppressed) and now include a 
-  backtrace to aid debugging.
+* New and modified GDB server monitor features:
 
-* Reduction of memory used by Valgrind to read and store the debug information.
+  - Thread local variables/storage (__thread) can now be displayed.
 
-* Valgrind can now read EXIDX unwind information on 32-bit ARM targets.
-  If an object contains both CFI and EXIDX unwind information, Valgrind
-  will prefer the CFI over the EXIDX.
+  - The GDB server monitor command "v.info location <address>"
+    displays information about an address.  The information produced
+    depends on the tool and on the options given to valgrind.
+    Possibly, the following are described: global variables, local
+    (stack) variables, allocated or freed blocks, ...
 
-* Typos or unknown values in --sim-hints and --kernel-variant command
-  line options are now detected and reported to the user as a usage error.
+  - The option "--vgdb-stop-at=event1,event2,..." allows the user to
+    ask the GDB server to stop at the start of program execution, at
+    the end of the program execution and on Valgrind internal errors.
+
+  - A new monitor command "v.info stats" shows various Valgrind core
+    and tool statistics.
+
+  - A new monitor command "v.set hostvisibility" allows the GDB server
+    to provide access to Valgrind internal host status/memory.
+
+* A new option "--aspace-minaddr=<address>" can in some situations
+  allow the use of more memory by decreasing the address above which
+  Valgrind maps memory.  It can also be used to solve address
+  conflicts with system libraries by increasing the default value.
+  See user manual for details.
+
+* The amount of memory used by Valgrind to store debug info (unwind
+  info, line number information and symbol data) has been
+  significantly reduced, even though Valgrind now reads more
+  information in order to support unwinding of inlined function calls.
+
+* Dwarf3 handling with --read-var-info=yes has been improved:
+
+  - Ada and C struct containing VLAs no longer cause a "bad DIE" error
+
+  - Code compiled with
+    -ffunction-sections -fdata-sections -Wl,--gc-sections
+    no longer causes assertion failures.
+
+* Improved checking for the --sim-hints= and --kernel-variant=
+  options.  Unknown strings are now detected and reported to the user
+  as a usage error.
+
+* The semantics of stack start/end boundaries in the valgrind.h
+  VALGRIND_STACK_REGISTER client request has been clarified and
+  documented.  The convention is that start and end are respectively
+  the lowest and highest addressable bytes of the stack.
 
 * ==================== FIXED BUGS ====================
 
@@ -259,6 +309,7 @@
 n-i-bz  ppc32/64: fix a regression with the mtfsb0/mtfsb1 instructions
 
 
+
 Release 3.9.0 (31 October 2013)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 3.9.0 is a feature release with many improvements and the usual