LINUX.ORG.RU

Вышел Lua 5.3

 ,


2

8

Незаметно и внезапно вышла новая версия встраиваемого языка программирования Lua.

Значимые изменения:

  • Появился целочисленный тип (64-битный по умолчанию). До этого был тип number, хранящийся как число с плавающей точкой. При компиляции можно задать размер в 32 бита.
  • Битовые операции.
  • Базовая поддержка UTF-8.
  • Функции для сериализации данных в бинарные строки (похожа на python struct).
  • Удалён режим сборки мусора на основе поколений. Это была экспериментальная возможность в версии 5.2.

>>> Подробности

★★★★★

Проверено: fallout4all ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Только сейчас битовые операции добавили?

Deleted
()

Битовые операции.
Функции для сериализации данных в бинарные строки (похожа на python struct).

я джва года ждал!11

ncrmnt ★★★★★
()

Базовая поддержка UTF-8.

Ура, наконец-то!

Появился целочисленный тип (64-битный по умолчанию).

Зашибись, осталось лишь теперь дождаться обновления LuaJIT.

mix_mix ★★★★★
()

Появился целочисленный тип
Битовые операции.
Базовая поддержка UTF-8.

нормально для 2015.

Deleted
()
Ответ на: комментарий от joy4eg

Ура! Мой любимый язык стал еще лучше :)

AngelScript зацени)

anonymous
()

Появился целочисленный тип

Базовая поддержка UTF-8

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

cord
()

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

nikolnik ★★★
()

Самый недооцененный язык, наверное. А жаль. Писать на нем приятно. Официальная книга - Programming in Lua - великолепна.

anonymous
()
Ответ на: комментарий от nikolnik

Я в Heroes M&M 5 скрипты писал, и еще много где в играх используется, дальше гуглить надо)

deathangel908 ★★
()
Ответ на: комментарий от nikolnik

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

Тоже это интересно. Особенно как он в сравнении с питоном и яваскприптом. И почему он их до сих пор не вытеснил?

anonymous
()
Ответ на: комментарий от redhat

1) Анмаскнуть никто не мешает
2) Просто Рафаэль Мартинс упорок и слоупок. А я юзаю LuaJIT, поэтому не бампаю ANSI Lua ни в дереве, на в оверлее «lua». Но если очень попросите... :)

3) Ничего постыдного в анмаскинге 5.2 нету. Оно замаскано только из-за того, что тестирование слотированности ещё не завершено. А без слотов бампать до 5.2 — опасно, ибо много всякого, что зависит от поведения 5.1.

По той же причине LuaJIT 2.х до сих пор 5.1-совместимый, а поведение 5.2 и 5.3 включается только вручную при компиляции.

mva
()
Ответ на: комментарий от joy4eg

Всё так же :( Майк говорит, что будет когда будут спонсоры.

mva
()
Ответ на: комментарий от nikolnik

1) «для других» относительно чего?
2) Я, например, на нём сайты пишу (ну и так, по мелочам библиотеки/скрипты/приложения пописываю). А знакомый — пилит AVR-интерпретатор.

mva
()
Ответ на: комментарий от nikolnik

Нет, для других задач не подходит-только для встраивания в другие программы. Тем не менее, его используют такие крупные компании, как Crytek или Blizzard.

userd
()
Ответ на: комментарий от anonymous

И почему он их до сих пор не вытеснил?

Потому что он слишком простой. Простота это здорово, но не всегда так уж удобно.

Deleted
()
Ответ на: комментарий от anonymous

И почему он их до сих пор не вытеснил?

потому что ничего не умеет даже в сравнении с js там тонну всего приходится костылять

Deleted
()
Ответ на: комментарий от anonymous

А меня интересует, почему везде 5.1 по зависимостям идёт? Чем 5.2 плох?

Deleted
()
Ответ на: комментарий от nagibator

интересно
на современном компиляторе так же быстро скомпилится?

rogerw
()
Ответ на: комментарий от nikolnik

