65fb969bccb7deb8f5b919adcbd3ad22b17eba14
[scilab.git] / scilab / CHANGES_5.2.X
1                Changes between version 5.1.X and 5.2.0 of Scilab
2                =================================================
3
4
5 Extension capabilities of Scilab :
6 ==================================
7
8 * A new API called api_scilab is available. This API provides functions to
9   read/write data from/to Scilab memory.
10   It provides many advantages:
11   - manages all Scilab data types
12   - consistency over all data types
13   - will be maintained over future versions of Scilab
14   - fully documented
15   - fully tested by unitary tests
16
17   Note that all other Scilab API (straight access to the Scilab stack, stack1,
18   stack2 and stack3) will be maintained in the Scilab 5.X familly but most of
19   them will be dropped in the 6 family.
20
21 * In the enum sci_types which list all Scilab datatypes, the type 
22   "sci_lufact_pointer" has been renamed to "sci_pointer".
23   A define of "sci_lufact_pointer" on "sci_pointer" has been added to backward
24   compabilities.
25
26 Compilation:
27 ============
28
29 * Visual studio uses default runtime library /MD (msvcrt.lib) to build all libraries of scilab.
30
31 * Symbols in dlls are explicitly exported on Windows.
32   In previous versions of scilab all symbols were exported.
33
34 * modelicac (scicos) built with Ocaml 3.11.0 on Windows
35
36 * blas, lapack, arpack libraries moved as pre-requirements (Windows)
37
38 * blas, lapack libraries moved as pre-requirements (Linux/Unix/MacOSX)
39
40 * lapack 3.2 used on Windows
41
42 * functions module is loaded dynamically by Scilab.
43
44 * autoconf updated to version 2.64
45
46 * automake updated to version 1.11
47
48 * libtool updated from version 1.5.26 to 2.2.6a (Closes bug #4279)
49
50 Source reorganisation:
51 ======================
52
53 * Makefile.incl.mak (Windows, dynamic link) moved from SCI directory to
54   SCI/modules/src/scripts
55   
56 * newest, get_absolute_file_path, getrelativefilename moved from io to fileio.
57
58 * bug 3668 fixed - formatnumber.f, dmdsp.f, ... moved in output_stream module.
59
60 * printf, msprintf, mprintf, print moved in output_stream module.
61
62 * disp moved in output_stream module.
63
64 * bug 3668 fixed - lib, deff, getf, exec, execstr moved in functions module.
65
66 * oldsave, oldload functions (only used with macros of scilab 2.4) are removed
67   Replaces oldsave, oldload by save and load in your code.
68
69 * libs/MALLOC/src/malloc.c is no longer build (used to be built for 64 
70 bits archs). Note that if Scilab is built on a 64 bits and triggers a 
71 seg fault on startup, uncomment the related line in 
72 libs/MALLOC/Makefile.am and launch autoreconf.
73
74 toolbox_skeleton:
75 =================
76
77 * examples of gateways functions (c_sum, f_sum, cpp_find) rewritten with new API.
78
79 * cleaner added
80
81 Input/Output functions:
82 =======================
83
84 * Input arguments of fprintf are checked 
85
86 * Rewrite :
87     + getenv
88     + diary - SEP 23
89
90 Core functions:
91 ===============
92
93 * Request 505 : Add error code capability to exit (SEP #19).
94
95 * Rewrite :
96    + mode
97    + predef
98    + type
99    + typename
100    + whereis
101      
102 * sethomedirectory is obsolete (see home). 
103
104 * getf is obsolete (see exec).
105
106 fileio functions:
107 =================
108
109 * Input arguments of functions are now checked 
110     (mclearerr, mclose, merror, mget, mgetstr, meof, mopen, mput, mputstr, mseek, mtell)
111     
112 * fileinfo manages column vector of strings (SEP #25)
113   
114 * basename uses fileparts
115   
116 * pathconvert : If the flagtrail argument is set to FALSE and the trailing separator
117                 of the path is removed (if present of course). See Bug 4468.
118                   
119 * getcwd is obsolete (see pwd). 
120
121 * isfile : checks if filename is a existing file.
122
123 * movefile : move files or directory (Request 661)
124
125 * Rewrite :
126    + copyfile (primitive)
127    + fileparts (primitive)
128    + isdir manages matrix of strings as input argument
129    + basename (primitive)
130    + pathconvert (primitive)
131   
132 Dynamic link:
133 =============
134
135 * Windows : temporary files (objects) are generated in a intermediate subdirectory (Release or Debug)
136    ilib_for_link and ilib_gen_Make (with Visual studio) use a same makefile template.
137    (SCI/modules/dynamic_link/src/scripts/TEMPLATE_MAKEFILE.VC)
138   
139 * ilib_for_link and ilib_gen_Make with lcc-win32 use a same makefile template.
140    (SCI/modules/dynamic_link/src/scripts/TEMPLATE_MAKEFILE.LCC)
141
142 * ilib_verbose (SEP #17) Set level of display returned by dynamic link functions.
143  
144 * add a example to call a scilab macro from a C interface
145    (see SCI/modules/dynamic_link/examples/interfaces/call_scilab_function directory)
146    
147 * a 'cleaner.sce' file is generated by 'ilib_for_link' and 'ilib_build'.
148  
149 * addinter : each interface added can manage 999 functions (bug 4675). 
150
151 * ilib_gen_gateway can generated gateway without PutLhsVar (Managed by user, in this case)
152   see help of 'ilib_gen_gateway' about this modification and 
153   SCI/contrib/toolbox_skeleton/sci_gateway/c/builder_gateway_c.sce (example)
154
155 Online Help :
156 =============
157
158 * Sub-Chapters are now allowed (See SEP #24)
159 * xmltochm exports help to chm format (Windows)
160 * add_help_chapter now accepts string array as input argument : consequently,
161    several online help chapters can be added at the same time.
162 * add_help_chapter now accepts to add help chapters with the same title.
163  
164 call_scilab module :
165 ====================
166
167 * A example to call scilab from C# added.
168    see SCI/modules/call_scilab/examples/call_scilab/NET/C# directory
169
170 * A example to call scilab from VB.NET added.
171    see SCI/modules/call_scilab/examples/call_scilab/NET/VB.NET directory
172  
173 * CallScilab.h renamed call_scilab.h
174
175 tests :
176 =======
177
178 * test_run() now accepts Sub-Modules (See SEP #31)
179
180 char encoding bugs :
181 ====================
182
183 * bug 2627 fixed - Scilab 5 console retrieve input strings in UTF-8 format and Scilab doesn't
184                    manage this format but ISO-8859.
185
186 * bug 3228 fixed - ascii function broken for extended set (example : ascii('é')).
187
188 * bug 3433 fixed - length with a UTF string returns a incorrect size
189
190 * bug 3472 fixed - Dropping files in the Scilab shell doesn't work when the path
191                    contains accented characters.
192
193 * bug 3666 fixed - 'input' returns accented characters.
194
195 * bug 3701 fixed - "Error during call to UTFToLocale: No such file or directory" on Windows.
196
197 * bug 3839 fixed - strrev() doesn't work correctly if the string to be reversed
198                    includes some accentuated characters.
199
200 * bug 4003 fixed - setenv & getenv do not manage utf string on Windows.
201
202 * bug 4012 fixed - display of month and week are wrong in sessions starts and ends (history manager).
203
204 * bug 4019 fixed - with -nw or -nwni mode on Windows, console returns error about
205                    localization.
206
207 * bug 4068 fixed - Accentuated names in directories not supported.
208
209 * bug 4145 fixed - Simplified Chinese file names can not shown correctly.
210
211 * bug 4233 fixed - exec command with a UTF filename fails.
212
213 * bug 4277 fixed - strsubst,regexp, strindex, grep return strange results if accented
214                    characters and character class are associated in the pattern to match.
215
216 * bug 4758 fixed - embedded version of autoconf libs.m4 were causing some issues
217
218 * bug 4768 fixed - strsplit returns strange results with accened characters
219
220 String manipulation:
221 ====================
222
223 * Rewrite :
224     + strsplit - SEP 26
225
226
227 Java/Scilab API:
228 ================
229
230  - uses api_scilab functions to write & read data (internal for javasci)
231
232  - SciInteger class added  
233
234
235 Optimization:
236 =============
237  - Created neldermead component for simplex-based direct search optimization
238  - Created optimbase component to build optimization algorithms
239  - Created optimsimplex component to build direct search algorithms
240  - Created fminsearch optimization function
241  - Added examples in the help for optim
242  
243 Linear algebra:
244 ===============
245  - Clarified documentation for lu function.
246
247 elementary functions:
248 =====================
249  - 'sort' is obsolete. see 'gsort'
250
251 Bug fixes:
252 ==========
253
254 * bug 415 fixed - wrong order in the roots of a polynomial
255
256 * bug 1412 fixed - A(3,3)=%s,A(:)=%z causes scilab to hang
257
258 * bug 1628 fixed - with long programs (several hours) I get a negative value for
259                    timer()
260
261 * bug 1776 fixed - funcprot accepts non-integer arguments
262
263 * bug 2275 fixed - add the isvector help page
264
265 * bug 2453 fixed - mfscanf and probably the other variants msscanf mscanf may crash Scilab when
266                    first argument is -1 (any number of lines)
267
268 * bug 2570 fixed - LCC does not work with some "stk" ref on some old toolboxes.
269
270 * bug 3201 fixed - add the help page for the function del_help_chapter
271
272 * bug 3533 fixed - lib(dir_path) doesn't work if the final slash is missing in dir_path.
273
274 * bug 3580 fixed - a gateway declaration containing a false primitive ID or gateway ID crashs scilab.
275
276 * bug 3772 fixed - input argument of 'predef' was not correctly checked.
277
278 * bug 3773 fixed - 'ans' was protected with predef('all').
279
280 * bug 3884 fixed - chdir, getcwd, pwd moved from core to fileio module.
281
282 * bug 3923 fixed - diary() function produces bad files when it try to record interactive commands.
283
284 * bug 3953 fixed - delete() always sets the current entity to the parent of the
285                    deleted entity.
286
287 * bug 3992 fixed - remove some invalid dependencies on external libraries.
288
289 * bug 4030 fixed - unix_w('dir /s') can display strange matrix on windows.
290
291 * bug 4090 fixed - draw does not work any more while inside drawlater/drawnow scope.
292
293 * bug 4110 fixed - Demos order differs between Linux and Windows versions
294
295 * bug 4181 fixed - remove the AdCommunications help page
296
297 * bug 4184 fixed - style of the examples has been corrected
298
299 * bug 4217 fixed - gsort sort complex by magnitude only with 'g' and not support 'r', 'c', 'lr', 'lc'
300
301 * bug 4262 fixed - lines returns incorrect values.
302
303 * bug 4267 fixed - A non initilization of a lock under Netbsd was 
304                    causing an error on startup
305                    
306 * bug 4278 fixed - typename() called with a wrong number of input arguments returns incoherent errors.
307
308 * bug 4307 fixed - Desactivate (in modules.xml) modules if its functionnalities
309                    are not available.
310                    
311 * bug 4307 fixed - %io has no help file.                   
312
313 * bug 4330 fixed - stacksize('max') + stacksize(required_mem) doesn't work
314
315 * bug 4358 fixed - changing defaultstacksize in scilab.start doesn't work
316
317 * bug 4360 fixed - The reference of bug_3954.tst was missing.
318
319 * bug 4364 fixed - stacksize('max') + stacksize(required_mem) doesn't work
320
321 * bug 4379 fixed - If the thickness property (of plot3d for example) is set to 0,
322                    the lines/edges should disappear.
323
324 * bug 4380 fixed - diary(0) without a initialization of diary crashs scilab.
325
326 * bug 4380 fixed - help page of the printf command has a problem.
327
328 * bug 4380 fixed - merror error codes not documented.
329
330 * bug 4409 fixed - fortran optim subroutines use write (fortran) and not basout as
331                    standard output.
332
333 * bug 4403 fixed - isinf was defined (when not provided by the system) with a return
334
335 * bug 4407 fixed - help file scilab_xx_XX_help.jar have another scilab_xx_XX_help.jar embedded
336                    and not valid.
337
338 * bug 4433 fixed - problem using optim. On some examples, the optim function makes scilab hangs.
339
340 * bug 4461 fixed - redefines prompt not displayed in a diary.
341
342 * bug 4467 fixed - getshortpathname,getlongpathname do not manage string matrix as input
343
344 * bug 4468 fixed - pathconvert(<path>,%F) should remove last trailing separator.
345
346 * bug 4474 fixed - help of 'fort' is obsolete.
347
348 * bug 4474 fixed - addinter help has no example.
349
350 * bug 4489 fixed - oldsave and oldload removed.
351
352 * bug 4492 fixed - output_stream_gateway.xml was not include in windows binary.
353
354 * bug 4496 fixed - in tbx_build_gateway help page, ismex parameter is not documented.
355
356 * bug 4497 fixed - xmltoformat gets stuck in directories beginning with '.'.
357
358 * bug 4498 fixed - merror() returns weird strings if called before opening files.
359
360 * bug 4499 fixed - basename returns a wrong value if file or a directory starts with a dot
361
362 * bug 4500 fixed - basename('') returns a error
363
364 * bug 4501 fixed - mput() no more allowed integer types as first input argument.
365
366 * bug 4507 fixed - Depending on the fortran runtime libraries a dummy main
367                    definition may be needed.
368
369 * bug 4516 fixed - ilib_for_link does not use ilib_gen_loader but a internal function.
370
371 * bug 4518 fixed - ilib_build with a column vector of strings as filenames does not work on linux
372
373 * bug 4522 fixed - The Tcl interpreter initialization code makes use of some unitialized variables.
374
375 * bug 4515 fixed - linking and loading some external functions already used crashs scilab.
376
377 * bug 4525 fixed - scilab.sln and scilab_f2c.sln do not apply same dependencies on libraries (windows).
378
379 * bug 4528 fixed - makefile (windows) generated by ilib_for_link forces to rebuild all files each time.
380
381 * bug 4530 fixed - leg labels curves are in reverse order
382
383 * bug 4533 fixed - link fails on some path (windows)
384
385 * bug 4539 fixed - some optional parameters where not set in hist3d
386
387 * bug 4547 fixed - examples of javasci with graphics are no more interactive.
388
389 * bug 4548 fixed - with intel fortran, file unit opened in a external dll are not shared.
390
391 * bug 4552 fixed - c++ comments in stack3.h have been translated into c comments
392
393 * bug 4573 fixed - core.start tried to load add_module_help_chapter even if it not exists
394
395 * bug 4574 fixed - ilib_build does not check if library is already loaded in scilab.
396
397 * bug 4584 fixed - On Windows , home value was wrong
398
399 * bug 4585 fixed - Scilab fails to build with intel C++ compiler 11.0.074 on Windows
400
401 * bug 4586 fixed - Function fieldnames added for getting tlist, mlist and struct field names (see SEP#28)
402
403 * bug 4604 fixed - rmdir(<dir>,"s") doesn't work if it contains a hidden file (starting with a dot).
404
405 * bug 4605 fixed - basename('') returns a error.
406
407 * bug 4606 fixed - example of 'link' in help does not work
408
409 * bug 4608 fixed - get_function_path returns a non-consistent path.
410
411 * bug 4611 fixed - what function doesn't returns a complete list of functions.
412
413 * bug 4626 fixed - when using the CLI version, completion make Scilab crash
414
415 * bug 4636 fixed - Metanet on-line help : an accent was missing on the "e" in the french version 
416
417 * bug 4638 fixed - this example with optim freezes scilab
418
419 * bug 4641 fixed - the parameter Q of the function derivative was not clear.
420
421 * bug 4645 fixed - french 'gsort' help had some wrong informations.
422
423 * bug 4654 fixed - max of an empty sparse matrix makes Scilab hangs
424
425 * bug 4666 fixed - SCIHOME was not well defined if scilab has been launched in another scilab session.
426
427 * bug 4676 fixed - diary() removes whitespaces characters from the output of mprintf()
428
429 * bug 4684 fixed - printf(), mprintf, msprintf do not properly deal with -%inf.
430
431 * bug 4688 fixed - listfiles("/") returned an error.
432
433 * bug 4689 fixed - diary() do not report interactive commands into the output file
434
435 * bug 4695 fixed - some help pages + examples where missing in the arnoldi package
436
437 * bug 4702 fixed - on some case, dos(cmd) does not return results
438
439 * bug 4719 fixed - fsolve may fail on some system of equations. Add an example in the documentation.
440
441 * bug 4724 fixed - when the f variation of a data set is too small, plot hangs
442
443 * bug 4727 fixed - The function 'length' does not return the same value in Scilab 5.1 and Scilab 4.1.2
444
445 * bug 4728 fixed - The function 'strcat' does not return the same value in Scilab 5.1 and Scilab 4.1.2
446
447 * bug 4732 fixed - the help page of function ss2ss has some missing part
448
449 * bug 4744 fixed - whereis, librairieslist, libraryinfo primitives should be moved in "functions" modules.
450
451 * bug 4753 fixed - if you have a toolbox and you launch scilab-cli, you have a error message at startup. 
452
453 * bug 4789 fixed - number of input arguments is not checked in ilib_functions (dynamic_link module)
454
455 * bug 4792 fixed - macro name too long
456
457 * bug 4795 fixed - CallScilab.h renamed call_scilab.h
458
459 * bug 4798 fixed - pathconvert macro should be rewritten as a primitive (many times used and not faster).
460
461 * bug 4807 fixed - strsubst does not check if second argument is a valid patter where fourth argument is 'r'.
462
463 * bug 4810 fixed - gsort does not manage sparse vectors as sort.