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