changeset 21133:31674b9d202b

* NEWS: Refill text to 72 columns.
author John W. Eaton <jwe@octave.org>
date Fri, 22 Jan 2016 12:12:56 -0500
parents 6586ccfc61d6
children 2e5c1f766ac9
files NEWS
diffstat 1 files changed, 143 insertions(+), 128 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Thu Jan 21 18:18:34 2016 -0500
+++ b/NEWS	Fri Jan 22 12:12:56 2016 -0500
@@ -1,62 +1,67 @@
 Summary of important user-visible changes for version 4.2:
 ---------------------------------------------------------
 
- ** The parser has been extended to accept, but ignore, underscore characters
-    in numbers.  This facilitates writing more legible code by using '_' as
-    a thousands separator or to group nibbles into bytes in hex constants.
+ ** The parser has been extended to accept, but ignore, underscore
+    characters in numbers.  This facilitates writing more legible code
+    by using '_' as a thousands separator or to group nibbles into bytes
+    in hex constants.
 
     Examples: 1_000_000 == 1e6 or 0xDE_AD_BE_EF
 
- ** The parser has been extended to understand binary numbers which begin
-    with the prefix '0b' or '0B'.  The value returned is Octave's default
-    numeric class of double, not at unsigned integer class.  Therefore numbers
-    greater than flintmax, i.e., 2^53, will lose some precision.
+ ** The parser has been extended to understand binary numbers which
+    begin with the prefix '0b' or '0B'.  The value returned is Octave's
+    default numeric class of double, not at unsigned integer class.
+    Therefore numbers greater than flintmax, i.e., 2^53, will lose some
+    precision.
 
     Examples: 0b101 == 5 or 0B1100_0001 == 0xC1
 
- ** The default colormap is now set to "viridis" which is also the default
-    colormap in matplotlib.  This new colormap fixes some of the main issues
-    with the old default colormap "jet" such as its bad "luminance profile"
-    and is also more similar to Matlab's new default colormap "parula".
+ ** The default colormap is now set to "viridis" which is also the
+    default colormap in matplotlib.  This new colormap fixes some of the
+    main issues with the old default colormap "jet" such as its bad
+    "luminance profile" and is also more similar to Matlab's new default
+    colormap "parula".
 
  ** Octal ('\NNN') and hex ('\xNN') escape sequences in single quoted
     strings are now interpreted by the function do_string_escapes().
     The *printf family of functions now supports octal and hex escape
     sequences in single-quoted strings for Matlab compatibility.
 
- ** Special octal and hex escape sequences for the pattern and replacement
-    strings in regular expressions are now interpreted for Matlab compatibility.
+ ** Special octal and hex escape sequences for the pattern and
+    replacement strings in regular expressions are now interpreted for
+    Matlab compatibility.
 
     octal: '\oNNN' or '\o{NNN}'
     hex  : '\xNN'  or '\x{NN}'
 
- ** Unknown escape sequences in the replacement string for regexprep are now
-    substituted with their unescaped version and no warning is emitted.
-    This change was made for Matlab compatibility.
+ ** Unknown escape sequences in the replacement string for regexprep are
+    now substituted with their unescaped version and no warning is
+    emitted.  This change was made for Matlab compatibility.
 
     Example: regexprep ('a', 'a', 'x\yz')
              => 'xyz'
 
- ** mkfifo now interprets the MODE argument as an octal, not decimal, integer.
-    This is consistent with the equivalent shell command.
+ ** mkfifo now interprets the MODE argument as an octal, not decimal,
+    integer.  This is consistent with the equivalent shell command.
 
- ** linspace now returns an empty matrix if the number of requested points
-    is 0 or a negative number.  This change was made to be compatible with
-    Matlab releases newer than 2011.  In addition, Octave no longer supports
-    matrix inputs for A or B.
+ ** linspace now returns an empty matrix if the number of requested
+    points is 0 or a negative number.  This change was made to be
+    compatible with Matlab releases newer than 2011.  In addition,
+    Octave no longer supports matrix inputs for A or B.
 
