Releases: franko/gsl-shell
GSL Shell 2.3.6
This release fix a problem introduced recently with the gdt's interpolation function.
There are also some improvements:
- the gdt.append method will now add new columns to the table if required
- gdt.new and gdt.alloc will works with empty arguments to create a zero size table
These changes works together to enable a new working pattern with tables: they can be initially created without any columns, just empty, and the columns are automatically added as needed when using the gdt.append method.
Another improvement is that the application can now run on machines where the graphics module is not able to initialize.
In this case GSL Shell will run but the "graph" module will be not available.
Other improvements introduced by this release:
- when printing a table on the screen the row number is no longer shown
- better documentation for the gdt.hist function and add a "show" option
GSL Shell 2.3.5
This new release add a few useful functions in the general data table module:
gdt.integrate
to perform a numeric integration from the table data.gdt.sampling_optimize
to remove redundant data and reduce the number of points. Here the documentation.gdt.from_table
to create a tables from data in Lua tables format
The documentation can be found in the user's manual GDT chapter.
A new module filesystem
is introduced with a few essential functions like for example filesystem.list_dir
to enumerate the files et directories in a given directory.
Some improvements have been made also in the project
module.
Notes about the release files
Where not specifically indicated in the name the packages targets a generic x86-64 CPU architecture and use the OpenBLAS library for matrix operations.
Some specific packages are designated like the following:
- nehalem, haswell and skylake are optimized for specific Intel CPU micro-architectures.
- dynamic use OpenBLAS to choose at run-time the optimized functions for you CPU and cover a large range of Intel and AMD CPUs.
- gslcblas use the reference GSL BLAS implementation and will be much slower than OpenBLAS for large matrix or vector operations but will work for any CPU.
The Linux packages comes in two flavours: AppImage and simple archives that can be extracted in any directory. For the archive type the executables are placed in the "bin" subdirectory.
GSL Shell 2.3.4
This new release finally fixes some annoying problem with the cursor positioning and the escape key not properly working.
It also has a few new modules for 2D Interpolation and to store time-dependent values.
This latter module is introduced especially to implement a new feature of the ODE integration module.
Now it is possible, when integrating a differential equation, to compute some derived quantities and to store them in a record object to be consulted at the end of the integration period.
Another addition brought by this release is the project module that let you have a main project's script that loads other project's modules using the "require" Lua function.
With this release we also provide a larger number of executables to choose. The dynamic uses the OpenBLAS library to adapt dynamically to the specific CPU used at run time at the price of a larger executable. The packages marked with Nehalem, Haswell and Skylake use OpenBLAS but statically targeting the corresponding CPU. Use them if you know the CPU you are using and it matches one of those provided.
Finally the GSL CBLAS executable uses the reference BLAS implementation provided with GSL library. It is safe to use and the package is smaller but matrix multiplication will be much slower. Use it if you don't care a lot about big matrix multiplications or inversions or if you have troubles with the other packages.
GSL Shell 2.3.3
New Boxplot
In terms of functionalities this release introduce boxplots to be used from the General Data Table.
Now creating a boxplot from a tabular dataset is as simple as writing gdt.boxplot(data, "income ~ gender, age")
.
The barplot also got a related improvement to choose more nicely the bars' width based on the x axis data layout.
Updated documentation hosted on github
The documentation was updated for the new release and is now on github:
http://franko.github.io/gsl-shell/
Build and packaging modernization
The major changes for GSL Shell are behind the curtains, in the build and packaging implementation.
We moved to FOX 1.7 to have support for High DPI monitor of windows and other improvements.
All the build system was moved to Meson and the source code was reorganized.
The GSL library is now statically linked to the executable so that the application does not depends on any external DLL or shared library on linux. We still use the OpenBLAS library as a BLAS library for GSL but the process was simplified and made more accurate. The minimum supported CPU is Nehalem but with dynamic support that detects the at run-time CPU and choose the best kernel for maximum speed.
Additional packages using GSL CBLAS instead of OpenBLAS are provided for older CPU types using only the x86-64 instruction set.
LuaJIT source code is no longer included with source code of GSL Shell but is used as a subproject. In turns LuaJIT is fetched from a repository with minimal changes and easily merged with upstream changes. As a result the LuaJIT used is the most recent version from the 2.0 branch.
For Linux we provide now standalone executable that works on most distributions and requires only libc and standard xorg runtime libraries. In turns the application is packaged as a portable application that can be installed in any prefix directory using a unix-like files' layout.
We provide also a practical AppImage executable for Linux.