Download center : Scilab-5.0-alpha-3 (CHANGES FILE)
Scilab logo
Languages English  - Français  - 日本語 - 中文 | help Search  -  Site map
                     Main Changes Scilab 4.X -> 5.0
                     ==============================

License:
========
 - License changed to CeCILL (fully compatible with the GPL v2)
	More information about the CeCILL http://www.cecill.info/index.en.html
	Therefore, Scilab is now a 100% free software.

Graphical User Interface:
=========================
 - Advanced docking system
 - Follow the Tango Desktop Project http://tango.freedesktop.org/
 - GUI re-written in Java Swing:
        + Same GUI for all OS (Menubars, toolbars...)
        + Window docking available using FlexDock https://flexdock.dev.java.net/
 - Uicontrols are now Java objects and can be included in a graphic window with graphics
 - Dialogs are now Java objects (x_message, x_dialog...)
 - Completion on variable and function names avaible using TAB key or CTRL-SPACE

Graphics:
=========
 - New rendering engine based on JOGL (Java Binding for the OpenGL API):
	* Support 3D hardware acceleration.
	* Facet ordering issues fixed with the use of Z-buffer.
 - Text possibilities extended:
	* Support for floating point sizes.
 	* Text object are able to handle matrices of strings.
 - All graphic objects are fully operational both in 2D and 3D modes.
 - Clipping is operational both in 2D and 3D modes.
 - New functions:
	* swap_handles - Permute two handles in the graphic Hierarchy.
	* relocate_handle - Move handles inside the graphic hierarchy.
 - Obsolete functions:
  * Using xgetmouse with a flag to avoid the event queue to be cleared is now obsolete. This functionnality will be removed in Scilab 5.1.


Graphic file export:
====================
  - xs2jpeg, xs2png functions added to export graphics under jpeg and png formats.     	
  - Removed functions xs2emf and xs2fig from export graphics.


Signal processing:
==================
 - FFTW (Fastest Fourier Transform in the West) features added in Scilab.
	+ fftw                - fast fourier transform that use fftw library
	+ fftw_flags          - set computation method of fast fourier transform of
	                        the fftw function
	+ fftw_forget_wisdom  - reset fftw wisdom
	+ get_fftw_wisdom     - return fftw wisdom
	+ set_fftw_wisdom     - set fftw wisdom
	+ disposefftwlibrary  - free fttw library
	+ fftwlibraryisloaded - checks if fftw library is loaded


Sparse LU factorization:
========================
 - UMFPACK features added in Scilab. Many thanks to Bruno Pincon.
	+ umfpack			- Solve sparse linear system 
	+ umf_lufact		- LU factorisation of a sparse matrix 
	+ umf_lusolve		- Solve a linear sparse system given the LU factors
	+ umf_luinfo		- Get information on LU factors
	+ umf_luget			- Retrieve LU factors at the Scilab level 
	+ taucs_chfact		- Cholesky factorisation of a sparse Symmetric Positive Definite (s.p.d.) matrix
	+ taucs_chsolve		- Solve a linear sparse (s.p.d.) system given the Cholesky factors
	+ taucs_chinfo		- Get information on Cholesky factors
	+ taucs_chget		- Retrieve the Cholesky factorization at the Scilab level
	+ res_with_prec		- Computes the residual r = Ax-b with precision
	+ cond2sp 			- Computes an approximation of the 2-norm condition number of a s.p.d. sparse matrix
	+ condestsp			- Estimate the condition number of a sparse matrix
	+ PlotSparse		- Plot the pattern of non nul elements of a sparse matrix 
	+ ReadHBSparse		- Read a Harwell-Boeing sparse format file


Input/Output functions (files):
===============================
 - New functions:
	+ getdrives           - get the drive letters of all mounted filesystems on the computer.
	+ getrelativefilename - given an absolute directory and an absolute filename, returns a relative file name.
	+ fullpath            - creates an full path name for the specified relative path name.
	+ is_absolute_path    -
	+ createdir           - make new directory
	+ removedir           - remove a directory
	+ deletefile          - delete a file
	+ fileext             - returns extension for a file path
	+ filesep             - returns directory separator for current platform
	+ pathsep             - returns path separator for current platform
	+ maxfiles            - sets the limit for the number of files a scilab is allowed to have open simultaneously.
	+ findfiles           - Finding all files with a given filespec

 - Profile changed:
	+ ls under Linux/Unix has lost his second input argument (unix/linux command line option). It is now based on listfiles. ls in Scilab 5 will always return one file per line (2 per lines before)
	
 - Rewrite in native code:
	+ isdir
	+ newest


