view NEWS @ 19632:76478d2da117

unconditionally disable the octave_allocator class * configure.ac: Delete the --enable-octave-allocator option. * oct-alloc.h: Delete octave_allocator class. Warn if file is included. Unconditionally define macros to be empty. * NEWS: Make note of these changes. * oct-alloc.cc: Delete. * liboctave/util/module.mk (UTIL_SRC): Remove it from the list. * make_int.cc, Cell.h, oct-obj.cc, oct-obj.h, audiodevinfo.cc, ov-base-int.h, ov-base-scalar.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-builtin.cc, ov-builtin.h, ov-cell.cc, ov-cell.h, ov-ch-mat.h, ov-class.cc, ov-class.h, ov-classdef.cc, ov-classdef.h, ov-complex.cc, ov-complex.h, ov-cs-list.cc, ov-cs-list.h, ov-cx-diag.cc, ov-cx-diag.h, ov-cx-mat.cc, ov-cx-mat.h, ov-cx-sparse.cc, ov-cx-sparse.h, ov-dld-fcn.cc, ov-dld-fcn.h, ov-fcn-handle.cc, ov-fcn-handle.h, ov-fcn-inline.cc, ov-fcn-inline.h, ov-fcn.cc, ov-fcn.h, ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-diag.cc, ov-flt-cx-diag.h, ov-flt-cx-mat.cc, ov-flt-cx-mat.h, ov-flt-re-diag.cc, ov-flt-re-diag.h, ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-intx.h, ov-java.cc, ov-java.h, ov-mex-fcn.cc, ov-mex-fcn.h, ov-perm.cc, ov-perm.h, ov-range.cc, ov-range.h, ov-re-diag.cc, ov-re-diag.h, ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc, ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, ov-struct.h, ov-uint16.cc, ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, ov-usr-fcn.cc, ov-usr-fcn.h, ov.cc, ov.h, pt-const.cc, pt-const.h, idx-vector.cc, idx-vector.h: Delete uses of oct-alloc.h and OCTAVE_ALLOCATOR macros.
author John W. Eaton <jwe@octave.org>
date Tue, 20 Jan 2015 13:43:29 -0500
parents db92e7e28e1f
children ebd27d8c63fd
line wrap: on
line source

Summary of important user-visible changes for version 4.2:
---------------------------------------------------------

 ** 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:

      classdef      endclassdef
      enumeration   endenumeration
      events        endevents
      methods       endmethods
      properties    endproperties

 ** New audio functions and classes:

      audiodevinfo  audioread
      audioinfo     audiorecorder
      audioplayer   audiowrite

 ** Other new classes in Octave 4.2:

      audioplayer    inputParser
      audiorecorder

 ** 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.

    disable_range   disable_diagonal_matrix   disable_permutation_matrix

    All three optimizations are disabled if Octave is started with the
    --braindead command line option.

 ** 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 delaunay function has been extended to accept 3-D inputs for
    Matlab compatibility.  The delaunay function no longer plots the
    triangulation if no output argument is requested, instead, the
    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.

 ** 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
    location when the pattern was empty.

      NEW
      strfind ("abc", "") => []
      OLD
      strfind ("abc", "") => [1, 2, 3, 4]

 ** Integer formats used in the printf family of functions now work for
    64-bit integers and are more compatible with Matlab when printing
    non-integer values.  Now instead of truncating, Octave will switch
    the effective format to '%g' in the following circumstances:

      * the value of an integer type (int8, uint32, etc.) value exceeds
        the maximum for the format specifier.  For '%d', the limit is
        intmax ('int64') and for '%u' it is intmax ('uint64').

      * 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
    is currently switching to '%g'.

 ** 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).

 ** 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").

 ** 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.

 ** 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.

 ** 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.

 ** The following functions now support N-dimensional arrays:

      fliplr   flipud   rot90

 ** The new warning ID "Octave:data-file-in-path" replaces the three
    previous separate warning IDs "Octave:fopen-file-in-path",
    "Octave:load-file-in-path", and "Octave:md5sum-file-in-path".

 ** Other new functions added in 4.2:

      bandwidth
      cubehelix
      dir_in_loadpath
      flip
      frame2im
      hgload
      hgsave
      ichol
      ilu
      im2frame
      isbanded
      isdiag
      istril
      istriu
      javachk
      linkaxes
      lscov
      numfields
      qmr
      rotate
      sylvester
      unsetenv
      zoom

 ** 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.

 ** Deprecated functions.

    The following functions have been deprecated in Octave 4.2 and will
    be removed from Octave 4.6 (or whatever version is the second major
    release after 4.2):

      Function             | Replacement
      ---------------------|------------------
      bicubic              | interp2
      delaunay3            | delaunay
      dump_prefs           | individual preference get/set routines
      find_dir_in_path     | dir_in_loadpath
      finite               | isfinite
      fmod                 | rem
      fnmatch              | glob or regexp
      luinc                | ilu or ichol
      nfields              | numfields
      octave_tmp_file_name | tempname
      syl                  | sylvester
      usage                | print_usage

    The following functions were deprecated in Octave 3.8 and have been
    removed from Octave 4.2.

      default_save_options    java_new
      gen_doc_cache           java_unsigned_conversion
      interp1q                javafields
      isequalwithequalnans    javamethods
      java_convert_matrix     re_read_readline_init_file
      java_debug              read_readline_init_file
      java_invoke             saving_history

    The following keywords were deprecated in Octave 3.8 and have been
    removed from Octave 4.2

      static

    The following configuration variables were deprecated in Octave 3.8
    and have been removed from Octave 4.2

      CC_VERSION  (now GCC_VERSION)
      CXX_VERSION (now GXX_VERSION)

    The internal class <Octave_map> was deprecated in Octave 3.8 and has
    been removed from Octave 4.2.  Replacement classes are
    <octave_map> (struct array) or <octave_scalar_map> for a single structure.

 ** The warning ID Octave:singular-matrix-div has been replaced by
    Octave:nearly-singular-matrix and Octave:singular-matrix.

 ** 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
    access the class (DECLARE_OCTAVE_ALLOCATOR, DEFINE_OCTAVE_ALLOCATOR,
    and DEFINE_OCTAVE_ALLOCATOR2) are now unconditionally defined to be
    empty.

Summary of important user-visible changes for version 4.0:
---------------------------------------------------------

 ** For compatibility with Matlab, the "backtrace" warning option is now
    enabled by default.

 ** The preference

      do_braindead_shortcircuit_evaluation

    is now enabled by default.

 ** The preference

      allow_noninteger_range_as_index

    is now enabled by default and the warning ID

      Octave:noninteger-range-as-index

    is now set to "on" by default instead of "error" by default and "on"
    for --traditional.

 ** 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.

 ** Other new functions added in 4.0.0:

      validateattributes

 ** Deprecated functions.

    The following functions were deprecated in Octave 3.6 and have been
    removed from Octave 4.0.

      cut                polyderiv
      cor                shell_cmd
      corrcoef           studentize
      __error_text__     sylvester_matrix
      error_text

    The following functions have 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):

      allow_noninteger_range_as_index
      do_braindead_shortcircuit_evaluation

    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.

---------------------------------------------------------

See NEWS.3 for old news.