Mercurial > web-octave
comparison pages/NEWS-6.1.md @ 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 | |
children |
comparison
equal
deleted
inserted
replaced
231:f440eb7df398 | 232:fe59d0118a2b |
---|---|
1 --- | |
2 layout: page | |
3 title: GNU Octave Version 6 | |
4 permalink: NEWS-6.1.html | |
5 --- | |
6 | |
7 ## Summary of important user-visible changes | |
8 | |
9 November 26, 2020 | |
10 | |
11 {% include release_news_select.md %} | |
12 | |
13 {::options parse_block_html="true" /} | |
14 <div class="panel callout"> | |
15 * TOC | |
16 {:toc} | |
17 </div> | |
18 {::options parse_block_html="false" /} | |
19 | |
20 | |
21 ### General improvements | |
22 | |
23 - The `intersect`, `setdiff`, `setxor`, `union`, and `unique` functions | |
24 accept a new sorting option `"stable"` which will return output values | |
25 in the same order as the input, rather than in ascending order. | |
26 | |
27 - Complex RESTful web services can now be accessed by the `webread` and | |
28 `webwrite` functions alongside with the `weboptions` structure. One | |
29 major feature is the support for cookies to enable RESTful | |
30 communication with the web service. | |
31 | |
32 Additionally, the system web browser can be opened by the `web` | |
33 function. | |
34 | |
35 - The `linspace` function now produces symmetrical sequences when the | |
36 endpoints are symmetric. This is more intuitive and also compatible | |
37 with recent changes made in Matlab R2019b. | |
38 | |
39 - The underlying algorithm of the `rand` function has been changed. | |
40 For single precision outputs, the algorithm has been fixed so that it | |
41 produces values strictly in the range (0, 1). Previously, it could | |
42 occasionally generate the right endpoint value of 1 (See | |
43 [bug #41742](https://savannah.gnu.org/bugs/?41742)). In addition, | |
44 the new implementation uses a uniform interval between floating | |
45 point values in the range (0, 1) rather than targeting a uniform | |
46 density (# of random integers / length along real number line). | |
47 | |
48 - Numerical integration has been improved. The `quadv` function has | |
49 been re-written so that it can compute integrands of periodic | |
50 functions. At the same time, performance is better with ~3.5X fewer | |
51 function evaluations required. A bug in `quadgk` that caused complex | |
52 path integrals specified with `"Waypoints"` to occasionally be | |
53 calculated in the opposite direction was fixed. | |
54 | |
55 - The `edit` function option `"editinplace"` now defaults to `true` and | |
56 the option `"home"` now defaults to the empty matrix `[]`. Files will | |
57 no longer be copied to the user's HOME directory for editing. The old | |
58 behavior can be restored by setting `"editinplace"` to `false` and | |
59 `"home"` to `"~/octave"`. | |
60 | |
61 - The `format` command supports two new options: `uppercase` and | |
62 `lowercase` (default). With the default, print a lowercase 'e' for | |
63 the exponent character in scientific notation and lowercase 'a-f' for | |
64 the hex digits representing 10-15. With `uppercase`, print 'E' and | |
65 'A-F' instead. The previous uppercase formats, `E` and `G`, no longer | |
66 control the case of the output. | |
67 | |
68 Additionally, the `format` command can be called with multiple options | |
69 for controlling the format, spacing, and case in arbitrary order. | |
70 For example: | |
71 | |
72 format long e uppercase loose | |
73 | |
74 Note, in the case of multiple competing format options the rightmost | |
75 one is used, and, in case of an error, the previous format remains | |
76 unchanged. | |
77 | |
78 - L-value references (e.g., increment (++), decrement (--), and all | |
79 in-place assignment operators (+=, -=, *=, /=, etc.)) are no longer | |
80 allowed in anonymous functions. | |
81 | |
82 - New warnings have been added about questionable uses of the colon ':' | |
83 range operator. Each has a new warning ID so that it can be disabled | |
84 if desired. | |
85 | |
86 - `Octave:colon-complex-argument` : when any arg is complex | |
87 - `Octave:colon-nonscalar-argument` : when any arg is non-scalar | |
88 | |
89 | |
90 | |
91 - The `regexp` and related functions now correctly handle and *require* | |
92 strings in UTF-8 encoding. As with any other function that requires | |
93 strings to be encoded in Octave's native encoding, you can use | |
94 `native2unicode` to convert from your preferred locale. For example, | |
95 the copyright symbol in UTF-8 is `native2unicode (169, "latin1")`. | |
96 | |
97 - The startup file `octaverc` can now be located in the platform | |
98 dependent location for user local configuration files (e.g., | |
99 `${XDG_CONFIG_HOME}/octave/octaverc` on Unix-like operating systems or | |
100 `%APPDATA%\octave\octaverc` on Windows). | |
101 | |
102 - The command | |
103 | |
104 dbstop in CLASS at METHOD | |
105 | |
106 now works to set breakpoints in classdef constructors and methods. | |
107 | |
108 #### Graphics backend | |
109 | |
110 - The use of Qt4 for graphics and the GUI is deprecated in Octave | |
111 version 6 and no further bug fixes will be made. Qt4 support will be | |
112 removed completely in Octave version 7. | |
113 | |
114 - The `legend` function has been entirely rewritten. This fixes a | |
115 number of historical bugs, and also implements new properties such as | |
116 `"AutoUpdate"` and `"NumColumns"`. The gnuplot toolkit---which is no | |
117 longer actively maintained---still uses the old legend function. | |
118 | |
119 - The `axis` function was updated which resolved 10 bugs affecting | |
120 axes to which `"equal"` had been applied. | |
121 | |
122 - Graphic primitives now accept a color property value of `"none"` | |
123 which is useful when a particular primitive needs to be hidden | |
124 (for example, the Y-axis of an axes object with `"ycolor" = "none"`) | |
125 without hiding the entire primitive `"visibility" = "off"`. | |
126 | |
127 - A new property `"FontSmoothing"` has been added to text and axes | |
128 objects that controls whether anti-aliasing is used during the | |
129 rendering of characters. The default is `"on"` which produces smooth, | |
130 more visually appealing text. | |
131 | |
132 - The figure property `"windowscrollwheelfcn"`is now implemented. | |
133 This makes it possible to provide a callback function to be executed | |
134 when users manipulate the mouse wheel on a given figure. | |
135 | |
136 - The figure properties `"pointer"`, `"pointershapecdata"`, and | |
137 `"pointershapehotspot"` are now implemented. This makes it possible | |
138 to change the shape of the cursor (pointer in Matlab-speak) displayed | |
139 in a plot window. | |
140 | |
141 - The figure property `"paperpositionmode"` now has the default `"auto"` | |
142 rather than `"manual"`. This change is more intuitive and is | |
143 Matlab compatible. | |
144 | |
145 - The appearance of patterned lines `"LineStyle" = ":"|"--"|"-."` has | |
146 been improved for small widths (`"LineWidth"` less than 1.5 pixels) | |
147 which is a common scenario. | |
148 | |
149 - Printing to EPS files now uses a tight bounding box (`"-tight"` | |
150 argument to print) by default. This makes more sense for EPS | |
151 files which are normally embedded within other documents, and is | |
152 Matlab compatible. If necessary use the `"-loose"` option to | |
153 reproduce figures as they appeared in previous versions of Octave. | |
154 | |
155 - The following print devices are no longer officially supported: cdr, | |
156 corel, aifm, ill, cgm, hpgl, mf and dxf. A warning will be thrown | |
157 when using those devices, and the code for supporting those formats | |
158 will eventually be removed from a future version of Octave. | |
159 | |
160 - The placement of text subscripts and superscripts has been | |
161 re-engineered and now produces visually attractive results similar to | |
162 Latex. | |
163 | |
164 #### Packages | |
165 | |
166 - `pkg describe` now lists dependencies and inverse dependencies | |
167 (i.e., other installed packages that depend on the package in | |
168 question). | |
169 | |
170 - `pkg test` now tests all functions in a package. | |
171 | |
172 - When unloading a package, `pkg` now checks if any remaining loaded | |
173 packages depend on the one to be removed. If this is the case `pkg` | |
174 aborts with an explanatory error message. This behavior can be | |
175 overridden with the `-nodeps` option. | |
176 | |
177 ### Matlab compatibility | |
178 | |
179 - The function `unique` now returns column index vectors for the second | |
180 and third outputs. When duplicate values are present, the default | |
181 index to return is now the `"first"` occurrence. The previous Octave | |
182 behavior, or Matlab behavior from releases prior to R2012b, can be | |
183 obtained by using the `"legacy"` flag. | |
184 | |
185 - The function `setdiff` with the `"rows"` argument now returns Matlab | |
186 compatible results. The previous Octave behavior, or Matlab behavior | |
187 from releases prior to R2012b, can be obtained by using the `"legacy"` | |
188 flag. | |
189 | |
190 - The functions `intersect`, `setxor`, and `union` now accept a | |
191 `"legacy"` flag which changes the index values (second and third | |
192 outputs) as well as the orientation of all outputs to match Matlab | |
193 releases prior to R2012b. | |
194 | |
195 - The function `streamtube` is Matlab compatible and plots tubes along | |
196 streamlines which are scaled by the vector field divergence. The | |
197 Octave-only extension `ostreamtube` can be used to visualize the flow | |
198 expansion and contraction of the vector field due to the local | |
199 crossflow divergence. | |
200 | |
201 - The interpreter now supports handles to nested functions. | |
202 | |
203 - The graphics properties `"LineWidth"` and `"MarkerSize"` are now | |
204 measured in points, *not* pixels. Compared to previous versions | |
205 of Octave, some lines and markers will appear 4/3 larger. | |
206 | |
207 - The meta.class property "SuperClassList" has been renamed | |
208 "Superclasslist" for Matlab compatibility. The original name will | |
209 exist as an alias until Octave version 8.1. | |
210 | |
211 - Inline functions created by the function `inline` are now of type | |
212 "inline" when interrogated with the `class` function. In previous | |
213 versions of Octave, the class returned was "function_handle". This | |
214 change is Matlab compatible. Inline functions are deprecated in | |
215 both Matlab and Octave and support may eventually be removed. | |
216 Anonymous functions can be used to replace all instances of inline | |
217 functions. | |
218 | |
219 - The function `javaaddpath` now prepends new directories to the | |
220 existing dynamic classpath by default. To append them instead, use | |
221 the new `"-end"` argument. Multiple directories may now be specified | |
222 in a cell array of strings. | |
223 | |
224 - An undocumented function `gui_mainfcn` has been added, for compatibility | |
225 with figures created with Matlab's GUIDE. | |
226 | |
227 - Several validator functions of type `mustBe*` have been added. See | |
228 the list of new functions below. | |
229 | |
230 | |
231 ### Deprecated functions and properties | |
232 | |
233 The following functions and properties have been deprecated in Octave 6 | |
234 and will be removed from Octave 8 (or whatever version is the second | |
235 major release after 6): | |
236 | |
237 - Functions | |
238 | |
239 Function | Replacement | |
240 -----------------------|------------------ | |
241 `runtests` | `oruntests` | |
242 | |
243 - The environment variable used by `mkoctfile` for linker flags is now | |
244 `LDFLAGS` rather than `LFLAGS`. `LFLAGS` is deprecated, and a warning | |
245 is emitted if it is used, but it will continue to work. | |
246 | |
247 | |
248 ### Removed functions and properties | |
249 | |
250 The following functions and properties were deprecated in Octave 4.4 | |
251 and have been removed from Octave 6. | |
252 | |
253 - Functions | |
254 | |
255 Function | Replacement | |
256 ---------------------|------------------ | |
257 `chop` | `sprintf` for visual results | |
258 `desktop` | `isguirunning` | |
259 `tmpnam` | `tempname` | |
260 `toascii` | `double` | |
261 `java2mat` | `__java2mat__` | |
262 | |
263 - Properties | |
264 | |
265 Object | Property | Value | |
266 ---------------------|---------------------------|----------------------- | |
267 `annotation` | `edgecolor ("rectangle")` | | |
268 `axes` | `drawmode` | | |
269 `figure` | `doublebuffer` | | |
270 | `mincolormap` | | |
271 | `wvisual` | | |
272 | `wvisualmode` | | |
273 | `xdisplay` | | |
274 | `xvisual` | | |
275 | `xvisualmode` | | |
276 `line` | `interpreter` | | |
277 `patch` | `interpreter` | | |
278 `surface` | `interpreter` | | |
279 `text` | `fontweight` | `"demi"` and `"light"` | |
280 `uibuttongroup` | `fontweight` | `"demi"` and `"light"` | |
281 `uicontrol` | `fontweight` | `"demi"` and `"light"` | |
282 `uipanel` | `fontweight` | `"demi"` and `"light"` | |
283 `uitable` | `fontweight` | `"demi"` and `"light"` | |
284 | |
285 | |
286 ### Alphabetical list of new functions added in Octave 6 | |
287 | |
288 * `auto_repeat_debug_command` | |
289 * `commandhistory` | |
290 * `commandwindow` | |
291 * `filebrowser` | |
292 * `is_same_file` | |
293 * `lightangle` | |
294 * `mustBeFinite` | |
295 * `mustBeGreaterThan` | |
296 * `mustBeGreaterThanOrEqual` | |
297 * `mustBeInteger` | |
298 * `mustBeLessThan` | |
299 * `mustBeLessThanOrEqual` | |
300 * `mustBeMember` | |
301 * `mustBeNegative` | |
302 * `mustBeNonempty` | |
303 * `mustBeNonNan` | |
304 * `mustBeNonnegative` | |
305 * `mustBeNonpositive` | |
306 * `mustBeNonsparse` | |
307 * `mustBeNonzero` | |
308 * `mustBeNumeric` | |
309 * `mustBeNumericOrLogical` | |
310 * `mustBePositive` | |
311 * `mustBeReal` | |
312 * `namedargs2cell` | |
313 * `newline` | |
314 * `ode23s` | |
315 * `ostreamtube` | |
316 * `rescale` | |
317 * `rotx` | |
318 * `roty` | |
319 * `rotz` | |
320 * `stream2` | |
321 * `stream3` | |
322 * `streamline` | |
323 * `streamtube` | |
324 * `uisetfont` | |
325 * `verLessThan` | |
326 * `web` | |
327 * `weboptions` | |
328 * `webread` | |
329 * `webwrite` | |
330 * `workspace` |