- ** The griddata function no longer plots the interpolated mesh if no output
-    argument is requested, instead the vector or array of interpolated values
-    is always returned for Matlab compatibility.
+ ** The griddata function no longer plots the interpolated mesh if no
+    output argument is requested, instead the vector or array of
+    interpolated values is always returned for Matlab compatibility.
+
+ ** The surfnorm function now returns unnormalized (magnitude != 1)
+    normal vectors for compatibility with Matlab.
 
- ** The surfnorm function now returns unnormalized (magnitude != 1) normal
-    vectors for compatibility with Matlab.
-
- ** The quadl function now uses an absolute, rather than relative, tolerance
-    for Matlab compatibility.  The default tolerance is 1e-6 which may result
-    in lower precision results than previous versions of Octave which used
-    eps as the relative tolerance.  The quadl function has also been extended
-    to return a second output with the total number of function evaluations.
+ ** The quadl function now uses an absolute, rather than relative,
+    tolerance for Matlab compatibility.  The default tolerance is 1e-6
+    which may result in lower precision results than previous versions
+    of Octave which used eps as the relative tolerance.  The quadl
+    function has also been extended to return a second output with the
+    total number of function evaluations.
 
  ** Other new functions added in 4.2:
 
@@ -97,27 +102,31 @@
       java_debug              read_readline_init_file
       java_invoke             saving_history
 
- ** The global error_state variable in Octave's C++ API has been deprecated
-    and will be removed in a future version.  Now the error and print_usage
-    functions throw an exception (octave_execution_exception) after displaying
-    the error message.  This makes the error and print_usage functions in C++
-    work more like the corresponding functions in the scripting language.
+ ** The global error_state variable in Octave's C++ API has been
+    deprecated and will be removed in a future version.  Now the error
+    and print_usage functions throw an exception
+    (octave_execution_exception) after displaying the error message.
+    This makes the error and print_usage functions in C++ work more like
+    the corresponding functions in the scripting language.
 
  ** The default error handlers in liboctave have been updated to use
     exceptions.  After displaying an error message they no longer return
     control to the calling program.  The error handler function can be
-    customized through the global variables "current_liboctave_error_handler"
-    and "current_liboctave_error_with_id_handler".  If a programmer has
-    installed their own custom error handling routines when directly linking
-    with liboctave then these must be updated to throw an exception and not
-    return to the calling program.
+    customized through the global variables
+    "current_liboctave_error_handler" and
+    "current_liboctave_error_with_id_handler".  If a programmer has
+    installed their own custom error handling routines when directly
+    linking with liboctave then these must be updated to throw an
+    exception and not return to the calling program.
 
- ** The system for common errors and warnings has been renamed from gripe_XXX
-    to either err_XXX if error is called or warn_XXX if warning is called.
-    The gripe_XXX functions are deprecated and will be removed in version 4.6.
+ ** The system for common errors and warnings has been renamed from
+    gripe_XXX to either err_XXX if error is called or warn_XXX if
+    warning is called.  The gripe_XXX functions are deprecated and will
+    be removed in version 4.6.
 
- ** New configure option, --enable-address-sanitizer-flags, to build Octave
-    with memory allocator checks (similar to those in valgrind) built in.
+ ** New configure option, --enable-address-sanitizer-flags, to build
+    Octave with memory allocator checks (similar to those in valgrind)
+    built in.
 
 Summary of important user-visible changes for version 4.0:
 ---------------------------------------------------------
@@ -129,10 +138,10 @@
     command line interface that does not link with the Qt libraries and
     uses the fltk toolkit for plotting.
 
- ** Octave now uses OpenGL graphics with Qt widgets by default.  If OpenGL
-    libraries are not available when Octave is built, gnuplot is used.
-    You may choose to use the fltk or gnuplot toolkit for graphics by
-    executing the command
+ ** Octave now uses OpenGL graphics with Qt widgets by default.  If
+    OpenGL libraries are not available when Octave is built, gnuplot is
+    used.  You may choose to use the fltk or gnuplot toolkit for
+    graphics by executing the command
 
       graphics_toolkit ("fltk")
         OR
