Pallene

August 20, 2026 ยท View on GitHub

Actions Status

Pallene is a statically typed and ahead-of-time compiled sister language to Lua, with a focus on performance. It is intended for writing performance-sensitive code that interacts with Lua, a space that is currently filled by C modules and by LuaJIT. Compared to C, Pallene should offer better support for interacting with Lua data types, bypassing the unfriendly syntax and performance overhead of the Lua-C API. Compared to LuaJIT, Pallene aims to offer more predictable run-time performance.

Building and Installing Pallene

Before you are able to build and install Pallene, you'll need to run the configure script.

You can also, optionally, modify the installation location via the configure script. See ./configure --help for details. The default location is /usr/local.

./configure
make

To install Pallene and all of its dependencies:

sudo make install

Using Pallene

Installing Pallene will put pallenec and pallene-lua on your PATH, along with the plua and pluac binaries that Pallene uses internally. pallenec is for compiling Pallene programs and pallene-lua is for running Lua programs that load Pallene modules.

To compile a foo.pln file to a foo.so module:

pallenec foo.pln

The resulting foo.so can be loaded via the usual require mechanism:

pallene-lua -l foo

It is possible to change the compiler optimization level, for the Pallene compiler and C compiler. Here are some examples:

# disable Pallene optimization passes
pallenec test.pln -O0

# disable C compiler optimization
export CFLAGS='-O0'
pallenec test.pln

For more compiler options, see pallenec --help.

Contributing

If you want to contribute to Pallene, it is helpful to know how to run our test suite and how to configure your text editor to preserve our style standard. For all the details, please consult the CONTRIBUTING file.

Pallene has a Strict No LLM / No AI Policy

  • No LLMs for issues.
  • No LLMs for patches / pull requests.
  • No LLMs for comments on the bug tracker, including translation.
  • English is encouraged, but not required. You are welcome to post in your native language and rely on others to have their own translation tools of choice to interpret your words.