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.0.0 (this version), and the previous 2023.1.0 release. For changelogs of earlier releases, please see Scilab 2023.1.0.
Summary:
Please report anything we could have missed, on the mailing lists or the bug tracker.
For a high-level description of the main new features of this release, please consult the embedded help. It is also available as 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:
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 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:
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
.