Компания Microsoft подготовила новый движок для исполнения сценариев на языке Lua. Ключевой особенностью представленного Lua VM является реализация на языке Go. В движке поддерживается синтаксис Lua 5.3, но пока отмечаются отдельные несовместимости (например, отсутствует поддержка сопрограмм) и требуется дополнительная стабилизация API. Код проекта открыт под лицензией MIT, которая также используется проектом Lua для распространения кода основного интерпретатора, написанного на языке Си.

В отличие от уже существующих реализаций Lua VM на языке Go, таких как DCLua, GoLua, Golang Lua, go-lua-vm и glua, разработка Microsoft примечательна применением иной архитектуры виртуальной машины, нацеленной на упрощение отладки, расширение средств обработки ошибок, интеграцию встроенного отладчика и поддержку полного сопоставления вызовов на языках Lua и Go. В качестве причин создания новой реализации Lua VM упоминается желание добиться более строгого соответствия спецификациям Lua 5.3 и предоставить удобный API для интеграции с приложениями на языке Go.

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