Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Автор LuaJIT вернулся к разработке и планирует выпуск LuaJIT 3.0

28.06.2026 21:57 (MSK)

Майк Полл (Mike Pall), создатель JIT-компилятора LuaJIT, отошедший от активной разработки проекта в 2015 году и ограничивавшийся с тех пор редким сопровождением ветки 2.1, вернулся к активной работе над проектом и опубликовал план синтаксических расширений будущей ветки LuaJIT 3.0.

Среди предлагаемых для LuaJIT 3.0 расширений:

  • Битовые операторы в виде встроенного синтаксиса вместо вызовов функций "bit.*": "~a" (NOT), "a & b" (AND), "a | b" (OR), "a ~ b" (XOR), "a << b`, "a >> b" (логический сдвиг) и "a ~>> b" (арифметический сдвиг). XOR обозначен как "~", поскольку символ "^" в Lua занят возведением в степень.
  • Альтернативные ("привычные") операторы в стиле C/JavaScript: "!" (not), "&&" (and), "||" (or) и "!=" (~=).
  • Оператор целочисленного деления "//" с округлением в сторону минус бесконечности и метаметодом "__idiv" (как в Lua 5.3+).
  • Тернарный оператор "a ? b : c" с поддержкой сокращённого вычисления.
  • Оператор безопасной навигации "?." ("a?.field", "a?.[key]", "f?.(...)", "obj?.:method(...)"), возвращающий "nil", если левый операнд равен "nil".
  • Оператор объединения с nil "a ?? b", возвращающий "b", только если "a" равно "nil".
  • Составные операторы присваивания: "+=", "-=", "*=", "/=", "//=", "%=", "&=", "|=", "~=", "<<=`, ">>=", "~>>=", "..=" и "??=". Индексное выражение в левой части вычисляется однократно.
  • Оператор "continue" для перехода к следующей итерации цикла, оформленный как "мягкое" ключевое слово (можно продолжать использовать как имя переменной).
  • Объявление "const" - блочная неизменяемая привязка локальной переменной; запрещены переприсваивание и повторное объявление в той же или вложенной области видимости (также "мягкое" ключевое слово).

В обсуждении дополнительно затрагиваются ещё не вошедшие в спецификацию идеи: выражение сопоставления с образцом через ключевое слово "in", индексируемый тип для vararg ("...varg", "varg[i]"), краткий синтаксис лямбд ("|x| -> expr"), оператор отложенного выполнения "defer" в стиле Go/Zig и присваивание в условии ("if local x = ... then").

Появление расширений вызвало и критику: часть участников отметила, что нововведения окончательно превращают LuaJIT в отдельный язык, несовместимый с эталонным Lua 5.1. На это Полл ответил, что "этот корабль уплыл уже очень давно".

