Octave Version 5.2.0 has been released and is now available for download. An official Windows binary installer is also available. For macOS see the installation instructions in the wiki.

This version is a bug fixing release:


  • Avoid color changes in MS Windows GUI terminal (bug #57658).
  • Lock amd and symbfact to avoid segmentation fault with SuiteSparse (bug #57435).
  • Fix segfault when calculating patch vertex normals (bug #57353).
  • Fix segfault in constructing patch normals for lighting (bug #57353).
  • mat2str.m: Fix for logical matrix (add transpose).
  • improve file equality check for MS Windows (bug #55161).
  • ismember.m: Fix second return argument when values are complex (bug #52437).
  • findobj.m: Fix typo and correctly handle numeric properties (bug #57030).
  • Correctly display integer types with format hex (bug #56966).
  • Cast winqueryreg REG_DWORD types to DWORD (bug #56703).
  • Fix numerous errors in audiowrite / audioread (bug #56889).
  • print.m: Pass quoted path to octave-svgconvert (bug #56768).
  • dir.m: Fix occasionally returning incorrect folder field (bug #55448).
  • Stop segfault when calling 3-input form of diag with cell arrays (bug #56711).
  • improve message for setting breakpoint in nonexistent function (bug #56157).
  • Use framebuffer object for printing invisible Qt figures on mac (bug #55268).
  • Escape backslash characters in EPS output (bug #56448).
  • Use replacement characters to display non UTF-8 strings in figures (bug #55974).
  • inputrc: Add warning about modification (bug #56079).
  • documentation.cc (global_search): just return if query string is empty (bug #56388).
  • Default (c)transpose for old style class arrays (bug #56323).
  • Always reserve at least 1 element of storage for sparse matrices (bug #56232).
  • Don’t segfault at exit after reading malformed HDF5 file (bug #56149).
  • Fix pause() with no arguments called on Windows (bug #55943).
  • refactor minimum eigenvalue index search in qp (bug #56037).
  • qp: fix obscure corner case when calculating qp caused by a typo (bug #56037).
  • use std::streampos instead of std::ios::streampos (patch #9782).
  • fix pause and kbhit with glibc 2.28 end-of-file state behavior (bug #55029).
  • Fix return of left-handed vectors when inputs are complex (bug #56026).
  • waitbar.m: Fix hang when using createcancelbtn property (bug #55963).
  • shading.m: Fix unexpected error when multiple hggroups present (bug #55993).
  • dec2base.m: Correctly handle zero matrix input (bug #56005).
  • eliminate duplicate graphics callback object stack (bug #55908).
  • Improve performance when closing figures (bug #55908).
  • Reduce time to process pkg -forge list by 30X (bug #39479).
  • Feed fig2dev with PDF files converted from svg (bug #55906).
  • Improve error checking for iconv_open.
  • poly.m: fix the fix for input of complex conjugate pairs (bug #53897).
  • mkoctfile: use the TMPDIR environment variable if set (bug #55814).
  • line.m: Fix creation of unwanted axes (bug #55840).
  • Accept 4-input form for quiver3 (bug #55570).
  • pkg.m: restore installing packages from zip archives (bug #55788).
  • axis.m: Fix issues with equal argument (bug #55619, bug #55614, bug #55574, bug #55514, bug #54848, bug #53724, bug #53504, bug #53336, bug #51938, bug #50356).
  • ordeig.m: Do not fail on 1x1 matrices (bug #55779).


  • fix editors search and replace in selection (bug #56405).
  • undo a complete replace all action in the editor (bug #56405).
  • fix missing unlock of mutex when gui editor is not present (bug #56097).
  • prevent unnamed editor tab from being closed by rmdir (bug #55888).
  • prevent editor from closing files that are not affected by rmdir (bug #55823).
  • fix creating keyword files for editor autocompletion (bug #55835).
  • fix dock widget position when being dragged out of the main window (bug #55704).

Build system / Tests

  • fetch upstream gnulib changes using git fetch
  • update gnulib archive if requested changeset is not in the local archive
  • eliminate gnulib subrepo (bug #57044).
  • configure: prevent overlinking when SUNDIALS is disabled (bug #55956).
  • use QtCore and Qt5Gui modules instead of Qt5OpenGL (bug #55735).
  • make building with Qt4 QGLWidget work again (bug #55735).
  • build: adapt mk-qthelp.pl to changes in Texinfo 6.7.
  • BIST should not rely on the current directory to be writable.
  • bp-table.cc: Fix test.
  • maint: Make old style class tests Matlab compatible.
  • Add BIST tests for unlink (bug #56097).


  • fix many spelling errors (bug #57613).
  • help: improve documentation for the startup.m user script.
  • avoid conflict with @seealso macro in Texinfo 6.6 (bug #55952)
  • mk-doc-cache.pk: Also translate @seealso here. (bug #55952).
  • makeinfo.m: Also translate @seealso here (bug #55952).
  • polar.m: Document that input is expected to be in radians (bug #57052).
  • gallery.m: Fix typo in docstring for poisson (bug #56267).
  • Add 1024x1024 Octave logo icon (bug #55836).
  • add .editorconfig for default file encoding and indentation.
  • octave.doap: Copy localized (short) description over from appdata (bug #55279).
  • org.octave.Octave.appdata.xml: Add German and French description (bug #55279).
  • languages/*.ts: updated language files (bug #55772).
  • quiver3.m: Fix texinfo typo in docstring from cset f7b10bd40045.
  • doc: fix . Operator Index entry to build with Texinfo 6.7.
  • doc: improve example of using global variables from oct-files.
  • doc: Create en-dashes and em-dashes correctly in documentation.
  • doc: expand page_output_immediately doc string, mention page_screen_output.
  • doc: Clarify documentation of history_file (bug #57027).
  • doc: Improve documentation for get_help_text, get_help_text_from_file.
  • doc: Add documentation for GNUTERM variable used with gnuplot (bug #56906).
  • doc: Improve contour docstring example (bug #56849).
  • doc: Add example to show limitations of the given BLAS integer size.
  • doc: Improve documentation of sparse functions.
  • doc: Improve spelling of bicgstab (bug #56812).
  • doc: Remove Map functions keys, values, remove from unimplemented list (bug #56718).
  • doc: Add function index entry for alias inverse (bug #56629).
  • add content rating declaration to AppStream metadata (bug #56466)
  • doc: Remove stray semicolons from pie, pie3 calling forms.
  • doc: Redo documentation for rats function.
  • doc: Specify position property for text objects is a three-element vector (bug #56303).
  • doc: state that Octave can only load HDF5 files created by itself (bug #56148).
  • doc: Fix names of options in issorted (bug #56087).
  • doc: Small fixes to mat2cell and polyeig docstrings (bug #55985).
  • doc: Improve example code for using -pdflatexstandalone (bug #55945).
  • doc: Refer to “root object” rather than “root figure object”.
  • doc: Place cross-reference from list of graphics object properties back to object (bug #46076).
  • doc: document the newline character in warning messages (bug #49158).
  • doc: pkg versions can be more general than “x.y.z” (bug #55798).

The above list was generated using the following command and some manual post-processing and grouping:

hg log -r "release-5-1-0:release-5-2-0" -b stable \
| grep "summary:" | nl | sort -rn | cut -f 2- \
| sed 's/summary:\s*/- /' \
| sed 's/\(bug #\)\([0-9]*\)/[\1\2](https:\/\/savannah.gnu.org\/bugs\/?\2)/' \
| sed 's/\(patch #\)\([0-9]*\)/[\1\2](https:\/\/savannah.gnu.org\/patch\/?\2)/'