A new bug fix release is out, mostly minor fixes which you can see in the changelog.
There is one new feature though that I am rather excited about; There are new Lua
bindings for scripts thanks to @mniip. If you are a scripter I’ll go more into detail on what makes
this great…
Just some quick background information: the plugin supports lua[jit] 5.1-5.3, is shipped on all
platforms, and the documentation can be found here.
The first thing that really stands out when switching from Python scripts to Lua ones is the resource usage.
I have around 10 scripts loaded at any given time and the python plugin alone would use around 60MB of ram,
when I rewrote every script in Lua that number decreased to about 4MB. On top of that luajit is an extremely
fast interpreter though scripts are rarely CPU bound.
Another useful feature is that Lua is extremely portable, this means that Windows users do not need
to deal with the hassle of downloading a giant Python installer that ends up broken, requires rebooting,
or is incompatable with a script. The Windows installer will include all of Lua itself which is effectively
a 1MB single binary and will be installed by default so scripters can be confident users have it.
Lastly and my favorite feature is the ability to use a library called lgi.
GObject-Introspection is a technology that allows
information about C libraries to be used externally (usually from other languages). This means that
scripts can integrate with the same libraries HexChat uses itself such as GLib and Gtk. This library is
small enough that we will be bundling it on Windows which means for the first time all Windows users
can have scripts that can easily modify the UI or integrate with the mainloop.
Here are some basic examples that should give you an idea of more advanced things you can do with this
ability: