Lua

A handy embeddable scripting language from Brazil. Famous for being simple to embed in other things and yet fast.

I don’t have much to say here, except here are some links I find helpful in knowing the bare minimum to tweak some Lua stuff, and also links to a confusing profusion of numerical libraries. I spend most of my time working in python and javascript and R, but Lua is nonetheless helpful because it is embedded in such various things as DAW Renoise, sundry game engines and even latex these days. I tend to use julia for the scientific/JIT stuff.

Lua being embedded in neat projects

Renoise

The audio production environment Renoise has an embedded Lua interpreter.

Protoplug

protoplug embeds a a Luajit-based DSP and GUI engine in VST plugins

LuaAV

LuaAV is a Lua audiovisual thingy; looks like a fun way of making visuals.

LÖVE

LÖVE is a Lua-scriptable game engine also looks like a fun way of making visuals, retro-2d-style.

LÖVR

LÖVR An open source framework for rapidly building immersive 3D experiences.

LaTeX

Yes, even latex, via Luatex.

“The main objective of the project is to provide a version of TeX where all internals are accessible from Lua. In the process of opening up TeX much of the internal code is rewritten. Instead of hard coding new features in TeX itself, users (or macro package writers) can write their own extensions. LuaTeX offers native support for OpenType fonts. In contrast to XeTeX, the fonts are not accessed through the operating system libraries, but through a library based on FontForge.”

Doing heavy numeric computations

The point of Lua is prototyping stuff fast; The slowest step here is working out which damned library to choose.

Torch is handy in the artificial neural networks community and uses C, GPU (?) and LuaJIT together. Numeric Lua numeric library for Lua; what did you expect? numlua is a native lua linear algebra (🏗 compare with Numeric Lua) lna provides a linear algebra and sundry mathematics made to Lua. Terra “Use your favourite dynamic language (Lua) to implement a compiled DSL.” SciLua:

This project is dedicated to libraries that support scientific computing with Lua using the LuaJIT hi-performance implementation of the language. We focus on libraries offering the following features:

  • pure Lua(JIT) code, no C compilation needed, trivial installation;

  • MIT free software license that allows for an easy integration with both open-source and proprietary projects;

  • well documented, concise interfaces to minimize learning curve;

  • efficient implementation. LuaJIT makes it possible to write code in a dynamic high-level language and still benefit from a performance competitive with that of statically compiled languages (C, C++, Fortran, …). It also makes it easier to re-use existing libraries written in C.

LuaJIT itself is a JIT-compiler for Lua; seems to predate a lot of the LLVM JIT compilers in circulation.