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 2023.0.0 (this version), and the previous 6.1.1 release. For changelogs of earlier releases, please see Scilab 6.1.1.
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 Scilab console.
In summary, the main new features and additions are:
axes.auto_stretch
property added.http_get()
function now sets accept-encoding
flag.verbose
parameter added to http_get()
.atomsInstall()
will now try to build a package (containing only Scilab code) locally from sources when no compatible binary version is found.toJSON(var, filename, indent)
implemented, after toJSON(var, filename)
.fromJSON
and toJSON
processing of tab
(ascii(9)
) is changed.for c = h,.., end
now accepts an hypermatrix h
and iterates over its columns matrix(h, size(h,1),-1)
.covWrite("html", dir)
results is improved.tbx_make(".", "localization")
can now update files of translated messages according to new gettext entries in the code.All these functions and features will be removed in Scilab 2024.0.0 (October 2023):
dnaupd()
, dneupd()
, dsaupd()
, dseupd()
, znaupd()
, zneupd()
: Please use eigs()
instead.plotframe()
: Please use plot2d([], [], 0, "011", " ", [xmin ymin ymax ymax])
instead.svd(X, 0)
: Please use svd(X, "e")
instead.xget('fpf')
and xset('fpf')
: Please use fpf
argument of contour()
, contourf()
, contour2d()
instead.The following functions have been removed:
%sn
, obsolete since 6.1.0, replaced by ellipj
.champ1
, obsolete since 6.1.0, replaced by champ().colored='on'
.closeEditvar
, obsolete since 6.1.0, replaced by close editvar
.datatipToggle
, obsolete since 6.0.2, replaced by datatipManagerMode
.dgettext
, obsolete since 6.0.1, replaced by gettext(domain,..)
.dirname
, obsolete since 6.0.2, replaced by fileparts(..,'path')
.fplot2d
, obsolete since 6.1.1, replaced by plot(x, f)
.get_figure_handle
, obsolete since 6.1.0, replaced by findobj("figure_id", id)
.hist3d
, obsolete since 6.1.0, replaced by bar3d
.noisegen
, obsolete since 6.1.0, replaced by grand
.ric_desc
, obsolete since 6.1.0, replaced by riccati
.saveafterncommands
, obsolete since 6.1.0.scatter3
, obsolete since 6.1.0, replaced by scatter3d
.setPreferencesValue
, obsolete since 6.1.0, replaced by xmlSetValues
.soundsec
, obsolete since 6.1.1, replaced by 0 : 1/freq : t*(1-%eps)
.sysdiag
, obsolete since 6.1.0, replaced by blockdiag
.xdel
, obsolete since 6.1.1, replaced by close
.xname
, obsolete since 6.1.1, replaced by gcf().figure_name
.The following features and usages have been removed or disabled:
"z_component"
property.-costfunction
and -outputcommandarg
options of neldermead_configure()
function. Please use -function
and -outputcommand
options.-myterminate
and -myterminateflag
options of neldermead_new()
function.add_param()
usage with two input arguments.sinc()
usage with two input arguments.<-- JVM NOT MANDATORY -->
tag in tests. Please use <-- CLI SHELL MODE -->
instead.%hm
code.0
value as "linestyle"
property for polyline handles. Please use 1
instead."hidden_axis"
value as "box"
property for axes handles. Please use "hidden_axes"
instead.m2sciassume
usage to annotate code for mfile2sci()
. Please use m2scideclare
instead.qmr(A, Ap)
usage. Please use qmr(A)
instead.histc()
usage with normalization
(boolean) as third argument.ode()
usage with "roots"
as solver (third argument). Please use "root"
instead.frexp
is now an internal function. Please use [m,e]=log2(x)
instead.GNU autotools have been updated to :
All builds require a C++17 compiler. Toolboxes might also want to use this standard by specifying -std=c++17
as a CFLAGS
under Linux and macOS.
Migration to Microsoft Visual Studio 2022 and Intel® oneAPI HPC Toolkit 2022.3.
macOS: Build environment has been migrated to conda and now relies on clang and libc++, hence (existing) toolboxes with binary gateways have to be (re)compiled using the same conda environment (see https://gitlab.com/scilab/scilab/-/wikis/Developers/setup-Scilab-repository-macOS)
32-bit Windows platforms are no more supported (no binary versions released).
Scilab embedded JVM is Java 8.
To run or compile Scilab you need at least:
analysis
module removed.scilab_setVar
function added to API.write()
function.try/catch
, returned value assigned in catch
statement was not displayed.fft()
, Scilab crashed.log10(3)
made Scilab crash.copyfile()
crashed Scilab while playing with locales.hilbert()
function made Scilab crash.atomsSystemUpdate()
was slow.readxls
could make Scilab crash without any error message.a=L(2:3)
returned an error after L=list(1,"a",%t)
.fsolve()
was no longer reentrant.isequalbitwise()
was made internal in Scilab 6.0.0 but was still documented.closeEditvar()
had to be replaced by close("editvar")
.; a=1
returned an error.mscanf()
introduced a leading newline (\n
) and the prompt, before prompting the user for input.xcorr()
led to immediate crash.write
Fortran subroutine crashed Scilab in debug mode.gca()("thickness")
crashed Scilab.histplot()
.struct("v", cell())
crashed Scilab.c = {1:$}
crashed Scilab.pause
inhibited error display when executed in try-catch block.covStart()
did not report errors on invalid arguments.bezout(%inf, 1)
and bezout(%nan, 1)
crashed Scilab.toJSON
crashed in case of wrong parameters order.load()/save()
did not handle the "layout" property correctly.Details
of Xcos CLOCK_c
block led to Scilab crash.macr2tree
+ tree2code
translated e={2}
into "e=1"
and e={2,"ab"}
into "e=[2,"ab"]"
.for m=rand(2,2,2), end
crashed Scilab.macr2tree()
(and maybe tree2code()
) killed recursive extractions made with indices (was OK with fields).for o = L(3:$), o, end
after L = list(1,2);
crashed Scilab.glue()
crashed Scilab when called with 'Figure' handle as input.fromJSON()
crashed with a non existing file.c(1)(3).line_style = 8;
where c
is a list of vectors of polyline handles crashed Scilab.sfact([%s %s ; %s %s])
crashed Scilab after "sfact: Wrong value for input argument #1: singular or asymmetric problem." message.findobj()
when no object existed.write()
help page.findobj()
was slower than before.plot3d
polygon facets rendering could be wrong when exactly in horizontal or vertical plane.fullpath("existing_path/*.ext")
crashed Scilab under Windows.xsave
/save
of datatips produced double free in data model.zoom_box
property was not correctly saved.isreal(complex(1,%nan),0)
returned %T
instead of %F
.atomsGui()
could produce some field <module_name> unknown
error after running the File / Update List of Packages
menu.scinotes()
with option and non existing file crashed Scilab.covWrite("html")
results wrapping was wrong.tbx_build_localization(…)
and tbx_make(dir, "localization")
never updated existing .po files.atomsLoad("linalg")
errored and broke the loading.getrelativefilename()
returned incorrect value in case of same beginning of directory names.Mtbxfun_db.txt
was missing the Scilab releases (m2sci
module).file()
or file(fid)
could return outdated relative paths.tbx_generate_pofile(…)
(and so tbx_build_localization(…)
) silently failed for any module with too (but no so) many files to process.replot(gcf())
failed for legends.mcolors
values, scatter()
and scatter3d()
did not map correctly the colormap.toJSON("\\")
was on escaping "\\" properly.plot(1:2, 'MarkerEdgeColor', [0.2 0.8 0.6])
returned an error.repmat()
was broken for any sparse matrix input.macr2tree()
interpreted a=1:2, b=a(2)
as a funcall instead of as an extraction operation (Scilab 6.0 regression).macr2tree()
encoded .'
(transpose) as '
(conjugate transpose).members(N,H)
was very slow and crashed the computer for big N
or/and H
arrays of non-double data.mprintf("%d %d\n", h);
called after h=cat(3, [1 2], [3 4]);
crashed Scilab (same issue with msprintf()
).tbx_build_loader()
messages fixed.exec()
instruction could make Scilab crash.-lstdc++fs
flag broke link for recent C++17 compilers.copy()
did not work for some handle types in Scilab 6.--without-gui
option.macr2tree
crashed when members of an object were called as a function.read()
might crash when building Scilab with gfortran >= 11.a =[]; a(:)=["a","a"];
) crashed Scilab.var2vec()
documentation improved.http_get(..., follow=%t)
could not be used without a filename argument.-
.toJSON()
did not escape TABs properly.string
of cell, struct, list did not call overload.