Skip to content

Releases: nelson-lang/nelson

v1.16.0

27 Dec 17:42
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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 an audiorecorder object.
  • recordblocking: Record audio and block until completion.
  • getplayer: Create an associated audioplayer object.
  • TimerFcn, StartFcn, StopFcn callbacks for audioplayer and audiorecorder.
  • rms: Compute root mean square of array elements.
  • daspect: Set data unit length along each axis.
  • pbaspect: Set relative axis lengths.

Changed

  • Advanced terminal: linenoise replaced by replxx for 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: doc function 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

21 Nov 21:23
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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, west and 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.
  • pascal and gallery helper matrices.
  • crc32 builtin: 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

  • ans variable: 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

30 May 06:39

Choose a tag to compare

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:
    • WindowState for Figure objects.
    • Units for UIControl objects.
    • DefaultFigureAlphamap, DefaultFigureColormap as root properties.
  • Support for nix develop, providing a reproducible Bash shell preconfigured with Nelson’s build environment.
    See BUILDING.md for details.
  • A justfile to streamline and standardize the build process across platforms.
  • Support for:
    • Fedora 42.
    • Flatpak package distribution.

Changed

  • scatter improvements:
    • 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).
  • scatter3 now supports alpha channel.
  • spy now uses scatter instead of plot for better accuracy.
  • Colormap handling updated to use the new DefaultFigureColormap root 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: axes function 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

29 Mar 15:32

Choose a tag to compare

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 plot and plot3 functions for increased speed. Example:

    tic(); plot(rand(300,300), rand(300,300)); toc();
  • Dependencies Updated:

    • Upgraded fmtlib to version 11.1.3.
    • Intel Math Kernel Library (MKL) updated to 2025.0.1 on Windows.
  • Internal Enhancements:

    • OpenMP multithreading macros have been reworked for better efficiency.
  • SLICOT module incorporates SLICOT library 5.9, which is distributed under the BSD-3-Clause license.

    • SLICOT module 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 ollama with Nelson:
      edit([modulepath('webtools'), '/examples/ollama/readme.md'])
  • CMake Enhancement:

    • Introduced ENABLE_AVX2 CMake option for systems that support AVX2.
    • CMake dependencies reworked.

Fixed

  • MacOs: Default terminal did not use monospaced font.

  • Some warnings detected with PVS-studio

v1.12.0

16 Feb 15:14

Choose a tag to compare

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, scatter manage 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

11 Jan 12:21

Choose a tag to compare

1.11.0 (2025-01-11)

Added

  • #1321 mustBeSparse validator 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 argument isprotected added.
  • editor('editor_command', cmd) allows to change text editor in Nelson (for example: VS Code).
  • NELSON_RUNTIME_PATH environment variable added by installer on Windows.
  • --vscode command 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

14 Dec 15:41

Choose a tag to compare

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, mustBeColumn validator functions.
  • join: Combine strings.
  • #1292 Large Table Display.
  • #1290 VariableTypes property for table: Specify the data types of table in Nelson.
  • hour, minute, second component of input date and time.

Changed

  • narginchk, nargoutchk support for check only minimun arguments narginchk(3, Inf).
  • Fedora 41 CI
  • title: Visible property 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

  • #1303 datevec result must be normalized.
  • #1297 some features have no help files.
  • #1276 micromamba macos build.

v1.9.0

26 Oct 12:36
4729062

Choose a tag to compare

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.
  • end magic keyword can be overloaded for classes (applied to table class).

  • #1250 head, tail functions for table and array.

  • #1248 removevars, renamevars functions 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

05 Oct 12:57

Choose a tag to compare

1.8.0 (2024-10-04)

Added

  • table Data Type:

    • Introduced the table data type, offering enhanced functionality for structured data manipulation.

    • Overloaded methods specific to the table data type:

      • disp, display for table display.
      • horzcat, vertcat for horizontal and vertical concatenation.
      • isempty to check if the table is empty.
      • isequal, isequalto for table comparison.
      • properties for accessing table metadata.
      • subsasgn for subscripted assignment.
      • subsref for 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 table
      • height: Retrieve the number of rows in the table
      • istable: Check if a variable is of the table data type
  • Resize - Resize figure property.

  • #36 datenum format compatibility extended.

  • #37 datestr Convert date and time to string format.

Changed

  • CodeQL Github action updated.

Fixed

  • fix 'units' refresh for 'axes' object.

v1.7.0

28 Aug 17:34

Choose a tag to compare

1.7.0 (2024-08-28)

Added

  • uicontrol Create user interface control (button, slider, edit, list box, etc.).
  • waitfor Block execution and wait for condition.
  • waitforbuttonpress — Wait for click or key press.
  • im2double — Convert image to double.
  • CloseRequestFcn — Close request callback for figure.
  • 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, ButtonDownFcn properties for figure.

Changed

  • Refactor the internal implementation of the 'system' built-in function.

  • Python 3.12.5 on Windows.