Истории успеха, скорей всего, найдешь только в стиле «Lua - скриптовый язык в такой-то игре». Из известных World of Warcraft, Stalker, например, Lua для скриптования использовали. MTA, Project Zomboid, Natural Selection II (вроде бы, могу путать), Garry's Mod, по-моему в Crysis вроде Lua использовался для скриптования и т.д. и т.п.

В некоторых приложениях Lua так же для скриптования используется. AFAIK, для VLC вроде на Lua можно плагины клепать, в торговом терминале QUIK можно расширения на Lua писать и т.д.

Впрочем, и самостоятельные мелкие приложения на Lua говнокодить все же можно (хоть и ненужно). Даже с гуем. Я как-то конкретно упоролся и накидал мелкое гуи-приложения для поиска определений терминов по локальным словарям. Использовал для этого wxLua. Но это было просто баловство и развлекуха. Всерьез использовать wxLua в рабочем проекте я бы не стал.

Lua популярен как встраиваемый язык, это его ниша и вряд ли он из нее когда-либо выйдет.

xxblx ★★★
()

Недавно перепроходил Painkiller самый первый, и вздумалось мне полезть в папку с файлами игры. Смотрю — лежат родимые, даже не запакованные! Game.lua на две с половиной тысячи строк, плюс для каждого вида оружия свой скрипт и ещё всякая всячина. Там, скорее всего, не вся игровая логика, но всё равно почитать было интересно. Особенно понравились редкие комментарии на польском. Такой вот opensource поневоле.

CARS ★★★★
()
Ответ на: комментарий от makoven

еще луа встроен в wireshark и nmap. И в скором (надеюсь) времени будет основным языком для нового vim.

Еще была новость, что в новых версиях NetBSD собирались на нем модули ядра писать.

anonymous
()
Ответ на: комментарий от rogerw

Да. Проекты lua wsgi и orbit.

К сожалению, там жопа с версиями. wsgi уже на lua 5.2 а орбит все еще на 5.1.

Причем они таки упоролись с песочницами, из за чего очень сложно портировать, нужно менять логику работы.

AVL2 ★★★★★
()
Ответ на: комментарий от Deleted

целочисленный тип для применений луа не слишком актуален.

Битовые операции и поддержка utf-8 были с незапамятных времен, просто теперь их в базу добавили.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

целочисленный тип для применений луа не слишком актуален

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

mix_mix ★★★★★
()
Ответ на: комментарий от rogerw

что-то типа wsgi?

Ну, для упорков, да, есть и wsgi.

А я делаю как AliExpress/TaoBao (в своё время) и CloudFlare (сейчас): использую NginX+ngx_mod_lua (ну и + resty-* либы и + самописные либы и врапперы).

mva
()
Ответ на: комментарий от kachan

можно ручками 5.2 скомпилить и установить в систему

1) ЗАЧЕМ?
2) Это Gentoo, а не Слака.
3) ЗАЧЕМ?!?!?!?!
4) Ебилды на 5.2 вполне есть. Они просто замасканы, ибо не оттестированы. А если кто-то не осиливает анмаск, то он недостоин генты.

mva
()
Ответ на: комментарий от AVL2

В lua всегда можно было работать со строками, как с бинарными строками.

Ну, почти. В 5.1 (на LuaJIT 2.1 не распространяется) при попытке сделать print(«строка, содержащая \000 посередине») — строка обрежется прямо перед \0 (видимо, выводилось printf'ом каким-нибудь без учёта длины передаваемой строки).
Пруф-юниттест:
[code]
$ lua -e 'a=«foo\0bar»; print(a);'
foo
$ luajit -e 'a=«foo\0bar»; print(a);'
foobar
[/code]

mva
()
Ответ на: комментарий от mva

то он недостоин генты.

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

kachan ★★
()
Ответ на: комментарий от kachan

На самом деле, если ОСИЛИТЬ философию Gentoo, то и собирать-то практически нечего будет :3

* поправка, правда, на то, что Диего довели и он забросил тиндербокс, но, вроде, воскрешать его всё-таки планируют...

mva
()
Ответ на: комментарий от xxblx

Lua популярен как встраиваемый язык, это его ниша и вряд ли он из нее когда-либо выйдет.

Аминь.

Он действительно слишком простой и дубовый для чего-то сложнее

Stil ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.