changeset 232:fe59d0118a2b

Octave 6.1.0 release 2020-11-26
author Kai T. Ohlhus <k.ohlhus@gmail.com>
date Mon, 30 Nov 2020 01:48:06 +0900
parents f440eb7df398
children 89b5fed6fc99
files _includes/release_news_select.md _posts/2020-11-26-octave-6.1.0-released.markdown pages/NEWS-6.1.md pages/community-news.html pages/menu/download.md
diffstat 5 files changed, 372 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/_includes/release_news_select.md	Mon Nov 30 01:44:59 2020 +0900
+++ b/_includes/release_news_select.md	Mon Nov 30 01:48:06 2020 +0900
@@ -1,4 +1,5 @@
 News for version&nbsp;
+[6  ]({{ 'NEWS-6.1.html' | relative_url }}) &nbsp;
 [5  ]({{ 'NEWS-5.1.html' | relative_url }}) &nbsp;
 [4.4]({{ 'NEWS-4.4.html' | relative_url }}) &nbsp;
 [4.2]({{ 'NEWS-4.2.html' | relative_url }}) &nbsp;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_posts/2020-11-26-octave-6.1.0-released.markdown	Mon Nov 30 01:48:06 2020 +0900
@@ -0,0 +1,22 @@
+---
+layout: post
+title:  "GNU Octave 6.1.0 Released"
+date:   2020-11-26
+categories: news release
+---
+
+GNU Octave version 6.1.0 has been released and is now available for
+[download][1].  An official [Windows binary installer][2] is available.
+For [macOS][3] see the installation instructions in the wiki.
+
+This major release improves the graphics backend, compatibility with
+Matlab and contains many new and improved functions.  A list of important
+user-visible changes is available by selecting the [Release Notes][4] item
+in the News menu of the GUI or by typing `news` at the Octave command prompt.
+
+Thanks to the many people who contributed to this release!
+
+[1]: {{ "download.html" | absolute_url }}
+[2]: https://ftp.gnu.org/gnu/octave/windows/
+[3]: {{ site.wiki_url }}/Octave_for_macOS
+[4]: {{ "NEWS-6.1.html" | absolute_url }}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pages/NEWS-6.1.md	Mon Nov 30 01:48:06 2020 +0900
@@ -0,0 +1,330 @@
+---
+layout: page
+title: GNU Octave Version 6
+permalink: NEWS-6.1.html
+---
+
+## Summary of important user-visible changes
+
+November 26, 2020
+
+{% include release_news_select.md %}
+
+{::options parse_block_html="true" /}
+<div class="panel callout">
+* TOC
+{:toc}
+</div>
+{::options parse_block_html="false" /}
+
+
+### General improvements
+
+- The `intersect`, `setdiff`, `setxor`, `union`, and `unique` functions
+  accept a new sorting option `"stable"` which will return output values
+  in the same order as the input, rather than in ascending order.
+
+- Complex RESTful web services can now be accessed by the `webread` and
+  `webwrite` functions alongside with the `weboptions` structure.  One
+  major feature is the support for cookies to enable RESTful
+  communication with the web service.
+
+  Additionally, the system web browser can be opened by the `web`
+  function.
+
+- The `linspace` function now produces symmetrical sequences when the
+  endpoints are symmetric.  This is more intuitive and also compatible
+  with recent changes made in Matlab R2019b.
+
+- The underlying algorithm of the `rand` function has been changed.
+  For single precision outputs, the algorithm has been fixed so that it
+  produces values strictly in the range (0, 1).  Previously, it could
+  occasionally generate the right endpoint value of 1 (See
+  [bug #41742](https://savannah.gnu.org/bugs/?41742)).  In addition,
+  the new implementation uses a uniform interval between floating
+  point values in the range (0, 1) rather than targeting a uniform
+  density (# of random integers / length along real number line).
+
+- Numerical integration has been improved.  The `quadv` function has
+  been re-written so that it can compute integrands of periodic
+  functions.  At the same time, performance is better with ~3.5X fewer
+  function evaluations required.  A bug in `quadgk` that caused complex
+  path integrals specified with `"Waypoints"` to occasionally be
+  calculated in the opposite direction was fixed.
+
+- The `edit` function option `"editinplace"` now defaults to `true` and
+  the option `"home"` now defaults to the empty matrix `[]`.  Files will
+  no longer be copied to the user's HOME directory for editing.  The old
+  behavior can be restored by setting `"editinplace"` to `false` and
+  `"home"` to `"~/octave"`.
+
+- The `format` command supports two new options: `uppercase` and
+  `lowercase` (default).  With the default, print a lowercase 'e' for
+  the exponent character in scientific notation and lowercase 'a-f' for
+  the hex digits representing 10-15.  With `uppercase`, print 'E' and
+  'A-F' instead.  The previous uppercase formats, `E` and `G`, no longer
+  control the case of the output.
+
+  Additionally, the `format` command can be called with multiple options
+  for controlling the format, spacing, and case in arbitrary order.
+  For example:
+
+        format long e uppercase loose
+
+  Note, in the case of multiple competing format options the rightmost
+  one is used, and, in case of an error, the previous format remains
+  unchanged.
+
+- L-value references (e.g., increment (++), decrement (--), and all
+  in-place assignment operators (+=, -=, *=, /=, etc.)) are no longer
+  allowed in anonymous functions.
+
+- New warnings have been added about questionable uses of the colon ':'
+  range operator.  Each has a new warning ID so that it can be disabled
+  if desired.
+
+  - `Octave:colon-complex-argument`   : when any arg is complex
+  - `Octave:colon-nonscalar-argument` : when any arg is non-scalar
+
+  &nbsp;
+
+- The `regexp` and related functions now correctly handle and *require*
+  strings in UTF-8 encoding.  As with any other function that requires
+  strings to be encoded in Octave's native encoding, you can use
+  `native2unicode` to convert from your preferred locale.  For example,
+  the copyright symbol in UTF-8 is `native2unicode (169, "latin1")`.
+
+- The startup file `octaverc` can now be located in the platform
+  dependent location for user local configuration files (e.g.,
+  `${XDG_CONFIG_HOME}/octave/octaverc` on Unix-like operating systems or
+  `%APPDATA%\octave\octaverc` on Windows).
+
+- The command
+
+      dbstop in CLASS at METHOD
+
+  now works to set breakpoints in classdef constructors and methods.
+
+#### Graphics backend
+
+- The use of Qt4 for graphics and the GUI is deprecated in Octave
+  version 6 and no further bug fixes will be made.  Qt4 support will be
+  removed completely in Octave version 7.
+
+- The `legend` function has been entirely rewritten.  This fixes a
+  number of historical bugs, and also implements new properties such as
+  `"AutoUpdate"` and `"NumColumns"`.  The gnuplot toolkit---which is no
+  longer actively maintained---still uses the old legend function.
+
+- The `axis` function was updated which resolved 10 bugs affecting
+  axes to which `"equal"` had been applied.
+
+- Graphic primitives now accept a color property value of `"none"`
+  which is useful when a particular primitive needs to be hidden
+  (for example, the Y-axis of an axes object with `"ycolor" = "none"`)
+  without hiding the entire primitive `"visibility" = "off"`.
+
+- A new property `"FontSmoothing"` has been added to text and axes
+  objects that controls whether anti-aliasing is used during the
+  rendering of characters.  The default is `"on"` which produces smooth,
+  more visually appealing text.
+
+- The figure property `"windowscrollwheelfcn"`is now implemented.
+  This makes it possible to provide a callback function to be executed
+  when users manipulate the mouse wheel on a given figure.
+
+- The figure properties `"pointer"`, `"pointershapecdata"`, and
+  `"pointershapehotspot"` are now implemented.  This makes it possible
+  to change the shape of the cursor (pointer in Matlab-speak) displayed
+  in a plot window.
+
+- The figure property `"paperpositionmode"` now has the default `"auto"`
+  rather than `"manual"`.  This change is more intuitive and is
+  Matlab compatible.
+
+- The appearance of patterned lines `"LineStyle" = ":"|"--"|"-."` has
+  been improved for small widths (`"LineWidth"` less than 1.5 pixels)
+  which is a common scenario.
+
+- Printing to EPS files now uses a tight bounding box (`"-tight"`
+  argument to print) by default.  This makes more sense for EPS
+  files which are normally embedded within other documents, and is
+  Matlab compatible.  If necessary use the `"-loose"` option to
+  reproduce figures as they appeared in previous versions of Octave.
+
+- The following print devices are no longer officially supported: cdr,
+  corel, aifm, ill, cgm, hpgl, mf and dxf.  A warning will be thrown
+  when using those devices, and the code for supporting those formats
+  will eventually be removed from a future version of Octave.
+
+- The placement of text subscripts and superscripts has been
+  re-engineered and now produces visually attractive results similar to
+  Latex.
+
+#### Packages
+
+- `pkg describe` now lists dependencies and inverse dependencies
+  (i.e., other installed packages that depend on the package in
+  question).
+
+- `pkg test` now tests all functions in a package.
+
+- When unloading a package, `pkg` now checks if any remaining loaded
+  packages depend on the one to be removed.  If this is the case `pkg`
+  aborts with an explanatory error message.  This behavior can be
+  overridden with the `-nodeps` option.
+
+### Matlab compatibility
+
+- The function `unique` now returns column index vectors for the second
+  and third outputs.  When duplicate values are present, the default
+  index to return is now the `"first"` occurrence.  The previous Octave
+  behavior, or Matlab behavior from releases prior to R2012b, can be
+  obtained by using the `"legacy"` flag.
+
+- The function `setdiff` with the `"rows"` argument now returns Matlab
+  compatible results.  The previous Octave behavior, or Matlab behavior
+  from releases prior to R2012b, can be obtained by using the `"legacy"`
+  flag.
+
+- The functions `intersect`, `setxor`, and `union` now accept a
+  `"legacy"` flag which changes the index values (second and third
+  outputs) as well as the orientation of all outputs to match Matlab
+  releases prior to R2012b.
+
+- The function `streamtube` is Matlab compatible and plots tubes along
+  streamlines which are scaled by the vector field divergence. The
+  Octave-only extension `ostreamtube` can be used to visualize the flow
+  expansion and contraction of the vector field due to the local
+  crossflow divergence.
+
+- The interpreter now supports handles to nested functions.
+
+- The graphics properties `"LineWidth"` and `"MarkerSize"` are now
+  measured in points, *not* pixels.  Compared to previous versions
+  of Octave, some lines and markers will appear 4/3 larger.
+
+- The meta.class property "SuperClassList" has been renamed
+  "Superclasslist" for Matlab compatibility.  The original name will
+  exist as an alias until Octave version 8.1.
+
+- Inline functions created by the function `inline` are now of type
+  "inline" when interrogated with the `class` function.  In previous
+  versions of Octave, the class returned was "function_handle".  This
+  change is Matlab compatible.  Inline functions are deprecated in
+  both Matlab and Octave and support may eventually be removed.
+  Anonymous functions can be used to replace all instances of inline
+  functions.
+
+- The function `javaaddpath` now prepends new directories to the
+  existing dynamic classpath by default.  To append them instead, use
+  the new `"-end"` argument.  Multiple directories may now be specified
+  in a cell array of strings.
+
+- An undocumented function `gui_mainfcn` has been added, for compatibility
+  with figures created with Matlab's GUIDE.
+
+- Several validator functions of type `mustBe*` have been added.  See
+  the list of new functions below.
+
+
+### Deprecated functions and properties
+
+The following functions and properties have been deprecated in Octave 6
+and will be removed from Octave 8 (or whatever version is the second
+major release after 6):
+
+- Functions
+
+  Function               | Replacement
+  -----------------------|------------------
+  `runtests`             | `oruntests`
+
+- The environment variable used by `mkoctfile` for linker flags is now
+  `LDFLAGS` rather than `LFLAGS`.  `LFLAGS` is deprecated, and a warning
+  is emitted if it is used, but it will continue to work.
+
+
+### Removed functions and properties
+
+The following functions and properties were deprecated in Octave 4.4
+and have been removed from Octave 6.
+
+- Functions
+
+  Function             | Replacement
+  ---------------------|------------------
+  `chop`               | `sprintf` for visual results
+  `desktop`            | `isguirunning`
+  `tmpnam`             | `tempname`
+  `toascii`            | `double`
+  `java2mat`           | `__java2mat__`
+
+- Properties
+
+  Object               | Property                  | Value
+  ---------------------|---------------------------|-----------------------
+  `annotation`         | `edgecolor ("rectangle")` |
+  `axes`               | `drawmode`                |
+  `figure`             | `doublebuffer`            |
+                       | `mincolormap`             |
+                       | `wvisual`                 |
+                       | `wvisualmode`             |
+                       | `xdisplay`                |
+                       | `xvisual`                 |
+                       | `xvisualmode`             |
+  `line`               | `interpreter`             |
+  `patch`              | `interpreter`             |
+  `surface`            | `interpreter`             |
+  `text`               | `fontweight`              | `"demi"` and `"light"`
+  `uibuttongroup`      | `fontweight`              | `"demi"` and `"light"`
+  `uicontrol`          | `fontweight`              | `"demi"` and `"light"`
+  `uipanel`            | `fontweight`              | `"demi"` and `"light"`
+  `uitable`            | `fontweight`              | `"demi"` and `"light"`
+
+
+### Alphabetical list of new functions added in Octave 6
+
+* `auto_repeat_debug_command`
+* `commandhistory`
+* `commandwindow`
+* `filebrowser`
+* `is_same_file`
+* `lightangle`
+* `mustBeFinite`
+* `mustBeGreaterThan`
+* `mustBeGreaterThanOrEqual`
+* `mustBeInteger`
+* `mustBeLessThan`
+* `mustBeLessThanOrEqual`
+* `mustBeMember`
+* `mustBeNegative`
+* `mustBeNonempty`
+* `mustBeNonNan`
+* `mustBeNonnegative`
+* `mustBeNonpositive`
+* `mustBeNonsparse`
+* `mustBeNonzero`
+* `mustBeNumeric`
+* `mustBeNumericOrLogical`
+* `mustBePositive`
+* `mustBeReal`
+* `namedargs2cell`
+* `newline`
+* `ode23s`
+* `ostreamtube`
+* `rescale`
+* `rotx`
+* `roty`
+* `rotz`
+* `stream2`
+* `stream3`
+* `streamline`
+* `streamtube`
+* `uisetfont`
+* `verLessThan`
+* `web`
+* `weboptions`
+* `webread`
+* `webwrite`
+* `workspace`
--- a/pages/community-news.html	Mon Nov 30 01:44:59 2020 +0900
+++ b/pages/community-news.html	Mon Nov 30 01:48:06 2020 +0900
@@ -14,7 +14,7 @@
 entries in the GUI:
 
   this-is-the-gnu-octave-community-news-page
-  community-news-page-serial=13
+  community-news-page-serial=14
 
 -->
 
--- a/pages/menu/download.md	Mon Nov 30 01:44:59 2020 +0900
+++ b/pages/menu/download.md	Mon Nov 30 01:48:06 2020 +0900
@@ -83,28 +83,28 @@
 </div>
 
 - Windows-64 (recommended)
-  - [octave-5.2.0_1-w64-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-installer.exe)
+  - [octave-6.1.0-w64-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64-installer.exe)
     (~ 300 MB)
-    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-installer.exe.sig)
-  - [octave-5.2.0_1-w64.7z](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.7z)
+    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64-installer.exe.sig)
+  - [octave-6.1.0-w64.7z](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64.7z)
     (~ 300 MB)
-    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.7z.sig)
-  - [octave-5.2.0_1-w64.zip](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.zip)
+    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64.7z.sig)
+  - [octave-6.1.0-w64.zip](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64.zip)
     (~ 530 MB)
