Size: a a a

2020 February 02

VM

Vadim Misbakh-Soloviov in pro.lua
3
источник

RS

Roman Silin in pro.lua
2

1

Пуск! Привет коммьюнити)

Кто-нибудь понимает как заставить lpeg работать с Lua 5.1?

Что я уже сделал:
- Установил lpeg через luarocks, luarocks создал в своей подпапке 5.3 файл lpeg.solpeg.so который в дальнейшем удачно рейквайрится и все работает в среде 5.3.
- Скачал исходники lpeg с оф. сайта и не понял что с ними делать дальше, как из них получить lpeg.solpeg.so для lua 5.1. Запустил команду make - и та отвалился с ошибкой что не может найти lua.h.
- Скопировал собранный luarocks файл lpeg.solpeg.so из папки 5.3 в соседнюю паку 5.1, что позволило файлу найтись в среде 5.1, но не позволило ему зареквариться с ошибкой:
источник

RS

Roman Silin in pro.lua
источник

RS

Roman Silin in pro.lua
- попробовал установить две версии luarocks с разными конфигами для 5.1 и 5.3, но за недостатком инструкстажа и понимания что я делаю - что-то пошло не так.

Куда копать? )
источник

RS

Roman Silin in pro.lua
Докопался, заработало, спасибо, дольше писал 😅
- Скачал исходники luarocks
- Запустил из них ./configure --lua-version=5.1 --versioned-rocks-dir
- После чего luarocks стал существовать для 5.1. Был для 5.3

Как все-таки поставить две версии luarocks чтобы и ту и другую можно было юзать - пока хз, но пока и так сойдет, главное он сбилдил lpeg для lua 5.1 и он работает 🙂
источник

ШТ

Шмель Тяжеловес in pro.lua
Roman Silin
Докопался, заработало, спасибо, дольше писал 😅
- Скачал исходники luarocks
- Запустил из них ./configure --lua-version=5.1 --versioned-rocks-dir
- После чего luarocks стал существовать для 5.1. Был для 5.3

Как все-таки поставить две версии luarocks чтобы и ту и другую можно было юзать - пока хз, но пока и так сойдет, главное он сбилдил lpeg для lua 5.1 и он работает 🙂
Скачать два репозитория исходников, сделать соответствующий вызов
./configure

в каждом каталоге, добавить символические ссылки luarocks_51 и luarocks_53 в какой-нибудь каталог типа ~/bin
источник

ШТ

Шмель Тяжеловес in pro.lua
Шмель Тяжеловес
Скачать два репозитория исходников, сделать соответствующий вызов
./configure

в каждом каталоге, добавить символические ссылки luarocks_51 и luarocks_53 в какой-нибудь каталог типа ~/bin
Ставить пакеты с ключом --tree
источник

RS

Roman Silin in pro.lua
Шмель Тяжеловес
Скачать два репозитория исходников, сделать соответствующий вызов
./configure

в каждом каталоге, добавить символические ссылки luarocks_51 и luarocks_53 в какой-нибудь каталог типа ~/bin
Понял, спасибо) жаль что нет решения в самом luarocks.
источник

RS

Roman Silin in pro.lua
А что делает ключ —tree? Нет возможности посмотреть сейчас
источник

ШТ

Шмель Тяжеловес in pro.lua
Устанавливает корневой каталог, куда будут ставиться пакеты.
источник

AZ

Aydar Zarifullin in pro.lua
Есть таблица которую надо отличать от других табличек. Как лучше сделать пропатчить функцию type или создать функцию предикат в которой просто сравнивать метатаблицу?
источник

ШТ

Шмель Тяжеловес in pro.lua
Что значит - отличать от других таблиц?
источник

AZ

Aydar Zarifullin in pro.lua
Шмель Тяжеловес
Что значит - отличать от других таблиц?
Короче, хочу добавить новый "тип". Чтобы в коде различать что эту конкретную таблицу вернула конкретная функция.
источник

OK

Oleg Koshovetc in pro.lua
ну свою функцию создать явно проще: насколько я знаю, нет простых способов пропатчить type
источник

CP

Companion Philipp in pro.lua
Oleg Koshovetc
ну свою функцию создать явно проще: насколько я знаю, нет простых способов пропатчить type
local old_type = type
type = function(obj)
if old_type(obj) == “table” and getmetatable(obj) == mytypemt then return “mytype” else return type(obj)
end
источник

OK

Oleg Koshovetc in pro.lua
ну на таком уровне патчить type как-то неприлично, имхо, но да, не подумал о таком)
источник

CP

Companion Philipp in pro.lua
Oleg Koshovetc
ну на таком уровне патчить type как-то неприлично, имхо, но да, не подумал о таком)
Как раз-таки вполне, если ограничить новый тайп рамками своего модуля
источник

CP

Companion Philipp in pro.lua
Патчить ВМ — зло
источник

CP

Companion Philipp in pro.lua
Только если этот код не предполагается использовать исключительно на своем продакшене
источник

CP

Companion Philipp in pro.lua
Да и то нужно десять раз подумать, стоит ли оно того, с учетом того, что новые разрабы об этих патчах не знают и им придется привыкать
источник