comparison pages/NEWS-4.2.md @ 215:dedb85c54245

Reorganize homepage.
author Kai T. Ohlhus <k.ohlhus@gmail.com>
date Thu, 10 Sep 2020 17:47:36 +0900
parents
children c8126c010d67
comparison
equal deleted inserted replaced
214:fe5dcb23372a 215:dedb85c54245
1 ---
2 layout: page
3 title: GNU Octave Version 4.2
4 menu: false
5 permalink: NEWS-4.2.html
6 ---
7
8 ## Summary of important user-visible changes
9
10 November 13, 2016
11
12 {% include release_news_select.md %}
13
14 <pre>
15 ** The parser has been extended to accept, but ignore, underscore
16 characters in numbers. This facilitates writing more legible code
17 by using '_' as a thousands separator or to group nibbles into bytes
18 in hex constants.
19
20 Examples: 1_000_000 == 1e6 or 0xDE_AD_BE_EF
21
22 ** The parser has been extended to understand binary numbers which
23 begin with the prefix '0b' or '0B'. The value returned is Octave's
24 default numeric class of double, not at unsigned integer class.
25 Therefore numbers greater than flintmax, i.e., 2^53, will lose some
26 precision.
27
28 Examples: 0b101 == 5 or 0B1100_0001 == 0xC1
29
30 ** gnuplot 4.4 is now the minimum version supported by Octave.
31
32 ** The default set of colors used to plot lines has been updated to be
33 compatible with Matlab's new default color scheme. The line plot
34 color scheme can be set with the axes property "ColorOrder".
35
36 ** The default colormap is now set to "viridis" which is also the
37 default colormap in matplotlib. This new colormap fixes some of the
38 main issues with the old default colormap "jet" such as its bad
39 "luminance profile" and is also more similar to Matlab's new default
40 colormap "parula".
41
42 ** The colormap function no longer supports the input argument "list"
43 to show built-in colormaps. Use "help colormap" to find the
44 built-in colormaps.
45
46 ** The graphics command "hold on" now ensures that each new plot added
47 to an existing plot has a different color or linestyle according to
48 the "ColorOrder" and/or "LineStyleOrder" properties. This is
49 equivalent to the old command "hold all" and was made for Matlab
50 compatibility. Existing code *may* produce differently colored
51 plots if it did not specify the color for a plot and relied on each
52 new plot having the default first color in the "ColorOrder"
53 property.
54
55 ** When starting, Octave now looks in the function path for a file
56 startup.m and executes any commands found there. This change was
57 made to accommodate Matlab users. Octave has it's own configuration
58 system based on the file .octaverc which is preferred.
59
60 ** Octal ('\NNN') and hex ('\xNN') escape sequences in single quoted
61 strings are now interpreted by the function do_string_escapes().
62 The *printf family of functions now supports octal and hex escape
63 sequences in single-quoted strings for Matlab compatibility.
64
65 ** Special octal and hex escape sequences for the pattern and
66 replacement strings in regular expressions are now interpreted for
67 Matlab compatibility.
68
69 octal: '\oNNN' or '\o{NNN}'
70 hex : '\xNN' or '\x{NN}'
71
72 ** Unknown escape sequences in the replacement string for regexprep are
73 now substituted with their unescaped version and no warning is
74 emitted. This change was made for Matlab compatibility.
75
76 Example: regexprep ('a', 'a', 'x\yz')
77 => 'xyz'
78
79 ** mkfifo now interprets the MODE argument as an octal, not decimal,
80 integer. This is consistent with the equivalent shell command.
81
82 ** linspace now returns an empty matrix if the number of requested
83 points is 0 or a negative number. This change was made to be
84 compatible with Matlab releases newer than 2011. In addition,
85 Octave no longer supports matrix inputs for A or B.
86
87 ** The cov function now returns the complex conjugate of the result
88 from previous versions of Octave. This change was made for
89 compatibility with Matlab.
90
91 ** condest now works with a normest1 compatible syntax.
92
93 ** The griddata function no longer plots the interpolated mesh if no
94 output argument is requested, instead the vector or array of
95 interpolated values is always returned for Matlab compatibility.
96
97 ** The new function "light" and the corresponding graphics object
98 provide light and shadow effects for patch and surface objects.
99
100 ** The surfnorm function now returns unnormalized (magnitude != 1)
101 normal vectors for compatibility with Matlab.
102
103 ** The normal vectors returned from isonormals have been reversed to
104 point towards smaller values for compatibility with Matlab.
105
106 ** The quadl function now uses an absolute, rather than relative,
107 tolerance for Matlab compatibility. The default tolerance is 1e-6
108 which may result in lower precision results than previous versions
109 of Octave which used eps as the relative tolerance. The quadl
110 function has also been extended to return a second output with the
111 total number of function evaluations.
112
113 ** The textscan function is now built-in and is much faster and much
114 more Matlab-compatible than the previous m-file version.
115
116 ** Dialog boxes--errordlg, helpdlg, inputdlg, listdlg, msgbox,
117 questdlg, and warndlg--now exclusively use Qt for rendering.
118 Java based versions have been removed.
119
120 ** The axes properties "TitleFontSizeMultiplier" and "TitleFontWeight"
121 are now implemented which control the default appearance of text
122 created with title().
123 The axes property "LabelFontSizeMultiplier" is now implemented
124 which controls the default appearance of text created with
125 xlabel(), ylabel(), or zlabel().
126
127 ** The graphics property "box" for axes now defaults to "off".
128 To obtain equivalent plots to previous versions of Octave use
129 set (0, "DefaultAxesBox", "on");
130 in your .octaverc file.
131
132 ** The graphics property "boxstyle" has been implemented. The default
133 is "back" which draws only the back planes in a 3-D view. If the
134 option is "full" then all planes are drawn.
135
136 ** The graphics property "erasemode" has been hidden, and will
137 eventually be removed. This property has also been removed
138 from Matlab, and was never implemented in Octave.
139
140 ** The graphics property "graphicssmoothing" for figures now controls
141 whether anti-aliasing will be used for lines. The default is "on".
142
143 ** The value "zero" for the axes properties "xaxislocation" and
144 "yaxislocation" has been deprecated and will be removed from
145 Octave 4.6. Use "origin" instead.
146
147 ** The publish function allows easy publication of Octave script files
148 in HTML or other formats, including figures and output created by
149 this script. It comes with its counterpart grabcode, which lets one
150 literally grab the HTML published code from a remote website, for
151 example.
152
153 ** The value of the MEX variable TrapFlag now defaults to 0, which will
154 cause Octave to abort execution of a MEX file and return to the
155 prompt if an error is encountered in mexCallMATLAB.
156
157 ** The MEX API now includes the function mexCallMATLABWithTrap. This
158 function will not abort if an error occurs during mexCallMATLAB, but
159 instead will return execution to the MEX function for error
160 handling.
161
162 ** The MEX API functions for input validation that begin with "mxIs"
163 (e.g., mxIsDouble, mxIsEmpty, etc.) now return type bool rather than
164 type int.
165
166 ** The functions mxAssert and mxAssertS for checking assertions have
167 been added. In order to avoid a performance penalty they are only
168 compiled in to debug versions of a MEX file, i.e., that are produced
169 when the '-g' option is given to mex or mkoctfile.
170
171 ** Other new MEX API functions include mexEvalStringWithTrap,
172 mxIsScalar, mxCreateUninitNumericArray, mxCreateUninitNumericMatrix.
173
174 ** Other new functions added in 4.2:
175
176 audioformats
177 camlight
178 condeig
179 deg2rad
180 dialog
181 evalc
182 hash
183 im2double
184 isocaps
185 lighting
186 localfunctions
187 material
188 normest1
189 ode23
190 ode45
191 odeget
192 odeplot
193 odeset
194 padecoef
195 profexport
196 psi
197 rad2deg
198 reducepatch
199 reducevolume
200 smooth3
201 uibuttongroup
202
203 ** Deprecated functions.
204
205 The following functions have been deprecated in Octave 4.2 and will
206 be removed from Octave 4.6 (or whatever version is the second major
207 release after 4.2):
208
209 Function | Replacement
210 ---------------------|------------------
211 bitmax | flintmax
212 mahalanobis | mahal in Octave-Forge statistics pkg
213 md5sum | hash
214 octve_config_info | __octave_config_info__
215 onenormest | normest1
216 sleep | pause
217 usleep | pause
218 wavread | audioread
219 wavwrite | audiowrite
220
221 ** The following functions were deprecated in Octave 3.8 and have been
222 removed from Octave 4.2.
223
224 default_save_options java_new
225 gen_doc_cache java_unsigned_conversion
226 interp1q javafields
227 isequalwithequalnans javamethods
228 java_convert_matrix re_read_readline_init_file
229 java_debug read_readline_init_file
230 java_invoke saving_history
231
232 ** The global error_state variable in Octave's C++ API has been
233 deprecated and will be removed in a future version. Now the error
234 and print_usage functions throw an exception
235 (octave::execution_exception) after displaying the error message.
236 This makes the error and print_usage functions in C++ work more like
237 the corresponding functions in the scripting language.
238
239 ** The default error handlers in liboctave have been updated to use
240 exceptions. After displaying an error message they no longer return
241 control to the calling program. The error handler function can be
242 customized through the global variables
243 "current_liboctave_error_handler" and
244 "current_liboctave_error_with_id_handler". If a programmer has
245 installed their own custom error handling routines when directly
246 linking with liboctave then these must be updated to throw an
247 exception and not return to the calling program.
248
249 ** The system for common errors and warnings has been renamed from
250 gripe_XXX to either err_XXX if error is called or warn_XXX if
251 warning is called. The gripe_XXX functions are deprecated and will
252 be removed in version 4.6.
253
254 ** New configure option, --enable-address-sanitizer-flags, to build
255 Octave with memory allocator checks (similar to those in valgrind)
256 built in.
257 </pre>