GNU Octave Changelog

What's new in GNU Octave 4.4.1

Aug 15, 2018
  • Improvements:
  • disable compound binary operator optimization (bug #54465)
  • Fix initial bracketing for fzero (bug #54445).
  • Fix scrolling command window in Windows 10 (bug #52496).
  • Produce a single backtrace for global declaration overriding local variable.
  • revive setstr (bug #54417)
  • ode15i.m: In tests, use unlikely symbol name instead of “foo”.
  • run.m: In test, use a symbol name that is unlikely to be a function.
  • avoid alignment warning on solaris systems (bug #54389)
  • Improve error message if iconv is not available (bug #54384).
  • avoid error in gnulib wrapper on systems that don’t have fpu control word
  • avoid unused variable warning on some systems
  • avoid fprintf format warning on some systems
  • eliminate unnecessary sun-utils.h header file
  • index.tst: Make tests case insensitive for NaN, NA, Inf values (bug #54385).
  • positive value from uname can mean success (bug #54235)
  • add some bug numbers to the test suite
  • consider any non-zero return from uname to be failure (bug #54235)
  • if freetype detection fails, unset FT2_* config variables (bug #54369)
  • Produce same random number stream for "state" initialized to Inf (bug #54342).
  • avoid crash when loading classdef objects (bug #54319)
  • hist.m: Don’t error out if called with identical Y values (bug #54326).
  • Parse empty struct input correctly (bug #54318).
  • Fix regression in 4.2.0 which disallowed printing with some Ghostscript devices.
  • transform libiconv.dll.a to -liconv for mkoctfile (bug #53920)
  • trapz.m: Overhaul function to fix errors with different orientations of X and Y (bug #54277).
  • Write audio OGG files in smaller chunk sizes (bug #54280).
  • Use LAPACK DTGSEN subrouting for ordered-qz computation (bug #53761)
  • Fix blkmm to work with empty matrices (bug #54261).
  • use octave bat file in pkg install configure/make when in windows (bug #53938).
  • repelem.m: Fix behavior when final repeat count is 0 (bug #54275).
  • .hgsub: Use hg.octave.org instead of hg-new.octave.org
  • move some fortran and dynamic linking configure checks to separate macros
  • configure.ac: Reorder tests so that FPICFLAG is correctly set on Solaris (bug #54235).
  • eigs.m: Decrease opts.maxit in UnconvergedEigenvalues BIST (bug #54179).
  • fix ambiguous overload build error on Solaris (bug #54217)
  • pkg.m: Restore ability to use file glob patterns when specifying local pkg files (bug #54224).
  • Use %ld format code in xerbla printf (bug #54206).
  • use int instead of size_t for xerbla string length (bug #54206)
  • Pair fclose with all fopen and prevent file-io.cc test fails (bug #54180).
  • fsolve.m: Return info=1 when initial guess x0 is correct (bug #53991).
  • fsolve.m: Add BIST test for bug #53991.
  • fsolve.m: exit with info=-2 when singularity reached (bug #53991).
  • ensure that Make sees Octave exit status when running make check
  • interpreter.cc (intialize_xerbla_error_handler, xerbla_abort): New functions.
  • improve warnings for global/local variable conflicts (bug #54052)
  • maybe preserve local value when declaring variable global (bug #54052)
  • fix regression in text (bug #54109)
  • create valid tmp scope for who -file (bug #54030)
  • polar.m: Correct axes limits when using negative rho values (bug #53999).
  • text.m: Fix regression when ‘String’ property is specified (bug #54067).
  • allow NULL mxArray* to be returned as undefined from fcn calls (bug #54096)
  • treat NULL as [] for mxSetFieldByNumber and mxSetCell (bug #54096)
  • Properly test Qt offscreen printing during manual figures generation.
  • Avoid segfault with textscan (bug #53786).
  • add Qt include needed to build against Qt 5.11 (bug #53978)
  • make listing local functions for command completion work again (bug #53925)
  • Stop segfault in debug mode with readline complete (bug #53925).
  • Remove code to install default colors for qt toolkit from window theme (bug #53805).
  • back out changes attempting to automatically call handle class destructor
  • residue.m: Use a pre-conditioner on final matrix division for numerical stability (bug #53869)
  • track multiple file types (oct|m|mex) for private functions (bug #53856)
  • also preserve temporaries in indexing expressions (bug #53844)
  • also update load-path info if private subdir time stamp changes (bug #53856)
  • defer deletion of temporaries in argument lists (bug #53844)
  • improve test for handle class destructor
  • call delete method correctly for handle class objects (bug #53844)
  • use size_t for f77 char arg length params with GCC 8 (bug #53872)
  • Fix lrwork dimension in svd for complex cases (bug #53823).
  • lines.m: Don’t open empty figure or axes if none already exist (bug #53648)
  • GUI:
  • gui: fix editor rendering on some displays, disable QScintilla buffered drawing
  • Build system:
  • m4/octave_blas_f77_func.m4: Restore 64-bit integer BLAS detection (bug #53853).
  • build: include inplace_edit.pl in tarball (bug #54349).
  • fix test for 8-byte integer BLAS lib on big-endian systems (bug #53853)
  • OCTAVE_CHECK_LIB: avoid shell syntax error if not checking for lib
  • build: avoid compiler warning about unused function abs (bug #54237)
  • build: Work around bug in perl 5.28.0 (bug #54202).
  • Documentation:
  • doc: Add version number to top title of HTML manual for clarity.
  • flip.m: Update docstring.
  • setdiff.m: Fix typo in documentation (bug #54393).
  • doc: Replace instances of realroot (non-existent) with realpow (bug #54336).
  • HACKING.md: Update for recently removed files.
  • remove unused qtinfo source files
  • doc: Remove bad calling convention for warning with a mode struct (bug #54288)
  • Document work-around for disabling OpenGL software rendering (bug #53845).
  • xpow.cc (err_nonsquare_matrix): Clarify error message (bug #54248).
  • doc: Miscellaneous documentation fixes all over the manual (bug #54288).
  • doc: small fixes to size and plot.txi (bug #54283).
  • doc: Clarify description of Example 4 for size (bug #54283).
  • doc: Fix malformed URL (bug #54225).
  • Fix typo in error statement from containers.Map (bug #54103).
  • doc: Use qcode macro to document fseek offsets (bug #51402).
  • Use correct abbreviation UTC for Coordinated Universal Time (bug #53918).
  • doc: Rewrite section on indexing for clarity (bug #53675).
  • md5sum.m: Fix error in sample code (bug #53829).

New in GNU Octave 4.4.0 (May 6, 2018)

  • This major release improves compatibility with Matlab and contains many new and improved functions.
  • A list of important user-visible changes is available on the Release Notes page at:
  • https://www.gnu.org/software/octave/NEWS-4.4.html

New in GNU Octave 4.2.1 (Jun 17, 2017)

  • This version is a bug fixing release:
  • doc: Fix differences between example code and run time results (bug #50282).
  • Fix opengl “invalid operation” when zooming (bug #50317).
  • doc: provide complete examples in plotting documentation (bug #44263).
  • doc: Overhaul Java interface description (bug #50299).
  • doc: Add documentation for hex and binary prefix and _ separator(bug #50305 and bug #50334).
  • Fix incorrect handling of 0b binary numbers in complex constants.
  • Guarantee returning std::string from tilde_expand functions (bug #50234).
  • Workaround segfault in file_stat (bug #50234).
  • Better documentation of *fcn properties.
  • genpropdoc.m: document more graphics properties (bug #50337).
  • doc: Fix build of docs broken in sub2ind (bug #50348).
  • always fork and exec when starting the gui (bug #49609).
  • maint: add classdef test files from cset 194481349d22 (bug #49819).
  • print.m: fix regression with -append option (bug #50318).
  • version.m: document that -release returns an empty string (bug #50294).
  • Don’t display legend, colorbar, and annotation axes coordinates (bug #50272).
  • doc: Remove trailing "n" from sleep and usleep docstrings (bug #50301).
  • fix settings update for existing editor tabs (regression from b3ced5e3cebb).
  • acinclude.m4: Correct test for SetPlaceHolderText.
  • configure: use the correct flags when testing for the CXSparse library version.
  • __run_test_suite__.m: fix typo in return values.
  • qp.m: Fix regression with incorrect vector dimensions (bug #50067).
  • make editor save its widget settings again when octave quits
  • Prevent infinite loop in global documentation search (bug #50177).
  • connect execute command signal in editor constructor (bug #50171)
  • connect editors execute command signal to the required slot (bug #50171)
  • check if input is class method before declaring it unimplemented (patch #9238 and bug #49694).
  • doc: Expand documentation for cast (bug #50201).
  • doc: Correct two entries in Table 34.1 (bug #50203).
  • oop.txi: Improve table formatting (bug #50203).
  • Workaround segfault when an error occurs while printing (bug #49779)
  • doc: Fix ## in middle of docstring/comment lines (bug #50145).
  • doc: Reword documentation about subplots in 15.2.4 (bug #50148).
  • doc: Update unimplemented list of functions and where to find them (bug #50098).
  • axis.m: Do not set plotboxaspectratio to 0 (bug #49755).
  • help.m: Return valid list of keywords for --list.
  • don’t rethrow exception in destructor (bug #49304).
  • rethrow octave::exit_exception (bug #49304).
  • doc: Don’t use @code in @deftypefn because it expands badly in plain text format.
  • Update appdata.xml to follow conventions (bug #49952).
  • mexproto.h (mxAssert, mxAssertS): ensure operator precedence (bug #50050).
  • compare_plot_demos: fix spurious link to next page.
  • compare_plot_demos: fix HTML syntax, simplify output, remove external deps (bug #49709).
  • Calculate error in solution for ode solvers correctly (bug #49950).
  • doc: Add more depth to explanation of ~ function argument (bug #49444).
  • Use GetModuleFileName for getting octave path in windows (bug #48671).
  • Use C++ updaters for labels color (bug #49980).
  • distinguish elements vs. bytes in fread (bug #49699).
  • doc: Add more seealso links between docstrings.
  • use correct dimensions for liboctave += and -= matrix operators.
  • fix cut and paste error in sparse matrix solver.
  • doc: Review Appendix A, External Code Interface, of manual.
  • fminsearch.m: Fix error in guarded_eval.
  • Move frame2im and im2frame to image/ directory (bug #49939).
  • doc: Document nargout=0 calling mode for ode23, ode45.
  • Fix undefined return argument for more than 2 outputs from ode solver (bug #49890).
  • CITATION: Use and instead of comma to separate author names.
  • CITATION: Fix accent for Søren in BibTeX entry.
  • Fix inv for hermitian matrices (bug introduced in 5ce959c55cc0) (bug #49904).
  • doc: Correct documentation for javaclasspath file (bug #49873).
  • Fix gzip for certain types of gzip files (bug #49760).
  • Fix typo in liboctave version info (bug #49860).
  • Initialize ODE Event function with start time (bug #49846).
  • languages/de_DE.ts: Fix spacing and punctuation (patch #9188).
  • allow configure test to succeed without implicit fcn decls (bug #49782).
  • gnulib: import fix for link.m4.
  • allow external docstrings from .oct files to be found again (bug #49687).
  • don’t require semicolon between property list elements (bug #49819).
  • Fall back to Octave’s regular display method for class objects without a display method.
  • exit with non-zero status if parsing or evaluation of --eval code fails.
  • display.m: Correctly display output for non-class objects (bug #49753 and bug #49794).
  • Don’t run publish.tst unless OSMESA or gnuplot are available (bug #49767).
  • doc: Rewrite parts of Introduction chapter.
  • doc: Rewrite docstrings for sub2ind and ind2sub.
  • doc: Small fixes to docstrings (bug #49733).
  • doc: Update documentation for norm, normest, normest1, condest.
  • doc: Update docstring for condest.
  • find help for function aliases again (bug #49687).
  • legend.m: backport cset 7184b4516a68 (bug #49675).
  • doc: Add programming note to caxis docstring.
  • axis.m: Replace call to non-existent function clim with caxis.
  • doc: Update documentation for axis.
  • doc: Update documentation for [xyz]lim.m.
  • preserve lasterror info on rethrow (bug #49642).
  • light.m: Update docstring.
  • Change text describing demo plots to reflect new ColorOrder (bug #49288).
  • norm: fix input validation tests.
  • norm: fix error in input argument validation leading to segfault (bug #49634).
  • doc: Update month of TeX title page.
  • doc: Clarify inputs and outputs for rgb2hsv.

New in GNU Octave 4.0.2 (Apr 22, 2016)

  • liboctave/Makefile.am (liboctave_revision): Increment.
  • libinterp/Makefile.am (liboctinterp_revision): Increment.
  • configure.ac: Remove AC_CHECK_FUNC for pipe now that gnulib::pipe used.
  • doc: fix on manual the syntax to empty elements from cell array.
  • octave.texi: Set document encoding to UTF-8.
  • avoid mulitple definitions of static function-scope vars (bug #47372)
  • symtab.h, symtab.cc (octave_value symbol_table::dummy_octave_value, symbol_table::symbol_record symbol_table::dummy_symbol_record): New class-scope static variables. Use them to eliminate function-scope static variables.
  • ov-int8.cc, ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-uint8.cc, ov-uint16.cc, ov-uint32.cc, ov-uint64.cc, ov-scalar.cc, ov-flt-complex.cc, ov-complex.cc, ov-classdef.cc, ov-bool.cc, Array-jit.cc, Array-os.cc, Array-tc.cc, Array-C.cc, Array-b.cc, Array-ch.cc, Array-d.cc, Array-f.cc, Array-fC.cc, Array-i.cc, Array-idx-vec.cc, Array-s.cc, Array-str.cc, Array-voidp.cc: Prevent impliticit template instantiation.
  • Array-sym.cc: Delete obsolete file.
  • Initialize variable to stop unstable results for lgamma (bug #47524).
  • call openmp function at initialization (bug #47372)
  • configure.ac: Check for omp.h and omp_get_num_threads.
  • sysdep.cc: Conditionally include .
  • (sysdep_init) Call omp_get_num_threads if it is available.
  • macros.texi: Colorized links for PDF files with Texinfo 6.x.

New in GNU Octave 4.0.0 (May 30, 2015)

  • Major new release with many new features, including a graphical user interface, support for classdef object-oriented programming, better compatibility with Matlab, and many new and improved functions.

New in GNU Octave 3.8.2 (Jan 23, 2015)

  • One of the biggest new features for the Octave 3.8.x release series is a graphical user interface. It is the one thing that users have requested most often over the last few years and now it is almost ready. But because it is not quite as polished as we would like, we have decided to wait until the 4.0.x release series before making the GUI the default interface (until then, you can use the --force-gui option to start the GUI).
  • Bug fixes:
  • ls.m: Fix bug listing directories with spaces in name (bug #42920)
  • Don't require Qt 4.7 (bug #42657)
  • Fix compiling GUI on Alpha platforms (bug #42839)
  • Fix png check for image class in older GraphicsMagick (bug #42834)
  • Correct variable name in waitforbuttonpress docstring (bug #42768)
  • Stop mkoctfile process if any part of compilation or linking fails (bug #42704)
  • Create octave.desktop files even when --disable-docs configured (bug #42720)
  • Don't deprecate java_get() and java_set() functions (bug #41239)
  • Better guess if rem or mod could be zero (bug #42627)
  • Improve accuracy of range/scalar arithmetic (bug #42589)
  • strread.m: Process string escapes on single quoted format (bug #42609)
  • strread.m: drop valid delimiters from format specifier list (bug #42609)
  • Check for name and type keyword to return as an octave ascii data file (bug #42586)
  • Use gnulib log2 modules (bug #42583)
  • Return error code from sparse chol factorization (bug #42587)
  • Use button value 1 for mouse button keypress 1063 (bug #42489)
  • Correctly return 0 for empty matrices (bug #42563)
  • Allow loading mat5 files generated from R and Python (bug #42562)
  • Fix xticklabel with minor grid (bug #38139, bug #40256)
  • Only show directories in search directory dialog activated from files browser
  • Fix typo in graphics.in.h (bug #42535).
  • Fix incorrect sparse matrix example code in oct-file chapter (bug #41799)
  • Fix binmap for sparse-scalar or scalar-sparse operations (bug #40813)
  • Fix infinite loop and segfault for atan2, fmod, hypot (bug #40813)
  • eigs: selection columns of V, not rows (bug #41795)
  • Fix regression in hist with multiple columns and normalization (bug #42394)
  • Fix regression in width of bars for hist() (bug #42401)
  • Fix segfault with sparse inputs to complex() (bug #42290)
  • don't crash on empty script files (bug #42064)
  • Fix assert() segfaults with profiler (bug #39587, bug #39586)
  • Fix blank line appearing in profiler output (bug #39524)
  • isaxes.m: Fix bug where some inputs do not show up in outputs (bug #42362)
  • Correctly follow legend interpreter property for gnuplot (bug #40064)
  • Fix extra backslash escape for gnuplot when interpreter=none (bug #36744)
  • Fix segfault if subsasgn in @class returns no output (bug #41945)
  • __gnuplot_get_var__.m: Fix accidental use of gcf causing figure popups in waitbar (bug #41446)
  • spy.m: Use nnz, not numel, to avoid overflowing octave_idx_type (bug #42116)
  • Fix inverted colors when printing uint8/uint16 images (bug #42107)
  • force integer font metric in gui terminal (partial fix of bug #37187)
  • Correctly validate arguments to dot function (bug #42061)
  • interp1.m: fix function for inputs w/multiple discontinuities (bug #41980)
  • don't truncate when casting char to uintN values (bug #42054)
  • libqterminal: Initialize m_cursorBlinking value (bug #41814)
  • Set only 'axis tight' for image functions and Matlab compatibility (bug #42043, bug #41886)
  • fminunc.m: Fix typo in header documentation (bug #42011)
  • Fix segmentation fault for interp2 and pchip method (bug #41838)
  • __makeinfo__: Process Texinfo docstrings without type conversion (bug #41965)
  • provide better default for Mac keyboard layouts (bug #41337)
  • listdlg.m: return Octave value rather than Java int object (bug #41931)
  • textscan.m: Fix undefined whitespace error with empty format input (bug #41824)
  • waitbar.m: Fix regression of plots openin in waitbar window (bug #41914)
  • Fix dead assignment in oct-rand.cc do_float_scalar (bug #41827)
  • info on experimental gui is displayed with vertical scroll bar (bug #41840)
  • imagesc.m: Fix regression causing imagesc to display with 'axis equal' (bug #41886)
  • r1mach.f: Fix cut and paste errors (bug #32120)
  • Force non-native menu bar for the editor on mac (bug #41823)