Regular expression features:
============================
 - Based on the library PCRE
 - Involved functions
	+ grep(...,'r')
	+ regexp
	+ strindex(...,'r')
	+ strsubst(...,'r')


String manipulation:
====================
 - New functions:
	+ blanks     - create string of blank characters 
	+ isalphanum - check that characters of a string are alphanumerics
	+ isascii    - tests if character is a 7-bit US-ASCII character
	+ isdigit    - check that characters of a string are digits between 0 and 9
	+ isletter   - check that characters of a string are alphabetics letters
	+ regexp     - find a substring that matches the regular expression string
	+ strchr     - locate first occurrence of character in string
	+ strcmp     - compare character strings
	+ strcmpi    - compare character strings (case independent)
	+ strcspn    - get span until character in string
	+ strncpy    - copy characters from strings
	+ strrchr    - locate last occurrence of character in string
	+ strrev     - returns string reversed
	+ strspn     - get span of character set in string
	+ strstr     - locate substring
	+ strtod     - convert string to double
	+ strtok     - split string into tokens


Functions:
==========
 - New functions:
	+ getdebuginfo
	+ getscilabmode		    - returns scilab mode
	+ getvariablesonstack	- get variable names on stack of scilab
	+ getmd5                - get the MD5 checksum of strings or files.
	+ getmodules            - returns list of modules installed in Scilab
	+ with_module           - Checks if a Scilab module is installed
	+ islittleendian        - Checks if machine architecture is "little-endian"
	+ librarieslist         - get scilab libraries
	+ libraryinfo           - get macros and path of a scilab library
	+ completion            - returns words that start with the text you pass as parameter.

 - Rewrite in native code:
  + warning 


Time and date functions:
========================
 - New functions:
	+ clock   - return current time as date vector
	+ eomday  - return last day of month
	+ weekday - return day of week
	+ now     - return current date and time


Binary, octal and hexadecimal representation:
=============================================
 - New functions:
	+ bin2dec  - return integer corresponding to a binary form
	+ bitand   - AND applied to binary representation of inputs argument
	+ bitcmp
	+ bitget
	+ bitor    - OR applied to binary representation of inputs arguments
	+ bitxor   - XOR applied to binary representation of inputs arguments
	+ dec2bin  - return binary representation
	+ dec2oct  - return octal representation of integers


jvm module:
===========
	+ with_embedded_jre        - checks if scilab uses a embedded JRE
	+ system_getproperty       - gets the system property indicated by a specified key.
	+ javaclasspath            - set and get dynamic Java class path
	+ javalibrarypath          - set and get dynamic java.library.path


Localization:
=============
 - New functions:
	+ gettext(string) / _(string) - get text translated into the current locale
	                                and domain
	+ dgettext                    - get text translated into the current
	                                locale and a specific domain domain
	+ setlanguage(string)
	+ getlanguage()


Online Help management:
=======================
 - New functions:
	+ check_help
	+ del_help_chapter
	+ add_module_help_chapter
	+ del_module_help_chapter
 - New Java help browser
 - New help system based on DocBook


Metanet : graph and network toolbox
===================================
 - New functions:
	+ hilite_edges   - highlights a set of edges
	+ unhilite_edges - unhighlights a set of edges
	+ hilite_nodes   - highlights a set of nodes
	+ unhilite_nodes - unhighlights a set of nodes
	+ add_edge_data  - associates new data fields to the edges data structure 
	                   of a graph
	+ add_node_data  - associates new data fields to the nodes data structure
	                   of a graph
	+ arc_length
	+ nodedatafields - returns the vector of node data fields names
	+ set_edges_id
	+ set_nodes_id
	+ show_arcs      - highlights a set of arcs
	+ show_edges     - highlights a set of edges
	+ update_graph   - converts an old graph data structure to the current one


Windows_tools:
===============
 - New functions:
	+ consolebox          - show or hide console box
	+ findfileassociation - Searches for and retrieves a file association-related string from the registry.
	+ dos                 - shell (cmd) command execution 

History manager:
================
 - New functions:
	+ displayhistory          - displays current scilab history
	+ addhistory              - add lines to current history
	+ saveconsecutivecommands - Save consecutive duplicate commands
	+ saveafterncommands      - Save the history file after n statements are added to the file.
	+ gethistoryfile          - get filename used for scilab's history
	+ sethistoryfile          - set filename for scilab history
	+ removelinehistory       - remove the Nth line in history.
	+ historysize             - get number of lines in history
	+ historymanager          - enable or disable history manager

 - Rewrite:
	+ loadhistory
	+ savehistory
	+ gethistory
	+ resethistory

