Releases: nelson-lang/nelson
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:
WindowState
forFigure
objects.Units
forUIControl
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 usesscatter
instead ofplot
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
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
andplot3
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.
- Upgraded
-
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'])
- Added an example for connecting
-
CMake Enhancement:
- Introduced
ENABLE_AVX2
CMake 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
,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
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 argumentisprotected
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
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 argumentsnarginchk(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
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:
-
end
magic keyword can be overloaded for classes (applied totable
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
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 tableheight
: Retrieve the number of rows in the tableistable
: Check if a variable is of thetable
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
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 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
,ButtonDownFcn
properties forfigure
.
Changed
-
Refactor the internal implementation of the 'system' built-in function.
-
Python 3.12.5 on Windows.
v1.6.0
1.6.0 (2024-06-29)
Added
unique
: Unique values.ndgrid
: Rectangular grid in N-D space.nthroot
: Real nth root of real numbers.allfinite
: Check if all array elements are finite.j
as imaginary unit number is also supported. example3+2j
equivalent to3+2i
.FollowLocation
option forweboptions
- oneAPI Threading Building Blocks optional dependency.
- Ubuntu 24.04 debian package.
- Ubuntu 24.04 CI
Changed
-
sort
: speed optimization. -
Windows dependencies updated and rebuild with minimal dependencies:
- Qt 6.7.1,
- Visual C++ 2022 Redistributable v14.40.33810.00,
- boost 1.85,
- Python 3.12.4,
- Intel Math Kernel Library 2024.1.1,
- Intel runtime,
- SLICOT,
- gettext 0.22.5,
- cmake 3.30.0 rc3,
- libsndfile 1.2.2,
- portaudio 19.7.5,
- taglib 2.0,
- libzip1 1.3.1,
- libcurl 8.8.0,
- icu4c 74.2,
- libffi 3.4.6,
- libxml2 2.11.7
-
Unicode® Standard, Version 15.1 support
-
simdutf 5.2.8
-
fast_float 6.1.1
-
dtl 1.2.0
Fixed
v1.5.0
1.5.0 (2024-05-31)
Added
-
dictionary
data type.dictionary
: Object that maps unique keys to values.configureDictionary
: Create dictionary with specified key and value types.insert
: Add entries to a dictionary.lookup
: Find value in dictionary by key.remove
: Remove dictionary entries.entries
: Key-value pairs of dictionary.keys
: Keys of dictionary.values
: Values of dictionary.types
: Types of dictionary keys and values.numEntries
: Number of key-value pairs in dictionary.isConfigured
: Determine if dictionary has types assigned to keys and values.isKey
: Determine if dictionary contains key.keyHash
: Generate hash code for dictionary key.keyMatch
: Determine if two dictionary keys are the same.
-
bernsteinMatrix
: Bernstein matrix. -
orderedfields
: Order fields of structure array. -
Python interface (part 3):
- #1160 Python operators in Nelson.
keyHash
,keyMatch
for python objects.isa
builtin support python types.- python dictionary to Nelson dictionary
dictionary(pyDict)
- conversion dictionary to python dictionary.
Changed
- help files generated sorted by name on all platforms.
- on windows, Qt libraries used are in debug mode.
Fixed
- #1195
strcmp({'a'},["a"])
did not return expected value.