You are on page 1of 34

ScilabTEC 2012 / Vincent COUVERT Bruno JOFRET Juin 28, 2012

Scilab 5.4.0 live

Roadmap

Planning
Announced for December 2011 Test releases:
5.4.0 alpha-1 in December 2011 5.4.0 beta-1 in June 2012

Delay due to:


Lack of resources, Technical problems, Lot of new features for a single release, Beginning of Scilab Enterprises activity (time consuming but mandatory to ensure Scilab software perenity).

Scilab 5.4.0 final release is planned for this autumn!

Main development axes


Usability Graphics & GUI Interoperability

Xcos

Scilab 6 migration

Scientific features

Quality

Usability

Scilab Desktop
Session saved and restored at next startup New working environment Better integration of existing tools:
History Browser File Browser Variable Browser

Predefined layouts:
Simple (Scilab 5.3.3) Integrated (Scilab 5.4.0)

An Ergonomic Environment
Console File Browser Variable Browser

Command History

Scilab Preferences (1)


Unified preferences GUI for all Scilab components Computation engine configuration:
ieee mode lines function Display format

Console colors & fonts Scinotes:


Colors & fonts Saving preferences Coding style

Other inner configuration:


JVM memory size

Scilab Preferences (2)


Component selection Settings

Usability Improvements
Variable Browser Variable Editor:
Auto-refresh Multiple variable edition enabled Plotting capabilities Copy/Paste to/from your favorite spreadsheet editor

New CLI mode management:


GNU/Linux and Mac OS X versions Wide char support Based on standard libraries

Graphics & GUI

Graphics
Based on SciRenderer (Java rendering library) Better performances & stability Better graphic card support (generations & vendors) Interaction:
2-D zoom using mouse wheel New 3-D zoom capabilities Rotation using right-click

Graphic export capabilities:


Off-screen export New bitmap formats (PNG, JPEG, BMP) New vectorial formats (PDF, SVG)

GUI & uicontrols


New uicontrol styles:
image table

Figures:
new resizefcn property uicontrols & axes size and position management

Console handle:
Better menus management in Scilab console consoleHandle = get(0);

Hidden handles management:


Console/Figures menus hidden by default ShowHiddenHandles property added

Interoperability

Javasci V2
New types managed:
sparse and boolean sparse tlists, mlists and lists polynomial

Scilab as a graphic engine based on driver function and off-screen capabilities

Scilab engine instance:


Multiple calls to same environment No need to save/load your data between calls

Direct variable mapping, no need to push/pop Variable introspection: type & dimensions

Scilab Open Data format (SOD)


HDF5 based format Fully documented and tested Used in Xcos since Scilab 5.2.0 Exchange format between Scilab 5.X and Scilab 6.X Unmanaged types:
Matlab sparse datatype Scilab macros

SOD format / save & load functions


New calling sequence for save function:
save("filename.sod", "a", "b", "c") SOD format file

Obsolete calling sequences for save function:


save("filename.sod", a, b, c) save(fid, a, b, c) Old binary format

Obsolete calling sequences for load function:


load(fid, a, b, c) Old binary format

Scilab formats across versions


Scilab 4.X Scilab 5.X Scilab 6.X

Scilab binary format save(filename, a, b, c) save(fid, a, b, c) load(fid, a, b, c) Scilab SOD format save(filename, a, b, c) load(filename, a, b, c)

XML file management


Easy access to XML data with common formats (CML, ) Edition:
xmlNs xmlElement xmlDocument

Reading:
xmlRead xmlXPath

Writing:
xmlWrite

Validation:
xmlValidate

Xcos

Coselica
External module Modelica based extension Multi-physics domain:
Electronics Mechanics Thermo-dynamics

Editor & Simulator


Performances:
Simulation startup Diagram loading/saving Code generation

New ZCOS format:


Compressed data needed for big diagrams

Port & Block style management:


Latex formulas as block labels Dynamic block display based on internal parameters

Scientific Features

Testing module assert functions


Facilitate & encourage test writing Available for external modules Ensure test portability between Scilab 5.X and Scilab 6.X Basis of Scilab daily compilation chains and test chains Easy management of exceptional floating point numbers: Inf, Nan Main functions:
assert_checktrue Check that condition is true. assert_checkequal Check that computed and expected are equal. assert_checkalmostequal Check that computed and expected are numerically close. assert_checkerror Check that an instruction produces the expected error.

New signal processing functions


Implementation of SEP #73: new convolution functions
conv - discrete 1-D convolution conv2 - discrete 2-D convolution convol2d - discrete 2-D convolution, using fft phaseplot - frequency phase plot xcorr - auto and cross correlation of signals (superseeds corr) xcov - auto and cross covariance of signals (superseeds corr) arma2ss - arma data structure to a state space system conversion

New elementary functions


dec2base decimal to base conversion nthroot real nth root of real numbers eigs
Not in 5.4.0-beta-1 Eigenvalues and eigenvectors of (sparse & full) matrices Based on ARPACK-ng Simplify the use of dsaupd, ...

Quality

Daily Quality
Codereview:
Each modification is validated by an other developer Critical commits blocked before the release

Tests:
New feature = unitary test Bug fix = non-regression test

Each night:
Five versions generated Each generated version is tested (2200 automatic tests)

5.4.0-beta-1 version:
~70 failing tests under Windows, GNU/Linux ~100 failing tests under Mac OS X

All tests will successfully pass in 5.4.0 final release.

Live Demonstration

Conclusion

Open-source libraries
SciRenderer:
Rendering library Based on JoGL2 Basis of Scilab graphics Collaviz project Free and open-source

ARPACK-ng:
ARPACK fork Joint project between: Octave Scilab Debian Used/packaged in: GNU/Linux distributions MacPorts, Fink

Developped and maintained by Scilab Enterprises

On the road to Scilab 5.4.0


Missing features:
Using Unified Preferences for Xcos, ... Graphic features improvement New properties Bug fixes

Planning:
Summer 2012 Missing features development Bug fixes New BETA versions Autumn 2012 Scilab 5.4.0 final release

Two new developers in the team in the next weeks.

On the road to Scilab 6.0.0


Scilab 5.4.0:
Latest 5.X version Basis for Scilab 6.X graphics capabilities Minor versions released until Scilab 6.0.0 release

Deprecated functions New prototypes Scilab 6.0 Alpha release:


Without Xcos Q4 2012

Progressive switch of developers from 5.X to 6.X family.

You might also like