This file details the changes between Scilab 2027.0.0 (this version) and the previous 2026.1.0 stable release.
For changelogs of earlier releases, please see Scilab 2026.1.0.
Summary:
Please report anything we may have missed on Discourse or GitLab.
For a high-level description of the main new features in this release, please consult the homepage of the embedded documentation, available by simply typing doc in the Scilab console.
doc scinotes_debugger.doc scinotes_assistant.agglomerative(): Agglomerative hierarchical clustering.between(): Calendar difference between two datetime values.caldiff(): Calendar successive differences.linkage(): Agglomerative hierarchical cluster tree.silhouette(): Silhouette values of a clustering.sprkode(): SUNDIALS ordinary differential equation symplectic Runge-Kutta solver.doc <page> displayed by help() are clickable links. Their color can be customized in Preferences ⇒ Colors.tbx_build_help() no longer builds a help jar, but pre-generates the images of the pages (<scilab:image> blocks and Xcos diagrams) into the help/images directory of the toolbox, for all the languages at once. tbx_package() ships them with the toolbox.uiimport() has been rewritten with the "browser" uicontrol and now supports XLSX files. Besides a table or a timeseries, data can now be imported as column vectors, a matrix of doubles, a matrix of strings or a cell.tbx_build_localization()) now also extracts the messages of the classes/ directory.assert_checkalmostequal(), assert_checkequal(), assert_checkfalse(), assert_checkfilesequal() and assert_checktrue() accept an optional custom error message as last input argument.compress() and decompress() now support "zstd" compression.parquetRead() and parquetWrite() now manage timeseries, and parquetWrite() accepts an optional compression argument ("gzip", "snappy", "zstd" or "uncompressed").pca() now accepts an "Algorithm" option ("svd" or "eigs").summary() now supports matrices of doubles, integers, booleans, strings, durations and datetimes.<, <=, > and >= and element-wise logical operators & and | now perform the same automatic expansion as arithmetic operators.classdef: a class name can be used as type of a function argument (arguments block) or of a property; it accepts an object of this class or of a derived one.classdef: validator parameters are evaluated at call time: a field of an input (opts.max), and in methods this, a property of the object or a static property.classdef: && and || call the and/or methods of objects, and overloaded operators are searched in both operands. Redefining a class rebuilds the loaded classes derived from it.*_alpha properties for Polyline, Surface (Plot3d & Fac3d), Fec, Grayplot, Matplot, Champ, Segs, Arc, Rectangle, Text, Label, Legend and Datatip entities, and with new "...Alpha" options in plot(), surf(), scatter() and scatter3d().Root and Console graphic objects: get(0) returns the Root object whose children are the figures and the Console.arrow_style property ("filled" or "vback").grayplot(), Sgrayplot() and Sfgrayplot() now accept non-rectangular (curvilinear) grids given as matrices of the same size.stackedplot() can be used with subplots, accepts an axes handle and returns the handles of the created axes.fmu module: import of FMI 1/2/3 FMUs (importFMU(), fmiSimulate(), fmi*() functions) and FMU_WRAPPER block, used when loading SSP files.All these functions and features will be removed in Scilab 2027.1.0 (May 2028):
tbx_make(tbx_path, "help", languages): the languages option is obsolete, the images of the help pages are generated for all languages at once at build time, or on the fly when missing.xmltojar(): no jar is built anymore, it only pre-generates the images of the help pages. Use tbx_build_help() instead.The following functions have been removed:
dos(): obsolete since 2026.0.0, please use host() instead.readmps(): obsolete since 2026.1.0, please use quapro toolbox instead.unix(): obsolete since 2026.0.0, please use host() instead.unix_g(): obsolete since 2026.0.0, please use host() instead.unix_s(): obsolete since 2026.0.0, please use host() instead.unix_w(): obsolete since 2026.0.0, please use host() instead.unix_x(): obsolete since 2026.0.0, please use host() instead.Param3d and Title graphic entities documentation and remaining management: these entities were no more created since Scilab 5.scilab_<lang>_help.jar) are no longer built, neither for Scilab nor for toolboxes. A toolbox whose etc/*.start registers its help chapter only when its jar directory exists, as the former toolbox skeleton did, must now test its help directory, and can give its root directory to add_help_chapter().xmltoformat() no longer supports the "javaHelp" format, and the JavaHelp library (jhall.jar) is no longer needed.inv()/spec()/freq()/rtitr(), solver diagnostics in ode()/odedc()/intg()/int2d()/int3d(), function redefinition, mopen(), createdir(), uicontrols...) now go through the standard warning channel: they are hidden by warning("off") and raise an error under warning("stop").classdef: the constructor of a parent class is now called implicitly, without argument, when the constructor of the derived class does not call it (or when the derived class has no constructor). A parent constructor that needs arguments must be called explicitly, a class with a private constructor can no longer be derived, and A() is only allowed in the constructor of a direct subclass.classdef: protected members are visible to all derived classes (they were visible to direct subclasses only), and a method can access private members of other instances of its class. A constructor declared in a methods (Static) block is an error.classdef: unknown types in arguments blocks are reported at the first call instead of at definition.findobj() starts its search from the Root object: depths are shifted by one, Root and Console objects can be returned, and a property name given without value returns [] instead of an error.calendarDuration display uses "mo" for months (instead of "m", used for minutes): 1y 2mo 3d 12h 35m 30s.cutaxes(): the continuous axis is now drawn by Axes(1) instead of Axes($).stackedplot() no longer creates a new figure on each call.xlsxWrite() refuses to write into an existing file it cannot read (it formerly replaced its content by a blank workbook).legend("a").font_size = 3) is no more parsed as a dynamic field access legend.a when legend is a function.demo_tools module has been merged into the helptools module.If you are familiar with building Scilab from sources, these dependencies have been updated:
jhall.jar) and OpenXLSX are no longer needed.findobj() did not manage wrong key/value sequences and returned its results in a wrong order.classmarkov() called the removed mat_2_graph() function.HOME was not set or when HOME/.Scilab/ was write protected.spec() could return an error (or even crash) when called with complex matrices having imaginary part equal to zero.get(0, "children") returned an error while c = get(0); c.children worked.mark_foreground with a vector did not update individual marker colors.timeseries tab completion was misleading.make -C modules/javasci check failed.axes_reverse inverted the move orientation when zoomed.cutaxes() documentation.abort killed Scilab after a break with Ctrl+C in a simulation.xcos(scs_m) opened an empty diagram.legend(..).font_size = 3 returned an unexpected error or crashed.figure() produced an incorrect error message.summary() of a table with selected variables returned incoherent results.table() and timeseries() did not accept a column vector for "VariableNames".summary() did not skip NaN values when computing the sum of a table variable.plot() since Scilab 2024.0.0.kmeans() sometimes returned a dimension mismatch error.y1 attribute of SystemGeometry element was wrong in SSP files saved by Xcos.xlsxInfo() and xlsxRead() failed to read sheets whose relationships referenced drawing parts absent from the file.CMSCOPE label did not always set the name of the graphic window.arguments: vectors were not transposed for size specifications with a colon, e.g. (:,1) and (1,:).log_flags after Matplot() made Scilab crash.classdef with static properties and methods mixed with other ones caused unexpected failures.