* Bug #14304 fixed - find(x, nmax) returned []. Non regression test added.
[scilab.git] / scilab / CHANGES_6.0.X
1
2
3         Welcome to Scilab 6
4         ===================
5
6 This file details the changes between 6.0.0-beta-1, 6.0.0-alpha-2, 6.0.0-alpha-1, and the previous release, version 5.5.2.
7
8 For a high-level overview of the changes in this release, please consult the "What's new" page of the help, by simply typing "help" in Scilab console.
9
10
11
12
13         Changes between version 6.0.0-alpha-2 and 6.0.0-beta-1
14         ======================================================
15
16
17 New Features
18 ============
19
20 Xcos - the graphical tool for dynamic systems modeling and simulation - is
21 finally functional in this release. You can now graphically create, edit, and
22 simulate models. No changes are visible to the user, but the new Xcos uses the
23 re-written Scilab engine, and is now running in native code, which should
24 provide much better performance as well as support for much bigger models.
25
26 Xcos can load and run models created with earlier versions of Scilab. However,
27 there are a few known limitations to upgrade of schemas created with
28 earlier versions:
29  * Some links may not be imported correctly. If links disappear when opening
30    the schema, simply re-create them manually. Simulation will then work
31    properly. Please report when this happens as bugs, if possible with the
32    original schema attached (or please send it to us in private if you
33    prefer): we could not verify all the cases where this could happen,
34    thus we are **very** interested in these cases.
35  * When saving, schemas created with earlier versions of Xcos will be
36    automatically converted to the 6.0 format: they cannot be opened again
37    in Scilab/Xcos 5.x.
38
39 Bug Fixes
40 =========
41
42 * Bug #13918 fixed - Unmanaged operations on hypermatrix did not call overload functions.
43
44 * Bug #13298 fixed - Static analysis bugs detected by PVS-Studio fixed.
45
46 * Bug #13986 fixed - setdefaultlanguage did not set value correctly in Windows registry.
47
48 * Bug #13990 fixed - Windows installer did not ship all localization files.
49
50 * Bug #14178 fixed - tcl/tk unavailability on MacOS is now documented.
51
52 * Bug #14041 fixed - genlib crash when the file is locked by another program.
53
54 * Bug #14096 fixed - Issue with mscanf Function.
55
56 * Bug #14181 fixed - Calling intg (or integrate) in a function that is being integrated failed.
57
58 * Bug #14245 fixed - Problem in recursive extraction using list with struct.
59
60 * Bug #14247 fixed - sqrt function did not work on hypermatrices (non regression test).
61
62 * Bug #14249 fixed - ctrl-c can be used to stop writing control expression.
63
64 * Bug #14251 fixed - `spec` leaked some memory.
65
66 * Bug #14253 fixed - Insertion in a struct contained in a list fixed.
67
68 * Bug #14255 fixed - fftw without MKL leaked in internal withMKL function.
69
70 * Bug #14300 fixed - Crash when playing with structures.
71
72 * Bug #14304 fixed - find(x, nmax) returned [] (non regression test).
73
74 * Bug #14313 fixed - Parser did not create a column separator after spaces and '...' at the end of lines
75
76 * Bug #14316 fixed - Operation scalar^matrix was identical to scalar.^matrix instead of being expm( log(scalar) * matrix )
77
78 Dependencies
79 =============
80
81 * Apache xmlgraphics stack upgraded to the latest versions :
82   - xmlgraphics-commons 2.0.1
83   - Batik 1.8
84   - FOP 2.0
85
86         Changes between version 6.0.0-alpha-1 and 6.0.0-alpha-2
87         =======================================================
88
89 New Features
90 ============
91
92 * Scilab now includes a full-featured debugger, with ability to run Scilab scripts or functions step-by-step, to put (conditional) breakpoint, in particular break only when an exception is set. Run "help debug" for more information.
93
94 * A new profiler and coverage tool has been added.
95   It replaces the "profile" function (which is still there but not working, and will be removed in the final release).
96   It produces HTML report for the time spent (profile) on each line. Example of use:
97
98      covStart(isempty) // instruments the "isempty" macro; instrumenting a whole library can be done with: covStart("elementary_functions")
99      for i=1:1e5; isempty(i); end // execute some code - this will be profiled
100      covWrite("html", "TMPDIR/coverage") // write the profiling/coverage report as "report.html" in the folder specified as second parameter
101      covStop(); // stop the profiling
102
103   A function to merge multiple profiler/coverage is provided too: covMerge([ list_of_files_to_merge], file_to_merge_to).
104   The API will change before the release; the current API is mostly to get feedback from the community.
105
106 * A "lint"-like command, slint, has been added, for code static analysis: it detects unclear, risky or suspicious code.
107   Usage: slint("<sci filename>"). It is not documented yet.
108
109 Other feature changes
110 =====================
111
112 * Valgrind error detection added to test_run (on Linux only)
113
114 * Addition or subtraction with an empty matrix now return an empty matrix.
115
116 * SSE2, Streaming SIMD Extensions 2 support is now mandatory to run Scilab on Linux i686.
117
118 * A call stack limit has been introduced. Default maximum depth is setup to 1000 and
119   can be changed by new function recursionlimit or by preferences interface.
120
121 * The floating point exception mode (ieee) is now set to 2 by default: floating point exceptions now produce "Inf" or "Nan",
122   and do not cause any error. The previous behavior can be recalled by simply calling: ieee(0)
123
124 API modification
125 ================
126
127 * User-defined functions written in C (gateways) must now use the "pvApiCtx" name for their second parameter, for example:
128
129      int sci_Levkov(char *fname, void* pvApiCtx)
130
131  instead of any "unsigned long l". This is now requires for some macros, such as Rhs(), to work.
132  (Although not strictly an API change, it may require gateway code to be modified).
133
134 Bug Fixes
135 =========
136
137 * Bug #11511 fixed - error() did non accept string matrix (non regression test).
138
139 * Bug #12044 fixed - Adding or substracting the empty matrix now return an empty matrix.
140
141 * Bug #12419 fixed - objects were cleared before the scilab.quit was called
142
143 * Bug #12928 fixed - int functions with %nan and %inf return wrong values.
144
145 * Bug #13709 fixed - unique function sometimes returned wrong index values.
146
147 * Bug #13750 fixed - Calling ss2ss function with flag = 2 returned an error.
148
149 * Bug #13780 fixed - size with two input and output arguments did not return an error.
150
151 * Bug #13843 fixed - Scilab crashed when polarplot and plot2d were called with wrong strf value.
152
153 * Bug #13853 fixed - plzr() returned wrong results for discrete-time systems with a numeric time step.
154
155 * Bug #13862 fixed - There was no lazy evaluation of 'or' operands in 'if' tests.
156
157 * Bug #13864 fixed - macro %l_isequal was useless in Scilab 6.
158
159 * Bug #13872 fixed - Non regression test added for unique function (the indices returned were wrong)
160
161 * Bug #13890 fixed - getd did not return loaded symbols in previous scope.
162
163 * Bug #13893 fixed - simp() function did not set a rational denominator at 1 when numerator was equal to zero.
164
165 * Bug #13894 fixed - Default working directory of the previous session did not work.
166
167 * Bug #13903 fixed - get_function_path() returned a path with a missing file separator.
168
169 * Bug #13907 fixed - Avoids the gray background on the right panel of the palette Browser.
170
171 * Bug #13908 fixed - part(text, n:$) was very slow.
172
173 * Bug #13919 fixed - Scilab parsed "hidden" as a reserved keyword but it is not used.
174
175 * Bug #13920 fixed - `getscilabkeywords` help page should be in the "Scilab keywords" section.
176
177 * Bug #13931 fixed - handle "aarch64" processor for some Linux distribution.
178
179 * Bug #13944 fixed - The menu "Toolboxes" was missing.
180
181 * Bug #13983 fixed - who_user returned wrong values.
182
183 * Bug #13990 fixed - `gettext` did not manage the added '_W' macro.
184
185 * Bug #14020 fixed - Incorrect carriage return ascii code.
186
187 * Bug #14022 fixed - getscilabkeywords() was KO (+gateway what() added).
188
189 * Bug #14023 fixed - It was not possible to concatenate cells.
190
191 * Bug #14024 fixed - Print of macrofile display a debug message
192                      instead of macro prototype.
193
194 * Bug #14025 fixed - head_comments did not take into account compiled functions.
195
196 * Bug #14028 fixed - force flag of genlib did not rebuild bin file.
197
198 * Bug #14036 fixed - tag and user_data properties were not displayed and not documented for light entity.
199
200 * Bug #14038 fixed - Encoded integers were no longer accepted for list extraction.
201
202 * Bug #14040 fixed - graphic property setting fails when using array of handles
203
204 * Bug #14043 fixed - Examples of api Scilab help pages had to be updated (pvApiCtx in gateway prototypes).
205
206 * Bug #14047 fixed - wrong behaviour of break ( continue ) in if outside of loop.
207
208 * Bug #14049 fixed - genlib hangs if an unexpected endfunction occurs.
209
210 * Bug #14055 fixed - overload on matrix concatenation did not called with [].
211
212 * Bug #14057 fixed - grand(m,n) returned a wrong error and grand(m,n,p) called an overloading function instead of returning an error.
213
214 * Bug #14058 fixed - Scilab crashed with 'file("close", file())' instruction
215
216 * Bug #14059 fixed - Lack of performance on deletion of matrix elements.
217
218 * Bug #14065 fixed - Change "java size" in points in graphics font help page.
219
220 * Bug #14082 fixed - m=1; m()=1; made Scilab crash.
221
222 * Bug #14093 fixed - atanh returns NaN for values with an absolute value greater than 1
223
224 * Bug #14095 fixed - Scilab crashed when a .fig file was loaded with loadmatfile function.
225
226 * Bug #14097 fixed - genlib no more adds a separator at the end of the lib path if it is not given in the directory path.
227
228 * Bug #14105 fixed - New block comments /*...*/ feature was not documented.
229
230 * Bug #14107 fixed - lstcat of a string and a list did not produce consistent results.
231
232 * Bug #14109 fixed - lsq function crashed Scilab when Scilab version depended on mkl library.
233
234 * Bug #14113 fixed - Scilab 6 did not detect infinite loop.
235
236 * Bug #14135 fixed - crash when running "Graphics -> Matplot -> Java Image" demonstration.
237
238 * Bug #14141 fixed - recursive insertion: gcf().attribute=value => "Wrong insertion : function or macro are not expected".
239
240 * Bug #14144 fixed - Scilab crashed with int64(2^63).
241
242 * Bug #14149 fixed - hdf5 could not restore hypermatrix with good dimensions.
243
244 * Bug #14150 fixed - The Windows SDK was not found on Windows 8.1.
245
246 * Bug #14156 fixed - mfscanf returned an empty matrix when datafile contained a header.
247
248 * Bug #14159 fixed - Matplot crashed Scilab on boolean input.
249
250 * Bug #14187 fixed - fscanfMat failed to read format %d, %i and %f.
251
252 * Bug #14199 fixed - sqrt returned wrong dimension results on matrix with more than dimensions.
253
254 * Bug #14203 fixed - Improve some error messages, some help pages and some comments.
255
256 * Bug #14204 fixed - dec2bin ( dec2base ) must show a better error message for too large values.
257
258 * Bug #14205 fixed - Console crash when assigning uint32 numbers to double matrix.
259
260 * Bug #14209 fixed - 1:245 created infinite loop.
261
262 * Bug #14212 fixed - Scilab 6 did not load array of struct from Scilab 5.5 files correctly
263
264 * Bug #14219 fixed - As bug #14203, improve some error messages, some help pages and some comments.
265
266 * Bug #14223 fixed - det returned an error when it is used with a singular matrix.
267
268 * Bug #14225 fixed - command-line option "-quit" should set the processs Exit status
269
270 * Bug #14228 fixed - Setting rotation_angles property to a matrix of any size did not return error message.
271
272 * Bug #14232 fixed - Typos in Xcos.
273
274
275
276
277         Changes between version 5.5.2 and 6.0.0-alpha-1
278         ===============================================
279
280
281 Main new Features
282 =================
283
284 * New language parser and interpreter. See the help for more details.
285
286 * Support for bigger data sets: dynamic memory usage. No need for "stacksize" anymore. See the help for more details.
287
288 Other feature additions
289 =======================
290
291 * scatter/scatter3 plot with different mark colors is now available.
292
293 * parulacolormap is now available.
294
295 * name2rgb can now handle a single string and a matrix of strings.
296
297
298 Installation
299 ============
300
301 * Under Windows, MKL packages are now included in Scilab installer and no more
302   downloaded while installing Scilab.
303
304
305 Compilation
306 ===========
307
308 * A C++11 compliant compiler is now needed.
309
310 * Java minimal version switch to 1.8.
311
312 * Ant minimal version switched to 1.9.0 (for Java 1.8 compatibility).
313
314 * ecj minimal version switched to 4.4.0 (for Java 1.8 compatibility).
315
316 * --without-xcos now only disable Xcos compilation. Xcos graphical interface is disabled
317 using --without-gui.
318
319
320 Packaging & Supported Operating Systems
321 =======================================
322
323 * Scilab embedded JVM has been upgraded to Java 1.8. To run or compile Scilab 6.0.0-alpha-1 you need at least:
324    - Windows:
325         Windows 8 (Desktop)
326         Windows 7
327         Windows Vista SP2
328         Windows Server 2008 R2 SP1 (64-bit)
329         Windows Server 2012 (64-bit)
330    - Mac OS X:
331         Intel-based Mac running Mac OS X 10.8.3+, 10.9+
332    - Linux:
333         Red Hat Enterprise Linux 5.5+, 6.x (32-bit), 6.x (64-bit), 7.x (64-bit)
334         Oracle Linux 5.5+, 6.x (32-bit), 6.x (64-bit), 7.x (64-bit)
335         Ubuntu Linux 12.04 LTS, 13.x
336         Suse Linux Enterprise Server 10 SP2+, 11.x
337 For more information, please consult: http://java.com/en/download/help/sysreq.xml
338
339
340 Signal Processing
341 ==================
342
343 * amell function:
344   - now checks its parameters are real numbers,
345   - now throws an error if the second parameter is not a scalar.
346
347
348 Input/Output File
349 ==================
350
351 * The use of I/O console is now allowed with the following functions:
352   mget, mgetl, mgetstr, mput, mputl and mputstr.
353
354 * mclearerr now returns a flag indicating the file identifier validity.
355
356 * fileinfo can now take a row vector as input.
357
358 * msprintf no more returns an error message when there are too many input arguments (more values that format needs).
359
360
361 Data Structures
362 ================
363
364 * cells and structs are now native types, hence improving performances.
365
366 * cells:
367   - insertion and extraction must be done via () or {}.
368   - .dims and .entries fields have been removed, please use size and () instead.
369
370 * struct
371   - dims field has been removed, please use size instead.
372
373 * hypermatrix:
374   - hypermatrices are natively managed (without mlist overloading).
375   - typeof function now returns real type like constant, string, ... instead of hypermat
376   - type function returns real type like 1, 10, ... instead of 17 (mlist).
377   - .dims and .entries fields have been removed, please use size and () instead.
378
379 Removed Functions
380 ==================
381
382 * maxfiles function is now obsolete.
383
384 * intersci has been removed. Please use swig instead.
385
386 * numdiff has been removed. Please use numderivative instead.
387
388 * derivative has been removed. Please use numderivative instead.
389
390 * curblockc has been removed. Please use curblock instead.
391
392 * extract_help_examples has been removed. (Undocumented and based on former help format).
393
394 * Symbolic module functions have been removed:
395   - addf
396   - cmb_lin
397   - ldivf
398   - mulf
399   - rdivf
400   - solve
401   - subf
402   - trianfml
403   - trisolve
404   - block2exp
405
406 Removed Functions (based on former Scilab stack)
407 ================================================
408
409 * comp.
410
411 * errcatch.
412
413 * iserror.
414
415 * fun2string.
416
417 * getvariablesonstack.
418
419 * gstacksize.
420
421 * macr2lst.
422
423 * stacksize.
424
425 * code2str.
426
427 * str2code.
428
429 * -mem option (used to set stacksize at startup).
430
431
432 Modified Functions
433 ===================
434
435 * exec: exec of macro executes the body in the current scope but the prototype must have zero input and output arguments.
436 * error: an error number in input is deprecated.
437 * impl: Recall impl with the same parameters as in its previous stop is now available.
438 * ode: y0 is restricted to a column vector.
439 * pppdiv: Return a scalar of type 'constant' when the rank is 0.
440 * pdiv: Return a matrix of type 'constant' when all the rank are 0.
441 * typeof: Add a 2nd argument "overload" of get overloaded name (typeof(cell(), "overload") -> "ce")
442
443
444 Syntax Modifications
445 =====================
446
447 * Declaration of a number on two lines is no longer allowed:
448  1..
449  2
450
451 * {"foo"} returns a cell not a string matrix.
452
453 * Declaring non-homogenous strings ("string' or 'string") is no more allowed.
454
455 * New shortcut operators have been introduced: && and ||.
456
457
458 Deprecated Behaviors
459 =====================
460
461 * {} becomes different of [] and will be used on cells.
462
463 * Syntax %i:10 is now deprecated (only real scalars can be used).
464
465 * Writing string or string matrix in a file does not add blanck space before each value:
466     write("TMPDIR/test", ["test", "sample"; "sample", "test"])
467     "-" + mgetl("TMPDIR/test") + "-"
468
469 * while/else control instruction is no more supported.
470
471 * (a=b) executed like a == b is now deprecated and returns an error.
472
473
474 Bug Fixes
475 =========
476
477 * Bug #6064 fixed - scatter function did not exist in Scilab.
478
479 * Bug #8990 fixed - zoom_auto feature was missing on the plot toolbar.
480
481 * Bug #9621 fixed - A tlist with undefined fields can now be saved.
482
483 * Bug #12202 fixed - Mixing int8 and doubles with colon operator led to wrong results.
484
485 * Bug #13289 fixed - Using non-integer indexes for mlists made Scilab crash.
486
487 * Bug #13517 fixed - isdef crashed Scilab when called with a vector of strings
488                      as input in a function and after a declaration of variable.
489
490 * Bug #13807 fixed - Invalid margins were computed when figure was not visible.
491
492 * Bug #13829 fixed - mean and sum functions returned wrong results for hypermatrices.
493
494 * Bug #13834 fixed - Drawing a high number of strings in a figure generated a Java exception.
495
496 * Bug #13838 fixed - Sparse and complex substraction made Scilab crash.
497
498 * Bug #13854 fixed - Under some operating systems, SciNotes did not initialize a new document at startup.
499
500 * Bug #13866 fixed - There were some issues with FFTW3 library.
501
502 * Bug #13881 fixed - datatipRemoveAll did not work.
503
504 * Bug #13924 fixed - rationals r1==r2 and r1~=r2 might sometimes be wrong.
505
506 * Bug #13925 fixed - SciNotes used the wrong paired bracket highlight style.
507
508 * Bug #13941 fixed - Internal timestamps of HDF5 files prevented having a fixed
509                      hash for an unvarying set of saved objects.
510
511 * Bug #13942 fixed - Now the palette browser tree is always resized when
512                      expanded/collapsed.
513
514 * Bug #13971 fixed - A space has been added between Scilab prompt and cursor.
515
516 * Bug #13972 fixed - Wildcard ('*') was not managed in printf expressions.
517
518 * Bug #14043 fixed - Gateway C prototype changed from int sci_...(char *fname, unsigned long l)
519                      to sci_...(char *fname, void* pvApiCtx). Variable name has to be
520                      exactly "pvApyCtx" when macros are used in a gateway. (1)
521
522 * Bug #14044 fixed - MALLOC.h is now renamed to sci_malloc.h. (1)
523
524 (1) originally not documented in the alpha 1 release.
525
526 Known issues
527 =============
528
529 * Xcos does not work in this version.
530
531 * This version will start in English by default.