All Versions
51
Latest Version
Avg Release Cycle
80 days
Latest Release
46 days ago

Changelog History
Page 1

  • v1.17.0 Changes

    May 30, 2026

    1.17.0 - (2026-05-25)

    πŸ•―οΈ In memory of Cleve Moler (1939–2026)

    πŸš€ This release is dedicated to the memory of Cleve Moler, creator of MATLAB and a towering figure in numerical computing. His vision of making linear algebra accessible to engineers and scientists changed the way the world writes scientific software and inspired every project that followed in his footsteps, including Nelson.
    We are grateful for the path he blazed.

    βž• Added

    • function argument validation using arguments ... end blocks

    • πŸ‘ Debugger Support

    • Interactive Debugging in Text Editor

    • Step Execution Controls

    • Stack Inspection & Variable Evaluation

    • ✨ Enhanced Debugging Experience

    • βž• Added support for multi-line comments in the interpreter, editor, debugger, and headcomments.

    • interp2, interp3, interpn: interpolation functions

    • regexp, regexpi, regexprep, regextranslate: regexp functions added.

    • #309: erf, erfc, erfcinv, erfcx, erfinv error functions.

    • #1289: isbetween, allbetween, mustBeBetween functions.

    • tiledlayout, nexttile, tilenum, tilerowcol layout management.

    • #813: findobj Find graphics objects with specific properties.

    • contourf, contourc, Filled contour plot of matrix.

    • 🏁 Dedicated Windows Terminal profile installed for the application.

    • help engine extending to manage subchapters.

    • xmldoclinkchecker Checks unresolved cross-references in Nelson help XML files.

    • 🍎 MacOS packaging as dmg installer.

    • πŸ‘ Qt 6.11.0 support.

    • πŸ‘· Full CMake configuration and build system for Visual Studio (x64, Win32, ARM64).

    • Ubuntu 26.04 ready.

    • Fedora 44 ready.

    πŸ”„ Changed

    • ⬇️ Reduced interpreter overhead in tight loops.
    • πŸ”¨ Internal tooling refactored: nodejs and python tools for formatting and version updates replaced with Rust-based tools.
    • CMake factorized.
    • Innosetup installer modernized.
    • fmtlib 12.1

    πŸ›  Fixed

    • #1585: Memory leak during scalar assignments in tight/nested loops after scalar inline-data optimization.
    • 🏁 #1567: UTF-16LE output despite encoding='UTF-8' in fprintf builtin (Windows).
    • #1564: Regression: modifying copy unexpectedly alters original array.
    • #1550: getpid('available') did not work as expected.
    • πŸ“œ #1547: Parsing of ~= operator with spaces was not working correctly, causing it to be misinterpreted as a matrix row separator.
    • unresolved cross-references in Nelson help XML files.
    • memory leak in uicontrol.
  • v1.16.0 Changes

    December 27, 2025

    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 Changes

    November 21, 2025

    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 Changes

    May 30, 2025

    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 Changes

    March 29, 2025

    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:

    • ⚑️ Dependencies Updated :

    • Internal Enhancements :

    • SLICOT module incorporates SLICOT library 5.9, which is distributed under the BSD-3-Clause license.

    • 🏁 python 3.13.2 embedded on Windows

    βž• Added

    • Double Buffering for Plots :

    • πŸ†• New Graphics Functions :

    • Graphics IO module:

    • πŸ†• New Example :

    • CMake Enhancement :

    πŸ›  Fixed

    • 🍎 MacOs: Default terminal did not use monospaced font.

    • ⚠ Some warnings detected with PVS-studio

  • v1.12.0 Changes

    February 16, 2025

    1.12.0 (2025-02-16)

    βž• Added

    • Julia interface (part 1):

    • 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 Changes

    January 11, 2025

    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 Changes

    December 14, 2024

    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 Changes

    October 26, 2024

    1.9.0 (2024-10-26)

    βž• Added

    • Table direct computation:

    • 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 Changes

    October 05, 2024

    1.8.0 (2024-10-04)

    βž• Added

    • 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.