on the road to scilab 6.0.0
TRANSCRIPT
ScilabTEC 2012 / Vincent COUVERT – Bruno JOFRETJuin 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
Scilab 6 migration
Interoperability
Scientific features
Graphics & GUI
Xcos
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
File Browser
Console
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 formatsave(“filename”, a, b, c)
save(fid, a, b, c)load(fid, a, b, c)
Scilab SOD formatsave(“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.