The OpenNET Project / Index page

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

Доступен язык программирования Lua 5.5

22.12.2025 23:07

После пяти лет разработки доступен релиз Lua 5.5, быстрого и компактного скриптового языка программирования, получившего большое распространение в качестве встраиваемого языка для определения конфигурации и для написания расширений. Код интерпретатора Lua написан на языке Си и распространяется под лицензией MIT.

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

Основные новшества:

  • В режиме "generational" полный цикл сборки мусора (major collection), перебирающий все объекты, переведён на использование инкрементальной обработки, при которой сборка мусора разбивается на отдельные шаги, чередующиеся с выполнением программы, что позволяет избавиться от длительных приостановок выполнения приложений с большим числом объектов в памяти.
  • Предложена компактная реализация массивов, требующая на 60% меньше памяти для массивов с однотипными данными (экономия достигается благодаря тому, что данные о типе сохраняются не для каждого элемента, а для группы элементов).
  • Добавлена возможность явного объявления глобальных переменных в любых блоках кода при помощи ключевого слова "global". При указании в блоке кода выражений с ключевым словом "global", все переменные обязательно должны объявляется явно. Если объявление "global" отсутствует, то неявно выставляется выражение "global *" при котором сохраняется старое поведение и все переменные трактуются, как глобальные. Также добавлено выражение "global<const> *" при котором все неявно определённые глобальные переменные становятся доступны в режиме только для чтения.
    
         X = 1       -- Ok, X - глобальная переменная, старое поведение по умолчанию.
         do
           global Y  -- объявление переменой Y как глобальной, все остальные переменные в блоке должны объявляться явно
           Y = 1     -- Ok, переменная Y ранее определена
           X = 1     -- Ошибка, переменная X не определена
         end
         X = 2       -- Ok, вне блока с global  действует старое поведение
    
  • Указываемые в циклах "for" управляющие переменные теперь доступны только для чтения и не могут быть изменены в теле цикла. Например, переменная i, объявленная в цикле "for i = 1, 5 do", не может быть изменена в теле цикла.
  • При выводе чисел с плавающей запятой через функцию print теперь выводится достаточное число цифр для корректного обратного преобразования из строки в исходное представление.
  • Увеличено допустимое число уровней вложенности конструкторов таблиц.
  • Добавлена функция table.create(nseq, nrec) для добавления пустой таблицы и предварительного выделения памяти для указанного числа элементов.
  • В функции utf8.offset обеспечен возврат не только байтового смещения до начала символа, но и позиции конца символа.
  • Добавлена поддержка создания внешних строк, размещаемых в памяти, не управляемой сборщиком мусора Lua.
  • Добавлена функция luaL_openselectedlibs для загрузки выбранной библиотеки, а также функция luaL_makeseed, формирующая seed-затравку для функции lua_newstate.
  • В lua.c обеспечена динамическая загрузка библиотеки 'readline' при её наличии (если библиотека есть в системе - она загружается и становятся доступны функции редактирования строк).
  • Включена оптимизация для экономии памяти при загрузке предварительно скомпилированного байткода - Lua теперь может повторно использовать память в некоторых внутренних структурах без создания дубликатов при загрузке дублирующегося байткода.
  • Обеспечено повторное использование всех строк в операциях "dump" и "undump".
  • Во вспомогательных буферах обеспечено повторное использование буферов (без копирования в новый буфер) при создании финальной строки.


  1. Главная ссылка к новости (https://www.lua.org/news.html...)
  2. OpenNews: Lunatik - инструментарий для создания в ядре Linux обработчиков на языке Lua
  3. OpenNews: Открыт код Luau, варианта языка Lua с проверкой типов
  4. OpenNews: Релиз языка программирования Lua 5.4
  5. OpenNews: Компания Microsoft опубликовала реализацию Lua VM, написанную на языке Go
  6. OpenNews: В ядро NetBSD добавлена поддержка расширений на языке Lua
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64476-lua
Ключевые слова: lua
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (87) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Недоэксперт (?), 00:04, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    а continue так и не добавили )
     
     
  • 2.21, anonymos (?), 02:06, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не благодарите )

    for line in file:lines() do
        if not line or line == '' then goto continue end
        
        --//---------------//--
        --// Ваш супер код //--
        --//---------------//--

        ::continue::
    end

     
     
  • 3.30, Абра (?), 03:22, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Goto можно?)
     

  • 1.3, Аноним (-), 00:05, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    через одного с ним работали, либо сталкивались
     
  • 1.4, Аноним (4), 00:07, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Почти во всех реальных проектах с Lua люди используют LuaJIT, так что полезность данного релиза, к сожалению, не такая большая.
     
     
  • 2.20, Xasd9 (?), 01:50, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    тык они (люди) могут и Python и PHP использовать… вопрос-то не в этом.

    LuaJIT это говвно на палке. а Lua (обычное) — это конфетка.

    но ктож запретит тебе использовать LuaJIT?

     
     
  • 3.25, Аноним (25), 02:45, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Что не так с LuaJIT?
     
     
  • 4.27, Аноним (27), 03:20, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Это велосипед на костылях, гвоздями прибитый к низкоуровневой структуре опкодов Lua 5.1, абсолютно нерасширяемый, да ещё и дико замудрённый, с генеримыми портянками ассемблерного кода. Поддержку каждой новой нативной архитектуры добавлял лично автор, за дикие деньги (корпоративных спонсоров) и в огромные сроки.

    Вторая проблема — его автор, который заартачился и не стал поддерживать официально даже Lua 5.2 в пользу собственных велосипедных расширений, встроенных в LuaJIT. Ну а реализовывать integer'ы и прочие нововведения — это, считай, всё переписывать и переделывать, этого точно никто делать не будет. Были сторонние попытки актуализировать LuaJIT до 5.3, но там новые опкоды реализованы просто обычными функциями, без JIT.

    В результате имеем то что имеем — дикую фрагментацию, половина сообщества сидит на древнем 5.1 («потомушта LuaJIT»), другая на актуальной версии. И бывший когда–то, лет десять назад,  крутым и модным LuaJIT теперь превратился в огромную гирю, если не якорь, тянущий весь язык в бездны стагнации.

     
     
  • 5.44, anonymos (?), 05:14, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу видно "иксперта" )))
    Если пойти на сайт luajit.org и заглянуть в раздел extensions, то картина рисуется совсем другая.
     
     
  • 6.46, Аноним (27), 05:40, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Какая другая Там как раз и рисуется картина, что бОльшая часть 5 2 таки реализ... большой текст свёрнут, показать
     
     
  • 7.51, Аноним (51), 08:03, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Плохо, что в neovim именно luajit, а для другого мне lua и не нужен.
     
  • 5.50, Аноним (27), 07:36, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Поддержку каждой новой нативной архитектуры добавлял лично автор

    Слегка приврал — поддержку для ARM64, MIPS32 dual-number + soft-float, MIPS64, MIPS64 r6, PPC soft-float делала уже сербская контора RT-RK, как видно из https://luajit.org/sponsors.html.

    Но тем не менее, массы желающих актуализировать проект не видать и причины тому сугубо архитектурные — придётся отказаться от NaN–tagging и капитально перетряхивать всё.  

    Для размышления:
    https://github.com/LuaJIT/LuaJIT/issues/182/
    https://github.com/LuaJIT/LuaJIT/issues/924/

     
     
  • 6.80, Аноним (27), 11:51, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    На случай, если кто–нибудь заинтересуется, что такое NaN–tagging и в чём заключается «хитрый хак»:

    https://web.archive.org/web/20101224111654if_/http://blog.mozilla.com/rob-sayre/2010/08/02/mozillas-new-javascript-value-representation/

    https://web.archive.org/web/20091107031558if_/http://article.gmane.org/gmane.comp.lang.lua.general/58908

    https://www.freelists.org/post/luajit/Few-questions-about-LuaJIT-internals-on-64-bit,6

     
  • 5.60, Аноним (60), 09:28, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вторая проблема — его автор

    Он вообще "интересная личность". "Releases are an antiquated concept":

    https://github.com/LuaJIT/LuaJIT/issues/665#issuecomment-784452583

     
  • 5.62, mos87 (ok), 09:33, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ппц сидеть и пейсать такую пафосную чушь

    хорошо што ИИ подобные портянки теперь заменяет

     
  • 5.63, mos87 (ok), 09:33, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Поддержку каждой новой нативной архитектуры добавлял лично автор, за дикие деньги (корпоративных спонсоров) и в огромные сроки.

    ви так говорити, будто енто щото плохое

     
  • 5.64, mos87 (ok), 09:35, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >якорь, тянущий весь язык в бездны стагнации

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

    а то бы все уже перешли на %САМАЯ_МОДНАЯ_СКРИПТОТА%

    ЗЫ жаль, что TCL так же не "застагнировал"...

     
     
  • 6.68, Аноним (68), 10:00, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Те, кто хот раз портировал луа код с версии на версию, понимают, почему луажит получил такую поддержку. Производительность приятный бонус.
     
  • 5.82, Bottle (?), 12:45, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вот отличное описание проблем языков без стандарта. Та же ситуация с Питоном - никаких спецификаций, поэтому нет никакого понимания того, как будет работать альтернатива.
     
     
  • 6.85, Аноним (27), 13:16, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В Lua для каждой 5.x версии есть формальное описание полного синтаксиса языка, документация к библиотеке и батарея тестов на совместимость ( https://www.lua.org/tests/?order=d ).

    Тут скорее момент, что популярная реализация застыла на старом стандарте, с частичной реализацией чуть менее старого, да ещё и со своими нестандартными расширениями. Примерно как было с языком C — новые стандарты выходили, а MSVC какое–то время забивал на их поддержку, уверенно поддерживая только C89 и лишь отчасти С99.

     
  • 2.34, Frestein (ok), 03:37, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По факту. Пруф.
    https://github.com/LuaJIT/LuaJIT/issues/929#issuecomment-1362278983
     
  • 2.42, Антикапиталист (?), 04:11, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В реальных проектах lua используется как скрипты для автоматизации. Например, есть звонилка для sip-телефонии, я в душе не чаю что там под капотом, и не хочу знать, но благодаря lua могу делать очень нетривиальные вещи, вроде автодозвона через транк в pstn с периодичностью 100 мс по хитрому алгоритму.
     
     
  • 3.65, mos87 (ok), 09:39, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Факт: LUA ПОМАГАЕТ СПАМЕРАМ!111

    PS описанное это задача любого "языка расширения".

     
     
  • 4.76, stepanxx (?), 11:33, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Кошмар! Сначала замедлить! А потом заблокировать!!
    Срочно
     

  • 1.5, Аноним (5), 00:19, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    local player_hp = 100
    plaeyr_hp = 90

    луа молча хавает это, а ты потом ищешь баги. Форт в разы лучше

     
     
  • 2.52, areful (?), 08:08, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не специалист в lua и вопрос чисто из-за энтомологического интересу: а почему не должна хавать, имена-то у переменных разные?
     
     
  • 3.59, думаю я (?), 09:22, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Луа должна телепатически догадаться, что мясной мешок опечатался.
     
     
  • 4.75, Аноним (75), 11:30, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В нормальных языках принято различать объявление и присваивание.
     
  • 4.77, Конь (ok), 11:38, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Луя должна выдать ошибку, что нет такой перемноой, вместо этого создается новая переменная, причем глобальная и так можно получить очень неприятные баги
     
  • 2.54, pv (?), 09:02, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Для тех кто по клавиатуре не попадает есть lua-strict
     
  • 2.61, Аноним (60), 09:30, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > луа молча хавает это, а ты потом ищешь баги

    Шта? Такое обсолютно любой скриптовый язык хавает.

    Автозавершением имен надо пользоваться в редакторе. 🤦

     
     
  • 3.74, Аноним (75), 11:29, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Шта? Такое обсолютно любой скриптовый язык хавает.

    Ну так может в топку его, этот абсолютно любой скриптовый язык?
    >Автозавершением имен надо пользоваться в редакторе.

    Как вы собираетесь пользоваться автозарершением имён в динамически типизированном языке?

     
     
  • 4.89, Аноним (89), 13:37, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Как вы собираетесь пользоваться автозарершением имён в динамически типизированном языке?

    Как обычно. Какая вообще связь между именем переменной и ее текущим типом?

     

  • 1.7, Аноним (7), 00:38, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >  Указываемые в циклах "for" управляющие переменные теперь доступны только для чтения и не могут быть изменены в теле цикла. Например, переменная i, объявленная в цикле "for i = 1, 5 do", не может быть изменена в теле цикла.

    А такое вообще допустимо в минорном релизе? По-моему, сначала надо объявлять deprecated, в следующем мажорном релизе выводить ворнинги, и только в ещё следующем — выпиливать.

     
     
  • 2.8, Кошкажена (?), 00:47, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У них не семвер.
     
  • 2.9, Аноним (9), 00:49, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В Lua это делается как раз в минорных релизах. Кто часто использует - привыкли. По мне так выпиливать нужно тех, кто меняет значения управляющих переменных цикла в теле цикла вне зависимости от используемого языка.
     
     
  • 3.15, Аноним (15), 01:19, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Обработку какого-нибудь буфера вполне можно так делать. Возвращаться на отступ с уже измененным состоянием. Одно дело когда человек не знает, что делает, и другое - запрещать тем, кто знает.
     
     
  • 4.19, Аноним (9), 01:34, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Речь про то, что такое читать сложно. В коде явно указано перечисление с указанным шагом (по умолчанию: 1) и полагаешься на это. Когда переменная инициируется до цикла - вопросов нет. Я, к примеру, даже не знаю, не "кэшируется" ли та переменная в каком-нибудь внутреннем регистре во время выполнения цикла и куда именно будет добавлена единичка. Так что даже не пытаюсь туда что-нибудь писать.
     
     
  • 5.22, Аноним (15), 02:19, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я не вижу больших проблем использовать полезные свойства for для таких нужд. Большая часть операций с отступом будет в объявлении цикла, что удобно и читаемо. Лучше, чем писать явный вечный цикл и ту же самую логику в нем. Меньше риска что-то потерять по дороге.

    Насчет рискованности применения согласен. Есть вариант нарваться на особенности реализации.

     
  • 5.78, Аноним (75), 11:41, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >полагаешься на это.

    Явное лучше неявного. Циклы не нужны, хвостовой рекурсии достаточно.
    >Я, к примеру, даже не знаю, не "кэшируется" ли та переменная в каком-нибудь внутреннем регистре во время выполнения цикла и куда именно будет добавлена единичка.

    Во время написания кода на хорошо спроектированном языке не сосредатачиваться на таких мелочах, там всё понятно сразу.

     
     
  • 6.83, Аноним (15), 13:11, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Явное лучше неявного
    >Циклы не нужны, хвостовой рекурсии достаточно

    В реальности рекурсии не нужно никакой нисколько, она разворачивается в циклы.

    >на хорошо спроектированном языке

    Нет такого ))

     

  • 1.10, Кошкажена (?), 00:50, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Добавлена возможность явного объявления глобальных переменных в любых блоках кода при помощи ключевого слова "global".

    Глобальные переменные по умолчанию - это, конечно, надо исправлять. Вот похоже пытаются.

     
     
  • 2.11, Аноним (11), 00:53, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    напрасная потеря времени
     
  • 2.12, Аноним (9), 01:05, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В своем коде я запрещаю чтение или запись в несуществующую глобальную переменную. Позволяет избежать множества скрытых ошибок.
     
  • 2.41, Антикапиталист (?), 04:06, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Учитывая, что язык для встроенной автоматизации, это не проблема. У меня, например, на lua много скриптов на 5-10 строк не то что с глобальными переменнвми, а вообще с хардкоженными значениями, где вся эта "безопасность" нафиг не нужна. Никакого труда не составит открыть файл в дефолтном виндовом блокноте и быстро переписать, если вдруг надо.
     

  • 1.13, Аноним (13), 01:08, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Язык дико неудобен, начиная с end вместо фигурных скобок, и заканчивая тотальным отсутствием стандартной библиотеки. Прям вообще отсутствует, напрочь. Даже ключи словаря не достанешь -- иди пиши аналог Object.keys() с нуля. Единственное преимущество луа -- встраиваемость, по сути язык номер один, если нужна легковесная скриптуемость.
     
     
  • 2.14, Аноним (15), 01:15, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >начиная с end вместо фигурных скобок

    Вопрос привычки. С плохим форматированием кода лес из скобок не менее ужасен.

    >Даже ключи словаря не достанешь -- иди пиши аналог Object.keys()

    Иди про итераторы прочитай. Или ты их не понимаешь, прямо как замыкания в JS? Вот что значит первым языком пихон.

    >заканчивая тотальным отсутствием стандартной библиотеки. Прям вообще отсутствует, напрочь

    Есть luarocks какие хочешь.

     
     
  • 3.17, Аноним (13), 01:31, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > С плохим форматированием кода лес из скобок не менее ужасен.

    То есть ты признаешь, что хорошо отформатированный код на луа примерно так же ужасен, как и плохо отформатированный код на си-подобном языке?

    > Иди про итераторы прочитай

    Коллект добавили в стд библиотеку? Чтобы можно было итератор сконвертнуть в массив и делать random access? Или ты не понимаешь, что итераторы применимы далеко не везде?

    > Есть luarocks какие хочешь

    Какую букву во фразе "_стандартная_ библиотека" ты не понял?

     
     
  • 4.23, Аноним (15), 02:37, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >хорошо отформатированный код на луа

    Если в луашном стиле написан, отлично смотрится. Если там у тебя колбасы калбеков эмулирующие коколлекты всевозможные, уродливо будет, конечно.

    >плохо отформатированный код на си-подобном языке

    Отвратительнее, чем луашный. Когда круглые скобки перемешаны с фигурными, это намного хуже. Просто привыкли все.

    >итераторы применимы далеко не везде?

    В луа они применимы везде )) Квадратно гнездовое мышление воспитанное другими языками придется пересмотреть.

    >Какую букву во фразе "_стандартная_ библиотека" ты не понял?

    Это ты не понял. Тебе не хватает стандартной библиотеки луашной, варианты какие?

     
     
  • 5.28, Аноним (13), 03:21, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Очевидно, что кроме луа ты ничего не знаешь Напиши мне на итераторах quicksort ... большой текст свёрнут, показать
     
     
  • 6.45, Аноним (27), 05:20, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы самозабвенно несёте чушь.

    В Lua осознанно используется «таблица» — гибридная структура данных, сочетающая в себе свойства массивов и хэш–таблиц.

    Если там есть keys — это хэш–таблица и quicksort не имеет смысла. Потому что ради производительности сохранение порядка элементов в оных не гарантируется — и это не баг а фича.

    А если использовать таблицу как массив, то quicksort уже есть в стандартной библиотеке — table.sort().

    Если прям совсем надо, ничего не стоит написать свою реализацию Object.keys на пяток строчек, выплёвывающую результат pairs(), только зачем — в итераторе уже можно делать что–то полезное вместо пережёвывания литералов.

     
     
  • 7.53, Аноним (13), 08:57, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Что и требовалось доказать ты действительно ни с чем, кроме луа, не работал, иб... большой текст свёрнут, показать
     
     
  • 8.58, Аноним (27), 09:19, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если мне понадобится словарь с отсортированными ключами, я просто заведу ещё одн... текст свёрнут, показать
     
     
  • 9.67, Аноним (13), 09:43, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ага Причем вторая таблица будет массивом ключей, а не итератором, про которы... большой текст свёрнут, показать
     
     
  • 10.69, Аноним (27), 10:17, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Контекст дискуссии 8212 вы несёте какую 8211 то дичь И вам уже два разных а... большой текст свёрнут, показать
     
     
  • 11.71, Аноним (13), 10:31, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Напоминаю бредятину, которую ты запостил ранее В луа они итераторы применимы... большой текст свёрнут, показать
     
     
  • 12.72, Аноним (27), 11:04, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы даже не в состоянии двух анонимов различить Это какой 8211 то позор Ещё ра... большой текст свёрнут, показать
     
     
  • 13.79, Аноним (13), 11:49, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вопрос не в том, есть в луа random access arrays или нет Ответ прост они там е... большой текст свёрнут, показать
     
     
  • 14.81, Аноним (15), 12:16, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Заступаю на смену Ты понимаешь, что подгоняешь все под это утверждение С... текст свёрнут, показать
     
     
  • 15.87, Аноним (87), 13:25, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ага Например сортануть И как раз в этом месте рушится твоя бредовая идея про т... текст свёрнут, показать
     
  • 14.90, Аноним (27), 13:39, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, то есть конкретики не будет, будет выдёргивание из контекста и приписывание ... большой текст свёрнут, показать
     
     
  • 15.91, Аноним (13), 13:53, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И что же это за концепция Такая, чтобы она была не совместима с шаблонами мышл... текст свёрнут, показать
     
  • 2.16, Аноним (9), 01:23, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Именно оттого, что он встроенный, стандартной библиотеки нет - на всех не угодишь, да и не нужно. Все что требуется, можно дополнительно реализовать в lua коде или в вызывающем коде. Я к примеру, уже и не упомню, когда мне последний раз требовалось перечислять ключи, хотя Lua использую часто.

    Что касается синтаксиса - дело привычки.

     
  • 2.40, Антикапиталист (?), 04:00, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > end вместо фигурных скобок

    И это прекрасно. Человекочитаемое слово вместо закорючек.

     
     
  • 3.56, Аноним (56), 09:12, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1С одобряет этот комментарий
     
  • 2.86, Аноним (86), 13:23, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А, да? Не знал, спасибо за информацию.
     

  • 1.24, Аноним (24), 02:43, 23/12/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –5 +/
     

  • 1.36, Антикапиталист (?), 03:49, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Это мой любимый синтаксис всех времён и народов. После C/C++/Rust это отдых для души. И я абсолютно серьёзно.
     
     
  • 2.47, Аноним (47), 06:17, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    После JS. С этими тремя всё-таки не сравнить, они в другой упряжке. А так-то луна - это js done right.
     

  • 1.48, Аноним (-), 07:28, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    -- Ok

    Это тег комментарий на языке Луа?

     
  • 1.49, Аноним (49), 07:36, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для большей части операций сборки мусора задействован инкрементальный режим,...

    Ошибка в новости. В оригинале: major garbage collections done incrementally

    В Lua есть 2 режима сборки мусора: incremental (включён по умолчанию) и generational. В режиме generational циклы делятся на major (длинные, редкие и собирающие мусор всех поколений) и minor (частые, короткие и собирающие только новый мусор). Раньше эти режимы были несовместимы: при включении режима generational инкрементальность терялась. Теперь для мажорных циклов в этом режиме была реализована инкрементальность, а минорные и так короткие и в ней не нуждаются.

     
  • 1.57, Аноним (56), 09:14, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а можно список ЯП с некопилефтной лицензией, который можно встроить в свой продукт для скриптинга? Lua номер в списке, это понятно
     
  • 1.66, mos87 (ok), 09:42, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Знаком с ним в основном по Neovim (mpv, и т.д.) - по ощущениям весьма специфический синтаксис. И на вид код жутко лапшеобразный, с печальной кучей вот ентого ({}).
    И эти люди запрещают Perl в носу ковыряцца..
     
  • 1.70, kravich (ok), 10:24, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В режиме "generational" полный цикл сборки мусора (major collection), перебирающий все объекты, переведён на использование инкрементальной обработки, при которой сборка мусора разбивается на отдельные шаги, чередующиеся с выполнением программы, что позволяет избавиться от длительных приостановок выполнения приложений с большим числом объектов в памяти.

    Squirrel-окапец?

     
  • 1.73, Аноним (75), 11:22, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >При указании в блоке кода выражений с ключевым словом "global", все переменные обязательно должны объявляется явно.
    >Указываемые в циклах "for" управляющие переменные теперь доступны только для чтения и не могут быть изменены в теле цикла.

    Идеальные изменения для языка с неявным определением переменных без фазы компиляции. Чем позже всплывёт баг, тем лучше, в идеале всплыть прямо на релизе.

     
  • 1.84, anon57 (?), 13:12, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    QuickJS слегка медленнее, но писать скрипты на JS куда веселее. Тем более миллион и еще тележка библиотек есть. Есть где разгуляться. Большие кодовые базы на Lua тяжело поддерживать. Lua более утилитарный язык, для конфигов например. Это конечно лично мое мнение.
     
  • 1.88, anon57 (?), 13:34, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как вариант, есть транслятор из TypeScript в Lua: https://github.com/TypeScriptToLua/TypeScriptToLua
     

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



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

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