# HG changeset patch # User John W. Eaton # Date 1422636705 18000 # Fri Jan 30 11:51:45 2015 -0500 # Node ID 12746f36f49bef3aab264769cfe5e25ac931afb5 # Parent 5d0663bff5064b97944db220c4a2cdcbd217415b update default branch to release as 4.0 Now that we plan to release default instead of the gui-release branch as 4.0, restore functions removed from the default branch. * java_new.m, default_save_options.m, gen_doc_cache.m, interp1q.m, isequalwithequalnans.m, java_convert_matrix.m, java_debug.m, java_invoke.m, java_unsigned_conversion.m, javafields.m, javamethods.m, re_read_readline_init_file.m, read_readline_init_file.m, saving_history.m: Restore deprecated functions. * scripts/deprecated/module.mk: Update. * NEWS: Update. * configure.ac (AC_INIT): Set version to 3.9.0+. (OCTAVE_MAJOR_VERSION): Now 3. (OCTAVE_MINOR_VERSION): Now 9. diff --git a/NEWS b/NEWS --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -Summary of important user-visible changes for version 4.2: +Summary of important user-visible changes for version 4.0: --------------------------------------------------------- ** A new syntax for object oriented programming termed classdef has been @@ -19,7 +19,7 @@ audioinfo audiorecorder audioplayer audiowrite - ** Other new classes in Octave 4.2: + ** Other new classes in Octave 4.0: audioplayer inputParser audiorecorder @@ -37,6 +37,30 @@ All three optimizations are disabled if Octave is started with the --braindead command line option. + ** 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. + ** Interpolation function changes for Matlab compatibility The interpolation method 'cubic' is now equivalent to 'pchip' @@ -122,7 +146,7 @@ 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: + ** Other new functions added in 4.0: bandwidth cubehelix @@ -146,6 +170,7 @@ rotate sylvester unsetenv + validateattributes zoom ** inline() scheduled for eventual deprecation by Matlab @@ -157,9 +182,9 @@ ** 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): + 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): Function | Replacement ---------------------|------------------ @@ -176,8 +201,12 @@ syl | sylvester usage | print_usage - The following functions were deprecated in Octave 3.8 and have been - removed from Octave 4.2. + allow_noninteger_range_as_index + do_braindead_shortcircuit_evaluation + + ** The following functions were deprecated in Octave 3.8 and will been + removed from Octave 4.2 (or whatever version is the second major + release after 3.8): default_save_options java_new gen_doc_cache java_unsigned_conversion @@ -187,19 +216,33 @@ 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 + ** 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 keywords were deprecated in Octave 3.8 and have been + removed from Octave 4.0 static - The following configuration variables were deprecated in Octave 3.8 - and have been removed from Octave 4.2 + ** The following configuration variables were deprecated in Octave 3.8 + and have been removed from Octave 4.0 CC_VERSION (now GCC_VERSION) CXX_VERSION (now GXX_VERSION) - The internal class was deprecated in Octave 3.8 and has - been removed from Octave 4.2. Replacement classes are + ** 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 was deprecated in Octave 3.8 and has + been removed from Octave 4.0. Replacement classes are (struct array) or for a single structure. ** The warning ID Octave:singular-matrix-div has been replaced by @@ -212,60 +255,6 @@ 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. diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -19,13 +19,13 @@ ### . AC_PREREQ([2.62]) -AC_INIT([GNU Octave], [4.1.0+], [http://octave.org/bugs.html], [octave]) +AC_INIT([GNU Octave], [3.9.0+], [http://octave.org/bugs.html], [octave]) dnl Note that the version number is duplicated here and in AC_INIT dnl because AC_INIT requires it to be static, not computed from dnl shell variables. -OCTAVE_MAJOR_VERSION=4 -OCTAVE_MINOR_VERSION=1 +OCTAVE_MAJOR_VERSION=3 +OCTAVE_MINOR_VERSION=9 OCTAVE_PATCH_VERSION=0+ dnl PACKAGE_VERSION is set by the AC_INIT VERSION arg diff --git a/libinterp/corefcn/spparms.cc b/libinterp/corefcn/spparms.cc --- a/libinterp/corefcn/spparms.cc +++ b/libinterp/corefcn/spparms.cc @@ -131,7 +131,7 @@ if (str == "defaults" || str == "default") { - // FIXME: deprecated in 4.2, remove "defaults" for 4.6 release + // FIXME: deprecated in 4.0, remove "defaults" for 4.4 release static bool warned = false; if (! warned && str == "defaults") { diff --git a/scripts/deprecated/bicubic.m b/scripts/deprecated/bicubic.m --- a/scripts/deprecated/bicubic.m +++ b/scripts/deprecated/bicubic.m @@ -19,7 +19,7 @@ ## -*- texinfo -*- ## @deftypefn {Function File} address@hidden =} bicubic (@var{x}, @var{y}, @var{z}, @var{xi}, @var{yi}, @var{extrapval}) ## -## @code{bicubic} is deprecated and will be removed in Octave version 4.6. +## @code{bicubic} is deprecated and will be removed in Octave version 4.4. ## Use @code{interp2 (@dots{}, "spline")} for the equivalent functionality. ## ## Return a matrix @var{zi} corresponding to the bicubic diff --git a/scripts/deprecated/default_save_options.m b/scripts/deprecated/default_save_options.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/default_save_options.m @@ -0,0 +1,42 @@ +## Copyright (C) 2013 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Built-in Function} address@hidden =} default_save_options () +## @deftypefnx {Built-in Function} address@hidden =} default_save_options (@var{new_val}) +## @deftypefnx {Built-in Function} {} default_save_options (@var{new_val}, "local") +## This function has been deprecated. Use @address@hidden +## instead. +## @seealso{save_default_options} +## @end deftypefn + +## Deprecated in 3.8 + +function retval = default_save_options (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "default_save_options is obsolete and will be removed from a future version of Octave, please use save_default_options instead"); + endif + + retval = save_default_options (varargin{:}); + +endfunction + diff --git a/scripts/deprecated/delaunay3.m b/scripts/deprecated/delaunay3.m --- a/scripts/deprecated/delaunay3.m +++ b/scripts/deprecated/delaunay3.m @@ -20,7 +20,7 @@ ## @deftypefn {Function File} address@hidden =} delaunay3 (@var{x}, @var{y}, @var{z}) ## @deftypefnx {Function File} address@hidden =} delaunay3 (@var{x}, @var{y}, @var{z}, @var{options}) ## -## @code{delaunay3} is deprecated and will be removed in Octave version 4.6. +## @code{delaunay3} is deprecated and will be removed in Octave version 4.4. ## Please use @code{delaunay} in all new code. ## ## Compute the Delaunay triangulation for a 3-D set of points. diff --git a/scripts/deprecated/dump_prefs.m b/scripts/deprecated/dump_prefs.m --- a/scripts/deprecated/dump_prefs.m +++ b/scripts/deprecated/dump_prefs.m @@ -20,7 +20,7 @@ ## @deftypefn {Function File} {} dump_prefs () ## @deftypefnx {Function File} {} dump_prefs (@var{fid}) ## -## @code{dump_prefs} is deprecated and will be removed in Octave version 4.6. +## @code{dump_prefs} is deprecated and will be removed in Octave version 4.4. ## Please use individual preference get/set routines in all new code. ## ## Dump the current settings of all user preferences to stdout in a format that diff --git a/scripts/deprecated/finite.m b/scripts/deprecated/finite.m --- a/scripts/deprecated/finite.m +++ b/scripts/deprecated/finite.m @@ -19,7 +19,7 @@ ## -*- texinfo -*- ## @deftypefn {Mapping Function} {} finite (@var{x}) ## -## @code{finite} is deprecated and will be removed in Octave version 4.6. +## @code{finite} is deprecated and will be removed in Octave version 4.4. ## Please use @code{isfinite} in all new code. ## ## Return a logical array which is true where the elements of @var{x} are diff --git a/scripts/deprecated/fmod.m b/scripts/deprecated/fmod.m --- a/scripts/deprecated/fmod.m +++ b/scripts/deprecated/fmod.m @@ -19,7 +19,7 @@ ## -*- texinfo -*- ## @deftypefn {Mapping Function} {} fmod (@var{x}, @var{y}) ## -## @code{fmod} is deprecated and will be removed in Octave version 4.6. +## @code{fmod} is deprecated and will be removed in Octave version 4.4. ## Please use @code{rem} in all new code. ## ## Return the remainder of the division @address@hidden / @var{y}}, computed diff --git a/scripts/deprecated/fnmatch.m b/scripts/deprecated/fnmatch.m --- a/scripts/deprecated/fnmatch.m +++ b/scripts/deprecated/fnmatch.m @@ -19,7 +19,7 @@ ## -*- texinfo -*- ## @deftypefn {Built-in Function} {} fnmatch (@var{pattern}, @var{string}) ## -## @code{fnmatch} is deprecated and will be removed in Octave version 4.6. +## @code{fnmatch} is deprecated and will be removed in Octave version 4.4. ## Please use @code{glob} or @code{regexp} in all new code. ## ## Return true or false for each element of @var{string} that matches any of diff --git a/scripts/deprecated/gen_doc_cache.m b/scripts/deprecated/gen_doc_cache.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/gen_doc_cache.m @@ -0,0 +1,39 @@ +## Copyright (C) 2013 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Function File} {} gen_doc_cache (@var{out_file}, @var{directory}) +## This function has been deprecated. Use @code{doc_cache_create} instead. +## @seealso{doc_cache_create} +## @end deftypefn + +## Deprecated in 3.8 + +function gen_doc_cache (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "gen_doc_cache is obsolete and will be removed from a future version of Octave, please use doc_cache_create instead"); + endif + + doc_cache_create (varargin{:}); + +endfunction + diff --git a/scripts/deprecated/interp1q.m b/scripts/deprecated/interp1q.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/interp1q.m @@ -0,0 +1,81 @@ +## Copyright (C) 2008-2013 David Bateman +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Function File} address@hidden =} interp1q (@var{x}, @var{y}, @var{xi}) +## One-dimensional linear interpolation without error checking. +## Interpolates @var{y}, defined at the points @var{x}, at the points +## @var{xi}. The sample points @var{x} must be a strictly monotonically +## increasing column vector. If @var{y} is a matrix or an N-dimensional +## array, the interpolation is performed on each column of @var{y}. If +## @var{y} is a vector, it must be a column vector of the same length as +## @var{x}. +## +## Values of @var{xi} beyond the endpoints of the interpolation result +## in NA being returned. +## +## Note that the error checking is only a significant portion of the +## execution time of this @code{interp1} if the size of the input arguments +## is relatively small. Therefore, the benefit of using @code{interp1q} +## is relatively small. +## @seealso{interp1} +## @end deftypefn + +function yi = interp1q (x, y, xi) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "interp1q is obsolete and will be removed from a future version of Octave; use interp1 instead"); + endif + + x = x(:); + nx = rows (x); + szy = size (y); + y = y(:,:); + [ny, nc] = size (y); + szx = size (xi); + xi = xi (:); + dy = diff (y); + dx = diff (x); + idx = lookup (x, xi, "lr"); + s = (xi - x (idx)) ./ dx (idx); + yi = bsxfun (@times, s, dy(idx,:)) + y(idx,:); + range = xi < x(1) | !(xi <= x(nx)); + yi(range,:) = NA; + if (length (szx) == 2 && any (szx == 1)) + yi = reshape (yi, [max(szx), szy(2:end)]); + else + yi = reshape (yi, [szx, szy(2:end)]); + endif +endfunction + + +%!shared xp, yp, xi, yi +%! xp = [0:2:10].'; yp = sin (2*pi*xp/5); +%! xi = [-1; 0; 2.2; 4; 6.6; 10; 11]; +%! yi = interp1 (xp,yp,xi); +%!assert (interp1q (xp,yp, [min(xp)-1; max(xp)+1]), [NA; NA]); +%!assert (interp1q (xp,yp,xp), yp, 100*eps); +%!assert (isempty (interp1q (xp,yp,[]))); +%!assert (interp1q (xp,yp,xi), yi); +%!assert (interp1q (xp,[yp,yp],xi), [yi, yi]); +%!assert (interp1q (xp,yp,[xi,xi]), [yi, yi]); +%!assert (interp1q (xp,[yp,yp],[xi,xi]), cat (3, [yi, yi], [yi, yi])); + diff --git a/scripts/deprecated/isequalwithequalnans.m b/scripts/deprecated/isequalwithequalnans.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/isequalwithequalnans.m @@ -0,0 +1,50 @@ +## Copyright (C) 2005-2013 William Poetra Yoga Hadisoeseno +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Function File} {} isequalwithequalnans (@var{x1}, @var{x2}, @dots{}) +## This function has been deprecated. Use @address@hidden instead. +## @seealso{isequaln} +## @end deftypefn + +## Deprecated in 3.8 + +function retval = isequalwithequalnans (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "isequalwithequalnans is obsolete and will be removed from a future version of Octave, please use isequaln instead"); + endif + + retval = isequaln (varargin{:}); + +endfunction + + +## test for equality +%!assert (isequalwithequalnans ({1,2,NaN,4},{1,2,NaN,4}), true) +%!assert (isequalwithequalnans ([1,2,NaN,4],[1,2,NaN,4]), true) +## test for inequality +%!assert (isequalwithequalnans ([1,2,NaN,4],[1,NaN,3,4]), false) +%!assert (isequalwithequalnans ([1,2,NaN,4],[1,2,3,4]), false) +## test for equality (struct) +%!assert (isequalwithequalnans (struct ('a',NaN,'b',2),struct ('a',NaN,'b',2),struct ('a',NaN,'b',2)), true) +%!assert (isequalwithequalnans (1,2,1), false) + diff --git a/scripts/deprecated/java_convert_matrix.m b/scripts/deprecated/java_convert_matrix.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/java_convert_matrix.m @@ -0,0 +1,48 @@ +## Copyright (C) 2012-2013 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Built-in Function} address@hidden =} java_convert_matrix () +## @deftypefnx {Built-in Function} address@hidden =} java_convert_matrix (@var{new_val}) +## @deftypefnx {Built-in Function} {} java_convert_matrix (@var{new_val}, "local") +## Query or set the internal variable that controls whether Java arrays are +## automatically converted to Octave matrices. The default value is false. +## +## When called from inside a function with the @qcode{"local"} option, the +## variable is changed locally for the function and any subroutines it calls. +## The original variable value is restored when exiting the function. +## @seealso{java_matrix_autoconversion, java_unsigned_conversion, java_debug} +## @end deftypefn + +function old_val = java_convert_matrix (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "java_convert_matrix is obsolete and will be removed from a future version of Octave; use java_matrix_autoconversion instead"); + endif + + if (nargin > 2) + print_usage (); + endif + + old_val = java_matrix_autoconversion (varargin{:}); + +endfunction + diff --git a/scripts/deprecated/java_debug.m b/scripts/deprecated/java_debug.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/java_debug.m @@ -0,0 +1,49 @@ +## Copyright (C) 2012-2013 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Built-in Function} address@hidden =} java_debug () +## @deftypefnx {Built-in Function} address@hidden =} java_debug (@var{new_val}) +## @deftypefnx {Built-in Function} {} java_debug (@var{new_val}, "local") +## Query or set the internal variable that determines whether extra debugging +## information regarding the initialization of the JVM and any Java exceptions +## is printed. +## +## When called from inside a function with the @qcode{"local"} option, the +## variable is changed locally for the function and any subroutines it calls. +## The original variable value is restored when exiting the function. +## @seealso{debug_java, java_convert_matrix, java_unsigned_conversion} +## @end deftypefn + +function old_val = java_debug (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "java_debug is obsolete and will be removed from a future version of Octave; use debug_java instead"); + endif + + if (nargin > 2) + print_usage (); + endif + + old_val = debug_java (varargin{:}); + +endfunction + diff --git a/scripts/deprecated/java_invoke.m b/scripts/deprecated/java_invoke.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/java_invoke.m @@ -0,0 +1,57 @@ +## Copyright (C) 2007, 2013 Michael Goffioul +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Built-in Function} address@hidden =} java_invoke (@var{obj}, @var{methodname}) +## @deftypefnx {Built-in Function} address@hidden =} java_invoke (@var{obj}, @var{methodname}, @var{arg1}, @dots{}) +## Invoke the method @var{methodname} on the Java object @var{obj} with the +## arguments @var{arg1}, @dots{} For static methods, @var{obj} can be a +## string representing the fully qualified name of the corresponding class. +## The function returns the result of the method invocation. +## +## When @var{obj} is a regular Java object, structure-like indexing can be +## used as a shortcut syntax. For instance, the two following statements are +## equivalent +## +## @example +## @group +## ret = java_invoke (x, "method1", 1.0, "a string") +## ret = x.method1 (1.0, "a string") +## @end group +## @end example +## +## @seealso{javaMethod, javaObject} +## @end deftypefn + +function retval = java_invoke (obj, methodname, varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "java_invoke is obsolete and will be removed from a future version of Octave, please use javaMethod instead"); + endif + + if (nargin < 2) + print_usage (); + endif + + retval = javaMethod (methodname, obj, varargin{:}); + +endfunction + diff --git a/scripts/deprecated/java_new.m b/scripts/deprecated/java_new.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/java_new.m @@ -0,0 +1,51 @@ +## Copyright (C) 2012-2013 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Loadable Function} address@hidden =} java_new (@var{name}) +## @deftypefnx {Loadable Function} address@hidden =} java_new (@var{name}, @var{arg1}, @dots{}) +## Create a Java object of class @var{name}, by calling the class constructor +## with the arguments @var{arg1}, @dots{} +## +## @example +## @group +## x = java_new ("java.lang.StringBuffer") +## x = java_new ("java.lang.StringBuffer", "Initial string") +## @end group +## @end example +## +## @seealso{javaObject, javaMethod} +## @end deftypefn + +function retval = java_new (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "java_new is obsolete and will be removed from a future version of Octave; please use javaObject instead"); + endif + + if (nargin < 1) + print_usage (); + endif + + retval = javaObject (varargin{:}); + +endfunction + diff --git a/scripts/deprecated/java_unsigned_conversion.m b/scripts/deprecated/java_unsigned_conversion.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/java_unsigned_conversion.m @@ -0,0 +1,50 @@ +## Copyright (C) 2012-2013 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Built-in Function} address@hidden =} java_unsigned_conversion () +## @deftypefnx {Built-in Function} address@hidden =} java_unsigned_conversion (@var{new_val}) +## @deftypefnx {Built-in Function} {} java_unsigned_conversion (@var{new_val}, "local") +## Query or set the internal variable that controls how integer classes are +## converted when Java matrix autoconversion is enabled. When enabled, Java +## arrays of class Byte or Integer are converted to matrices of class uint8 or +## uint32 respectively. +## +## When called from inside a function with the @qcode{"local"} option, the +## variable is changed locally for the function and any subroutines it calls. +## The original variable value is restored when exiting the function. +## @seealso{java_unsigned_autoconversion, java_convert_matrix, debug_java} +## @end deftypefn + +function old_val = java_unsigned_conversion (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "java_unsigned_conversion is obsolete and will be removed from a future version of Octave; use java_unsigned_autoconversion instead"); + endif + + if (nargin > 2) + print_usage (); + endif + + old_val = java_unsigned_autoconversion (varargin{:}); + +endfunction + diff --git a/scripts/deprecated/javafields.m b/scripts/deprecated/javafields.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/javafields.m @@ -0,0 +1,54 @@ +## Copyright (C) 2007, 2013 Michael Goffioul +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Function File} {} javafields (@var{javaobj}) +## @deftypefnx {Function File} {} javafields ("@var{classname}") +## @deftypefnx {Function File} address@hidden =} javafields (@dots{}) +## Return the fields of a Java object or Java class in the form of a cell +## array of strings. If no output is requested, print the result +## to the standard output. +## @seealso{fieldnames, methods, javaObject} +## @end deftypefn + +function fld_names = javafields (javaobj) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "javafields is obsolete and will be removed from a future version of Octave, please use fieldnames instead"); + endif + + if (nargin != 1) + print_usage (); + endif + + c_methods = javaMethod ("getFields", "org.octave.ClassHelper", javaobj); + method_list = ostrsplit (c_methods, ';'); + + if (nargout == 0) + if (! isempty (method_list)) + disp (method_list); + endif + else + fld_names = cellstr (method_list); + endif + +endfunction + diff --git a/scripts/deprecated/javamethods.m b/scripts/deprecated/javamethods.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/javamethods.m @@ -0,0 +1,54 @@ +## Copyright (C) 2007, 2013 Michael Goffioul +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Function File} {} javamethods (@var{javaobj}) +## @deftypefnx {Function File} {} javamethods ("@var{classname}") +## @deftypefnx {Function File} address@hidden =} javamethods (@dots{}) +## Return the methods of a Java object or Java class in the form of a cell +## array of strings. If no output is requested, print the result to the +## standard output. +## @seealso{methods, fieldnames, javaMethod, javaObject} +## @end deftypefn + +function mtd_names = javamethods (classname) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "javamethods is obsolete and will be removed from a future version of Octave, please use methods instead"); + endif + + if (nargin != 1) + print_usage (); + endif + + cls_methods = javaMethod ("getMethods", "org.octave.ClassHelper", classname); + method_list = ostrsplit (cls_methods, ';'); + + if (nargout == 0) + if (! isempty (method_list)) + disp (method_list); + endif + else + mtd_names = cellstr (method_list); + endif + +endfunction + diff --git a/scripts/deprecated/luinc.m b/scripts/deprecated/luinc.m --- a/scripts/deprecated/luinc.m +++ b/scripts/deprecated/luinc.m @@ -20,7 +20,7 @@ ## @deftypefnx {Built-in Function} address@hidden, @var{U}, @var{P}, @var{Q}] =} luinc (@var{A}, @var{droptol}) ## @deftypefnx {Built-in Function} address@hidden, @var{U}, @var{P}, @var{Q}] =} luinc (@var{A}, @var{opts}) ## -## @code{luinc} is deprecated and will be removed in Octave version 4.6. +## @code{luinc} is deprecated and will be removed in Octave version 4.4. ## Please use @code{ilu} or @code{ichol} in all new code. ## ## Produce the incomplete address@hidden of the sparse matrix @var{A}. diff --git a/scripts/deprecated/module.mk b/scripts/deprecated/module.mk --- a/scripts/deprecated/module.mk +++ b/scripts/deprecated/module.mk @@ -2,16 +2,30 @@ deprecated_FCN_FILES = \ deprecated/bicubic.m \ + deprecated/default_save_options.m \ deprecated/delaunay3.m \ deprecated/dump_prefs.m \ deprecated/find_dir_in_path.m \ deprecated/finite.m \ deprecated/fmod.m \ deprecated/fnmatch.m \ + deprecated/gen_doc_cache.m \ + deprecated/interp1q.m \ + deprecated/isequalwithequalnans.m \ deprecated/isstr.m \ + deprecated/java_convert_matrix.m \ + deprecated/java_debug.m \ + deprecated/java_invoke.m \ + deprecated/java_new.m \ + deprecated/java_unsigned_conversion.m \ + deprecated/javafields.m \ + deprecated/javamethods.m \ deprecated/luinc.m \ + deprecated/nfields.m \ deprecated/octave_tmp_file_name.m \ - deprecated/nfields.m \ + deprecated/re_read_readline_init_file.m \ + deprecated/read_readline_init_file.m \ + deprecated/saving_history.m \ deprecated/strmatch.m \ deprecated/syl.m \ deprecated/usage.m diff --git a/scripts/deprecated/nfields.m b/scripts/deprecated/nfields.m --- a/scripts/deprecated/nfields.m +++ b/scripts/deprecated/nfields.m @@ -20,7 +20,7 @@ ## @deftypefn {Function File} {} nfields (@var{s}) ## Return the number of fields of the structure @var{s}. ## -## @strong{Warning:} @code{nfields} is scheduled for removal in version 4.6. +## @strong{Warning:} @code{nfields} is scheduled for removal in version 4.4. ## Use @code{numfields} instead. ## @seealso{numfields, fieldnames} ## @end deftypefn diff --git a/scripts/deprecated/octave_tmp_file_name.m b/scripts/deprecated/octave_tmp_file_name.m --- a/scripts/deprecated/octave_tmp_file_name.m +++ b/scripts/deprecated/octave_tmp_file_name.m @@ -22,7 +22,7 @@ ## @deftypefnx {Built-in Function} address@hidden =} octave_tmp_file_name (@var{dir}, @var{prefix}) ## ## @code{octave_tmp_file_name} is deprecated and will be removed in Octave -## version 4.6. Use @code{tempname} for equivalent functionality. +## version 4.4. Use @code{tempname} for equivalent functionality. ## ## Return a unique temporary file name as a string. ## diff --git a/scripts/deprecated/re_read_readline_init_file.m b/scripts/deprecated/re_read_readline_init_file.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/re_read_readline_init_file.m @@ -0,0 +1,40 @@ +## Copyright (C) 2013 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Built-in Function} {} re_read_readline_init_file (@var{file}) +## This function has been deprecated. Use +## @address@hidden instead. +## @seealso{readline_read_init_file} +## @end deftypefn + +## Deprecated in 3.8 + +function re_read_readline_init_file (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "re_read_readline_init_file is obsolete and will be removed from a future version of Octave, please use readline_re_read_init_file instead"); + endif + + readline_re_read_init_file (varargin{:}); + +endfunction + diff --git a/scripts/deprecated/read_readline_init_file.m b/scripts/deprecated/read_readline_init_file.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/read_readline_init_file.m @@ -0,0 +1,40 @@ +## Copyright (C) 2013 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Built-in Function} {} read_readline_init_file (@var{file}) +## This function has been deprecated. Use +## @address@hidden instead. +## @seealso{readline_read_init_file} +## @end deftypefn + +## Deprecated in 3.8 + +function read_readline_init_file (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "read_readline_init_file is obsolete and will be removed from a future version of Octave, please use readline_read_init_file instead"); + endif + + readline_read_init_file (varargin{:}); + +endfunction + diff --git a/scripts/deprecated/saving_history.m b/scripts/deprecated/saving_history.m new file mode 100644 --- /dev/null +++ b/scripts/deprecated/saving_history.m @@ -0,0 +1,41 @@ +## Copyright (C) 2013 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Built-in Function} address@hidden =} saving_history () +## @deftypefnx {Built-in Function} address@hidden =} saving_history (@var{new_val}) +## @deftypefnx {Built-in Function} {} saving_history (@var{new_val}, "local") +## This function has been deprecated. Use @address@hidden instead. +## @seealso{history_save} +## @end deftypefn + +## Deprecated in 3.8 + +function retval = saving_history (varargin) + + persistent warned = false; + if (! warned) + warned = true; + warning ("Octave:deprecated-function", + "saving_history is obsolete and will be removed from a future version of Octave, please use history_save instead"); + endif + + retval = save_default_options (varargin{:}); + +endfunction + diff --git a/scripts/deprecated/strmatch.m b/scripts/deprecated/strmatch.m --- a/scripts/deprecated/strmatch.m +++ b/scripts/deprecated/strmatch.m @@ -22,7 +22,7 @@ ## @deftypefn {Function File} {} strmatch (@var{s}, @var{A}) ## @deftypefnx {Function File} {} strmatch (@var{s}, @var{A}, "exact") ## -## @code{strmatch} is deprecated and will be removed in Octave version 4.6. +## @code{strmatch} is deprecated and will be removed in Octave version 4.4. ## Use @code{strncmp} (normal case), or @code{strcmp} (@qcode{"exact"} case), ## or @code{regexp} in all new code. ## diff --git a/scripts/deprecated/syl.m b/scripts/deprecated/syl.m --- a/scripts/deprecated/syl.m +++ b/scripts/deprecated/syl.m @@ -19,7 +19,7 @@ ## -*- texinfo -*- ## @deftypefn {Built-in Function} address@hidden =} syl (@var{A}, @var{B}, @var{C}) ## -## @code{syl} is deprecated and will be removed in Octave version 4.6. +## @code{syl} is deprecated and will be removed in Octave version 4.4. ## Use @code{sylvester} for the equivalent functionality. ## ## Solve the Sylvester equation diff --git a/scripts/deprecated/usage.m b/scripts/deprecated/usage.m --- a/scripts/deprecated/usage.m +++ b/scripts/deprecated/usage.m @@ -19,7 +19,7 @@ ## -*- texinfo -*- ## @deftypefn {Built-in Function} {} usage (@var{msg}) ## -## @code{usage} is deprecated and will be removed in Octave version 4.6. +## @code{usage} is deprecated and will be removed in Octave version 4.4. ## Please use @code{print_usage} in all new code. ## ## Print the message @var{msg}, prefixed by the string @samp{usage: }, and