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