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.1.0 (this version), and the previous stable 6.1.1 release (including information from 2023.0.0). For changelogs of earlier releases, please see Scilab 2023.0.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 Scilab console.
In summary, the main new features and additions are:
edit_curv()
is upgraded. Newly implemented features:
curl
as default on atomsDownload()
for all OS to handle local file repositories.cat()
accepts arrays of different but compatible types according to [,] and [;] rules.tbx_make(".", "help", lang)
builds the documentation restricted to a given language.In summary, the main new features and additions are:
auto_stretch
property has been added for axes handles.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 a 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 2025.0.0 (October 2024):
getURL()
: Please use http_get()
instead.splitURL()
: Please use url_split()
instead.sound()
: Please use playsnd()
instead.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: The 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 has been removed.scilab_setVar
function added to API.input()
badly reencoded UTF-8 input strings.max - min
was greater than 1.write(filename,..)
could not overwrite an existing file.findobj("figure_id", num)
changed current figure (returned by gcf()
).edit_curv()
: Undo
could cancel only the very last action. There was no Redo
action.xgetmouse()
always returned 0.read()
was slow when reading an unknown number of lines (dims == -1).languages
option has been added to tbx_make(".","help")
to target building to some chosen languages.sound()
is a useless wrapper of playsnd()
. It is now obsolete before forthcoming removal.splitURL()
has been moved to the webtools module and renamed to url_split()
.asciimat()
now belongs to the m2sci
module, where its code, pages and tests should be.[s,m]=assert_checkequal(1,%z)
yielded an error instead of silently returning the error message in m
.edit_curv()
has been fixed and upgraded.windowsConfiguration.xml
.justify(hypermat,..)
processed only the first page hypermat(:,:,1)
.cat()
did not apply [,]
and [;]
input transtyping rules.cellstr()
& iscellstr()
now belongs to the m2sci
module, where their code, pages and tests should be.or(%i, dim)
and and(%i, dim)
yielded an error.param3d()
documentation, the descriptions of alpha and theta were inverted.getversion()
did not detect that Scilab was built using clang
.fplot3d(xr,yr,f,theta,..)
ignored theta.mgetl()
did not trigger stream status end-of-file.write()
now prints/writes an empty line in console/file when the input is an empty string.getURL()
is now obsolete.xset()/xget()
did not tell which function displayed the message.cov()
generated a warning (xerbla) or made Scilab crash (MKL generation issue).types::
in Webtools gateways and http_upload()
example have been fixed.fpf=' '
did not turn off labels in contour()
.vcruntime140_1.dll
was missing in Windows package.input(msg)
no longer printed the message.SCI/etc/modules.xml
.atomsSystemUpdate()
could no more be run in NWNI mode.hist3d()
plotting feature no more worked in the variable browser and variable editor.slint()
default configuration file is now copied into SCIHOME and used instead of the original one.API Scilab/API double functions
documentation page has been fixed.slint()
overwrote the default configuration file.Matplot()
crashed when rect
input argument was missing.rat()
computation should verify abs(N./D - X) <= tol * norm(X, 1)
(help page fixed).x=input(…)
had an error (x type), and was poorly documented (description, examples).kroneck()
returned a wrong error message.mopen()
in read mode for a new file.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 a 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 the 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 an incorrect value in case of the 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.