Size: a a a

2020 July 01

S

Snusmumriken in Lua in Moscow
А, я ещё плохо прочитал сообщение, извини.
источник

VZ

Vadim Zborovskii in Lua in Moscow
Snusmumriken
Проще — 5.3 -> 5.4, там очень небольшой набор несовместимостей, а сишные либы достаточно перекомпилить с compat'ом.

А переходить с 5.1 на 5.3/5.4 — почти так же приятно как со второго питона на третий.

"Лучше" — странный вопрос.
Слышал мнение,  что 5.4 не торт. Хотел бы узнать мнение людей, съевших собак гораздо больше меня.
источник

S

Snusmumriken in Lua in Moscow
Ну кароч, переходя с 5.1 на 5.3 ты получаешь то же самое, ибо разработчики либ обычно поддерживают сразу все основные версии луа.
С 5.1 на 5.4 — ты получаешь почти полное отсутствие сишных либ, ибо их не успели пересобрать. Луёвые должны работать в подавляющем числе случаев.
источник

S

Snusmumriken in Lua in Moscow
Snusmumriken
Ну кароч, переходя с 5.1 на 5.3 ты получаешь то же самое, ибо разработчики либ обычно поддерживают сразу все основные версии луа.
С 5.1 на 5.4 — ты получаешь почти полное отсутствие сишных либ, ибо их не успели пересобрать. Луёвые должны работать в подавляющем числе случаев.
> Луёвые либы должны работать
Если заменить во всех файлах tonumber на string.tonumber, а так же убрать все попытки битовых операций над числами + строками типа 10 >> "20", и убрать попытки ручного руления старым сборщиком мусора, ну и ещё кой чего по мелочи.
источник

VZ

Vadim Zborovskii in Lua in Moscow
с tonumber так сурово обошлись?
источник

S

Snusmumriken in Lua in Moscow
Ды
источник

S

Snusmumriken in Lua in Moscow
Так же как в 5.1 есть unpack, а потом его засунули в table.unpack.
источник

VZ

Vadim Zborovskii in Lua in Moscow
ну вот потому про 5.1 vs 5.3 всё так, как ты выше написал
источник

S

Snusmumriken in Lua in Moscow
Это 5.3->5.4 ))

Прост с 5.1 на 5.2 произошло некоторое количество изменений, которые проблематично эмулировать, вроде setfenv из 5.1 и переменной _ENV из 5.2. Они ещё и работают слегка по разному, и полностью друг из друга не вытекают. Поэтому если был код эксплуатирующий это (организующий песочницы) — его нужно довольно сильно переделывать. И у 5.1->5.3 ещё больше подобных сильных несовместимостей, которые ещё и не перегонишь 1к1, придётся делать свой обновлённый велосипед.
источник

VZ

Vadim Zborovskii in Lua in Moscow
я рассуждаю по аналогии
источник

VZ

Vadim Zborovskii in Lua in Moscow
я вот всё думаю, что мне делать с моими Fortran Bindings. Они генерились скриптом на Tcl, а потом я это нечаянно уничтожил. Так что апгрейд до 5.3 лёгким не будет...
источник

TS

Timur Safin in Lua in Moscow
Snusmumriken
Это 5.3->5.4 ))

Прост с 5.1 на 5.2 произошло некоторое количество изменений, которые проблематично эмулировать, вроде setfenv из 5.1 и переменной _ENV из 5.2. Они ещё и работают слегка по разному, и полностью друг из друга не вытекают. Поэтому если был код эксплуатирующий это (организующий песочницы) — его нужно довольно сильно переделывать. И у 5.1->5.3 ещё больше подобных сильных несовместимостей, которые ещё и не перегонишь 1к1, придётся делать свой обновлённый велосипед.
а есть какой широко используемый враппер, чтобы быть общим compatibility layer-ом? Ну вот как Монс сделал для Тарантула в moonlibs?
источник

S

Snusmumriken in Lua in Moscow
Не проверял, можно попробовать загуглить.
источник

VG

Vladislav Grubov in Lua in Moscow
Timur Safin
а есть какой широко используемый враппер, чтобы быть общим compatibility layer-ом? Ну вот как Монс сделал для Тарантула в moonlibs?
Вы про kit?
источник

TS

Timur Safin in Lua in Moscow
Vladislav Grubov
Вы про kit?
ну да (я же и ссылку вставил)
источник
2020 July 15

DF

Dmitry Frolov in Lua in Moscow
Коллеги, подскажите, плз
источник

DF

Dmitry Frolov in Lua in Moscow
При каких количествах функций код, типа такого::
источник

DF

Dmitry Frolov in Lua in Moscow
if a == 1 then f1()
elseif a == 2 then f2()
elseif a == 'xxx' then f_xxx()
<....>
else f_else()
end
источник

DF

Dmitry Frolov in Lua in Moscow
Эффективнее превратить в :::
источник

DF

Dmitry Frolov in Lua in Moscow
local fn_tbl = { [1] = f1, [2] = f2, ['xxx'] = f_xxx, <....> }

function (a)
 local some = fn_tbl[a] or f_else
 some()
 end
источник