Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
This file details the changes between Scilab 2024.1.0 (this version), and the previous stable 2023.1.0 release (including information from 2024.0.0). For changelogs of earlier releases, please see Scilab 2024.0.0.
Summary:
Please report anything we could have missed, on the Scilab Community on Discourse or the bug tracker.
For a high-level description of the main new features of this release, please consult the the "What's new" page of the help, by simply typing help
in the Scilab console.
In summary, the main new features and additions are:
uiimport()
: GUI facilitating the import data from CSV or TXT file.scilab()
runs another Scilab in interactive or batch mode with command line options.colormap()
: sets and/or gets a figure colormap.bezier()
: computes the points of a Bezier curve using bernstein()
matrix.princomp()
now returns the variance percentage and the estimated mean of each variable of input.arguments
block: mustBeSquare
, mustBeEqualDimsOrScalar
.Statistics
, Elementary functions
, ...) have been updated to use the arguments
block hence enhancing their performances.http_*
functions.cvode()
, arkode()
, ida()
and kinsol()
from SUNDIALS.compress()
and decompress()
functions manage compressed archives (ZIP, tar.gz and tar.xz files).angle()
computes the argument of complex numbers, in radians.arguments/end
keywords added: validate function input arguments in a standard way (using standard error messages) and faster than using Scilab code (type
, typeof
, ...).
Some helpers have been added for this new block: mustBeSameType
, mustBeEqualDimsOrScalar
, ...
Some Scilab functions (modulo
, pmodulo
, ...) and modules (time
, ...) have been updated to use this new block hence enhancing their performances.select/case
supports multiple cases with cells
._
the output value will not be assigned (e.g. [r1, _, r3,...] = func(...)
).curl
as default in atomsDownload()
for all OS to handle local file repositories.url_encode()
and url_decode()
are added.http_*
functions.errbar()
function uses horizontal line marks.subplot()
manages frame
uicontrols.cvode()
, arkode()
, ida()
and kinsol()
through optional arguments (cvode()
and ida()
have specific sensitivity features).intl()
input arguments.strsubst()
manages group in replacement.string()
accepts lists
, cells
and structs
.All these functions and features will be removed in Scilab 2026.0.0 (October 2025):
dassl()
, dasrt()
and daskr()
are now internal functions: Please use dae()
instead.autumncolormap()
, bonecolormap()
, coolcolormap()
, coppercolormap()
, graycolormap()
, hotcolormap()
, hsvcolormap()
, jetcolormap()
, oceancolormap()
, parulacolormap()
, pinkcolormap()
, rainbowcolormap()
, springcolormap()
, summercolormap()
, whitecolormap()
, wintercolormap()
) have been renamed without colormap
suffix, so autumncolormap()
became autumn()
, ...All these functions and features will be removed in Scilab 2025.0.0 (October 2024):
splitURL()
: Please use url_split()
instead.getURL()
: Please use http_get()
instead.sound()
: Please use playsnd()
instead.The following functions have been removed:
dnaupd()
, dneupd()
, dsaupd()
, dseupd()
, znaupd()
, zneupd()
, obsolete since Scilab 2023.0.0. Please use eigs()
instead.plotframe()
, obsolete since Scilab 2023.0.0. Please use plot2d([], [], 0, "011", " ", [xmin ymin ymax ymax])
instead.svd(X, 0)
, obsolete since Scilab 2023.0.0. Please use svd(X, "e")
instead.xget('fpf')
and xset('fpf')
, obsolete since Scilab 2023.0.0. Please use the fpf
argument of contour()
, contourf()
and contour2d()
instead.The following features and usages have been removed or disabled:
compress
and decompress
functions).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:
bezier()
function was only available as a demonstration.Call_ScilabOpen()
.loadmatfile()
failed loading single precision arrays, they are now loaded as double precision arrays.x_choose_modeless()
made Scilab freeze.feval(0:3,string)
displayed error messages with Chinese characters.wavread.sci
contained erroneous information.host()
and unix()
functions did not update Scilab consolebox()
on Windows 10.dassl()
, dasrt()
and daskr()
should become internals. As designed for, dae()
is now the unique gateway.loadXcosLibs()
failed when Coselica toolbox was loaded.loadmatfile()
needed to be improved.tbx_builder_help()
can now generate a toolbox help even when help pages contain <images>
tags using this toolbox functions.getfield()
wrongly required an output argument.sci2exp()
failed to handle long lines when the lmax
parameter was set.TOWS
block failed with an error about post_xcos_simulate()
.strsplit(" $, ", ",")
crashed Scilab.uiSpreadsheet(<file>)
did not display the CSV file (issue fixed by uiimport()
integration).comet3d()
no more worked in Scilab 2024.0.0.regexp()
and strsubst()
had invalid memory accesses.SCALE_CSCOPE
block icon was missing in Linux binary versions.clean()
function does not behave according its documentation.subplot()
changed current figure to last figure modified..desktop
files under Linux.fullpath()
could miss trailing path separator.subplot()
was broken when demo_gui()
was opened.File > Execute...
menu now runs file with -1
mode (no echo).meshgrid()
incorrectly checked its output arguments.file("last", unit)
no more worked since Scilab 2024.0.0.SCALE_CSCOPE
block auto-scalingdid not work.getd()
behavior when used inside a function had to be clarified.macr2tree()
now returns paired operands on "cc" operator (as on "rc").sci2exp()
returned expressions using makecell()
instead of using curly braces when input was a cell array.macr2tree()
did not manage extractions correctly.StartTime
was different when doing "extraction and then retime" or "retime and then extraction".SUN_Clink()
failed under Windows.surf()
with "LineStyle" option set to "none" did not draw anything (surface was hidden).int2d()
returned an error when called with 6 input arguments.FMInterface
block from fmu-wrapper
contained invalid model.opar
.pause
in an overloading function crashed Scilab.h = findobj(searchHandles, ...)
did not work when searchHandles
was a row vector.impl()
with wrong input size crashed Scilab.TMPDIR
was not deleted at Scilab exit on Windows.synchronize()
did not behave as expected.datetime("now")
lost milliseconds information.optim()
returned wrong values for iter
and evals
output arguments.nanreglin()
failed because of %nan
and %inf
values.TCL_EvalFile()
returned a error about BWidget package under Linux.bar()
did not to work properly.tbx_build_help_loader()
returned an error about an undefined variable.-Werror=implicit-function-declaration
has been fixed.{ list() }
could not be displayed.expm()
function returned wrong results for many negative values.schur()
function returned incorrect results when transforming complex-valued matrix pencils.zpk
system failed when having more than a pair of complex zeros.select/case
now supports grouped cases (e.g. {1, 2}
matches 1
or 2
.).strsubst()
did not handle group remplacement.unzip.exe
, zip.exe
and gzip.exe
have been replaced by new compress
and decompress
functions.csvTextScan()
returned unexpected results with blank space separators.atomsExtract()
(unzip
& untar
) features are now available in other functions using new compress
and decompress
functions.bar()
and barh()
no more display useless and annoying warnings about data transpose.angle()
function has been added for calculating the argument (angle) for a complex number.toolbox_skeleton
no more contains a version requirement (considering it is given for the current Scilab version).light()
made graphics very unstable (java.lang.NullPointerException
).writeb()
, write4b()
, readb()
and read4b()
functions documentation has been removed (functions were removed in Scilab 6.0.0).edit
style uicontrols.colormap
property management (also occuring in addcolor()
and color()
).savematfile()
did not support boolean
/logical
variables with version greater than 4.savematfile()
and loadmatfile()
corrupted UTF-8 character strings.loadmatfile()
loaded logical arrays as uint8
instead of as booleans
.savematfile()
returned an error when used with cells or structures including some booleans
.matfile_listvar()
and loadmatfile()
crashed Scilab when the file contains some structure saved in version lesser than 7.3.test_run("cacsd", "bug_13359")
randomly failed (graphics related issues).polyline.display_function
and created in a batch session opened with the -quit
option was not rendered.int64
, uint64
) from literal inputs.loadmatfile()
trimmed the value of a character string in a structure field to its first character with version greater than 6.Matlab sparse
type (7) has been removed (was almost not used).sci2exp(complex([1 1], [%nan %inf]))
was not correctly evaluable.tree_show(Xcos_diagram)
crashed Scilab.http_get()
did not work with long filenames.javax.media.opengl.GLException: Caught GLException: Not a GL2 implementation
exception sometimes occured in Xcos.string(macro)
and tree2code()
returned wrong code for multiline arrays including some comments.$
failed when defining an empty variable using x=[], x(1:$)=1
and left x
unchanged.scifunc_block_m
block behavior changed since Scilab 6.0.0 (Scilab 5.x behavior restored).xcosDiagramToScilab()
was deeply unstable and crashed Scilab.block.z
and block.oz
variables could not be updated at simulation flag 2
.frame
uicontrol.start:step:stop
sometimes exceeded the stop limit.deletefile()
instruction.slint()
is now applicable to any file extension.string()
output was broken for structs, lists or cells.NOR_Gate.zcos
Xcos demonstration failed to simulate.tree_show()
now manages visualization of heterogenous object leaves.urlencode()
& urldecode()
functions have been added.scilab_macros.txt
and scilab_primitives.txt
files contents are now sorted and files are no more part of Scilab source tree.slint()
now focuses on code maintenance and actual errors by default (instead of on code style).L = list(mode, lines), L(2)()
returned an error instead of running lines()
.macro
as a builtin
and failed to report the erroneous line.test_run("ast", "bug_15701")
failed on new macOS build.std::unary_function
and std::binary_function
).arl2()
documentation example did not work.cdfnor()
crashed Scilab macOS/arm64 build.if/for/while/select
was still documented but the limit no longer existed since Scilab 6.0.0.config.sub
was outdated.ilib_build()
.xlabel()
web help page contained references to zlabel()
in its title.http_*()
functions now manage cookies.write()
did not write text-content to the file.SCI/modules/sparse/src/c/lu.c
file did not compile when using recent versions of clang
.http_get()
was extremely slow when no filename argument was provided.pause
mode in ode.iconv
(dependency of libarchive
.xsave()
on closing specific bar()
figure.checkNamedArguments()
wrongly listed varargout
.