Where the Lua interpreter in this folder came from.

lupa/         lupa 2.8 — the official wheel from PyPI
              lupa-2.8-cp313-cp313-manylinux_2_17_x86_64.whl
              https://pypi.org/project/lupa/
              downloaded 14 September 2026
              MIT licence — LICENCE-lupa.txt, beside this file

WHY IT IS HERE RATHER THAN INSTALLED

Lua plugins need a Lua interpreter, and this machine had none: no lua
binary, no liblua, no headers, and pip could not install one because the
system Python is marked externally managed. Vendoring is also what this
project already does with Scintilla and Lexilla, for the same reason — the
program is meant to carry what it needs.

The wheel is the right shape for it. Each of its modules has Lua compiled
in, so nothing in this folder depends on a liblua being present:

    $ ldd lupa/lua55.cpython-313-x86_64-linux-gnu.so | grep lua
    (nothing)

WHAT WAS REMOVED

The wheel ships seven interpreters — Lua 5.1 through 5.5, and LuaJIT 2.0
and 2.1 — and lupa picks the newest one present at import. Only Lua 5.5 is
kept, which is the one the editor is tested against; the other six came to
4.4 MB and were deleted. Nothing else in the wheel was changed.

WHAT IS NOT MODIFIED

Nothing. lua_runtime.py does all of its work through lupa's public API:
the two register_* switches, the attribute filter, and assignment into the
Lua globals table. Updating lupa is a matter of replacing this folder,
deleting the interpreters that are not wanted, and running

    QT_QPA_PLATFORM=offscreen python3 native/prove_lua.py

which will say whether any of the escapes it closes have reopened.
