on the road to scilab 6.0.0

34
ScilabTEC 2012 / Vincent COUVERT – Bruno JOFRET Juin 28, 2012 Scilab 5.4.0 live

Upload: others

Post on 09-Feb-2022

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: On the road to Scilab 6.0.0

ScilabTEC 2012 / Vincent COUVERT – Bruno JOFRETJuin 28, 2012

Scilab 5.4.0 live

Page 2: On the road to Scilab 6.0.0

Roadmap

Page 3: On the road to Scilab 6.0.0

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!

Page 4: On the road to Scilab 6.0.0

Main development axes

Usability

Scilab 6 migration

Interoperability

Scientific features

Graphics & GUI

Xcos

Quality

Page 5: On the road to Scilab 6.0.0

Usability

Page 6: On the road to Scilab 6.0.0

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)

Page 7: On the road to Scilab 6.0.0

An Ergonomic Environment

File Browser

Console

Variable Browser

Command History

Page 8: On the road to Scilab 6.0.0

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

Page 9: On the road to Scilab 6.0.0

Scilab Preferences (2)

Component selection Settings

Page 10: On the road to Scilab 6.0.0

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

Page 11: On the road to Scilab 6.0.0

Graphics & GUI

Page 12: On the road to Scilab 6.0.0

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)

Page 13: On the road to Scilab 6.0.0

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

Page 14: On the road to Scilab 6.0.0

Interoperability

Page 15: On the road to Scilab 6.0.0

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

Page 16: On the road to Scilab 6.0.0

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

Page 17: On the road to Scilab 6.0.0

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

Page 18: On the road to Scilab 6.0.0

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”)

Page 19: On the road to Scilab 6.0.0

XML file management

Easy access to XML data with common formats (CML, …)

Edition:– xmlNs

– xmlElement

– xmlDocument

Reading:– xmlRead

– xmlXPath

Writing:– xmlWrite

Validation:– xmlValidate

Page 20: On the road to Scilab 6.0.0

Xcos

Page 21: On the road to Scilab 6.0.0

Coselica

External module

Modelica based extension

Multi-physics domain:

– Electronics

– Mechanics

– Thermo-dynamics

Page 22: On the road to Scilab 6.0.0

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

Page 23: On the road to Scilab 6.0.0

Scientific Features

Page 24: On the road to Scilab 6.0.0

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.

Page 25: On the road to Scilab 6.0.0

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

Page 26: On the road to Scilab 6.0.0

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, ...

Page 27: On the road to Scilab 6.0.0

Quality

Page 28: On the road to Scilab 6.0.0

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.

Page 29: On the road to Scilab 6.0.0

Live Demonstration

Page 30: On the road to Scilab 6.0.0

Conclusion

Page 31: On the road to Scilab 6.0.0

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

Page 32: On the road to Scilab 6.0.0

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.

Page 33: On the road to Scilab 6.0.0

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.

Page 34: On the road to Scilab 6.0.0