@@ -141,9 +150,9 @@
     Adding such a command to your ~/.octaverc file will set the default
     for each session.
 
- ** A new syntax for object oriented programming termed classdef has been
-    introduced.  See the manual for more extensive documentation of the
-    classdef interface.
+ ** A new syntax for object oriented programming termed classdef has
+    been introduced.  See the manual for more extensive documentation of
+    the classdef interface.
 
     New keywords:
 
@@ -164,13 +173,13 @@
       audioplayer    inputParser
       audiorecorder
 
- ** Optional stricter Matlab compatibility for ranges, diagonal matrices,
-    and permutation matrices.
+ ** Optional stricter Matlab compatibility for ranges, diagonal
+    matrices, and permutation matrices.
 
     Octave has internal optimizations which use space-efficient storage
     for the three data types above.  Three new functions have been added
-    which control whether the optimizations are used (default), or whether
-    the data types are stored as full matrices.
+    which control whether the optimizations are used (default), or
+    whether the data types are stored as full matrices.
 
     disable_range   disable_diagonal_matrix   disable_permutation_matrix
 
@@ -194,30 +203,30 @@
     is now set to "on" by default instead of "error" by default and "on"
     for --traditional.
 
- ** The "backtrace" warning option is now enabled by default.  This change
-    was made for Matlab compatibility.
+ ** The "backtrace" warning option is now enabled by default.  This
+    change was made for Matlab compatibility.
 
