* Bug 15428 fixed: repmat() was slow: rewritten => > 7x faster
[scilab.git] / scilab / CHANGES.md
1 Welcome to Scilab 6.1.X
2 =======================
3
4 This file details the changes between Scilab 6.1.X (this development branch), and the previous release 6.0.X.
5 For changelogs of earlier releases, please see [Scilab 6.0.0](https://help.scilab.org/docs/6.0.0/en_US/CHANGES.html).
6
7 This file is intended for the specific needs of advanced users, and describes:
8 - High-level new features,
9 - Changes in installation, compilation, and compatibility,
10 - Changes in the language,
11 - New and modified features, in each module,
12 - Changes in functions (removed/added/modified),
13 - Bug fixes.
14
15 This is an in-development version which might be unstable.
16 Please report any thing we could have missed, on the [mailing lists][1] or on the [bug tracker][2].
17
18 [1]: http://mailinglists.scilab.org
19 [2]: http://bugzilla.scilab.org
20
21
22 Main new features
23 -----------------
24
25 For a high-level description of the main new features of this release, please consult the [embedded help](modules/helptools/data/pages/homepage-en_US.html). It is also available as the "What's new" page of the help, by simply typing `help` in Scilab console.
26
27 In summary, the main new features are:
28 * Webtools utilities added for HTTP protocol, JSON data usage
29 * Profiled values are available as Scilab values
30 * Values have a cleaner display:
31    - they are displayed in order on assignement
32    - strings are quoted
33    - complex numbers are aligned for matrices
34    - numbers (IEEE 754 double) are not rounded
35 * importgui function has been added to easily interface csvRead
36
37
38 Installation
39 ------------
40
41
42 Compilation
43 -----------
44
45 * GNU autotools have been updated to :
46    - automake 1.15
47    - autoconf 2.69
48    - libtool 2.4.6 (patched for macOS)
49
50 * Linux/macOS configures check if `-std=c++11` is available and use it by default. Toolboxes might increment the standard C++ version by specifying the C++ version as a `CFLAGS`.
51
52 * Migration to Microsoft Visual Studio 2017 and Intel Composer 2018
53
54
55 Dependencies
56 ------------
57
58 * Lucene has been updated to 8.4.0; API compatibility is preserved down to 5.2.1.
59
60 Packaging & Supported Operating Systems
61 ---------------------------------------
62
63 * Scilab embedded JVM is Java 8. To run or compile Scilab you need at least:
64   - Windows:
65      - Windows 10 (Desktop)
66      - Windows 8 (Desktop)
67      - Windows 7
68      - Windows Vista SP2
69      - Windows Server 2008 R2 SP1 (64-bit)
70      - Windows Server 2012 (64-bit)
71   - Mac OS X:
72      - Intel-based Mac running Mac OS X 10.8.3+, 10.9+
73   - Linux:
74      - Red Hat Enterprise Linux 5.5+, 6.x (32-bit), 6.x (64-bit), 7.x (64-bit)
75      - Oracle Linux 5.5+, 6.x (32-bit), 6.x (64-bit), 7.x (64-bit)
76      - Ubuntu Linux 12.04 LTS, 13.x
77      - Suse Linux Enterprise Server 10 SP2+, 11.x
78
79     For more information, please consult: [What are the system requirements for Java?](http://java.com/en/download/help/sysreq.xml)
80
81 * [SSE2](https://en.wikipedia.org/wiki/SSE2), Streaming SIMD Extensions 2 support is now mandatory to run Scilab on Linux i686.
82
83
84 Feature changes and additions
85 -----------------------------
86
87 * `airy()` is added: Evaluation of Airy functions of the first and second kind, and their first derivative, possibly scaled.
88 * Empty strings are used as the default values on String allocation
89 * HTTP get, post, put, upload, patch, delete functions added
90 * JSON encoding / decoding for Scilab datatypes added
91 * Memory invalid accesses have been greatly reduced thanks to :
92   - PVS-Studio inspections blog report
93   - Coverity scan weekly source analysis
94 * `bitget` is upgraded:
95   - It now accepts positive Signed encoded integers.
96   - It now supports the new uint64 and int64 types of encoded integers.
97   - For decimal numbers: bits with indices > 52 can now be retrieved (up to `log2(number_properties("huge"))` = 1024).
98   - For decimal numbers `x > 2^52`, querried bits below `%eps` (indices < log2(x)-52) now return `Nan` instead of 0.
99   - Several bits can now be retrieved from each component of an input array.
100 * `bitstring` function added.
101 * `edit` now accepts a line number as text (like "23").
102 * `profileEnable`, `profileDisable`, `profileGetInfo` could be used to instrument functions and gather execution information within Scilab.
103 * `prettyprint` is upgraded:
104   - Integer and Text input are now actually supported.
105   - Default input arguments can be skipped instead of still having to be provided.
106   - The result string is better formatted to be easily wrappable and indentable.
107 * `mesh2d` has been introduced to compute a 2d mesh from vectors (x,y) of points.
108 * `loadmatfile` is upgraded:
109   - Octave native text data files can now be read.
110   - Automatic detection of the input data format implemented.
111   - `-toStruct` option added, to return results in a structure instead of in the calling environment.
112 * `jremove` is optional and `clear` could be used to release Java objects mapped to Scilab.
113 * `blockdiag` is introduced to improve, replace, and extend `sysdiag` to strings.
114 * `assert_checkequal` is upgraded:
115   - support added for Nan and void in lists, Nan in sparses, implicit lists, graphic handles, macros, libraries, and built-in.
116   - For arrays of matching typeof and sizes, and for lists of matching lengths, the failure message now indicates the index and values of the first mismatching elements.
117 * `diophant` is improved: Now,
118   - Encoded integers are accepted, in addition to decimal numbers. Only integer solutions are then searched.
119   - When there is no solution, [] is returned.
120   - When there is an infinite number of solutions, the err flag has a specific value.
121   - The output size gets the input's one.
122 * `csvRead` and `csvTextScan` are now implemented without extra copies.
123 * `editvar()` GUI support copy-paste of strings removing quotes.
124 * calendar() can now display formated calendars.
125 * `xmlSetValues()` clones `setPreferencesValue` that is now obsolete.
126 * `unique()` is upgraded to:
127   - return the number of occurences of distinct entities found in the input array.
128   - return distinct entities in their initial order (rather than sorted), with the `"keepOrder"` option.
129   - consider all `Nan` values as the same one, with the `"uniqueNan"` option.
130 * `ellipj()` function introduced, to compute the `sn`, `cn`, `dn`, `ns`, `nc` and `nd` Jacobi elliptic functions.
131 * `riccati()` is upgraded:
132   - `riccati(H)` and `riccati(H,E)` syntaxes added, to describe the Riccati equation through its Hamiltonian H or (E,H) pencil.
133   - The residual is returned as new 3rd output argument.
134   - When no solution is found, `X=[]` | `X1=[]` is returned instead of yielding an error.
135 * `hallchart()` is upgraded:
136   - The default set of modules is set automatically, according to data bounds.
137   - Handles of the grids and labels are returned. Post-processing them become easy.
138   - Named colors accepted ; better default colors.
139   - Improved placement of labels.
140 * `nicholschart` is improved: more neutral default frame color; improved labels positionning; colors can now be specified by their predefined name or "#RRGGBB" hexa code; a structure of handles is now returned to easily postprocess both subframes and the set of labels.
141 * `sciargs()` returns a column instead of formerly a row.
142 * Booleans and encoded integers can now be concatenated together, as in `[%f int8(-5)]`.
143 * `gsort` can now perform multilevel sorting. This noticeably allows to sort completely complex numbers.
144 * `factorial(n)` can be used now from n=171 up to n=10^14.
145 * `intersect()` now supports complex numbers.
146 * `setdiff()` now supports complex numbers.
147 * `twinkle` can now blink together several hierarchically independent objects, like a curve and its labels, etc.
148 * `repmat()` has been rewritten. It is 7 times faster now.
149
150
151 Help pages:
152 -----------
153
154 * overhauled / rewritten: `bitget`, `edit`, `factorial`
155 * fixed / improved:  `bench_run` `M_SWITCH`, `comet`, `comet3d`
156
157
158 User Interface improvements:
159 ----------------------------
160
161 * The `ans` variable is editable as any other variable
162 * Commands history is saved before executing a command to have the correct history on crash.
163 * Used memory per variable is displayed by BrowserVar to give the user numbers on memory usage repartition and let the user `clear` the big ones first.
164 * Autoscroll of console in GUI mode is disabled when the user scroll up until he scrolls to bottom.
165
166 Xcos
167 ----
168
169 * Default ending time reduced from 100000 to 30, to fit default scope block.
170 * `CURVE_c` settings did not always display a window.
171 * Exporting all layers from a diagram will generate one unique file per layer.
172
173 API modification
174 ----------------
175
176
177 Obsolete functions or features
178 ------------------------------
179 * `frexp` becomes an internal. Please use `[m,e]=log2(x)` instead.
180 * `champ1()` is obsolete. Please use `champ.colored` instead.
181 * `setPreferencesValue` will be removed from Scilab 6.1.x. Please use `xmlSetValues` instead.
182 * `%sn()` is obsolete. Please use `ellipj()` instead.
183 * `sysdiag()` is obsolete. Please use `blockdiag()` instead.
184 * `ric_desc` is obsolete and will be removed from Scilab 6.1.x. Please use `riccati` instead.
185 * `noisegen` will be removed from Scilab 6.1.x. Please use `grand()` instead.
186 * `get_figure_handle(n)` will be removed in Scilab 6.1.x. `findobj('figure_id',n)` replaces it.
187
188 Removed Functions
189 -----------------
190
191 * `getPreferencesValue` was obsolete and has been removed. Please use `xmlGetValues` instead.
192 * `eval` was obsolete and has been removed. Please use `evstr` instead.
193 * `hypermat` was obsolete and has been removed. Please use `matrix` instead.
194 * `lstsize` was obsolete and has been removed. Please use `size` instead.
195 * `denom` was obsolete and has been removed. Please use the `.den` rational field instead.
196 * `numer` was obsolete and has been removed. Please use the `.num` rational field instead.
197 * `square` was obsolete and has been removed.
198 * `strcmpi` was obsolete and has been removed. Please use `strcmp(,'i')` instead.
199 * `xgetech` was obsolete and has been removed. Please use `gca` instead.
200 * `fac3d` was obsolete since Scilab 4 and has been removed. Please use `plot3d` instead.
201 * `fac3d1` was obsolete since Scilab 4 and has been removed. Please use `plot3d1` instead.
202 * `xinfo` was obsolete and has been removed. Please use `gcf().info_message` instead.
203 * `with_tk` was obsolete and has been removed. Please use `with_module('tclsci')` instead.
204
205
206 Known issues
207 ------------
208
209
210 Bug Fixes
211 ---------
212
213 ### Bugs fixed in 6.1.0:
214 * [#2694](http://bugzilla.scilab.org/show_bug.cgi?id=2694): `bitget` did not accept positive integers of types int8, int16 or int32.
215 * [#6070](http://bugzilla.scilab.org/show_bug.cgi?id=6070): Making multiscaled plots was not documented.
216 * [#7562](http://bugzilla.scilab.org/show_bug.cgi?id=7562): `factorial` could use a huge memory amount even for a scalar argument.
217 * [#7657](http://bugzilla.scilab.org/show_bug.cgi?id=7657): `lstsize` was a duplicate of `size` and should be removed.
218 * [#7724](http://bugzilla.scilab.org/show_bug.cgi?id=7724): When a figure is created in .auto_resize="on" mode, its .axes_size sets its .figure_size accordingly, not the reverse. But this was not documented.
219 * [#7765](http://bugzilla.scilab.org/show_bug.cgi?id=7765): `champ1()` is useless. `champ().colored` is available for a long time.
220 * [#7948](http://bugzilla.scilab.org/show_bug.cgi?id=7948): `gsort()` could not perform multilevel sorting.
221 * [#7967](http://bugzilla.scilab.org/show_bug.cgi?id=7967): The tricky size `[ny,nx]` of `meshgrid(x,y)` results and usages with graphics was not enough documented.
222 * [#8307](http://bugzilla.scilab.org/show_bug.cgi?id=8307): `list2vec()` and `vec2list()` were located in the [optimization] module instead of in [data_structures], and were missing in the `See also` section of `list()`.
223 * [#8418](http://bugzilla.scilab.org/show_bug.cgi?id=8418): `unique()` was not able to return the number of occurences of returned dictinct entities.
224 * [#8784](http://bugzilla.scilab.org/show_bug.cgi?id=8784): Automatic self-adjusting blocks `SCALE_CSCOPE` & `SCALE_CMSCOPE` in Xcos.
225 * [#5512](http://bugzilla.scilab.org/show_bug.cgi?id=5512): `disp` puzzlingly displayed arguments in reverse order.
226 * [#9007](http://bugzilla.scilab.org/show_bug.cgi?id=9007): On Linux, `sciargs()` included twice `-nw` when `-nw` is used.
227 * [#9529](http://bugzilla.scilab.org/show_bug.cgi?id=9529): `assert_checkequal(list(1,,3), list(1,,3))` yielded an error.
228 * [#9673](http://bugzilla.scilab.org/show_bug.cgi?id=9673): Priority of colon `:` operator was too low
229 * [#10078](http://bugzilla.scilab.org/show_bug.cgi?id=10078): `isinf()` was not reliable for polynomials.
230 * [#10353](http://bugzilla.scilab.org/show_bug.cgi?id=10353): Documentation: The referential for the uicontrol.position property was not provided. Moreover, gca().axes_bounds refered to fig.figure_size instead of fig.axes_size.
231 * [#10553](http://bugzilla.scilab.org/show_bug.cgi?id=10553): After calling `colorbar()`, retrieving the handle of the new color bar was not trivial.
232 * [#10723](http://bugzilla.scilab.org/show_bug.cgi?id=10723): `subplot`'s action was unclearly described in its help page. Page improved.
233 * [#11852](http://bugzilla.scilab.org/show_bug.cgi?id=11852): File browser didn't update after file creation or remove.
234 * [#11363](http://bugzilla.scilab.org/show_bug.cgi?id=11363): show_window() did not raise the current graphics window.
235 * [#13738](http://bugzilla.scilab.org/show_bug.cgi?id=13738): `get_figure_handle` was a specific duplicate of the more powerful `findobj('figure_id',n)` feature. It is now obsolete. 
236 * [#12520](http://bugzilla.scilab.org/show_bug.cgi?id=12520): Vriable browser did not display the size of the variables.
237 * [#12534](http://bugzilla.scilab.org/show_bug.cgi?id=12534): Variable browser did not display the size of the variables.
238 * [#12837](http://bugzilla.scilab.org/show_bug.cgi?id=12837): `strcmpi` was an obsolete duplicate of `strcmp(,'i')`. It is removed.
239 * [#13683](http://bugzilla.scilab.org/show_bug.cgi?id=13683): unsetmenu for a dockable="off" figure crashed Scilab.
240 * [#13766](http://bugzilla.scilab.org/show_bug.cgi?id=13766): Minimal values for `.figure_size` were not documented.
241 * [#14015](http://bugzilla.scilab.org/show_bug.cgi?id=14015): Nan terms added to a polynomial were ignored.
242 * [#14422](http://bugzilla.scilab.org/show_bug.cgi?id=14422): `clc(0)` did nothing, now clears last console entry. Remove leading blank after a `clc()`.
243 * [#14498](http://bugzilla.scilab.org/show_bug.cgi?id=14498): `size([],3)` returned 1 instead of 0.
244 * [#14501](http://bugzilla.scilab.org/show_bug.cgi?id=14501): `strsubst` crashed on consecutive occurrences.
245 * [#14557](http://bugzilla.scilab.org/show_bug.cgi?id=14557): `csim` failed when the system has no state.
246 * [#14498](http://bugzilla.scilab.org/show_bug.cgi?id=14498): `size([],3)` returned 1 instead of 0.
247 * [#14502](http://bugzilla.scilab.org/show_bug.cgi?id=14502): `Demo > GUI > Uicontrols 2` could not be exported to a file.
248 * [#14604](http://bugzilla.scilab.org/show_bug.cgi?id=14604): `emptystr()` is 40x slower with 6.0.0 wrt 5.5.2
249 * [#14605](http://bugzilla.scilab.org/show_bug.cgi?id=14605): fixed - `bench_run` was too strict about the specification of tests names.
250 * [#14606](http://bugzilla.scilab.org/show_bug.cgi?id=14606): Memory used by variables returned by `[names,mem]=who()` was always zero.
251 * [#14610](http://bugzilla.scilab.org/show_bug.cgi?id=14610): `x = ric_desc(H,E)` always yielded an error. [x1,x2,residual] = ric_desc(..) returned a wrong `residual` value.
252 * [#14642](http://bugzilla.scilab.org/show_bug.cgi?id=14642): No more "\r" carriage return with printf.
253 * [#14735](http://bugzilla.scilab.org/show_bug.cgi?id=14735): The `genetic_algorithms` module was out of the `optimization` one.
254 * [#14741](http://bugzilla.scilab.org/show_bug.cgi?id=14741): The syntax `[m,e]=log2(x)` was not documented. As public function `frexp` was in duplicate with `[m,e]=log2(x)`.
255 * [#14746](http://bugzilla.scilab.org/show_bug.cgi?id=14746): Tiny numbers were sometimes displayed as 0.
256 * [#14791](http://bugzilla.scilab.org/show_bug.cgi?id=14791): `sleep 1` crashed Scilab.
257 * [#14812](http://bugzilla.scilab.org/show_bug.cgi?id=14812): Minor typos in messages.
258 * [#14836](http://bugzilla.scilab.org/show_bug.cgi?id=14836): calling `exportUI()` on a non dockable figure crashed scilab.
259 * [#14863](http://bugzilla.scilab.org/show_bug.cgi?id=14863): In Xcos, the default ending time was unhandily high (100000), reduced it to 30.
260 * [#14982](http://bugzilla.scilab.org/show_bug.cgi?id=14982): `msprintf` segmentation fault was caught due to wrong size
261 * [#14985](http://bugzilla.scilab.org/show_bug.cgi?id=14985): scilab crashed if a .bin file was not found.
262 * [#15068](http://bugzilla.scilab.org/show_bug.cgi?id=15068): `size(sum(ones(2,3,4,5),4))` was [4 2 3] instead of [2 3 4].
263 * [#15087](http://bugzilla.scilab.org/show_bug.cgi?id=15087): Deleting rows or columns from a matrix is slow (regression)
264 * [#15248](http://bugzilla.scilab.org/show_bug.cgi?id=15248): `lsq`was leaking memory.
265 * [#15269](http://bugzilla.scilab.org/show_bug.cgi?id=15269): `xgetech` was poor and stiff compared to any combination of `gca()` properties `.axes_bounds`, `.data_bounds`, `.log_flags`, and `.margins`. It is removed.
266 * [#15271](http://bugzilla.scilab.org/show_bug.cgi?id=15271): `bitget` needed to be upgraded.
267 * [#15309](http://bugzilla.scilab.org/show_bug.cgi?id=15309): `eval()` was a weak duplicate of `evstr()`. It should be removed.
268 * [#15321](http://bugzilla.scilab.org/show_bug.cgi?id=15321): `lu()` was leaking memory.
269 * [#15350](http://bugzilla.scilab.org/show_bug.cgi?id=15350): `ric_desc()` should be merged into `riccati()`.
270 * [#15359](http://bugzilla.scilab.org/show_bug.cgi?id=15359): `twinkle` was not able to blink several independent objects.
271 * [#15360](http://bugzilla.scilab.org/show_bug.cgi?id=15360): `numer()` and `denom()` were poor and duplicates of the `.num` and `.den` fields of rationals. They are removed.
272 * [#15368](http://bugzilla.scilab.org/show_bug.cgi?id=15368): `freson()` silently returned frequencies not corresponding to a maximum, or returned [] instead of some still computable maxima frequencies.
273 * [#15392](http://bugzilla.scilab.org/show_bug.cgi?id=15392): `comet` and `comet3d` did not allow specifying colors with colors names.
274 * [#15393](http://bugzilla.scilab.org/show_bug.cgi?id=15393): In a new figure, `nicholschart` plotted nothing. The default frame color was a flashy cyan. The position of gain labels could be puzzling. It was not possible to specify colors by their names. Postprocessing the frames and the set of labels was not easy.
275 * [#15425](http://bugzilla.scilab.org/show_bug.cgi?id=15425): The Kronecker product `a.*.b` failed when `a` or `b` or both are hypermatrices, with one or both being polynomials or rationals.
276 * [#15428](http://bugzilla.scilab.org/show_bug.cgi?id=15428): `repmat()` was slow. Its code did not use `kron()` and was complex.
277 * [#15431](http://bugzilla.scilab.org/show_bug.cgi?id=15431): The empty matrix `[]` and its non-convertibility were poorly documented.
278 * [#15451](http://bugzilla.scilab.org/show_bug.cgi?id=15451): The code was not adapted to use `lucene 4.10` in Debian.
279 * [#15514](http://bugzilla.scilab.org/show_bug.cgi?id=15514): The `set()` documentation page needed to be overhauled.
280 * [#15517](http://bugzilla.scilab.org/show_bug.cgi?id=15517): `factorial(n)` could be actually used up to only n=170.
281 * [#15522](http://bugzilla.scilab.org/show_bug.cgi?id=15522): `unique()` was not able to consider all Nan values as the same value. A `uniqueNan` option now allows it.
282 * [#15523](http://bugzilla.scilab.org/show_bug.cgi?id=15523): `%ODEOPTIONS(1)=2` didn't work with solvers 'rk' and 'rkf'
283 * [#15534](http://bugzilla.scilab.org/show_bug.cgi?id=15534): Booleans and encoded integers could not be concatenated together.
284 * [#15577](http://bugzilla.scilab.org/show_bug.cgi?id=15577): `edit` did not accept a line number as text, as with `edit linspace 21`.
285 * [#15580](http://bugzilla.scilab.org/show_bug.cgi?id=15580): `det(sparse([],[]))` yielded an error.
286 * [#15737](http://bugzilla.scilab.org/show_bug.cgi?id=15737): `setdiff` was wrong with complex numbers.
287 * [#15981](http://bugzilla.scilab.org/show_bug.cgi?id=15981): `wavread()` kept the wav file open and locked when returning on errors. It weakly managed the input file name. It claimed for invalid data formats instead of unsupported ones, with poor information about the current format vs the supported ones. Several error messages refered to a wrong function.
288 * [#15595](http://bugzilla.scilab.org/show_bug.cgi?id=15595): `unique()` was not able to return distinct values in their original order, without sorting them. A `keepOrder` option now allows it.
289 * [#15668](http://bugzilla.scilab.org/show_bug.cgi?id=15668): `save(filename)` saved all predefined Scilab constants %e %pi etc.. (regression)
290 * [#15715](http://bugzilla.scilab.org/show_bug.cgi?id=15715): `%nan` indices crashed Scilab.
291 * [#15734](http://bugzilla.scilab.org/show_bug.cgi?id=15734): `intersect()` did not support complex numbers.
292 * [#15742](http://bugzilla.scilab.org/show_bug.cgi?id=15742): The `compatibility_functions` module should be merged in the `m2sci` one.
293 * [#15581](http://bugzilla.scilab.org/show_bug.cgi?id=15581): display of complex matrix was ugly.
294 * [#15628](http://bugzilla.scilab.org/show_bug.cgi?id=15628): `with_tk` was a duplicate of `with_module('tclsci')`. It is removed.
295 * [#15680](http://bugzilla.scilab.org/show_bug.cgi?id=15680): `loadmatfile` could not return variables in a structure instead of into the calling environment.
296 * [#15701](http://bugzilla.scilab.org/show_bug.cgi?id=15701): `A\B` was not faster when `A` is square and triangular.
297 * [#15734](http://bugzilla.scilab.org/show_bug.cgi?id=15734):  Trivial infinite loop could not be interrupted.
298 * [#15744](http://bugzilla.scilab.org/show_bug.cgi?id=15744): `sylm(a,b)` yielded an error when degree(a)==0 or degree(b)==0.
299 * [#15745](http://bugzilla.scilab.org/show_bug.cgi?id=15745): `diophant(0,0,m)`, `diophant([p 0],q)`, `diophant([0 p],q)` with m<>0 and p>q were wrong. There was no flag for cases with an infinite number of solutions. When there is no solution, some values were returned anyway, instead of []. In this case, the documented definition of the err value was dubious. Decimal numbers and integers were accepted, but not encoded integers. Inf and NaN input coefficients were not rejected.
300 * [#15812](http://bugzilla.scilab.org/show_bug.cgi?id=15812): On assigning variables the source variable may become become corrupted
301 * [#15821](http://bugzilla.scilab.org/show_bug.cgi?id=15821): `fac3d()` and fac3d1()` were still in Scilab 6.0 despite they were tagged obsolete 14 years ago in Scilab 4.1
302 * [#15825](http://bugzilla.scilab.org/show_bug.cgi?id=15825): `gsort()` could not sort completely dense matrices of complex numbers.
303 * [#15840](http://bugzilla.scilab.org/show_bug.cgi?id=15840): `grand(1,"prm",m)` yielded an unsqueezed size([size(m) 1]) hypermatrix
304 * [#15934](http://bugzilla.scilab.org/show_bug.cgi?id=15934): The `^ hat` page wrongly indicated that `^` applied to a rectangular matrix not being a vector is done element-wise.
305 * [#15948](http://bugzilla.scilab.org/show_bug.cgi?id=15948): `xlabel`, `ylabel`, `zlabel` and `title` needed to be upgraded.
306 * [#15964](http://bugzilla.scilab.org/show_bug.cgi?id=15954): A complex empty sparse matrix could be obtained after insertion.
307 * [#15967](http://bugzilla.scilab.org/show_bug.cgi?id=15967): `setdiff(1,[])` was [] instead of `1`. `setdiff(a,[],..)` was not enough tested.
308 * [#15969](http://bugzilla.scilab.org/show_bug.cgi?id=15969): Fix spelling
309 * [#15974](http://bugzilla.scilab.org/show_bug.cgi?id=15974): `msprintf("%d", %nan)` did not return Nan
310 * [#15977](http://bugzilla.scilab.org/show_bug.cgi?id=15977): The documentation for `wavread(..,'info')` had a mistake. The `wavread` page deserved some improvements.
311 * [#15978](http://bugzilla.scilab.org/show_bug.cgi?id=15978): The `writewav()` page in english said that input data are one column per channel, instead of one row per channel. In addition, in case of writing error, `savewave()` kept the output file open and locked.
312 * [#15983](http://bugzilla.scilab.org/show_bug.cgi?id=15983): `group` regressed in 5.5.2 due to a too intrusive fix.
313 * [#15984](http://bugzilla.scilab.org/show_bug.cgi?id=15984): display scale was wrong with Retina dispplays on OSX..
314 * [#15995](http://bugzilla.scilab.org/show_bug.cgi?id=15995): patch was missing in surface plot (regression)
315 * [#15998](http://bugzilla.scilab.org/show_bug.cgi?id=15998): `mfile2sci()` yielded an unsuitable warning when converting `atan()`.
316 * [#16000](http://bugzilla.scilab.org/show_bug.cgi?id=16000): `mfile2sci()` converted `acoth()` using `atanh()` and yielding a wrong warning message.
317 * [#16003](http://bugzilla.scilab.org/show_bug.cgi?id=16003): Zoom with mouse scroll wheel was broken on simple surfaces.
318 * [#16005](http://bugzilla.scilab.org/show_bug.cgi?id=16005): The `intdec` example was biased and not robust when changing sampling frequencies.
319 * [#16007](http://bugzilla.scilab.org/show_bug.cgi?id=16007): Non-integer index in sparse makes Scilab crash.
320 * [#16008](http://bugzilla.scilab.org/show_bug.cgi?id=16008): Uimenu .callback_type, .children, .handle_visible, .user_data properties, and using HTML styling in .label were not documented.
321 * [#16011](http://bugzilla.scilab.org/show_bug.cgi?id=16011): `colorbar(umin, umax)` did not work after `plot3d2`.
322 * [#16012](http://bugzilla.scilab.org/show_bug.cgi?id=16012): `[struct() struct()]` crashed Scilab.
323 * [#16013](http://bugzilla.scilab.org/show_bug.cgi?id=16013): Load previously saved environment with "File/Load environment" menu failed.
324 * [#16014](http://bugzilla.scilab.org/show_bug.cgi?id=16014): after `x.a=1; x(:)=[]` x.a was an empty list.
325 * [#16015](http://bugzilla.scilab.org/show_bug.cgi?id=16015): `intg(a,b,f)` called f(x) with x outside [a,b].
326 * [#16019](http://bugzilla.scilab.org/show_bug.cgi?id=16019): `polarplot(x,Z)` yielded an error when x is a vector and Z a matrix.
327 * [#16021](http://bugzilla.scilab.org/show_bug.cgi?id=16021): `tand([-90 90])` answered [Nan Nan] instead of [-Inf, Inf]. `cotd([-90 90])` answered [Nan Nan] instead of [0 0]. `1 ./cosd([-90 90])` answered [Inf -Inf] instead of [Inf Inf].
328 * [#16026](http://bugzilla.scilab.org/show_bug.cgi?id=16026): For `atanh`, neither the documentation pages nor the `m2sci` converter were up to date.
329 * [#16051](http://bugzilla.scilab.org/show_bug.cgi?id=16051): undefined list elements could be of 2 distinct typeof "void" or "listundefined" according to the way they are created.
330 * [#16053](http://bugzilla.scilab.org/show_bug.cgi?id=16053): `plot(,"color",c)` no longer supported standard abbreviated color names c like "k" for black.
331 * [#16067](http://bugzilla.scilab.org/show_bug.cgi?id=16067): The display of matrices of signed integers was misaligned (regression of 6.0.0 vs 5.5.2)
332 * [#16071](http://bugzilla.scilab.org/show_bug.cgi?id=16071): `prettyprint(complex(1,%nan))` omitted the "+" in `1 + Nani`. It printed positive exponents with a useless "+". For any input nul polynomial, the string result never included the name of the variable. Default input arguments could not be skipped. ExportFormat was uselessly case-sensitive. For tex|latex: for text input, $ \ % & { } ~ and ^ special characters were not protected ; spaces were not protected, all words were concatenated ; for polynomials and rationals, the result string could be extremely long and not easily wrappable. For MathML: "<" was not protected ; <mi></mi> were missing for text input ; <mtable>, </mtable>, <mtr>, </mtr>, <mtd>, <mfenced> and </mfenced> tags were not wrapped and could not be indented. Delimiters: "" was not documented as possible value ; ")" was wrongly documented. Dynamical linear systems were not documented as possible input.
333 * [#16072](http://bugzilla.scilab.org/show_bug.cgi?id=16072): `prettyprint` did not actually support input encoded integers.
334 * [#16075](http://bugzilla.scilab.org/show_bug.cgi?id=16075): `prettyprint` was broken for cells.
335 * [#16079](http://bugzilla.scilab.org/show_bug.cgi?id=16079): `part("",$)` and `part("",$-1:$+2)` yielded an error instead of returning "" and "  ".
336 * [#16085](http://bugzilla.scilab.org/show_bug.cgi?id=16085): insertion in an empty struct was broken.
337 * [#16087](http://bugzilla.scilab.org/show_bug.cgi?id=16087): Insertion of struct in a non-empty struct crashed Scilab.
338 * [#16089](http://bugzilla.scilab.org/show_bug.cgi?id=16089): x=1:1e10 freezed Scilab.
339 * [#16095](http://bugzilla.scilab.org/show_bug.cgi?id=16095): For a matrix of graphic handles of same types, it was no longer possible to clear a property by assigning [].
340 * [#16097](http://bugzilla.scilab.org/show_bug.cgi?id=16097): `coth()` was more than twice slower than `1./tanh()`. `tanh` and `coth` did not accept sparse-encoded input.
341 * [#16102](http://bugzilla.scilab.org/show_bug.cgi?id=16102): `lstcat` could not concatenate input lists with mixed objects of types>10 like 1:$, sin, sind, struct, cells, tlists or mlists. In addition, it was slow for very long inputs lists.
342 * [#16104](http://bugzilla.scilab.org/show_bug.cgi?id=16104): `assert_checkequal` did not support properly or at all Nan and void in lists, Nan in sparse, implicit lists, macros, libraries, built-in functions, graphical handles. For input arrays or lists of matching typeof and sizes, the failure message did not display neither the index nor the values of the first mismatching elements.
343 * [#16111](http://bugzilla.scilab.org/show_bug.cgi?id=16111): `isglobal` was not supporting non-scalar array of strings as input.
344 * [#16118](http://bugzilla.scilab.org/show_bug.cgi?id=16118): `%s <> (1+%s)` returned %F.
345 * [#16135](http://bugzilla.scilab.org/show_bug.cgi?id=16135): base2dec did not detect invalid numbers.
346 * [#16139](http://bugzilla.scilab.org/show_bug.cgi?id=16139): `auread()` and `auwrite()` kept the sound file open and locked when returning on errors. They poorly handled the default .au sound file extension.
347 * [#16143](http://bugzilla.scilab.org/show_bug.cgi?id=16143): `clc(n)` cleared n+1 lines instead of n>0. Thus, it was not possible to clear only one line.
348 * [#16144](http://bugzilla.scilab.org/show_bug.cgi?id=16144): Addition of sparse matrices gave incorrect results.
349 * [#16148](http://bugzilla.scilab.org/show_bug.cgi?id=16148): `setPreferencesValue` is a general usage function and deserved to be renamed `xmlSetValues`.
350 * [#16149](http://bugzilla.scilab.org/show_bug.cgi?id=16149): `fullpath` did not support symbolic links in paths
351 * [#16152](http://bugzilla.scilab.org/show_bug.cgi?id=16152): For sparse or boolean sparse matrix `s`, `s([])` returned `[]` instead of `sparse([])`.
352 * [#16155](http://bugzilla.scilab.org/show_bug.cgi?id=16155): `flipdim(hypermat,dim,sb)` yielded wrong results for dim<3 and sb>1, and yielded an error for dim>2.
353 * [#16158](http://bugzilla.scilab.org/show_bug.cgi?id=16158): When a multicolumn array of rationals was displayed wide column per column, columns #2:$ were replaced with its column #2.
354 * [#16160](http://bugzilla.scilab.org/show_bug.cgi?id=16160): `ppol` changed values of third input variable.
355 * [#16164](http://bugzilla.scilab.org/show_bug.cgi?id=16164): Help pages in elementary_functions/signal_processing were mislocated.
356 * [#16166](http://bugzilla.scilab.org/show_bug.cgi?id=16166): `noisegen()` is crooky, even threatening, and very poor. It is tagged as obsolete and will be removed from Scilab 6.1.x.
357 * [#16168](http://bugzilla.scilab.org/show_bug.cgi?id=16168): On some Linux installations, `test_run()` always failed.
358 * [#16174](http://bugzilla.scilab.org/show_bug.cgi?id=16174): `libraryinfo` yielded 0x0 matrix of strings for libs without macro
359 * [#16177](http://bugzilla.scilab.org/show_bug.cgi?id=16177): In the uicontrol help page, the first example was bugged.
360 * [#16178](http://bugzilla.scilab.org/show_bug.cgi?id=16178): `sci2exp` yielded an error for any input macro without output argument.
361 * [#16181](http://bugzilla.scilab.org/show_bug.cgi?id=16181): `mfile2sci` yielded an error on `a(end)` standing for `a($)` (Scilab 6 regression).
362 * [#16190](http://bugzilla.scilab.org/show_bug.cgi?id=16190): console width was fixed at 75 in nw and nwni mode regardless of terminal width.
363 * [#16197](http://bugzilla.scilab.org/show_bug.cgi?id=16197): result of extraction was not decomplexified when applicable.
364 * [#16199](http://bugzilla.scilab.org/show_bug.cgi?id=16199): In the documentation, `zpk2tf` and `zpk2ss` examples yielded an error.
365 * [#16200](http://bugzilla.scilab.org/show_bug.cgi?id=16200): Concatenation of transposed cells crashed Scilab.
366 * [#16208](http://bugzilla.scilab.org/show_bug.cgi?id=16208): Using 3D string matrix with old C-api gateways may crash Scilab.
367 * [#16209](http://bugzilla.scilab.org/show_bug.cgi?id=16209): `grand` causes a freeze after several consecutive calls when using default base generator.
368 * [#16210](http://bugzilla.scilab.org/show_bug.cgi?id=16210): The uicontrol.units = "normalized" property was not described.
369 * [#16215](http://bugzilla.scilab.org/show_bug.cgi?id=16215): `mfile2sci` badly converted the colon `:` into `mtlb(:)`
370 * [#16227](http://bugzilla.scilab.org/show_bug.cgi?id=16227): `WSCI` was not defined as environment variable and could not be used as `%WSCI%` in commands sent with `host()` or `unix_*()`.
371 * [#16229](http://bugzilla.scilab.org/show_bug.cgi?id=16229): Some outdated parts of the `help scilab` page were misleading.
372 * [#16230](http://bugzilla.scilab.org/show_bug.cgi?id=16230): `MSWin>scilab --help` missed displaying some options like `-args..`, `-noatomsautoload`, etc.
373 * [#16232](http://bugzilla.scilab.org/show_bug.cgi?id=16232): `colorbar()` did not support `$` in `colminmax`, standing for the number of colors in the current color map.
374 * [#16234](http://bugzilla.scilab.org/show_bug.cgi?id=16234): Airy functions were not available.
375 * [#16242](http://bugzilla.scilab.org/show_bug.cgi?id=16242): `loadmatfile()` could not read Octave native text data files.
376 * [#16245](http://bugzilla.scilab.org/show_bug.cgi?id=16245): `gsort` could not sort booleans.
377 * [#16246](http://bugzilla.scilab.org/show_bug.cgi?id=16246): `isvector` was broken for sparse matrices.
378 * [#16257](http://bugzilla.scilab.org/show_bug.cgi?id=16257): `blockdiag()` implemented to replace `sysdiag()`, improved and extended to strings.
379 * [#16259](http://bugzilla.scilab.org/show_bug.cgi?id=16259): `*` and `.*` multiplications involving a sparse boolean and a double, or involving 2 booleans, were not implemented.
380 * [#16260](http://bugzilla.scilab.org/show_bug.cgi?id=16260): overloading `nnz` was not possible (regression).
381 * [#16263](http://bugzilla.scilab.org/show_bug.cgi?id=16263): Polynomial insertion was broken for complex case.
382 * [#16264](http://bugzilla.scilab.org/show_bug.cgi?id=16264): After empty for loop iterator was left uninitialized.
383 * [#16265](http://bugzilla.scilab.org/show_bug.cgi?id=16265): The translated pages of the `warning` documentation were not up-to-date.
384 * [#16269](http://bugzilla.scilab.org/show_bug.cgi?id=16269): Scalar structures were poorly displayed.
385 * [#16271](http://bugzilla.scilab.org/show_bug.cgi?id=16271): `loadmatfile()` was never able to automatically detect the input data format.
386 * [#16272](http://bugzilla.scilab.org/show_bug.cgi?id=16272): `spzeros(0,n)` and `spzeros(n,0)` were different from `sparse(0,0)`.
387 * [#16273](http://bugzilla.scilab.org/show_bug.cgi?id=16273): `calendar` had no formated display mode.
388 * [#16275](http://bugzilla.scilab.org/show_bug.cgi?id=16275): `fsolve(x0, fun, tol)` no longer took `tol` into account.
389 * [#16290](http://bugzilla.scilab.org/show_bug.cgi?id=16290): The `cn`, `dn`, `ns`, `nc` and `nd` Jacobi elliptic functions were not available.
390 * [#16292](http://bugzilla.scilab.org/show_bug.cgi?id=16292): `hallchart()` had bugs and a poor rendering.
391 * [#16293](http://bugzilla.scilab.org/show_bug.cgi?id=16293): Some demos run in step-by-step console mode(4) did not focus user's attention to the console to proceed.
392 * [#16299](http://bugzilla.scilab.org/show_bug.cgi?id=16299): After `graypolarplot`, `colorbar` displayed an empty ungraduated color bar.
393 * [#16303](http://bugzilla.scilab.org/show_bug.cgi?id=16303): log10(x) had wrong dimensions when x is an hypermatrix.
394 * [#16307](http://bugzilla.scilab.org/show_bug.cgi?id=16307): `dockable="off"` and `closerequestfcn` on figures crached Scilab.
395 * [#16320](http://bugzilla.scilab.org/show_bug.cgi?id=16320): There were unsupported UTF-8 characters in some gettext id messages.
396 * [#16321](http://bugzilla.scilab.org/show_bug.cgi?id=16321): There were typo errors in the documentation.
397