Welcome to Scilab 6.0.0-alpha-2
Scilab 6.0 is a major new release of Scilab, the open source platform for numerical computation. This 6.0.0-alpha-2 release, is a preview for developers, partners and community evaluation.
As an alpha, this release is not yet ready for production usage. If you are new to Scilab, or if you are simply a user of Scilab, you should probably continue using the 5.5.2 release, and wait for a beta version before trying the 6 family.
However, if you have already developed code on Scilab, or if you are an experienced user, then you should start looking at this release. Please try the work you have done on earlier releases of Scilab with this version: checking for compatibility may save you time later. If you find bugs or incompatibilities, please report them on our Bug Tracker: this will help get a better product, faster, which ultimately will be benefit you too.
What's new in Scilab 6.0
This release includes a major rewrite of Scilab's internal core. The changes to the visible aspects of the software are limited.
The first big internal change, is a complete new language parser and interpreter, with the following changes:
- The language is much more coherent and predictable,
- The grammar is stricter, but more consistent,
- Error handling has been improved (but may still be limited in the alpha: please report issues you find),
- The language has slightly better compatibility with Matlab's language (for example control instructions such as switch/case statements).
The language changes are not all backward-compatible. You will have to update your scripts/programs/modules, but it will be very simple in pretty much all cases. In particular, the following changes may require modifications to existing code:
- Literal strings cannot mix single-quote and double-quote delimiters: they have to start and finish with either both single-quotes, or both double-quotes,
- Usage of commas (to put multiple instructions on the same line) has been clarified: it can not be used following control instructions such as try,
- Three dots or more are not supported anymore.
The second big internal change, is the ability to manipulate bigger data sets, without exhausting system resources. This includes in particular:
- A much better memory management. Memory usage is now only limited by the machine's memory. This was a much-needed, and much-requested feature. There is no need anymore for stacksize,
- Support for bigger data sizes, in particular with better support for HDF5 files,
- Some new and improved data types: 64-bit integers; ability to define user types in C++ modules. Also, matrices with more than two dimensions are now implemented natively.
- Native data structures (cell, struct), as well as multidimensional matrices, which yield, in most cases, better performance, both in memory usage, and execution speed. There could be some performance degradation in some cases: please feel free to report them.
These changes enable additional functionalities; some of them were added in the alpha-2 release:
- A full-featured debugger, with ability to run Scilab scripts or functions step-by-step, to put (conditional) breakpoint, in particular break only when an exception is set... has been added. Run "help debug" for more information.
- A new profiler and coverage tool has been added. It replaces the "profile" function (which is still there but not working, and will be removed in the final release). It produces HTML report for the time spent (profile) on each line. It is not documented; the names of the functions are not finalized yet, feedback is welcome on the usability. Also, it is known not to work on Xcos, and probably does not work well on complex code.
-
- A "lint"-like command, slint, has been added, for code static analysis: it detects unclear, risky or suspicious code. It is not documented yet, however.
Main limitations
Several important parts of the platform are not functional in this alpha:
- Xcos is only minimally functional. The schema editor is working for creating, editing and saving schemas, although some features are not working ("region to superblock"; complex linking using spits; editing blocks that use Scilab) but they should report clean errors. The simulator is still not usable, so simulations cannot work. This is mostly to get feedback on loading existing schemas; please report issues you get.
- Extending Scilab with ATOMS modules is working, but only very few ATOMS modules currently on http://atoms.scilab.org/ have been ported to Scilab 6, so it has only limited use.
Platform-specific limitations
All other functionalities of Scilab are present on all platforms, with a few exceptions:
- TCL/TK functionalities, as well as fonctionalities which depend on them (as ged or object_editor), are not available in MacOS.
- Some functions using specific Windows platform are only available on Windows (Windows tools).
- Compilation of C/C++ or other native code in additional modules (toolboxes), and interface with additional native third-party libraries may depend on the platforms, and may not always be supported on all platforms.
Complete changelog
For a more complete list of changes between the 5.5.2 release and the 6.0.0 alpha-1 and alpha-2 releases, please see the CHANGES_6.0.X file at the root of the installation.
Other resources
Scilab Homepage - Consult Scilab official website
Wiki - Consult documentations, tricks, etc.
Bug Tracker - Report bugs and wishes about Scilab
Forge - Browse and publish Scilab modules
Mailing Lists - Communicate and exchange with the community
ATOMS - Browse Scilab packaged modules
File Exchange - Exchange your scripts, results and files.
Scilab Enterprises - Professional services, developments and support on Scilab.