- ** For compatibility with Matlab, the "ismatrix (x)" function now only checks
-    the dimension of "x".  The old behaviour of "ismatrix" is obtained by
-    "isnumeric (x) || islogical (x) || ischar (x)".
+ ** For compatibility with Matlab, the "ismatrix (x)" function now only
+    checks the dimension of "x".  The old behaviour of "ismatrix" is
+    obtained by "isnumeric (x) || islogical (x) || ischar (x)".
 
  ** The nextpow2 function behaviour has been changed for vector inputs.
     Instead of computing `nextpow2 (length (x))', it will now compute
-    nextpow2 for each element of the input.  This change is Matlab compatible,
-    and also prevents bugs for "vectors" of length 1.
+    nextpow2 for each element of the input.  This change is Matlab
+    compatible, and also prevents bugs for "vectors" of length 1.
 
  ** polyeig now returns a row vector of eigenvalues rather than a matrix
-    with the eigenvalues on the diagonal.  This change was made for Matlab
-    compatibility.
+    with the eigenvalues on the diagonal.  This change was made for
+    Matlab compatibility.
 
  ** Interpolation function changes for Matlab compatibility
 
-    The interpolation method 'cubic' is now equivalent to 'pchip'
-    for interp1, interp2, and interp3.  Previously, 'cubic' was equivalent
-    to 'spline' for interp2.  This may produce different results as 'spline'
-    has continuous 1st and 2nd derivatives while 'pchip' only has a continuous
-    1st derivative.  The methods 'next' and 'previous' have been added to
-    interp1 for compatibility.
+    The interpolation method 'cubic' is now equivalent to 'pchip' for
+    interp1, interp2, and interp3.  Previously, 'cubic' was equivalent
+    to 'spline' for interp2.  This may produce different results as
+    'spline' has continuous 1st and 2nd derivatives while 'pchip' only
+    has a continuous 1st derivative.  The methods 'next' and 'previous'
+    have been added to interp1 for compatibility.
 
  ** The delaunay function has been extended to accept 3-D inputs for
     Matlab compatibility.  The delaunay function no longer plots the
@@ -225,18 +234,21 @@
     triangulation is always returned.  The delaunay3 function which
     handles 3-D inputs has been deprecated in favor of delaunay.
 
- ** The trigonometric functions asin and acos return different phase values
-    from previous versions of Octave when the input is outside the principal
-    branch ([-1, 1]).  If the real portion of the input is greater than 1 then
-    the limit from below is taken.  If the real portion is less than 1 then the
-    limit from above is taken.  This criteria is consistent with several other
-    numerical analysis software packages.
+ ** The trigonometric functions asin and acos return different phase
+    values from previous versions of Octave when the input is outside
+    the principal branch ([-1, 1]).  If the real portion of the input is
+    greater than 1 then the limit from below is taken.  If the real
+    portion is less than 1 then the limit from above is taken.  This
+    criteria is consistent with several other numerical analysis
+    software packages.
 
- ** The hyperbolic function acosh now returns values with a phase in the range
-    [-pi/2, +pi/2].  Previously Octave returned values in the range [0, pi].
-    This is consistent with several other numerical analysis software packages.
+ ** The hyperbolic function acosh now returns values with a phase in the
+    range [-pi/2, +pi/2].  Previously Octave returned values in the
+    range [0, pi].  This is consistent with several other numerical
+    analysis software packages.
 
- ** strfind changes when using empty pattern ("") for Matlab compatibility
+ ** strfind changes when using empty pattern ("") for Matlab
+    compatibility
 
     strfind now returns an empty array when the pattern itself is empty.
     In previous versions of Octave, strfind matched at every character
@@ -259,48 +271,49 @@
       * round(x) != x or the value is outside the range allowed by the
         integer format specifier.
 
-    There is still one difference:  Matlab switches to '%e' and Octave
+    There is still one difference: Matlab switches to '%e' and Octave
     switches to '%g'.
 
  ** The functions intersect, setdiff, setxor, and union now return a
-    column vector as output unless the input was a row vector.  This change
-    was made for Matlab compatibility.
+    column vector as output unless the input was a row vector.  This
+    change was made for Matlab compatibility.
 
  ** The inpolygon function now returns true for points that are within
     the polygon OR on it's edge.  This change was made for Matlab
     compatibility.
 
  ** The archive family of functions (bzip2, gzip, zip, tar) and their
-    unpacking routines (bunzip2, gunzip, unzip, untar, unpack) have
-    been recoded.  Excepting unpack, the default is now to place files
-    in the same directory as the archive (on unpack) or as the original
-    files (on archiving).
+    unpacking routines (bunzip2, gunzip, unzip, untar, unpack) have been
+    recoded.  Excepting unpack, the default is now to place files in the
+    same directory as the archive (on unpack) or as the original files
+    (on archiving).
 
- ** Qt and FLTK graphics toolkits now support offscreen rendering on Linux.
-    In other words, print will work even when the figure visibility is "off".
+ ** Qt and FLTK graphics toolkits now support offscreen rendering on
+    Linux.  In other words, print will work even when the figure
+    visibility is "off".
 
  ** Z-order stacking issues with patches, grid lines, and line object
-    plot markers for on screen display and printing have all been resolved.
-    For 2-D plots the axis grid lines can be placed on top of the plot
-    with set (gca, "layer", "top").
+    plot markers for on screen display and printing have all been
+    resolved.  For 2-D plots the axis grid lines can be placed on top of
+    the plot with set (gca, "layer", "top").
 
- ** The patch graphic object has been overhauled.  It now produces visual
-    results equivalent to Matlab even for esoteric combinations of
-    faces/vertices/cdata.
+ ** The patch graphic object has been overhauled.  It now produces
+    visual results equivalent to Matlab even for esoteric combinations
+    of faces/vertices/cdata.
 
- ** The polar() plot function now draws a circular theta axis and
-    radial rho axis rather than using a rectangular x/y axis.
+ ** The polar() plot function now draws a circular theta axis and radial
+    rho axis rather than using a rectangular x/y axis.
 
  ** linkprop has been completely re-coded for performance and Matlab
-    compatibility.  It now returns a linkprop object which must be stored
-    in a variable for as long as the graphic objects should remain linked.
-    To unlink properties use 'clear hlink' where hlink is the variable
-    containing the linkprop object.
+    compatibility.  It now returns a linkprop object which must be
+    stored in a variable for as long as the graphic objects should
+    remain linked.  To unlink properties use 'clear hlink' where hlink
+    is the variable containing the linkprop object.
 
  ** isprime has been extended to operate on negative and complex inputs.
 
- ** xor has been extended to accept more than two arguments in which case
-    it performs cumulative XOR reduction.
+ ** xor has been extended to accept more than two arguments in which
+    case it performs cumulative XOR reduction.
 
  ** The following functions now support N-dimensional arrays:
 
@@ -359,10 +372,11 @@
 
  ** inline() scheduled for eventual deprecation by Matlab
 
-    Functions created through the use of inline are scheduled for deprecation
-    by Matlab.  When this occurs Octave will continue to support inline
-    functions for an indeterminate amount of time before also removing support.
-    All new code should use anonymous functions in place of inline functions.
+    Functions created through the use of inline are scheduled for
+    deprecation by Matlab.  When this occurs Octave will continue to
+    support inline functions for an indeterminate amount of time before
+    also removing support.  All new code should use anonymous functions
+    in place of inline functions.
 
  ** Deprecated functions.
 
@@ -426,18 +440,18 @@
       CC_VERSION  (now GCC_VERSION)
       CXX_VERSION (now GXX_VERSION)
 
- ** The internal function atan2 of the sparse matrix class has been deprecated
-    in Octave 4.0 and will be removed from Octave 4.4 (or whatever version is
-    the second major release after 4.0).  Use the Fatan2 function with sparse
-    inputs as a replacement.
+ ** The internal function atan2 of the sparse matrix class has been
+    deprecated in Octave 4.0 and will be removed from Octave 4.4 (or
+    whatever version is the second major release after 4.0).  Use the
+    Fatan2 function with sparse inputs as a replacement.
 
  ** The internal class Octave_map was deprecated in Octave 3.8 and has
-    been removed from Octave 4.0.  Replacement classes are
-    octave_map (struct array) or octave_scalar_map for a single structure.
+    been removed from Octave 4.0.  Replacement classes are octave_map
+    (struct array) or octave_scalar_map for a single structure.
 
  ** The configure option --enable-octave-allocator has been removed.
-    The internal class octave_allocator declared in oct-alloc.h has
-    been removed.  The header remains, but is deprecated.  The macros to
+    The internal class octave_allocator declared in oct-alloc.h has been
+    removed.  The header remains, but is deprecated.  The macros to
     access the class (DECLARE_OCTAVE_ALLOCATOR, DEFINE_OCTAVE_ALLOCATOR,
     and DEFINE_OCTAVE_ALLOCATOR2) are now unconditionally defined to be
     empty.
@@ -447,15 +461,16 @@
     advantage of OpenMP if desired.  This can be disabled when building
     Octave with the configure option --disable-openmp.
 
- ** Octave now automatically truncates intermediate calculations done with
-    floating point values to 64 bits.  Some hardware math co-processors, such
-    as the x87, maintain extra precision, but this leads to disagreements in
-    calculations when compared to reference implementations in software using
-    the IEEE standard for double precision.  There was no measurable
-    performance impact to this change, but it may be disabled with the
-    configure option --disable-float-truncate.  MinGW and Cygwin platforms,
-    as well as GCC compilers >= 5.0 require this feature.  Non-x87 hardware,
-    or hardware using SSE options exclusively, can disable float truncation
+ ** Octave now automatically truncates intermediate calculations done
+    with floating point values to 64 bits.  Some hardware math
+    co-processors, such as the x87, maintain extra precision, but this
+    leads to disagreements in calculations when compared to reference
+    implementations in software using the IEEE standard for double
+    precision.  There was no measurable performance impact to this
+    change, but it may be disabled with the configure option
+    --disable-float-truncate.  MinGW and Cygwin platforms, as well as
+    GCC compilers >= 5.0 require this feature.  Non-x87 hardware, or
+    hardware using SSE options exclusively, can disable float truncation
     if desired.
 
 ---------------------------------------------------------