Consoles:
=========
 - Based on a joint project Artenum - INRIA/Scilab called Jrosetta
 - Completion
	+ Functions
	+ Variables
	+ Paths


Modules/toolboxes template:
===========================
 - A template model has been defined to normalize how modules and toolboxes 
	should be.
	+ See http://wiki.scilab.org/Scilab_Module_Architecture for module
	+ See contrib/toolbox_skeleton/ for toolboxes


Source reorganisation:
======================
 - Source code split into dedicated and clear modules
 - Clear separation between the Scilab gateway (argument management, etc) and 
	the code
 - Use XML declaration for the list of functions
 - Use XML declaration for the list of modules (and activation or not)
 - Massive cleanup of the code 
 - Thousand of warnings removed
 - First step to a future Scilab API


New Scilab Functions:
=====================
 - Function rewrited from Fortran to C for better maintenance

 
Scilab modes:
=============
 - Scilab is now available in four modes:
	+ Normal mode
		The standard Java
	+ NW (No window) mode
		Run in command line but can launch help or rendering/graphics 
		(loads the Java Virtual Machine)
	+ NWNI (No window No interactive) mode
		Run in command line but no help, TCL or rendering
		(do not load the Java Virtual Machine)
	+ API mode
		Scilab as API/computing engine


GNU/Linux - Unix:
=================
 - New configure (based on autoconf)
 - New compilation process (based on automake and libtool)
 - Dynamic libraries
 - Advanced numerical libraries can be used (Atlas, MKL...)
 - Use librairies when available on the system
 - Versioned libraries
 - Easier profiling (memory and call graph)
 - Better startup script
	+ Debug
	+ Profiling (valgrind)

	
Windows:	
========
 - Compilation process :
	+ Visual Studio 2008 solution (requires Intel Fortran 10.1) support
	+ Visual Studio 2008 express solution (fortran conversion with f2c) support
 - Dynamic libraries	
 - Atlas 3.8 support (Core 2 Duo and more support)
 - Intel Math Kernel Library support
 - Better support on Windows Vista


Dynamic/incremental link:
=========================
 - Module renamed to dynamic link
 - Visual Studio 2008 support
 - Under Linux/Unix, now based on basic autotools for the detection of compiler
	and compilation.
 - New functions:
  + getdynlibext - get the extension of dynamic libraries on your operating system.


TCL/TK:
=======
 - New event loop 
	+ @TODO detail
 - Provided with version 8.5 of TCL/TK
 - Removed Functions:
	+ tcl_?


Java/Scilab API:
================
 - Refactoring of the Java API


Tests:
======
 - Tests are now embedded into Scilab (binary and sources)
 - Many tests added 
	+ Unitary
	+ Non regression
	+ Benchmarks


Internal API:
=============
 - Used in functions GetRhsVar, PutLhsVar... The datatype naming have been 
	changed to:
	+ "c" => STRING_DATATYPE
	+ "S" => MATRIX_OF_STRING_DATATYPE
	+ "d" => MATRIX_OF_DOUBLE_DATATYPE
	+ "r" => MATRIX_OF_RATIONAL_DATATYPE
	+ "I" => MATRIX_OF_VARIABLE_SIZE_INTEGER_DATATYPE
	+ "i" => MATRIX_OF_INTEGER_DATATYPE
	+ "b" => MATRIX_OF_BOOLEAN_DATATYPE
	+ "z" => MATRIX_OF_COMPLEX_DATATYPE
	+ "s" => SPARSE_MATRIX_DATATYPE
	+ "l" => LIST_DATATYPE
	+ "t" => TYPED_LIST_DATATYPE
	+ "m" => MATRIX_ORIENTED_TYPED_LIST_DATATYPE
	+ "p" => SCILAB_POINTER_DATATYPE
	+ "h" => GRAPHICAL_HANDLE_DATATYPE
	+ "f" => EXTERNAL_DATATYPE
	These declarations are in modules/core/includes/stackTypeVariable.h
 - define TRUE_ and FALSE_ removed for TRUE and FALSE
 - Many other things... Have a look to the sources...


Scicos:
=======
 - Test framework currently under development:
  + Unitary tests (30% done)
  + Non-regression tests (vs. Scicos 4.2 in Scilab 4.1.2) (30% done)
  + Benchmarks (0% done)