Releases: nelson-lang/nelson
v1.16.0
1.16.0 - (2025-12-27)
Added
- Windows ARM64 support: build and installer available.
onCleanup: Execute code during function shutdown.- #188
audiorecorder: Record audio. getaudiodata: Retrieve recorded audio as a numeric array.isrecording: Check if audio recording is in progress.record: Record audio to anaudiorecorderobject.recordblocking: Record audio and block until completion.getplayer: Create an associatedaudioplayerobject.TimerFcn,StartFcn,StopFcncallbacks foraudioplayerandaudiorecorder.rms: Compute root mean square of array elements.daspect: Set data unit length along each axis.pbaspect: Set relative axis lengths.
Changed
- Advanced terminal:
linenoisereplaced byreplxxfor improved line editing. - Autocomplete: Upgraded functionality in advanced command-line terminal.
- Axis handling: Enhanced axis limit normalization and improved
DataAspectRatio.
Fixed
- #1494: In advanced CLI mode, pasting long lines no longer causes character duplication.
- #1493:
docfunction works again on Nelson Cloud (regression in 1.15.0). - #1492: Temporary message removed when generating toolbox help.
- BLAS/OpenBLAS detection improved in example
run([modulepath('dynamic_link'), '/examples/call_fortran.m'])on some Linux systems. imresize: Now supports scalar string arrays as input arguments.- #1505: Updated CMake to 4.2 and ICU to 78.1 on Windows
v1.15.0
1.15.0 - (2025-11-21)
Starting with v1.15, Nelson for Windows is officially signed with a Certum-issued code-signing certificate.
This is a major security milestone, ensuring the authenticity and integrity of Nelson’s Windows releases.
Nelson remains a non-profit, community-driven project.
The certificate represents a significant cost for a volunteer effort - any donation to help cover it is deeply appreciated.
Added
- Pair Name/Value argument syntax for plotting (e.g.
plot(x, y, '--rs', LineWidth=2, MarkerEdgeColor='k')). - Support for ignored outputs in assignments (e.g.
[~, V, ~] = svd(A)). - New random engines:
simdTwister,combRecursive,philox,threefry. randi: uniform random integers.sprand,sprandn: sparse random matrices (uniform and normal).mink,maxk: k smallest / largest elements.subspace: angle/distance between column spaces.std: standard deviation.findpeaks: local maxima detection.downsample: integer-factor resampling.imresize: image resizing (scale or target size).clabel: contour labeling.- Extended colormap placement locations:
north,south,east,westand their outside variants. - Variable Editor: redesigned UI with improved performance, structured/table/array support and copy-paste compatibility with common spreadsheet apps.
- Continuation prompt: context-aware interactive prompts.
missing: create missing values for arrays and tables.renameStructField: rename structure fields.convertStringToCharArgs: convert string/cell-of-strings to char-args.jsondecode(..., '-file'): decode JSON directly from a file.tdigest: t-digest quantile estimation.pascalandgalleryhelper matrices.crc32builtin: compute CRC32 of file/string.markdown: output mode option (secure|advanced).fwrite: also return written byte count as a second output.loadenv: load environment variables from .env or text files.help: function help available in Command Window.consolebox: show/hide Windows terminal for Nelson session.- CI / platform additions: macOS Tahoe 26, Fedora 43, Python 3.14, Visual Studio 2026 support.
Changed
svd: optimized for multithreading and large matrices.- Help framework: reworked for performance and maintainability (multithreaded builds, improved search, unified stylesheet, XSLT, LaTeX formula support, French translations, removed Qt help dependency, secure links).
jsondecode: integrated simdjson for faster parsing.fileread: improved performance for large files.fwrite: returns character count for character data.i18nExtractor, browser variable and other internals: refactored for speed and reliability.- Third-party library updates on Windows (HDF5, zlib, matio) and Qt upgraded to 6.10.0 (Win x64).
- Benchmarks and
xmldocchecker: updated/improved. - External packages: installing a package switches to local embedded help; packages must be rebuilt for the new help format.
- Removed several Boost dependencies to simplify builds.
- Private functions no longer appear in autocompletion.
- GitHub CI: MacOS Ventura replaced by MacOS 15 Intel.
- Markdown renderer switched to cmark.
- #1458 Optional support for Eigen 5.0.0 when detected.
- #1465 Test file renaming to bug_github_issue_XXX.
Fixed
ansvariable: created only for expressions.jsondecode: fixed parsing of arrays that contain empty arrays.fwrite: fixed behavior when precision is unspecified.eye: handled no-argument call correctly.- #2 Sparse type insertion & extraction extended and corrected.
- Julia engine: compatibility with Julia 1.12.0
v1.14.0
1.14.0 - (2025-05-30)
Added
- New functions:
imrotate: Rotate an image.scatter3: 3D scatter plot.colormaplist: List available colormaps.arrayfun: Apply a function to each element of an array.nelsonappid: Return the Nelson application ID.
- New colormaps:
nebula,flag,prism.
- New properties:
WindowStateforFigureobjects.UnitsforUIControlobjects.DefaultFigureAlphamap,DefaultFigureColormapas root properties.
- Support for
nix develop, providing a reproducible Bash shell preconfigured with Nelson’s build environment.
See BUILDING.md for details. - A
justfileto streamline and standardize the build process across platforms. - Support for:
- Fedora 42.
- Flatpak package distribution.
Changed
scatterimprovements:- Now returns a scatter graphic object (instead of a line graphic object).
- Improved rendering precision for scatter symbols (pixel-perfect accuracy).
- Supports alpha channel (transparency).
scatter3now supports alpha channel.spynow usesscatterinstead ofplotfor better accuracy.- Colormap handling updated to use the new
DefaultFigureColormaproot property. - Improved error message when parsing invalid anonymous functions.
- Boost:
- Now supports Boost 1.88 (#1378).
- Minimum required version set to 1.71.
- Updated dependencies and platform support:
- Qt 6.9.0 on Windows x64.
- JSON for Modern C++ updated to v3.12.0.
- Mozilla CA certificates updated (Tue May 20 03:12:02 2025 GMT).
Fixed
- #1413:
axesfunction did not properly manage figure objects.
Technical Improvements
- Application ID changed to
io.github.nelson_lang.Nelson. - GitHub CI:
- Now uses Windows 2025 for Windows builds.
- Major workflow rework for improved reliability and maintainability.
- Build system:
- Updated to latest Prettier version.
- Added use of shared library suffix via a CMake macro.
- Included CPU target name in Linux packages.
- Minimized dependencies on SLICOT.
v1.13.0
1.13.0 - (2025-03-29)
This release introduces performance improvements and new graphical capabilities while deprecating support for 32-bit Windows versions.
Changed
-
Windows x64 Compatibility: Now requires the AVX2 instruction set.
-
Windows 32-bit Support: Official distribution of 32-bit Windows binary versions has been discontinued.
-
macOS Optimization: Builds for macOS with M-series chips now leverage native optimizations for improved performance.
-
Plot Performance: Optimized
plotandplot3functions for increased speed. Example:tic(); plot(rand(300,300), rand(300,300)); toc();
-
Dependencies Updated:
- Upgraded
fmtlibto version 11.1.3. - Intel Math Kernel Library (MKL) updated to 2025.0.1 on Windows.
- Upgraded
-
Internal Enhancements:
- OpenMP multithreading macros have been reworked for better efficiency.
-
SLICOTmodule incorporates SLICOT library 5.9, which is distributed under the BSD-3-Clause license.SLICOTmodule available on all platforms by default.
-
python 3.13.2 embedded on Windows
Added
-
Double Buffering for Plots:
- Implemented double buffering to enhance the smoothness and responsiveness of graphical plots.
- Significantly reduces flickering during graphical updates.
-
New Graphics Functions:
getframe: Captures an axes or figure as a movie frame.movie: Plays recorded movie frames.im2frame: Converts an image to a movie frame.frame2im: Returns image data associated with a movie frame.DevicePixelRatio: New figure property to handle display scaling.
-
Graphics IO module:
imwrite: create gif animations.imwrite,imread: pcx, tiff file formats managed.imformats: Manage image file format registry.
-
New Example:
- Added an example for connecting
ollamawith Nelson:edit([modulepath('webtools'), '/examples/ollama/readme.md'])
- Added an example for connecting
-
CMake Enhancement:
- Introduced
ENABLE_AVX2CMake option for systems that support AVX2. - CMake dependencies reworked.
- Introduced
Fixed
-
MacOs: Default terminal did not use monospaced font.
-
Some warnings detected with PVS-studio
v1.12.0
1.12.0 (2025-02-16)
Added
-
Julia interface (part 1):
jlenv: Change default environment of Julia interpreter.jlrun: Run Julia statements from Nelson.jlrunfile: Run Julia file from Nelson.- Major types conversions are available.
- CMake: Optional Julia engine detection.
-
bar,scattermanage color name and short colorname. -
Github CI Ubuntu 24.04 arm64 (Cobalt 100 processor).
-
Github CI Snapcraft build amd64 and arm64.
-
Snapcraft arm64.
Changed
- Completion .m files allows execution without extension.
- #1342 Github CI - Ubuntu-20.04 hosted runner image removed.
Fixed
- #1346 [display] integer in cell are displayed as double and not as integer.
v1.11.0
1.11.0 (2025-01-11)
Added
- #1321
mustBeSparsevalidator function. - #1322
cmdsep: Command separator for current operating system. urlencode: Replace special characters in URLs with escape characters.docroot: Utility to retrieve or define the root directory of Nelson Help.ismodule: second input argumentisprotectedadded.editor('editor_command', cmd)allows to change text editor in Nelson (for example: VS Code).NELSON_RUNTIME_PATHenvironment variable added by installer on Windows.--vscodecommand line argument added.- NixOS 24.11 packaging (see BUILDING_Linux.md).
Changed
- Help Center: Access documentation in your system's web browser. Previously, the documentation was opened in the embedded Help browser.
- CA certificate store update.
- fmt library dependency updated.
- BS::threadpool library dependency updated.
- Advanced terminal updated (common for all platforms without GUI, auto completion, search history).
- Python 3.13.1 supported.
Fixed
- #1324 Cell display could not be interrupted.
v1.10.0
1.10.0 (2024-12-14)
Added
detectImportOptions: Generate import options from the file's content.readtable: Read table from file.writetable: Write table to file.readcell: Read cell array from file.writecell: write cell array to file.readmatrix: read matrix from file.writematrix: write matrix to file.csvread: Read comma-separated value (CSV) file.csvwrite: Write comma-separated value (CSV) file.dlmread: Read ASCII-delimited file of numeric data into matrix.realmin: Smallest normalized floating-point number.- #1288
mustBeMatrix,mustBeRow,mustBeColumnvalidator functions. join: Combine strings.- #1292 Large Table Display.
- #1290
VariableTypesproperty for table: Specify the data types of table in Nelson. hour,minute,secondcomponent of input date and time.
Changed
narginchk,nargoutchksupport for check only minimun argumentsnarginchk(3, Inf).- Fedora 41 CI
title:Visibleproperty is inherited from the parent if not explicitly defined.- i18n: migration PO files to JSON.
dlmwrite: rework the function to be more fast and robust.strjust: rework the function to be more fast and robust.datenum: support '' as format for compatibility.
Fixed
v1.9.0
1.9.0 (2024-10-26)
Added
-
Table direct computation:
- unary functions:
abs,acos,acosh,acot,acotd,acoth,
acsc,acscd,acsch,asec,asecd,asech,
asin,asind,asinh,atan,atand,atanh,
ceil,cosd,cosh,cospi,cot,cotd,
coth,csc,cscd,csch,exp,fix,
floor,log,log10,log1p,log2,nextpow2,
round,sec,secd,sech,sin,sind,
sinh,sinpi,sqrt,tan,tand,tanh,
var,acosd,not. - binary functions:
plus,minus,times,eq,ge,gt,le,
ne,lt,rdivide,rem,power,pow2,or,mod,ldivide.
- unary functions:
-
endmagic keyword can be overloaded for classes (applied totableclass). -
#1250
head,tailfunctions for table and array. -
#1248
removevars,renamevarsfunctions for table.
Changed
- #1259 Add macOS Sequoia and remove macOS Monterey CI support.
- Qt 6.8 LTS support (used on Windows 64 bits binary).
- Python 3.13.0 on Windows.
- Boost 1.86 on Windows.
v1.8.0
1.8.0 (2024-10-04)
Added
-
tableData Type:-
Introduced the
tabledata type, offering enhanced functionality for structured data manipulation. -
Overloaded methods specific to the
tabledata type:disp,displayfor table display.horzcat,vertcatfor horizontal and vertical concatenation.isemptyto check if the table is empty.isequal,isequaltofor table comparison.propertiesfor accessing table metadata.subsasgnfor subscripted assignment.subsreffor subscripted referencing.
-
Conversion functions added:
array2table: Convert an array to a table.cell2table: Convert a cell array to a table.struct2table: Convert a structure to a table.table2array: Convert a table to an array.table2cell: Convert a table to a cell array.table2struct: Convert a table to a structure.
-
Utility functions introduced:
width: Retrieve the number of columns in the tableheight: Retrieve the number of rows in the tableistable: Check if a variable is of thetabledata type
-
-
Resize- Resize figure property. -
#36
datenumformat compatibility extended. -
#37
datestrConvert date and time to string format.
Changed
- CodeQL Github action updated.
Fixed
- fix 'units' refresh for 'axes' object.
v1.7.0
1.7.0 (2024-08-28)
Added
uicontrolCreate user interface control (button, slider, edit, list box, etc.).waitforBlock execution and wait for condition.waitforbuttonpress— Wait for click or key press.im2double— Convert image to double.CloseRequestFcn— Close request callback forfigure.CreateFcn— Create callback for all graphic objects.DeleteFcn— Delete callback for all graphic objects.BusyAction— Busy action for all graphic objects.Interruptible— Interruptible property for all graphic objects.BeingDeleted— Being deleted property for all graphic objects.KeyPressFcn,KeyReleaseFcn,ButtonDownFcnproperties forfigure.
Changed
-
Refactor the internal implementation of the 'system' built-in function.
-
Python 3.12.5 on Windows.