| |
| 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
| | |
|
| 1.4, Аноним (4), 00:07, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Почти во всех реальных проектах с Lua люди используют LuaJIT, так что полезность данного релиза, к сожалению, не такая большая.
| | |
| |
| 2.20, Xasd9 (?), 01:50, 23/12/2025 [^] [^^] [^^^] [ответить]
| +/– | |
тык они (люди) могут и Python и PHP использовать… вопрос-то не в этом.
LuaJIT это говвно на палке. а Lua (обычное) — это конфетка.
но ктож запретит тебе использовать 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.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.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 описанное это задача любого "языка расширения".
| | |
|
|
| 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.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.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.90, Аноним (27), 13:39, 23/12/2025 [^] [^^] [^^^] [ответить] | –1 +/– | Ну, то есть конкретики не будет, будет выдёргивание из контекста и приписывание ... большой текст свёрнут, показать | | |
|
|
|
|
|
|
|
|
|
|
|
|
| 2.16, Аноним (9), 01:23, 23/12/2025 [^] [^^] [^^^] [ответить]
| +1 +/– | |
Именно оттого, что он встроенный, стандартной библиотеки нет - на всех не угодишь, да и не нужно. Все что требуется, можно дополнительно реализовать в lua коде или в вызывающем коде. Я к примеру, уже и не упомню, когда мне последний раз требовалось перечислять ключи, хотя Lua использую часто.
Что касается синтаксиса - дело привычки.
| | |
|
| 1.36, Антикапиталист (?), 03:49, 23/12/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
Это мой любимый синтаксис всех времён и народов. После C/C++/Rust это отдых для души. И я абсолютно серьёзно.
| | |
| |
| 2.47, Аноним (47), 06:17, 23/12/2025 [^] [^^] [^^^] [ответить]
| +/– |
После JS. С этими тремя всё-таки не сравнить, они в другой упряжке. А так-то луна - это js done right.
| | |
|
| 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 более утилитарный язык, для конфигов например. Это конечно лично мое мнение.
| | |
|