Present HN: LadyLua, статический интерпретатор Lua 5.1 с батарейками

presenthnladyluaстатическийинтерпретаторlua51сбатарейками

Один статический исполняемый файл, с батарейками, интерпретатор Lua 5.1. Жирное GopherLua объединение модулей в Go и Lua.

Почему?

Lua – хороший язык, но никто не хочет использовать его для общих целей сценарии. Жалобы на индексирование на основе 1 и отсутствие библиотек. Последнее вызывает серьезную озабоченность. Сплит 5.2+ тоже не помогает. Я был уверен, что GopherLua станет хорошей базой для переводчика кухонной раковины. Писать обертки для огромного выбора пакетов Go было бы несложно.

Справка

Поскольку GopherLua является реализацией Lua 5.1, вы можете использовать официальное справочное руководство по Lua 5.1: Руководство по Lua 5.1 . Другие ресурсы также полезны, просто убедитесь, что они не нацелены на версии 5.2+. Найдите PDF-файлы со шпаргалками по Lua 5.1. Обучение в 32 серия минут также имеет запись для Lua .

Встроенные модули

MIT

exec

Y

Y

MIT

fs

Y

MIT

MIT

json

MIT

Модуль Глобальный

Источник Лицензия

крипто

N

глюакрипто

MIT

fmt

gopher-lfs

Безлицензия

HTML

N

http

N

глюахттп

N

gopher-json

Без лицензии

капов

N

MIT

шаблон

N

etlua

uid

MIT

ℹ️

Если написано N в Глобальный, вам необходимо требовать() Это.

ℹ️

Проверить документы для получения дополнительной информации об этих модулях.

Документация и тестирование

Тесты находятся в тестах каталог. Мы используем u- контрольная работа. В тестовом коде есть документация в AsciiDoc. Созданные документы находятся в docs . Проверьте скрипты / документы каталог для команды строка для создания документов.

Идеи

Помимо сценариев общего назначения, сейчас я более конкретно использую Lua для написания веб-приложений. Вы можете написать его в динамическом стиле, как PHP, но вместо этого у вас есть Lua. Другая идея - подключить пакеты Go, которые взаимодействуют с вещами DevOps. Вместо YAML вы можете программировать инструменты DevOps на Lua.

Статистика и числа

Статические исполняемые байты

Тест

Интересно, как он сравнивается с PUC-Rio Lua 5.1.5 и LuaJIT2?

Вот эталон времени доступа к объекту. Проверьте скамейку / каталог для кода. Результаты взяты по умолчанию 112 M работает. GopherLua достаточно быстр для безотказной работы. Это также демонстрирует, что LuaJIT слишком умен для этих тестов.

Тесты

117 / 275

82842299

76. 15575082900001

Стандартный (сплошной)

97. 33177725300004

Стандарт (метатаблица)

85. 96075333699997

Объект, использующий замыкания (PiL 32. 4)

Прямой доступ

56.

Локальная переменная