cd & chdir factorized
[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    + cd, chdir (primitive)
132   
133 Dynamic link:
134 =============
135
136 * Windows : temporary files (objects) are generated in a intermediate subdirectory (Release or Debug)
137    ilib_for_link and ilib_gen_Make (with Visual studio) use a same makefile template.
138    (SCI/modules/dynamic_link/src/scripts/TEMPLATE_MAKEFILE.VC)
139   
140 * ilib_for_link and ilib_gen_Make with lcc-win32 use a same makefile template.
141    (SCI/modules/dynamic_link/src/scripts/TEMPLATE_MAKEFILE.LCC)
142
143 * ilib_verbose (SEP #17) Set level of display returned by dynamic link functions.
144  
145 * add a example to call a scilab macro from a C interface
146    (see SCI/modules/dynamic_link/examples/interfaces/call_scilab_function directory)
147    
148 * a 'cleaner.sce' file is generated by 'ilib_for_link' and 'ilib_build'.
149  
150 * addinter : each interface added can manage 999 functions (bug 4675). 
151
152 * ilib_gen_gateway can generated gateway without PutLhsVar (Managed by user, in this case)
153   see help of 'ilib_gen_gateway' about this modification and 
154   SCI/contrib/toolbox_skeleton/sci_gateway/c/builder_gateway_c.sce (example)
155
156 Online Help :
157 =============
158
159 * Sub-Chapters are now allowed (See SEP #24)
160 * xmltochm exports help to chm format (Windows)
161 * add_help_chapter now accepts string array as input argument : consequently,
162    several online help chapters can be added at the same time.
163 * add_help_chapter now accepts to add help chapters with the same title.
164  
165 call_scilab module :
166 ====================
167
168 * A example to call scilab from C# added.
169    see SCI/modules/call_scilab/examples/call_scilab/NET/C# directory
170
171 * A example to call scilab from VB.NET added.
172    see SCI/modules/call_scilab/examples/call_scilab/NET/VB.NET directory
173  
174 * CallScilab.h renamed call_scilab.h
175
176 tests :
177 =======
178
179 * test_run() now accepts Sub-Modules (See SEP #31)
180
181 char encoding bugs :
182 ====================
183
184 * bug 2627 fixed - Scilab 5 console retrieve input strings in UTF-8 format and Scilab doesn't
185                    manage this format but ISO-8859.
186
187 * bug 3228 fixed - ascii function broken for extended set (example : ascii('é')).
188
189 * bug 3433 fixed - length with a UTF string returns a incorrect size
190
191 * bug 3472 fixed - Dropping files in the Scilab shell doesn't work when the path
192                    contains accented characters.
193
194 * bug 3666 fixed - 'input' returns accented characters.
195
196 * bug 3701 fixed - "Error during call to UTFToLocale: No such file or directory" on Windows.
197
198 * bug 3839 fixed - strrev() doesn't work correctly if the string to be reversed
199                    includes some accentuated characters.
200
201 * bug 4003 fixed - setenv & getenv do not manage utf string on Windows.
202
203 * bug 4012 fixed - display of month and week are wrong in sessions starts and ends (history manager).
204
205 * bug 4019 fixed - with -nw or -nwni mode on Windows, console returns error about
206                    localization.
207
208 * bug 4068 fixed - Accentuated names in directories not supported.
209
210 * bug 4145 fixed - Simplified Chinese file names can not shown correctly.
211
212 * bug 4233 fixed - exec command with a UTF filename fails.
213
214 * bug 4277 fixed - strsubst,regexp, strindex, grep return strange results if accented
215                    characters and character class are associated in the pattern to match.
216
217 * bug 4758 fixed - embedded version of autoconf libs.m4 were causing some issues
218
219 * bug 4768 fixed - strsplit returns strange results with accened characters
220
221 String manipulation:
222 ====================
223
224 * Rewrite :
225     + strsplit - SEP 26
226
227
228 Java/Scilab API:
229 ================
230
231  - uses api_scilab functions to write & read data (internal for javasci)
232
233  - SciInteger class added  
234
235
236 Optimization:
237 =============
238  - Created neldermead component for simplex-based direct search optimization
239  - Created optimbase component to build optimization algorithms
240  - Created optimsimplex component to build direct search algorithms
241  - Created fminsearch optimization function
242  - Added examples in the help for optim
243  
244 Linear algebra:
245 ===============
246  - Clarified documentation for lu function.
247
248 elementary functions:
249 =====================
250  - 'sort' is obsolete. see 'gsort'
251
252 Bug fixes:
253 ==========
254
255 * bug 415 fixed - wrong order in the roots of a polynomial
256
257 * bug 1412 fixed - A(3,3)=%s,A(:)=%z causes scilab to hang
258
259 * bug 1628 fixed - with long programs (several hours) I get a negative value for
260                    timer()
261
262 * bug 1776 fixed - funcprot accepts non-integer arguments
263
264 * bug 2275 fixed - add the isvector help page
265
266 * bug 2453 fixed - mfscanf and probably the other variants msscanf mscanf may crash Scilab when
267                    first argument is -1 (any number of lines)
268
269 * bug 2570 fixed - LCC does not work with some "stk" ref on some old toolboxes.
270
271 * bug 3201 fixed - add the help page for the function del_help_chapter
272
273 * bug 3533 fixed - lib(dir_path) doesn't work if the final slash is missing in dir_path.
274
275 * bug 3580 fixed - a gateway declaration containing a false primitive ID or gateway ID crashs scilab.
276
277 * bug 3772 fixed - input argument of 'predef' was not correctly checked.
278
279 * bug 3773 fixed - 'ans' was protected with predef('all').
280
281 * bug 3884 fixed - chdir, getcwd, pwd moved from core to fileio module.
282
283 * bug 3923 fixed - diary() function produces bad files when it try to record interactive commands.
284
285 * bug 3953 fixed - delete() always sets the current entity to the parent of the
286                    deleted entity.
287
288 * bug 3992 fixed - remove some invalid dependencies on external libraries.
289
290 * bug 4030 fixed - unix_w('dir /s') can display strange matrix on windows.
291
292 * bug 4090 fixed - draw does not work any more while inside drawlater/drawnow scope.
293
294 * bug 4110 fixed - Demos order differs between Linux and Windows versions
295
296 * bug 4181 fixed - remove the AdCommunications help page
297
298 * bug 4184 fixed - style of the examples has been corrected
299
300 * bug 4217 fixed - gsort sort complex by magnitude only with 'g' and not support 'r', 'c', 'lr', 'lc'
301
302 * bug 4262 fixed - lines returns incorrect values.
303
304 * bug 4267 fixed - A non initilization of a lock under Netbsd was 
305                    causing an error on startup
306                    
307 * bug 4278 fixed - typename() called with a wrong number of input arguments returns incoherent errors.
308
309 * bug 4307 fixed - Desactivate (in modules.xml) modules if its functionnalities
310                    are not available.
311                    
312 * bug 4307 fixed - %io has no help file.                   
313
314 * bug 4330 fixed - stacksize('max') + stacksize(required_mem) doesn't work
315
316 * bug 4358 fixed - changing defaultstacksize in scilab.start doesn't work
317
318 * bug 4360 fixed - The reference of bug_3954.tst was missing.
319
320 * bug 4364 fixed - stacksize('max') + stacksize(required_mem) doesn't work
321
322 * bug 4379 fixed - If the thickness property (of plot3d for example) is set to 0,
323                    the lines/edges should disappear.
324
325 * bug 4380 fixed - diary(0) without a initialization of diary crashs scilab.
326
327 * bug 4380 fixed - help page of the printf command has a problem.
328
329 * bug 4380 fixed - merror error codes not documented.
330
331 * bug 4409 fixed - fortran optim subroutines use write (fortran) and not basout as
332                    standard output.
333
334 * bug 4403 fixed - isinf was defined (when not provided by the system) with a return
335
336 * bug 4407 fixed - help file scilab_xx_XX_help.jar have another scilab_xx_XX_help.jar embedded
337                    and not valid.
338
339 * bug 4433 fixed - problem using optim. On some examples, the optim function makes scilab hangs.
340
341 * bug 4461 fixed - redefines prompt not displayed in a diary.
342
343 * bug 4467 fixed - getshortpathname,getlongpathname do not manage string matrix as input
344
345 * bug 4468 fixed - pathconvert(<path>,%F) should remove last trailing separator.
346
347 * bug 4474 fixed - help of 'fort' is obsolete.
348
349 * bug 4474 fixed - addinter help has no example.
350
351 * bug 4489 fixed - oldsave and oldload removed.
352
353 * bug 4492 fixed - output_stream_gateway.xml was not include in windows binary.
354
355 * bug 4496 fixed - in tbx_build_gateway help page, ismex parameter is not documented.
356
357 * bug 4497 fixed - xmltoformat gets stuck in directories beginning with '.'.
358
359 * bug 4498 fixed - merror() returns weird strings if called before opening files.
360
361 * bug 4499 fixed - basename returns a wrong value if file or a directory starts with a dot
362
363 * bug 4500 fixed - basename('') returns a error
364
365 * bug 4501 fixed - mput() no more allowed integer types as first input argument.
366
367 * bug 4507 fixed - Depending on the fortran runtime libraries a dummy main
368                    definition may be needed.
369
370 * bug 4516 fixed - ilib_for_link does not use ilib_gen_loader but a internal function.
371
372 * bug 4518 fixed - ilib_build with a column vector of strings as filenames does not work on linux
373
374 * bug 4522 fixed - The Tcl interpreter initialization code makes use of some unitialized variables.
375
376 * bug 4515 fixed - linking and loading some external functions already used crashs scilab.
377
378 * bug 4525 fixed - scilab.sln and scilab_f2c.sln do not apply same dependencies on libraries (windows).
379
380 * bug 4528 fixed - makefile (windows) generated by ilib_for_link forces to rebuild all files each time.
381
382 * bug 4530 fixed - leg labels curves are in reverse order
383
384 * bug 4533 fixed - link fails on some path (windows)
385
386 * bug 4539 fixed - some optional parameters where not set in hist3d
387
388 * bug 4547 fixed - examples of javasci with graphics are no more interactive.
389
390 * bug 4548 fixed - with intel fortran, file unit opened in a external dll are not shared.
391
392 * bug 4552 fixed - c++ comments in stack3.h have been translated into c comments
393
394 * bug 4573 fixed - core.start tried to load add_module_help_chapter even if it not exists
395
396 * bug 4574 fixed - ilib_build does not check if library is already loaded in scilab.
397
398 * bug 4584 fixed - On Windows , home value was wrong
399
400 * bug 4585 fixed - Scilab fails to build with intel C++ compiler 11.0.074 on Windows
401
402 * bug 4586 fixed - Function fieldnames added for getting tlist, mlist and struct field names (see SEP#28)
403
404 * bug 4604 fixed - rmdir(<dir>,"s") doesn't work if it contains a hidden file (starting with a dot).
405
406 * bug 4605 fixed - basename('') returns a error.
407
408 * bug 4606 fixed - example of 'link' in help does not work
409
410 * bug 4608 fixed - get_function_path returns a non-consistent path.
411
412 * bug 4611 fixed - what function doesn't returns a complete list of functions.
413
414 * bug 4626 fixed - when using the CLI version, completion make Scilab crash
415
416 * bug 4636 fixed - Metanet on-line help : an accent was missing on the "e" in the french version 
417
418 * bug 4638 fixed - this example with optim freezes scilab
419
420 * bug 4641 fixed - the parameter Q of the function derivative was not clear.
421
422 * bug 4645 fixed - french 'gsort' help had some wrong informations.
423
424 * bug 4654 fixed - max of an empty sparse matrix makes Scilab hangs
425
426 * bug 4666 fixed - SCIHOME was not well defined if scilab has been launched in another scilab session.
427
428 * bug 4676 fixed - diary() removes whitespaces characters from the output of mprintf()
429
430 * bug 4684 fixed - printf(), mprintf, msprintf do not properly deal with -%inf.
431
432 * bug 4688 fixed - listfiles("/") returned an error.
433
434 * bug 4689 fixed - diary() do not report interactive commands into the output file
435
436 * bug 4695 fixed - some help pages + examples where missing in the arnoldi package
437
438 * bug 4702 fixed - on some case, dos(cmd) does not return results
439
440 * bug 4719 fixed - fsolve may fail on some system of equations. Add an example in the documentation.
441
442 * bug 4724 fixed - when the f variation of a data set is too small, plot hangs
443
444 * bug 4727 fixed - The function 'length' does not return the same value in Scilab 5.1 and Scilab 4.1.2
445
446 * bug 4728 fixed - The function 'strcat' does not return the same value in Scilab 5.1 and Scilab 4.1.2
447
448 * bug 4732 fixed - the help page of function ss2ss has some missing part
449
450 * bug 4744 fixed - whereis, librairieslist, libraryinfo primitives should be moved in "functions" modules.
451
452 * bug 4753 fixed - if you have a toolbox and you launch scilab-cli, you have a error message at startup. 
453
454 * bug 4789 fixed - number of input arguments is not checked in ilib_functions (dynamic_link module)
455
456 * bug 4792 fixed - macro name too long
457
458 * bug 4795 fixed - CallScilab.h renamed call_scilab.h
459
460 * bug 4798 fixed - pathconvert macro should be rewritten as a primitive (many times used and not faster).
461
462 * bug 4807 fixed - strsubst does not check if second argument is a valid patter where fourth argument is 'r'.
463
464 * bug 4810 fixed - gsort does not manage sparse vectors as sort.