Документацию по языку планируется консолидировать в отдельное самостоятельное описание, в котором каждое расширение будет помечено версией, в которой оно появилось.

  1. Главная ссылка к новости (https://github.com/LuaJIT/LuaJ...)
  2. OpenNews: Доступен язык программирования Lua 5.5
  3. OpenNews: Lunatik - инструментарий для создания в ядре Linux обработчиков на языке Lua
  4. OpenNews: Открыт код Luau, варианта языка Lua с проверкой типов
  5. OpenNews: Компания Microsoft опубликовала реализацию Lua VM, написанную на языке Go
  6. OpenNews: Выпуск LuaJIT 2.0.3, JIT-компилятора для языка Lua
Автор новости: uriid1
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65795-lua
Ключевые слова: lua, luajit
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (78) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 23:28, 28/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Кто где применяет lua и зачем?
     
     
  • 2.4, anonismeshnie (?), 23:32, 28/06/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    OpenResty -> Kong -> Tarantool
    Vactor собирает логи, там тоже lua

    А сорсы пишу на NeoVim и там там тоже lua.

     
     
  • 3.5, anonismeshnie (?), 23:40, 28/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    *Vector
     
  • 3.7, Аноним (7), 23:51, 28/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    и зачем?
     
     
  • 4.12, Аноним (12), 00:03, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Может затем, что нет зоопарка из ЯП-ов? Или из-за может дело в магии трасс жита, не знаю, знаю...
     
     
  • 5.76, Аноним (76), 16:56, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В макросах Emacs тоже нет зоопарка ЯПов.
     
  • 4.84, Jackson (??), 18:25, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    JIT, ffi
     
  • 3.71, Аноним (71), 15:54, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >lua

    Да, Lua, это круто).

     
  • 3.92, Аноним (92), 21:59, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не смог я подружиться с этим Вектором, постоянно зависает на MQTT.
    Примитивный python скрипт и то стабильнее работает.
     
  • 2.9, devrdskc0t0d0s1 (-), 23:57, 28/06/2026 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Много кто, и много где. Достаточно поиском пройтись. Но конечно, этим заниматься грех, а то софта много найдётся. И в том числе, использующего X11.
     
     
  • 3.20, Аноним (20), 00:35, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Поиск по заборам где что-то написано сомнительное занятие. Нужны реальные люди. Но даже в комментах только друг маминой подруги это где-то в роблоксе видел и даже юзал.
     
     
  • 4.23, Аноним (23), 00:42, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Популярность != Качество
     
     
  • 5.39, Смузихеб забывший пароль (?), 06:14, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    примерно так и могут написать немногочисленные фаны на гробовой доске какого-нибудь перла, руби(рубина) или фортрана
     
     
  • 6.90, calendar (?), 20:56, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, или пхп
     
  • 5.87, Аноним (87), 19:27, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У Луа в том числе ЛуаДЖИТ и популярность низкая и качество.
     
  • 2.24, Аноним (24), 00:58, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >Кто где применяет lua

    Первое, что вспомнилось:
    HAProxy, Redis, lighttpd, nginx

     
  • 2.42, Александр (??), 07:21, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    World of Wacraft, весь интерфейс и все моды на Lua, да и в других игровых движках Lua используется как внутренний скриптовый язык. Так же и в софте, часто используют как язык для скриптов, да тот-же Redis и PostgreSQL. В Adobe продуктах он тоже для интерфейса используется. Ну и во многих IoT тоже часть софта на нем.
     
     
  • 3.55, Ivan_83 (ok), 13:10, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Factorio тоже чуть ли не весь на луа :)
     
  • 2.46, 1 (??), 09:27, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    WAF для nginx
     
  • 2.48, limafresh (ok), 10:36, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Он активно используется в геймдеве и уверено занял нишу языка для игровых модов и аддонов, а также хорош для 2D игр (например открытый движок Love2D)
     
  • 2.50, limafresh (ok), 10:38, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ещё он удобен для встраивания, если надо в какой-то программе дать API для написания аддонов для неё
     
  • 2.52, Аноним (52), 12:53, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    LuaTeX — система компьютерной вёрстки, основанная на TeX. Представляет собой расширенную версию pdfTeX с встроенным движком Lua. После тестирования была принята командой pdfTeX как преемник pdfTeX

    После такой встройки, легко в генерации документов и код на C и C++ использовать. Насчёт других языков не знаю.

     
  • 2.54, Ivan_83 (ok), 13:10, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да много где встречается.
    Каноничный пример из внижки: юзать луа в качестве парсера конфига.

    Prosody на луа почти полностью написан. Есть пара тектовых редакторов - почти IDE на луа.
    В играх много где луа внутри юзается для бизнеслогики.

     
  • 2.62, крокодил (?), 13:30, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Несравненный игровой движок Defold использует lua, вся игровая логика на нем.
     
  • 2.73, Тот самый Аноним (?), 16:10, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Awesome WM активно использует Lua. Конфиг и виджеты.
     
  • 2.74, Аноним (74), 16:50, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Мне нравится игра Tales of Maj'Eyal. Игровой движок, и вроде даже анимации спец-эффектов написан на Lua. Очень шустро работает, и красиво !
     
  • 2.85, историк_кун (?), 18:38, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ardour скриптуется на Lua, например. В поставке больше сотни скриптов и плагинов на Lua, пользаки пишут и публикуют свои плагины.
     
  • 2.86, Аноним (24), 18:58, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    lua - скриптовый язык nmap
     
  • 2.89, Аноним324 (ok), 19:48, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В роблоксе применют, в редисе применяют, во всяких умных соковыжималках применяют.
     
  • 2.91, Аноним (91), 21:20, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Применяется как встроенный script engine.
     
  • 2.94, Аноним (94), 11:32, 30/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Весь GUI игры World of Warcraft, например.
     

  • 1.3, Аноним (3), 23:30, 28/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Наконец, луажит конечно стрёмный, но намного полезнее обычного никчёмного луа. Только не подходит для недоверенного кода, угу.
     
     
  • 2.6, Hedgehog (??), 23:41, 28/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://luajit.org/faq.html
    > In general, the only promising approach is to sandbox Lua code at the process level and not the VM level.

    Landlock (https://landlock.io) повесить на все треды jit'ом и норм

     
  • 2.8, Аноним (8), 23:53, 28/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    а что подходит для недоверенного кода простите
     
     
  • 3.14, AkhIL (-), 00:18, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > а что подходит для недоверенного кода простите

    Luau (Roblox), судя по описанию, проектировался для возможности запуска не доверенного пользовательского кода.

     
     
  • 4.37, Кроссдрессер (?), 05:51, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Очередной проект полутора землекопов
     
     
  • 5.65, funny.falcon (?), 13:59, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если Roblox - это для Вас полтора землекопа, Вы невероятно крутой программист.
     
  • 4.57, Ivan_83 (ok), 13:13, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В книжке по луа описано как переопределить базовые функции, так чтобы запускать дальше код с максимальной изоляцией.
     
  • 2.10, Аноним (10), 23:58, 28/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Наконец, луажит конечно стрёмный, но намного полезнее обычного никчёмного луа.

    Чем полезнее-то?

    LuaJIT - это игрушечное поделие, которое несовместимо не только с современными версиями оригинального Lua, но и с предыдущими версиями самого себя. И вместо того, чтобы делать хоть какие-то поползновения в сторону совместимости, персонаж предпочитает наваливать тонны хлама типа "obj?.:method" и "a ~>> b".

    Как и NIM, это просто игрушка одного сумрачного гения, малопригодная для реальных проектов.

     
     
  • 3.13, Аноним (12), 00:06, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > игрушка одного сумрачного гения, малопригодная для реальных проектов.

    Cloudflare, Kong, Tarantool, IPONWEB, Roblox, WireShark, Nmap и ещё куча всего "игрушечного".

     
     
  • 4.19, Аноним (-), 00:24, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Почему-то все забыли про Redis
     
  • 4.21, Аноним (21), 00:36, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    У первой - самый глючный интернет, про остальные никто даже не слышал.
     
     
  • 5.43, Аноним (43), 07:29, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты про это не слышал, но говоришь что никто не слышал.
    Ты == никто, получается?

    (а вообще свой узкий кругозор выпячивать, да еще и с гордостью - не очень умное решение)

     
  • 4.25, Аноним (21), 01:12, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Cloudflare

    Это не у них ли осенью Луа полинтернета уложила?

     
     
  • 5.26, Аноним (26), 01:17, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    "Глобальный сбой из-за Lua произошел 5 декабря 2025 года, всего через 17 дней после инцидента с Rust. Авария длилась около 25 минут."

    Если почитать внимательнее, вина была в прослойке между.

     
     
  • 6.44, Аноним (43), 07:30, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Там ещё и вайпкодер и ии ревьювер был небось. А для полноты картины - вейланд и системд
     
  • 4.40, Смузихеб забывший пароль (?), 06:18, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    как КОНКРЕТНО это используется в упомянутом ?
    А то ведь может оказаться нечто местечковое и большинством пользователей вообще никак не применявшееся
     
  • 3.47, Аноним (47), 10:27, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > LuaJIT - это игрушечное поделие, которое несовместимо не только с современными версиями оригинального Lua, но и с предыдущими версиями самого себя

    Перебарщиваете - зависит от того, что и как писать.

     
  • 3.49, Китсун (?), 10:37, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Garry’s mod использует LuaJIT
     
  • 3.66, funny.falcon (?), 14:02, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Настолько игрушечное, что большинство проектов предпочитают использовать его вместо оригинального.
     
     
  • 4.72, Аноним (72), 16:06, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > большинство проектов предпочитают использовать его вместо оригинального.

    Ты забыл привести ссылки на статистику, подтверждающее такое сильное заявление.

     
  • 2.56, Ivan_83 (ok), 13:11, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Даже не знаю зачем вам запускать у себя чей то недоверенный код :)
     

  • 1.28, Джон Титор (ok), 01:17, 29/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Майкл Полл (Mike Pall), создатель JIT-компилятора LuaJIT, отошедший от активной разработки проекта в 2015 году и ограничивавшийся с тех пор редким сопровождением ветки 2.1, вернулся к активной работе над проектом и опубликовал план синтаксических расширений будущей ветки LuaJIT 3.0.

    Т.е. по сути тратить время на открытый софт было какой-то проблемой, но появился ИИ инструмент и наполеоновские планы на ЛуаЖид. Поздравляем, у него есть над чем поэкспереиентировать и рассказать что все это он!

     
  • 1.32, Аноним (32), 02:58, 29/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    так и не понял к какой версии оригинала подтянется. своим путём ответвлением пошёл?
     
  • 1.34, Аноним (34), 04:53, 29/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –11 +/
    Зачем эти нововведения в эпоху нейросетей? Код руками набирают уже только в качестве хобби, типа как ножичком из дерева фигурки вырезают.
     
     
  • 2.35, Аноним (35), 05:48, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А потом я фармлю приватные ключи от криптокошельков на гитхабе в публичных репах.
     
     
  • 3.51, Анонин (?), 11:12, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    От этого вопрос "зачем" только усилился. Сплошные плюсы от нейронок. Кроме цен на память.
     
  • 2.53, Аноним (52), 13:00, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Код руками набирают уже только в качестве хобби, типа как ножичком из дерева фигурки вырезают.

    Вот как раз играться с ИИ - это хобби.

    И отмазка для тупых менеджеров, к вопросам, что будете делать, когда у вас все разбирающиеся разработчики уйдут.

    Причём ИИ делает так же - как не разбирающийся разработчик. Но последний имеет шанс разобраться. ИИ такого шанса не имеет.

     
  • 2.59, Сладкая булочка (?), 13:15, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зачем эти нововведения в эпоху нейросетей? Код руками набирают уже только в качестве хобби, типа как ножичком из дерева фигурки вырезают.

    А может Майка Пола давно нет и от его лица пишет нейросеть.

     

  • 1.58, Ivan_83 (ok), 13:14, 29/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поделитесь: где и как на практике применяется LuaJit?
     
     
  • 2.64, Деаноним (?), 13:44, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Чаще всего в движках, где нужен скриптинг. В особенности в игровых движках, где набольшие требования к производительности.
     
     
  • 3.67, Ivan_83 (ok), 14:49, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Типа они LuaJit сразу вместо LUA юзают?
     
     
  • 4.68, крокодил (?), 15:06, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, просто lua слишком медленный для игр
     
  • 2.78, Egan (?), 17:36, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я какое-то время назад писал для сына тренажер сложения/вычитания/умножения/деления.
    Чтобы простые примеры решал, в результате чего умнел.

    Такие вещи очень просто писать, не помню причину почему тогда написал на lua.

     

  • 1.60, Сладкая булочка (?), 13:16, 29/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Судя по нововведениям получилась смесь питона с носорогом (жсом).
     
  • 1.61, Аноним (61), 13:28, 29/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Надеюсь он сольёт свою поделку с openresty. Очень плохо две несовместимых реализации одного и того же иметь, обе кривые.
     
     
  • 2.70, Сладкая булочка (?), 15:26, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Надеюсь он сольёт свою поделку с openresty. Очень плохо две несовместимых реализации одного и того же иметь, обе кривые.

    Вообще у всех крупных контор свои форки luajit, посмотри докалы мэйла.

     

  • 1.69, Аноним (69), 15:15, 29/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    UTF-8 нативный будет?
     
     
  • 2.82, Аноним (82), 18:22, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Питон 3 говорит что нет
     

  • 1.75, Аноним (75), 16:56, 29/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А Майк-то настоящий? А то времена нынче неспокойные.
     
  • 1.79, Аноним (82), 18:08, 29/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я слышал что LuaJIT круче оригинального луа (не пользовал тоже).
    А чем ?
     
     
  • 2.80, Аноним (80), 18:10, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    До выхода 5.3 был круче, но стабильность была так себе. После так или иначе был устаревшим.
     
     
  • 3.81, Аноним (82), 18:15, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > После так или иначе был устаревшим.

    Можно объяснить эту фразу ?
    Я не понимаю что такое "устаревший язык".
    Русский - устаревший ?

     
     
  • 4.83, Аноним (82), 18:23, 29/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вот бывает же чушь несу )
     

  • 1.88, Аноним (87), 19:30, 29/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Кто хочет поорать? Разработку на самом деле продолжила нейросеть.
     
     
  • 2.93, Аноним (93), 07:28, 30/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Пруфы?
     

  • 1.95, Аноним (74), 12:42, 30/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Lua популярный. Вот "пруф" https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html
     
  • 1.96, Аноним (-), 13:42, 30/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Появление расширений вызвало и критику: часть участников отметила, что нововведения окончательно превращают LuaJIT в отдельный язык, несовместимый с эталонным Lua 5.1. На это Полл ответил, что "этот корабль уплыл уже очень давно".

    а счастье было так близко - закрыть репорты, отрефакториться под 5.5, по желанию/возможности - перфоманс поднять, а все свои надстройки в екстендед стд вынести. тьфу

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру