This file details the changes between Scilab 2025.1.0 (this version), and the previous 2024.1.0 stable release (including information from 2025.0.0). For changelogs of earlier releases, please see Scilab 2025.0.0.
Summary:
Please report anything we could have missed, on Discourse or on GitLab.
For a high-level description of this release's main new features, please consult the "What's new" page of embedded documentation available by simply typing doc
in the Scilab console.
addvars
: Add variables to table or timeseries.combinations
: Create a table containing all elements combinations.join
: Combine two tables or timeseries.removevars
: Remove variables from table or timeseries.diffxy
: Derivative of y with respect to x.hadamard
: Hadamard matrix.hankel
: Hankel matrix.pascal
: Pascal matrix.rosser
: Rosser matrix.wilkinson
: Wilkinson matrix.day
: Extract day from datetime.month
: Extract month from datetime.cart2pol
: Convert cartesian coordinates to polar/cylindrical.pol2cart
: Convert polar/cylindrical coordinates to cartesian.cylinder
: Compute cylinder coordinates.peaks
: Compute values of a function with lots of local maxima and minima.sphere
: Compute sphere coordinates.rmfield
: Remove fields from a struct.tbx_package
: Package a toolbox source tree with binaries into a single file.arguments
: mustBeScalar
, mustBeScalarOrEmpty
, mustBeEqualDimsOrEmpty
, mustBeRow
, mustBeColumn
.mustBeA
helper can now manage "empty" type (for empty matrix cases).toJSON()
and fromJSON()
are now based on RapidJSON for efficiency and can manage %Nan
, -%Inf
and %Inf
values.pca()
, datetime()
, ...polyfit()
now manages weights for y
data.host()
can now return both standard output and standard error.uicontrol
based on JCEF (See dedicated post on Discourse).flag
, prism
, Accent
, Dark2
, Paired
, Pastel1
, Pastel2
, Set1
, Set2
and Set3
.turbo
colormap: varying from blue, lightblue, green, yellow, orange then red (quite similar to jet
but perceptually uniform).time
module have been updated to use the arguments
block and enhance its performances.writetable
and writetimeseries
have been optimized.addcolor
performances have been improved mainly for huge colormaps.frank
: Computes Frank matrix.getdeprecated
: Gets names of deprecated functions and replacement function names.hilbm
: Computes Hilbert matrix.invhilb
: Computes inverse of Hilbert matrix.kmeans
: K-means clustering function.magic
: Computes magic square matrix.polyfit
: Fits a curve with a polynomial.polyval
: Evaluates a polynomial for some given values.vander
: Computes Vandermonde matrix.-e
and -f
command-line options can now be used simultaneously (and are run in the order they are given to Scilab).x_dialog
and x_mdialog
can now be used to enter hidden entries such as passwords.#(x) -> (x+1)
1i
and 1j
(equivalent to 1*%i
).timeout
optional parameter has been added to http_*
functions.http_upload
can be used to upload a remote file with a different name as local one."TooltipString"
added for uimenu
handles."cdata_bounds"
& "color_range"
added for Fac3d
handles."anti_aliasing"
property value is now "8x"
by default for graphic figures (Anti-aliasing was deactivated by default in previous versions)."fractional_font"
property value is now "on"
by default for text handles (is was "off"
by default in previous versions).h = plot()
, h = surf()
, ... This feature can be used to replace h = gce()
in some cases.A new way to manage rendering (raw text, LaTeX, MathML) of strings in graphics figures with:
"interpreter"
property added for Text
, Datatip
, Label
and Legend
handles,"tics_interpreters"
property added for Axis
handles,"interpreters"
property added for x_ticks
, y_ticks
and z_ticks
for Axes
handles.Some GUI (File Browser, Help Browser, ...) have been improved.
CACSD
, Linear Algebra
, ...) have been updated to use the arguments
block and enhance their performances.All these functions and features will be removed in Scilab 2026.0.0 (October 2025):
"figure_style"
property (useless since Scilab 5.0 when old graphics renderer was unplugged)."Compound"
or a "Compound"
array as first argument in legend
function (this feature was not documented and should not have been used).All these functions and features will be removed in Scilab 2026.0.0 (October 2025):
impl()
: Please use dae()
instead.princomp()
: Please use pca()
instead.testmatrix()
: Please use magic()
, invhilb()
or frank()
instead.captions()
: Please use legend()
instead.help()
: Please use doc()
instead.The following functions have been removed:
getURL
, obsolete since 2023.1.0, replaced by http_get
.sound
, obsolete since 2023.1.0, replaced by playsnd
.splitURL
, obsolete since 2023.1.0, replaced by url_split
.If you are familiar with building Scilab from sources, the following dependencies have been updated.
xmltoinline
in the builder.sce
file and call loadToolboxInlineHelp
in your toolbox .start
file. Use these undocumented functions at your own risk.lyap
function no longer accepts non-square matrices as input.pca
: the order of the first three output arguments has been modified. The old [lambda, comprinc, scores] = pca(x)
syntax has been replaced by [comprinc, scores, lambda] = pca(x)
. See the history part of pca documentation for more information.show_pca(lambda, facpr, N)
: Following the pca
function improvements, lambda
is now a p-by-1 vector. The ratio of the corresponding eigenvalue over the sum of eigenvalues now is computed in the show_pca
function.isvector
function and mustBeVector
helper now return %T
for scalars (instead of %F
in previous versions) to be coherent with isrow
and iscolumn
.legend(h1,h2,h3,....,strings)
is no more supported."links"
property is now a vector with the same order as the legend strings.x_ticks
, y_ticks
and z_ticks
, the new "interpreters"
property must be managed.fec
no more creates a Compound
object.h = plot(x1, y1, x2, y2)
now returns handles in h
as in arguments i.e. [h1, h2]
.32-bit platforms are not supported (no binary versions released).
Native macOS M1/arm64 build is provided (at least 2 x faster than Intel build using Rosetta emulation).
Scilab embedded JVM is Java 17 without a memory usage limit. Java heap size limit can still be set in Preferences (General / Java Heap Memory).
To run or compile Scilab, you might need:
rmfield()
function was missing.addcolor(colors)
was very slow when length(colors)
was big.getAllocatedSingleString()
produced wrong error messages.tbx_package()
has been added to Scilab to make the creation on an ATOMS binary package easier.getURL()
did not work with accentuated characters.*
was not reliable for int64
and uint64
integers greater than 2^52
.uimport()
GUI had some glitches under macOS."text"
and "editbox"
did now support scroll by mouse wheel.modelicac.exe
, modelicat.exe
and XML2modelica.exe
were 32-bits binaries, hence producing issues when trying to run any Modelica exemple from a fresh Windows installation.atomsInstall
did not work with a URL as input argument.vander()
documentation contained wrong formulae.datetime("2024-10-29T07:45:59.898Z", "InputFormat","yyyy-MM-ddTHH:mm:ss.SSSZ","OutputFormat","yyyy-MM-dd HH:mm:ss.SSS")
returned an error.*.zcos
or *.xcos
file if the file name was not explicitly added to the desired filename.profile()
documentation more worked.detectImportOptions()
sometimes detetced wrong types of data.table
could fail with an error.loadToolboxInlineHelp()
(See Known incompatibilities).x_mdialog()
no more worked with boolean matrices.frame
as parent, anti-aliasing was not activated as in parent figure.barh()
produced a wrong display.bar()
function wrongly returned a "Compound"
(while barh()
returned a vector of "Polylines"
).getfield()
crashed with a struct
as input argument.table()
display failed with unlimited 0
horizontal paging control.CDATA
block in an XML .content
field was escaped and not accessible in Scilab.[_, tz] = clock()
did not work on some GMT.fsolve()
and optim()
documentation needed some improvements.bloc2ss()
failed to check input arguments type.fminsearch()
could not be called with an anonymous function as cost function.sci2exp()
made Scilab crash when called with an anonymous function as input.subplot()
did not return the created/selected axes.fromJSON("{inf:41}")
made Scilab crash.msscanf()
made Scilab crash in some particular cases.datetime()
failed when "InputFormat"
specified milliseconds and when seconds value was 59
.tlist
produced an error.uint64
multiplication gaves wrong results."LOOKUP_f"
and "Curve_f"
blocks no more worked.test_run()
no more worked for ATOMS modules.legend(axe_handle, ...)
no more worked if axe_handle
was not current axes (gca()
).file_mask
did not work correctly uigetfile()
.uigetfile()
documentation was obsolete.Matplot1()
was broken for RGB images.bode()
plots were reversed w.r.t. colors shown in the legend.stackedplot()
documentation page was wrong.TooltipString
property was missing for uimenu
handles.gcf().resize = "off"
(and other similar recursive settings) displayed a useless output.set_io
was not documented.delete(dtHandle)
created a ghost "????" component.SCI/modules/graphics/macros/datatips/
contained useless functions.try
block, continue
was ignored../configure
did not detect JARs symbolic links.sound()
was a duplicate of playsnd()
and has been removed.bar()
was inconsistent.findobj(propertyName, propertyValue, ...)
statement did not work as explained in documentation.uiimport()
code export failed when using a non-alphanumeric in variable used as time.uiimport()
failed with TAB as delimiter when having some spaces variable names.uiimport()
failed to import files with multiple header lines.Grayplot
and Champ
entities could no more be displayed in the Scilab console.string([1 2])
.uiimport()
failed to import a .txt file but succeeded with the same file renamed in .csv.datetime()
help page had two history sections.zpk
or state-space
variables.datetime("1999-06","InputFormat","yyyy-MM")
produced an error.toJSON()
created "/" strings instead of "/".legend()
made Scilab crash when an empty value was used as the first input argument and 5
as the second one.mxstep
in ODEOPTIONS does work with ODE type rkf
and it was not documented.cvode()
could make Scilab crash under Windows because of uncaught exception.struct
, tlist
, etc...leastsq()
could make Scilab crash in case of error under macOS/arm64.graypolarplot()
failed when called with 4 or 5 input arguments.size()
did not return any output for vectors of datetime
.datetime
type was not managed in datenum()
and datevec()
.dae("root2",...)
did not work as documented.synchronize()
now explains how to use lists of timeseries as input arguments.captions()
input/output order was inconsistent. This function has been set as obsolete.Datatip
object was found by get()
after deletion of parent figure.compress()
could not compress a single file without a container.addmenu()
documentation example could not be executed.