comparison NEWS-4.2.md @ 114:9f48dc9ba715

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