По умолчанию не загружается debug библиотека. Для загрузки нужно использовать require"debug".
Функций setfenv и getfenv больше нету. Вместо этого используйте функцию loadin или используйте соответствующие функции из debug библиотеки.
Функции math.log10 больше нету. Используйте math.log с десяткой во втором аргументе.
Функции table.maxn больше нету. Если вам она необходима, напишите её на lua.
Функция unpack внесена в таблицу table. Теперь эта функция вызывается так: table.unpack
Изменения в api.
Псевдоиндекс LUA_GLOBALSINDEX был удалён. Вместо этого нужно использовать псевдоиндекс LUA_ENVIRONINDEX, если C функция не изменяет своего стандартного окружения. В противном случае вы должны получить глобальное окружение из реестра.
Макросы lua_getglobal, lua_setglobal и lua_register теперь действуют в окружении функции вместо глобального окружения.
Функция luaL_typerror была переименована в функцию luaL_typeerror, для корректности.
Функция lua_cpcall была удалена. Вместо ней используйте функцию cpcall из реестра.
Функции lua_equal и lua_lessthan были удалены. Вместо них используйте функцию lua_compare с соответствующей опцией.
Функция lua_objlen была переименована в функцию lua_rawlen.
Окончательно удалены макросы lua_open(), lua_getregistry(L), lua_getgccount(L), lua_Chunkreader и lua_Chunkwriter.
Автор: Jaska 28.1.2010, 21:48
Советую еще почитать не самую свежую, но тем не менее полезную http://mydc.ru/r/?http://habrahabr.ru/blogs/development/80429/ :-)
Автор: Setuper 28.1.2010, 21:57
Я уже в плагин рус хаба встроил Lua 5.2 чтобы проверить изменения За статейку спасибо.
Автор: Jaska 28.1.2010, 22:01
Отлично) кстати погляди еще http://mydc.ru/r/?http://article.gmane.org/gmane.comp.lang.lua.general/61505 мне кажется кое чего в списке нехватает, например luaL_tostring() и lua_copy()
Автор: Setuper 28.1.2010, 22:05
Эти дополнительные функции не используются пока, и как их использовать пока не известно. Поэтому ждём финального релиза
Автор: Trans 28.1.2010, 22:08
Чем эта версия Луа лучше предыдущей? Из списка изменений не очевидны преимущества (на мой непросвещённый взгляд).
Автор: Jaska 28.1.2010, 22:13
Trans не скажи, меня лично порадовало loadin (что это такое можешь почитать на хабре, ссылкой выше). Если встраивал луа в си, тогда оценишь преимущества. А так, о преимуществах можно говорить только поработав и с тем и с другим.
Setuper ну они есть в lua 5.2? Ну я так полагаю luaL_tostring() аналогична tostring() только применяется в другом.
Автор: Setuper 28.1.2010, 22:15
luaL_tostring() - это сишная функция, а не lua функция.
Автор: Trans 28.1.2010, 22:16
Понятно. Это даже не альфа.. "То, что выложено на публику даже не альфа — это просто снапшот рабочего кода. К релизу может измениться всё, что угодно." (с)
Автор: alex82 29.1.2010, 23:43
Цитата
Функции table.maxn больше нету. Если вам она необходима, напишите её на lua.
Идиотизм, чесслово. Кому она мешала?
И вообще, в чейнджлоге только и видно, что "Удалено-Переименовано", "Переименовано-Удалено". А что добавлено-то? Это больше напоминает имитацию бурной деятельности, чем разработку.
PS. Переименовывать и кромсать мы и сами могем, даже при полном незнании С/С++.
Автор: Trans 30.1.2010, 15:03
2alex82:
Хотел написать то же самое...
Автор: alex82 8.4.2013, 18:24
Уже почти полтора года прошло с момента выхода Lua 5.2, и вот наконец я добрался до тестирования сего чуда программерской мысли. И вот что я вам скажу. Дела с ним обстоят еще хуже, чем я ожидал...
Уже на этапе сборки выяснилось, что опция LUA_COMPAT_MODULE, добавляющая обратно "устаревшую" функцию luaL_register, используемую при подключении дополнительных библиотек, не работает как надо. А все потому, что функция luaL_register не может экспортироваться, ибо реализована она как макрос:
Теперь вроде как все в порядке, совместимость со старыми библиотеками обеспечена (за исключением тех, что используют lua_setfenv и lua_getfenv, ибо окружение функций теперь тоже устарело). Но не тут-то было. Библиотеки одна за другой отказываются подключаться, ибо не находят в lua.dll то lua_tonumber, то lua_call, то еще какую-нибудь важную функцию C API. Снова открываем lauxlib.h, в котором совсем недавно мы нашли чудо-функцию-макрос luaL_register, который по мнению разработчиков должен был экспортироваться, и медленно выпадаем в осадок:
И.т.д., и.т.п. Всего около двадцати функций. Важных функций, без которых не написать сколько-нибудь серьезную библиотеку.
Первым делом у меня мелькнула мысль, что я чего-то недопонимаю, но непродолжительное общение с гуглом расставило все точки над Ё - макрос есть директива препроцессору, и линковщик НИКАК не сможет экспортировать его.
P.S. Если бы я владел португальским, то спросил бы у разработчиков Lua лишь одно - зачем привлекать наркоманов к разработке такой сложной штуки, как язык программирования?
P.P.S. Давайте жить дружно, и юзать Lua 5.1
Автор: Setuper 8.4.2013, 20:15
Дааа... не хорошо. Получается они оставили только статическую совместимость
Цитата
Here we list the incompatibilities that you may find when moving a program from Lua 5.1 to Lua 5.2. You can avoid some incompatibilities by compiling Lua with appropriate options (see file luaconf.h). However, all these compatibility options will be removed in the next version of Lua. Similarly, all features marked as deprecated in Lua 5.1 have been removed in Lua 5.2.
Кстати, при переходе с Lua 4 на Lua 5 было тоже самое, также были удалены устаревшие функции и были несовместимости.
Автор: KMV 23.4.2013, 3:04
Видимо не все в порядке в бразильском монастыре... Хотел спросить, переход с 5.0 на 5.1 вызывает столько же геморроя ? Или это более реально?
Автор: alex82 25.4.2013, 2:15
KMV
Если собрать Lua 5.1 с включенными опциями совместимости, то не должно быть геморроя. Это не 5.2, там нету бреда с макросами-функциями.
Автор: KMV 25.4.2013, 4:16
Цитата(alex82 @ 25.4.2013, 3:15)
KMV
Если собрать Lua 5.1 с включенными опциями совместимости, то не должно быть геморроя. Это не 5.2, там нету бреда с макросами-функциями.
Скорее всего, lua будет системный "из коробки" как его соберут не знаю. Интересует много ли в скриптах переписывать понадобится ?