8 – Несовместимость с предыдущей версией

Здесь приведены случаи несовместимости, которые можно найти при переводе программы из Lua 5.2 в Lua 5.3. Некоторых видов несовместимости можно избежать компиляцией в Lua с соответствующими параметрами (смотрите файл luaconf.h). Впрочем, в будущем, все эти варианты совместимости будут удалены.

Версии Lua всегда могут изменять C-ишный API способами, которые не подразумевают изменений исходного кода в программе, таких как числовые значения констант или реализация функций как макросов. Поэтому не следует предполагать, что бинарные файлы являются совместимыми в разных версиях Lua. При использовании новых версий, всегда перекомпилируйте программы, где применяется Lua API.

Точно так же, Lua версии всегда могут изменить внутреннее представление предварительно скомпилированных блоков; в разных версиях Lua предварительно скомпилированные блоки несовместимы.

Стандартные пути в официально распространяемом пакете могут изменяться в зависимости от версии.

8.1 – Изменения в языке

8.2 – Изменения в библиотеках

8.3 – Изменения в API