Fix bug 4812 : xs2... function doesn't work if the first argument is a handle
[scilab.git] / scilab / CHANGES_5.2.X
1                Changes between version 5.1.X and 5.2.0 of Scilab
2                =================================================
3
4
5 Xcos:
6 =====
7
8 TODO: add an explanation about xscos
9
10
11 ATOMS:
12 ======
13
14 TODO: add an explanation about atoms
15
16
17 Xpad:
18 =====
19
20 TODO: add an explanation about xpad
21
22 Graphics:
23 =========
24
25 Thanks to Calixte Denizet, it is now possible to annotate Scilab's graphics
26 in MathML or Latex.
27 See demos => Graphics => LaTeX/MathML
28
29 * New features
30   - Add transparency to markdrawing.
31
32 Introduction of new binaries:
33 =============================
34
35 The goal of these changes is to improve the capabilities to use Scilab
36 in different environnements and use cases.
37
38 * Scilab 5.2 introduces new binaries in the distribution:
39
40   - classical - The GUI application (equivalent to Scilab Standard Mode).
41         This program is exactly the same in the previous version and all arguments
42         are still available
43         Name: scilab
44
45   - Advanced Command-Line Interpreter (ACLI) - Interpreter in command line with the graphic capabilities available (equivalent to Scilab NW Mode)
46         Name: scilab-adv-cli
47
48   - Command-Line Interpreter (CLI) - Interpreter in command line without the graphic or Tcl/Tk capabilities (faster) (equivalent to Scilab NWNI Mode)
49         Name: scilab-cli
50
51   See SEP #18 for more comments
52
53 * The pipe has been plugged back under all operating systems
54     It is now possible to do:
55     echo "disp(%pi)"|./bin/scilab-adv-cli
56     echo "disp(%pi)"|./bin/scilab-cli
57     echo "disp(%pi)"|./bin/scilab -nw
58     echo "disp(%pi)"|./bin/scilab -nwni
59
60 * Add error code capability to exit (SEP #19 and request 505).
61   Example:
62         echo "if 1<>2 then exit(99) end"|./bin/scilab -nwni; echo $?
63         returns 99
64
65
66 Extension capabilities of Scilab :
67 ==================================
68
69 TODO: write an introduction about all that
70
71 * A new API called api_scilab is available. This API provides functions to
72   read/write data from/to Scilab memory.
73   It provides many advantages:
74   - manages all Scilab data types
75   - consistency over all data types
76   - will be maintained over future versions of Scilab
77   - error management
78   - fully documented
79   - fully tested by unitary tests
80
81   Note that all other Scilab API (straight access to the Scilab stack, stack1,
82   stack2 and stack3) will be maintained in the Scilab 5.X family but most of
83   them will be dropped in the 6 family.
84
85 * In the enum sci_types which list all Scilab datatypes, the type 
86   "sci_lufact_pointer" has been renamed to "sci_pointer".
87   A define of "sci_lufact_pointer" on "sci_pointer" has been added to backward
88   compatibilities.
89   The rational is to improve the use in special case of the pointer datatype
90   to avoid memory duplication.
91
92 TODO: talk about call scilab based on api_scilab
93
94 * Under all operating systems but Windows, all headers are not installed in a single directory in order to simplify the use
95   of Scilab features in the dynamic link. See SEP #32 for more information
96
97 * From this version of Scilab, only a defined and documented number of header files are installed. 
98   Thanks to this change, a toolbox developer knows exactly what are the available functions. 
99   See SEP #35.
100
101 TODO: add the information about the doxygen doc generation if we do it.
102
103 Source reorganisation:
104 ======================
105
106 * Makefile.incl.mak (Windows, dynamic link) moved from SCI directory to
107   SCI/modules/src/scripts
108   
109 * newest, get_absolute_file_path, getrelativefilename moved from io to fileio.
110
111 * bug 3668 fixed - formatnumber.f, dmdsp.f, ... moved in output_stream module.
112
113 * printf, msprintf, mprintf, print moved in output_stream module.
114
115 * disp moved in output_stream module.
116
117 * bug 3668 fixed - lib, deff, getf, exec, execstr moved in functions module.
118
119 * oldsave, oldload functions (only used with macros of scilab 2.4) are removed
120   Replaces oldsave, oldload by save and load in your code.
121   
122 * bug 3669 fixed - integrate, intc and intl moved in Differential equations
123   interp1, interp2d and splin2d  moved in the Interpolation module.
124
125 * libs/MALLOC/src/malloc.c is no longer build (used to be built for 64 
126 bits archs). Note that if Scilab is built on a 64 bits and triggers a 
127 seg fault on startup, uncomment the related line in 
128 libs/MALLOC/Makefile.am and launch autoreconf.
129
130 Mac OS X:
131 =========
132
133 * Support of Snow Leopard
134
135 * Docking system enabled
136
137 * bug 4087 fixed - Under Mac OS X, a Apple + C shortcut (Ctrl + C) didn't work from the console.
138
139 toolbox_skeleton:
140 =================
141
142 The toolbox skeleton is an example of standard toolbox which shows most of the
143 use cases.
144
145 * examples of gateways functions (c_sum, f_sum, cpp_find) rewritten with new API.
146
147 * cleaner added
148
149 Input/Output functions:
150 =======================
151
152 * Input arguments of fprintf are checked 
153
154 * Rewrite :
155     + getenv
156     + diary - SEP 23
157
158 Core functions:
159 ===============
160
161 * Rewrite :
162    + mode
163    + predef
164    + type
165    + typename
166    + whereis
167      
168 * sethomedirectory is obsolete (see home). 
169
170 * getf is obsolete (see exec).
171
172 fileio functions:
173 =================
174
175 * Input arguments of functions are now checked 
176     (mclearerr, mclose, merror, mget, mgetstr, meof, mopen, mput, mputstr, mseek, mtell)
177     
178 * fileinfo manages column vector of strings (SEP #25)
179   
180 * basename uses fileparts
181   
182 * pathconvert : If the flagtrail argument is set to FALSE and the trailing separator
183                 of the path is removed (if present of course). See Bug 4468.
184                   
185 * getcwd is obsolete (see pwd). 
186
187 * isfile : checks if filename is a existing file.
188
189 * movefile : move files or directory (Request 661)
190
191 * Rewrite :
192    + copyfile (primitive)
193    + fileparts (primitive)
194    + isdir manages matrix of strings as input argument
195    + basename (primitive)
196    + pathconvert (primitive)
197    + cd, chdir (primitive)
198   
199 Dynamic link:
200 =============
201
202 * Windows : temporary files (objects) are generated in a intermediate subdirectory (Release or Debug)
203    ilib_for_link and ilib_gen_Make (with Visual studio) use a same makefile template.
204    (SCI/modules/dynamic_link/src/scripts/TEMPLATE_MAKEFILE.VC)
205   
206 * ilib_for_link and ilib_gen_Make with lcc-win32 use a same makefile template.
207    (SCI/modules/dynamic_link/src/scripts/TEMPLATE_MAKEFILE.LCC)
208
209 * ilib_verbose (SEP #17) Set level of display returned by dynamic link functions.
210  
211 * add a example to call a Scilab macro from a C interface
212    (see SCI/modules/dynamic_link/examples/interfaces/call_scilab_function directory)
213    
214 * a 'cleaner.sce' file is generated by 'ilib_for_link' and 'ilib_build'.
215  
216 * addinter : each interface added can manage 999 functions (bug 4675). 
217
218 * ilib_gen_gateway can generated gateway without PutLhsVar (Managed by user, in this case)
219   see help of 'ilib_gen_gateway' about this modification and 
220   SCI/contrib/toolbox_skeleton/sci_gateway/c/builder_gateway_c.sce (example)
221
222 * ilib_gen_loader now generates loaders which can be executed outside the loader's directory
223
224 * bug 4726 fixed - Under !Windows, when the link dynamic was copying the files,
225   in some cases, it was going to copy backup files (for example, sci_luinc.c.bak
226   instead of sci_luinc.c)
227
228 * bug 4919 fixed - If the source file was stored in TMPDIR, the dynamic link
229   was removing the content of this file.
230
231 Online Help :
232 =============
233
234 * Sub-Chapters are now allowed (See SEP #24)
235 * xmltochm exports help to chm format (Windows)
236 * add_help_chapter now accepts string array as input argument : consequently,
237    several online help chapters can be added at the same time.
238 * add_help_chapter now accepts to add help chapters with the same title.
239  
240 call_scilab module :
241 ====================
242
243 * A example to call scilab from C# added.
244    see SCI/modules/call_scilab/examples/call_scilab/NET/C# directory
245
246 * A example to call scilab from VB.NET added.
247    see SCI/modules/call_scilab/examples/call_scilab/NET/VB.NET directory
248  
249 * CallScilab.h renamed call_scilab.h (See SEP #34)
250
251
252 Compilation:
253 ============
254
255 * Visual studio uses default runtime library /MD (msvcrt.lib) to build all libraries of scilab.
256
257 * Scilab on Windows built with Intel Fortran 11.0.061 and Intel C++ 11.0.074
258
259 * Symbols in dlls are explicitly exported on Windows.
260   In previous versions of Scilab all symbols were exported.
261
262 * modelicac (scicos) built with Ocaml 3.11.0 on Windows
263
264 * blas, lapack, arpack libraries moved as pre-requirements (Windows)
265
266 * blas, lapack libraries moved as pre-requirements (Linux/Unix/MacOSX)
267
268 * lapack 3.2 used on Windows
269
270 * functions module is loaded dynamically by Scilab.
271
272 * autoconf updated to version 2.64
273
274 * automake updated to version 1.11
275
276 * libtool updated from version 1.5.26 to 2.2.6a (Closes bug #4279)
277
278
279 tests :
280 =======
281
282 * test_run() now accepts Sub-Modules (See SEP #31)
283
284 char encoding bugs :
285 ====================
286
287 * bug 2627 fixed - Scilab 5 console retrieve input strings in UTF-8 format and Scilab doesn't
288                    manage this format but ISO-8859.
289
290 * bug 3228 fixed - ascii function broken for extended set (example : ascii('é')).
291
292 * bug 3433 fixed - length with a UTF string returns a incorrect size
293
294 * bug 3472 fixed - Dropping files in the Scilab shell doesn't work when the path
295                    contains accented characters.
296
297 * bug 3666 fixed - 'input' returns accented characters.
298
299 * bug 3701 fixed - "Error during call to UTFToLocale: No such file or directory" on Windows.
300
301 * bug 3839 fixed - strrev() doesn't work correctly if the string to be reversed
302                    includes some accentuated characters.
303
304 * bug 4003 fixed - setenv & getenv do not manage utf string on Windows.
305
306 * bug 4012 fixed - display of month and week are wrong in sessions starts and ends (history manager).
307
308 * bug 4019 fixed - with -nw or -nwni mode on Windows, console returns error about
309                    localization.
310
311 * bug 4068 fixed - Accentuated names in directories not supported.
312
313 * bug 4145 fixed - Simplified Chinese file names can not shown correctly.
314
315 * bug 4233 fixed - exec command with a UTF filename fails.
316
317 * bug 4277 fixed - strsubst,regexp, strindex, grep return strange results if accented
318                    characters and character class are associated in the pattern to match.
319
320 * bug 4660 fixed - Error in the French localization (Edit instead of Edition)
321
322 * bug 4758 fixed - embedded version of autoconf libs.m4 were causing some issues
323
324 * bug 4768 fixed - strsplit returns strange results with accened characters
325
326 String manipulation:
327 ====================
328
329 * Rewrite :
330     + strsplit - SEP 26
331
332 * 'NumTokens' is obsolete. see 'tokens'
333
334 Java/Scilab API:
335 ================
336
337  - uses api_scilab functions to write & read data (internal for javasci)
338
339  - SciInteger class added  
340
341
342 Optimization:
343 =============
344 * New features
345  - Created neldermead component for simplex-based direct search optimization
346  - Created nmplot component for fast plots of neldermead optimization
347  - Created optimbase component to build optimization algorithms
348  - Created optimsimplex component to build direct search algorithms
349  - Created fminsearch optimization function
350  - Created optimget/optimset to configure fminsearch
351  - Created optimplotfunccount, optimplotfval, optimplotx as plotting functions for fminsearch
352 * Improvements
353  - Added examples in the help of optim for logging feature and optimization
354    based on numerical derivatives
355  
356 Linear algebra:
357 ===============
358  - Clarified documentation for lu function.
359
360 elementary functions:
361 =====================
362  - 'sort' is obsolete. see 'gsort'
363
364 Bug fixes:
365 ==========
366
367 * bug 415 fixed - wrong order in the roots of a polynomial
368
369 * bug 1412 fixed - A(3,3)=%s,A(:)=%z causes scilab to hang
370
371 * bug 1451 fixed - set theta, alpha, leg, flags as optional named arguments for hist3d
372
373 * bug 1628 fixed - with long programs (several hours) I get a negative value for
374                    timer()
375
376 * bug 1776 fixed - funcprot accepts non-integer arguments
377
378 * bug 1809 fixed - Add a warning message (figure_size) after an invalid graphical script
379
380 * bug 2238 fixed - function returns a wrong error
381
382 * bug 2275 fixed - add the isvector help page
383
384 * bug 2453 fixed - mfscanf and probably the other variants msscanf mscanf may crash Scilab when
385                    first argument is -1 (any number of lines)
386
387 * bug 2570 fixed - LCC does not work with some "stk" ref on some old toolboxes.
388
389 * bug 2649 fixed - diary() function cannot be nested.
390
391 * bug 3201 fixed - add the help page for the function del_help_chapter
392
393 * bug 3533 fixed - lib(dir_path) doesn't work if the final slash is missing in dir_path.
394
395 * bug 3580 fixed - a gateway declaration containing a false primitive ID or gateway ID crashs scilab.
396
397 * bug 3772 fixed - input argument of 'predef' was not correctly checked.
398
399 * bug 3773 fixed - 'ans' was protected with predef('all').
400
401 * bug 3884 fixed - chdir, getcwd, pwd moved from core to fileio module.
402
403 * bug 3923 fixed - diary() function produces bad files when it try to record interactive commands.
404
405 * bug 3953 fixed - delete() always sets the current entity to the parent of the
406                    deleted entity.
407
408 * bug 3992 fixed - remove some invalid dependencies on external libraries.
409
410 * bug 4030 fixed - unix_w('dir /s') can display strange matrix on windows.
411
412
413 * bug 4090 fixed - draw does not work any more while inside drawlater/drawnow scope.
414
415 * bug 4110 fixed - Demos order differs between Linux and Windows versions
416
417 * bug 4181 fixed - remove the AdCommunications help page
418
419 * bug 4184 fixed - style of the examples has been corrected
420
421 * bug 4217 fixed - gsort sort complex by magnitude only with 'g' and not support 'r', 'c', 'lr', 'lc'
422
423 * bug 4262 fixed - lines returns incorrect values.
424
425 * bug 4263 fixed - completion cleans current input line.
426
427 * bug 4267 fixed - A non initilization of a lock under Netbsd was 
428                    causing an error on startup
429                    
430 * bug 4277 fixed - force UTF8 management in pcre processing.
431
432 * bug 4278 fixed - typename() called with a wrong number of input arguments returns incoherent errors.
433
434 * bug 4307 fixed - Desactivate (in modules.xml) modules if its functionnalities
435                    are not available.
436                    
437 * bug 4307 fixed - %io has no help file.                   
438
439 * bug 4330 fixed - stacksize('max') + stacksize(required_mem) doesn't work
440
441 * bug 4358 fixed - changing defaultstacksize in scilab.start doesn't work
442
443 * bug 4360 fixed - The reference of bug_3954.tst was missing.
444
445 * bug 4364 fixed - stacksize('max') + stacksize(required_mem) doesn't work
446
447 * bug 4365 fixed - completion fails on a wrong path.
448
449 * bug 4379 fixed - If the thickness property (of plot3d for example) is set to 0,
450                    the lines/edges should disappear.
451
452 * bug 4380 fixed - diary(0) without a initialization of diary crashs scilab.
453
454 * bug 4380 fixed - help page of the printf command has a problem.
455
456 * bug 4380 fixed - merror error codes not documented.
457
458 * bug 4409 fixed - fortran optim subroutines use write (fortran) and not basout as
459                    standard output.
460
461 * bug 4403 fixed - isinf was defined (when not provided by the system) with a return
462
463 * bug 4407 fixed - help file scilab_xx_XX_help.jar have another scilab_xx_XX_help.jar embedded
464                    and not valid.
465
466 * bug 4421 fixed - completion fails on some relative path.
467
468 * bug 4430 fixed - incorrect description of the margins property in the axes_properties help page.
469
470 * bug 4433 fixed - problem using optim. On some examples, the optim function makes scilab hangs.
471
472 * bug 4438 fixed - completion does not support insert mode.
473
474 * bug 4461 fixed - redefines prompt not displayed in a diary.
475
476 * bug 4467 fixed - getshortpathname,getlongpathname do not manage string matrix as input
477
478 * bug 4468 fixed - pathconvert(<path>,%F) should remove last trailing separator.
479
480 * bug 4474 fixed - help of 'fort' is obsolete.
481
482 * bug 4474 fixed - addinter help has no example.
483
484 * bug 4483 fixed - Handle FreeBSD java detection
485
486 * bug 4489 fixed - oldsave and oldload removed.
487
488 * bug 4492 fixed - output_stream_gateway.xml was not include in windows binary.
489
490 * bug 4496 fixed - in tbx_build_gateway help page, ismex parameter is not documented.
491
492 * bug 4497 fixed - xmltoformat gets stuck in directories beginning with '.'.
493
494 * bug 4498 fixed - merror() returns weird strings if called before opening files.
495
496 * bug 4499 fixed - basename returns a wrong value if file or a directory starts with a dot
497
498 * bug 4500 fixed - basename('') returns a error
499
500 * bug 4501 fixed - mput() no more allowed integer types as first input argument.
501
502 * bug 4507 fixed - Depending on the fortran runtime libraries a dummy main
503                    definition may be needed.
504
505 * bug 4516 fixed - ilib_for_link does not use ilib_gen_loader but a internal function.
506
507 * bug 4518 fixed - ilib_build with a column vector of strings as filenames does not work on linux
508
509 * bug 4522 fixed - The Tcl interpreter initialization code makes use of some unitialized variables.
510
511 * bug 4515 fixed - linking and loading some external functions already used crashs scilab.
512
513 * bug 4525 fixed - scilab.sln and scilab_f2c.sln do not apply same dependencies on libraries (windows).
514
515 * bug 4528 fixed - makefile (windows) generated by ilib_for_link forces to rebuild all files each time.
516
517 * bug 4530 fixed - leg labels curves are in reverse order
518
519 * bug 4533 fixed - link fails on some path (windows)
520
521 * bug 4539 fixed - some optional parameters where not set in hist3d
522
523 * bug 4547 fixed - examples of javasci with graphics are no more interactive.
524
525 * bug 4548 fixed - with intel fortran, file unit opened in a external dll are not shared.
526
527 * bug 4552 fixed - c++ comments in stack3.h have been translated into c comments
528
529 * bug 4573 fixed - core.start tried to load add_module_help_chapter even if it not exists
530
531 * bug 4574 fixed - ilib_build does not check if library is already loaded in scilab.
532
533 * bug 4584 fixed - On Windows , home value was wrong
534
535 * bug 4585 fixed - Scilab fails to build with intel C++ compiler 11.0.074 on Windows
536
537 * bug 4586 fixed - Function fieldnames added for getting tlist, mlist and struct field names (see SEP#28)
538
539 * bug 4604 fixed - rmdir(<dir>,"s") doesn't work if it contains a hidden file
540                    (starting with a dot).
541
542 * bug 4605 fixed - basename('') returns a error.
543
544 * bug 4606 fixed - example of 'link' in help does not work
545
546 * bug 4707 fixed - Fail to build with ./configure --without-gui
547
548 * bug 4608 fixed - get_function_path returns a non-consistent path.
549
550 * bug 4611 fixed - what function doesn't returns a complete list of functions.
551
552 * bug 4626 fixed - when using the CLI version, completion make Scilab crash
553
554 * bug 4636 fixed - Metanet on-line help : an accent was missing on the "e" in the french version 
555
556 * bug 4638 fixed - this example with optim freezes scilab
557
558 * bug 4639 fixed - Some graphics demos does not contain the menu item "show code"
559
560 * bug 4641 fixed - the parameter Q of the function derivative was not clear.
561
562 * bug 4645 fixed - french 'gsort' help had some wrong informations.
563
564 * bug 4654 fixed - max of an empty sparse matrix makes Scilab hangs
565
566 * bug 4658 fixed - For graphics macros from adddcolor to getfont and all colormap.
567
568 * bug 4666 fixed - SCIHOME was not well defined if scilab has been launched in another scilab session.
569
570 * bug 4676 fixed - diary() removes whitespaces characters from the output of mprintf()
571
572 * bug 4684 fixed - printf(), mprintf, msprintf do not properly deal with -%inf.
573
574 * bug 4688 fixed - listfiles("/") returned an error.
575
576 * bug 4689 fixed - diary() do not report interactive commands into the output file
577
578 * bug 4695 fixed - some help pages + examples where missing in the arnoldi package
579
580 * bug 4702 fixed - on some case, dos(cmd) does not return results
581
582 * bug 4719 fixed - fsolve may fail on some system of equations. Add an example in the documentation.
583
584 * bug 4724 fixed - when the f variation of a data set is too small, plot hangs
585
586 * bug 4727 fixed - The function 'length' does not return the same value in Scilab 5.1 and Scilab 4.1.2
587
588 * bug 4728 fixed - The function 'strcat' does not return the same value in Scilab 5.1 and Scilab 4.1.2
589
590 * bug 4732 fixed - the help page of function ss2ss has some missing part
591
592 * bug 4737 fixed - completion fails on file extension search.
593
594 * bug 4744 fixed - whereis, librairieslist, libraryinfo primitives should be moved in "functions" modules.
595
596 * bug 4753 fixed - if you have a toolbox and you launch scilab-cli, you have a error message at startup. 
597
598 * bug 4789 fixed - number of input arguments is not checked in ilib_functions (dynamic_link module)
599
600 * bug 4792 fixed - macro name too long
601
602 * bug 4795 fixed - CallScilab.h renamed call_scilab.h
603
604 * bug 4797 fixed - macro make_help_index.sci (internal) removed (not used in scilab 5.x)
605
606 * bug 4798 fixed - pathconvert macro should be rewritten as a primitive (many times used and not faster).
607
608 * bug 4807 fixed - strsubst does not check if second argument is a valid patter where fourth argument is 'r'.
609
610 * bug 4810 fixed - gsort does not manage sparse vectors as sort.
611
612 * bug 4812 fixed - xs2... function doesn't work if the first argument is a handle
613
614 * bug 4817 fixed - macro savedefaultbrowser (internal) removed (not used in scilab 5.x)
615
616 * bug 4828 fixed - completion clears the content of some completed path.
617
618 * bug 4832 fixed - wavread returns a non explicit error if RIFF have some 'smpl' chunck.
619
620 * bug 4838 fixed - completion returns wrong value with '..' 
621
622 * bug 4846 fixed - mopen("","") crashs on windows.
623
624 * bug 4853 fixed - C,C++ dlls generated by scilab had a dependency on fortran runtime (windows).
625
626 * bug 4855 fixed - Use standard error messages when settings values for graphics property from 'alignment' to 'data_bounds'.
627
628 * bug 4892 fixed - Xpad : Command+X shortcuts was not managed
629
630 * bug 4917 fixed - fileinfo(SCI+'/') returns [] (on Windows)
631
632 * bug 4918 fixed - error message returned by 'get_absolute_file_path' is incorrect.
633
634 * bug 4927 fixed - When the user try to plot some data in semilogx or semilogy, a blank plot windows is displayed.
635
636 * bug 4925 fixed - verbose option of the optim function crashs on Windows.