This file details the changes between Scilab 2026.1.0 (this version) and the previous 2025.1.0 stable release.
For changelogs of earlier releases, please see Scilab 2025.1.0.
Summary:
Please report anything we may have missed on Discourse or GitLab.
For a high-level description of the main new features in this release, please consult the homepage of the embedded documentation, available by simply typing doc in the Scilab console.
check_help(): Validate Scilab XML help files against the Scilab Relax NG schema.help(): Display an inline summary of a documentation page in Scilab console.ishermitian(): Check whether a matrix is hermitian.issymmetric(): Check whether a matrix is symmetric.parquetRead(): Read a Parquet or Arrow file and return a table.parquetWrite(): Write a table in a Parquet or Arrow file.pdist(): Pairwise distances between observations.pdist2(): Pairwise distances between two sets of observations.squareform(): Conversion between a distance vector and a symmetric distance matrix.summary(): Summary of table or timeseries variables (properties, statistics...).xcosDiagramExport(): Export an Xcos diagram to an image.xlsxInfo(): Get information about an Excel file.xlsxRead(): Read data from an Excel file and return a matrix or cell.xlsxSheet(): Manage sheets in an Excel file.xlsxWrite(): Write data (matrix or cell) to an Excel file.classdef now support static properties and methods.csvTextScan() now manages a "substitute" option as csvRead() to enable replacement of particular strings in the read file.dbscan() now accepts two more input arguments to specify metric distances and parameters.dbscan(), kmeans() and meanshift() now use pdist2() for better performances.format() now supports engineering notation (similar to exponential notation but with an exponent value divisible by three).gallery() can now generate "minij" (Symmetric positive definite matrix) and "moler" (Moler symmetric positive definite matrix) test matrices.optim_ga(), optim_moga(), optim_nsga(), optim_nsga2() to indicate that the cost function is vectorized (called with the whole population at once)..*. or repmat()) unnecessary for most case. See doc operator_expand.cdftnc(): Cumulative distribution function of the non-central student's T distribution.dbscan(): Density-based clustering.enumeration(): Get the enumeration of a classdef or an object.estimate_bandwidth(): Estimate an appropriate bandwidth for mean shift clustering.gallery(): Generate test matrices.gradient(): Compute numerical gradient.isa(): Check variable type.meanshift(): Mean shift clustering algorithm.methods(): Get accessible methods of a classdef or an object.properties(): Get accessible properties of a classdef or an object.sortrows() : Sort rows of a vector, matrix, table, or timeseries.spset(): Set non-zero entries of a sparse matrix.host() has been rewritten and is now used as a backend for all other functions that perform system calls (dos(), unix(), unix_g(), unix_s(), unix_w(), and unix_x()) which are now obsolete.intersect() now manages duration, datetime, table, and timeseries types.lib() can now load a library without exposing its symbols (default behavior remains unchanged).setdiff() now manages duration, datetime, table, and timeseries types.table() and timeseries() now manage integers.union() now manages duration, datetime, table, and timeseries types.duration(), calendarDuration(), datetime(), timeseries(), and table() functions.classdef, enumeration, properties & methods keywords.end keyword can now be used to specify the last row/column index of an array, similarly to $.All these functions and features will be removed in Scilab 2027.0.0 (October 2026):
readmps(): Please use quapro toolbox instead.All these functions and features will be removed in Scilab 2026.1.0 (May 2026):
demo_begin(): Please use exec() instead.demo_choose(): Please use x_choose() instead.demo_compiler(): Please use haveacompiler() instead.demo_end(): Please use exec() instead.demo_file_choice(): Please use x_choose() instead.demo_function_choice(): Please use x_choose() instead.demo_run(): Please use exec() instead.All these functions and features will be removed in Scilab 2027.0.0 (October 2026):
dos(): Please use host() instead.unix(): Please use host() instead.unix_g(): Please use host() instead.unix_s(): Please use host() instead.unix_w(): Please use host() instead.unix_x(): Please use host() instead.The following functions have been removed:
check_modules_xml(): not used and undocumented.demo_begin(): obsolete since 2026.0.0, please use exec() instead.demo_choose(): obsolete since 2026.0.0, please use x_choose() instead.demo_compiler(): obsolete since 2026.0.0, please use haveacompiler() instead.demo_end(): obsolete since 2026.0.0, please use exec() instead.demo_file_choice(): obsolete since 2026.0.0, please use x_choose() instead.demo_function_choice(): obsolete since 2026.0.0, please use x_choose() instead.demo_run(): obsolete since 2026.0.0, please use exec() instead.The following functions have been removed:
demo_folder_choice(): undocumented and not used, replaced by x_choose().lft(P, p, R, r): obsolete since 2025.0.0, no more supported.h2norm(Sl [,tol]) (with Sl a matrix of doubles): obsolete since 2025.0.0, no more supported.linf(g [,eps, tol]) (with g a matrix of doubles): obsolete since 2025.0.0, no more supported.nicholschart(modules,, colors) (syntax with skipped arguments): obsolete since 2025.0.0, no more supported.st_ility(Sl [,tol]) (with Sl a matrix of doubles): obsolete since 2025.0.0, no more supported.syssize(Sl) (with Sl a matrix of doubles): obsolete since 2025.0.0, no more supported.help(): obsolete since 2025.0.0, please use doc() instead.daskr(): obsolete since 2024.1.0, please use dae() instead.dasrt(): obsolete since 2024.1.0, please use dae() instead.dassl(): obsolete since 2024.1.0, please use dae() instead.impl(): obsolete since 2025.0.0, please use dae() instead.testmatrix(): obsolete since 2025.0.0, please use magic(), invhilb() or frank() instead.captions(): obsolete since 2025.0.0, please use legend() instead.figure_style property: obsolete since 2025.1.0, no more supported.princomp(): obsolete since 2025.0.0, please use pca() instead.readtable() & readtimeseries() now also return empty columns (columns with missing or undefined names).tbx_build_src_clean() must be called to be sure "cleaner.sce" files are generated.genlib() no more loads generated library (see #15918). lib() function must be called to load the generated library.host() function now returns 0 (success) instead of 1 (error) when called with an empty character string as input.help() function.If you are familiar with building Scilab from sources, these dependencies have been updated:
help()).xlsxInfo(), xlsxRead(), xlsxSheet() & xlsxWrite()).parquetRead() & parquetWrite()).If you are familiar with building Scilab from sources, the following dependencies have been updated.
lsqrsolve() produced weird messages when the objective function was complex.string(cell_array) returned wrong results (wrong sizes, wrong type, wrong contents).AFFICH_m block had a wrong input size.ascii() returned inconsistent results for 0 value.eigs() could not compute all eigenvalues of singular matrices.SUPER_f destroyed port names in a duplicated diagram.loadToolboxInlineHelp() (new in Scilab 2025.0.0) was not documented and broke compatibility with Scilab 2024.1.0 (loader.sce, ...).SELF_SWITCH component generated an empty square in Xcos diagram.loadToolboxInlineHelp() could not find file containing links..content field of xmlXPath() output (and the XMLSet datatype) could lead to 0-sized datatypes.IN_f/OUT_f labels.mex.h generated an error when using C++23.xml module documentation overwrote the doc command.arkode was incorrect for Euler method.getVsWhereInformation() failed when vswhere command returned [].strsplit() was broken in some cases in Scilab 2026.0.0.scatterplot() always displayed black marks when using 0 as marker type.classdef object returned an empty function name.classdef properties were not shown correctly.NaT was not always consistent with comparison operators.csvRead(), csvTextscan() were not able to handle a mix of whitespaces and semi-column separators.TEXT_f block help page.csim() could give incorrect results when called with initial conditions.ESELECT_f documentation did not explain which output value was selected according to the input value.LOGICAL_OP block symbol did not change according to settings.cvode() did not honor maxSteps in some cases.readtable() did not return columns whose names were empty.cvode() froze Scilab when the time span was specified as a two-element vector.arguments was confusing in some cases.classdef objects behaved differently with other types.slint() shew copyright/advertising notice.tbx_build_src() changed the order of files at compile time, which could lead to compilation errors when dealing with Fortran 90 files.demo_compiler() was a useless wrapper for haveacompiler() and has been removed.host() function.demo_begin() and demo_end) were no longer maintained; they are now tagged as obsolete.Matplot() extension to (#,#,3) true colors ND-arrays was not documented.spset(A, v), dual of [ij, v]=spget(A) was missing.demo_run(file) was useless and no longer maintained; it is now tagged as obsolete.ticks_format and ticks_st properties were no more taken into account.printf() did not handle "uint64" integers greater than 2^32-1.mylib = lib(libdir) registered functions in the default library instead of in the one given as output argument.msprintf("%ld\n", i) and mprintf("%ld\n", i) appended some "d" for "int64" or "uint64" inputs.cdft(), T-distribution, returned wrong values when used with a low degree of freedom.unix_g() did not read standard error output when exit code was 0 or 1 and did not read stdout when exit code was 2 or more.demo_file_choice() was no longer maintained; it is now tagged as obsolete.jarray() could not be used/initialized.csvRead() was extremely slow to detect errors in column structure.table() Matlab example did not work in Scilab.table() creation did not support empty matrices.xsave() and save() no more worked with accented letters in the filename since Scilab 2025.0.0 on Windows.copyfile() (used by tbx_package()) ddid not preserve symbolic links.isvector() documentation was wrong for scalar case.java.nio.file.AccessDeniedException errors were displayed by FileBrowser.genlib() made Scilab crash when macro code contained extra parentheses.std::from_chars is now replaced by fast_float::from_chars for FreeBSD & macOS.call_scilab examples could not be built on recent GCC versions.demo_function_choice() was no longer maintained; it is now tagged as obsolete.plot() for data with a varying X and a close-to-constant Y.DISPLAY variable was set.