Майкл Полл (Mike Pall), создатель JIT-компилятора LuaJIT, отошедший от активной разработки проекта в 2015 году и ограничивавшийся с тех пор редким сопровождением ветки 2.1, вернулся к активной работе над проектом и опубликовал план синтаксических расширений будущей ветки LuaJIT 3.0. Среди предлагаемых для LuaJIT 3.0 расширений:
Источник: https://www.opennet.ru/opennews/art.shtml?num=65795
- Битовые операторы в виде встроенного синтаксиса вместо вызовов функций "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" - блочная неизменяемая привязка локальной переменной; запрещены переприсваивание и повторное объявление в той же или вложенной области видимости (также "мягкое" ключевое слово).
Источник: https://www.opennet.ru/opennews/art.shtml?num=65795