
Исправленный интерпретатор Lua 5.3, устраняющий уязвимость CVE-2020-24370, предоставляющий безопасную среду сценариев для встраиваемых приложений и автоматизации.
dl.display dd { padding-bottom: 0.2em ; }
tt, kbd, code { font-size: 12pt ; }
Добро пожаловать в Lua 5.3
Lua — это мощный, быстрый, легковесный, встраиваемый скриптовый язык, разработанный командой из PUC-Rio, Папского католического университета Рио-де-Жанейро, Бразилия. Lua — это свободное программное обеспечение, используемое во многих продуктах и проектах по всему миру.
Официальный веб-сайт Lua предоставляет полную информацию о Lua, включая краткий обзор и обновлённую документацию, в особенности , которое может незначительно отличаться от , распространяемой в этом пакете.
Lua распространяется в исходном виде. Перед использованием его необходимо собрать. Сборка Lua должна быть простой, поскольку Lua реализован на чистом ANSI C и компилируется без изменений на всех известных платформах, имеющих компилятор ANSI C. Lua также компилируется без изменений как C++. Приведённые ниже инструкции по сборке Lua предназначены для Unix-подобных платформ. Смотрите также инструкции для других систем и варианты настройки.
Если у вас нет времени или желания компилировать Lua самостоятельно, вы можете получить бинарный файл с LuaBinaries. Попробуйте также LuaDist, мультиплатформенный дистрибутив Lua, включающий батарейки.
На большинстве Unix-подобных платформ просто выполните "make" с подходящей целью. Вот подробности.
aix bsd c89 freebsd generic linux macosx mingw posix solaris
Если ваша платформа есть в списке, просто выполните "make xxx", где xxx — имя вашей платформы.
Если вашей платформы нет в списке, попробуйте ближайшую или posix, generic, c89 в указанном порядке.
Если вы используете Linux и получаете ошибки компиляции, убедитесь, что у вас установлен пакет разработки readline (вероятно, он называется libreadline-dev или readline-devel). Если после этого возникают ошибки компоновки, попробуйте "make linux MYLIBS=-ltermcap".
После сборки Lua вы можете установить его в стандартное место в вашей системе. В этом случае выполните "make install". Стандартное место и способ установки файлов определены в файле Makefile. Вероятно, вам понадобятся соответствующие права для установки файлов.
Чтобы собрать и установить Lua одним шагом, выполните "make xxx install", где xxx — имя вашей платформы.
Чтобы установить Lua локально, выполните "make local". Это создаст каталог install с подкаталогами bin, include, lib, man, share, и установит Lua в указанные ниже места.
Чтобы установить Lua локально, но в другой каталог, выполните "make install INSTALL_TOP=xxx", где xxx — выбранный вами каталог. Установка начинается в каталогах src и doc, так что будьте внимательны, если INSTALL_TOP не является абсолютным путём.
Это единственные каталоги, необходимые для разработки. Если вы хотите только запускать программы на Lua, вам понадобятся только файлы в bin и man. Файлы в include и lib необходимы для встраивания Lua в программы на C или C++.
Три аспекта можно настроить, отредактировав файл:
На самом деле вам не нужно редактировать Makefile'ы, так как вы можете задать соответствующие переменные в командной строке при вызове make. Тем не менее, лучше отредактировать и сохранить Makefile'ы, чтобы зафиксировать сделанные изменения.
С другой стороны, если вам нужно настроить некоторые возможности Lua, вам придётся отредактировать src/luaconf.h перед сборкой и установкой Lua. Отредактированный файл будет установлен, и он будет использоваться всеми вашими Lua-клиентами для обеспечения согласованности. Дополнительная настройка доступна экспертам путём редактирования исходных кодов Lua.
Если вы не используете обычные инструменты Unix, инструкции по сборке Lua зависят от используемого вами компилятора. Вам нужно будет создать проекты (или то, что использует ваш компилятор) для сборки библиотеки, интерпретатора и компилятора следующим образом:
Чтобы использовать Lua в качестве библиотеки в ваших собственных программах, вам нужно знать, как создавать и использовать библиотеки с вашим компилятором. Кроме того, для динамической загрузки библиотек C для Lua вам нужно знать, как создавать динамические библиотеки, и нужно убедиться, что функции API Lua доступны для этих динамических библиотек — но не подключайте библиотеку Lua к каждой динамической библиотеке. Для Unix мы рекомендуем, чтобы библиотека Lua была статически скомпонована с главной программой, а её символы экспортированы для динамической компоновки; src/Makefile делает это для интерпретатора Lua. Для Windows мы рекомендуем, чтобы библиотека Lua была DLL. Во всех случаях компилятор luac должен быть скомпонован статически.
Как упоминалось выше, вы можете отредактировать src/luaconf.h, чтобы настроить некоторые возможности перед сборкой Lua.
Вот основные изменения, внесённые в Lua 5.3. В справочном руководстве перечислены несовместимости, которые пришлось ввести.
Вот другие изменения, внесённые в Lua 5.3:
ipairs и библиотека table учитывают метаметоды
string.dump
table.move
string.pack
string.unpack
string.packsize
lua_gettable и подобные функции возвращают тип полученного значения
lua_dump
lua_geti
lua_seti
lua_isyieldable
lua_numbertointeger
lua_rotate
lua_stringtonumber
arg доступна для всего кода
Lua — это свободное программное обеспечение, распространяемое на условиях
лицензии MIT,
воспроизведённой ниже;
его можно использовать для любых целей, включая коммерческие,
абсолютно бесплатно, без необходимости спрашивать нас.
Единственное требование: если вы используете Lua, вы должны указать нас, включив соответствующее уведомление об авторских правах где-нибудь в вашем продукте или его документации.
За подробностями обращайтесь к этому.
Copyright © 1994–2017 Lua.org, PUC-Rio.Настоящим предоставляется разрешение бесплатно любому лицу, получившему копию этого программного обеспечения и сопутствующей документации (далее — «Программное обеспечение»), без ограничений распоряжаться Программным обеспечением, включая, без ограничений, права на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также разрешать лицам, которым предоставляется Программное обеспечение, делать это при соблюдении следующих условий:
Указанное выше уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ КОНКРЕТНОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, КАК В СВЯЗИ С ИСКОМ ИЛИ ДЕЛИКТОМ, ТАК И В ДРУГИХ СЛУЧАЯХ, ВОЗНИКАЮЩИХ ИЗ, В РЕЗУЛЬТАТЕ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ЕГО ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЙСТВИЯМИ В НЁМ.
Последнее обновление: Mon Jun 18 22:57:33 -03 2018