-    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.zip.sig)
+    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64.zip.sig)
 
 <p></p>
 
 - Windows-32 (old computers)
-  - [octave-5.2.0_1-w32-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32-installer.exe)
+  - [octave-6.1.0-w32-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w32-installer.exe)
     (~ 275 MB)
-    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32-installer.exe.sig)
-  - [octave-5.2.0_1-w32.7z](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.7z)
+    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w32-installer.exe.sig)
+  - [octave-6.1.0-w32.7z](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w32.7z)
     (~ 258 MB)
-    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.7z.sig)
-  - [octave-5.2.0_1-w32.zip](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.zip)
+    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w32.7z.sig)
+  - [octave-6.1.0-w32.zip](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w32.zip)
     (~ 447 MB)
-    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.zip.sig)
+    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w32.zip.sig)
 
 <p></p>
 
@@ -117,15 +117,15 @@
   version above.
   </small>
 
-  - [octave-5.2.0_1-w64-64-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64-installer.exe)
+  - [octave-6.1.0-w64-64-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64-64-installer.exe)
     (~ 286 MB)
-    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64-installer.exe.sig)
-  - [octave-5.2.0_1-w64-64.7z](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.7z)
+    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64-64-installer.exe.sig)
+  - [octave-6.1.0-w64-64.7z](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64-64.7z)
     (~ 279 MB)
-    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.7z.sig)
-  - [octave-5.2.0_1-w64-64.zip](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.zip)
+    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64-64.7z.sig)
+  - [octave-6.1.0-w64-64.zip](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64-64.zip)
     (~ 490 MB)
-    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.zip.sig)
+    [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-6.1.0-w64-64.zip.sig)
 
 All Windows binaries with corresponding source code can be downloaded from
 [https://ftpmirror.gnu.org/octave/windows/](https://ftpmirror.gnu.org/octave/windows/).