Size: a a a

2020 January 24

S

Snusmumriken in pro.lua
Или переопределить метаметод __eq, чтобы сравнивал по содержимому.
Но как ключи таблицы они будут разными, да.
источник

АК

Александр Караев in pro.lua
Может есть где-то патч для луа, который добавляет __hash? :)
источник

S

Snusmumriken in pro.lua
Нет, и это настолько грязный хак что не надо такого в проектах : )

Ещё можно на new повесить буфер, чтобы при создании проверялось, создавался ли объект с такими аргументами, и в случае чего — он бы и возвращался. Правда, это плохо работает со штуками, которые сильно меняются в процессе эксплуатации.
источник

АК

Александр Караев in pro.lua
Snusmumriken
Нет, и это настолько грязный хак что не надо такого в проектах : )

Ещё можно на new повесить буфер, чтобы при создании проверялось, создавался ли объект с такими аргументами, и в случае чего — он бы и возвращался. Правда, это плохо работает со штуками, которые сильно меняются в процессе эксплуатации.
Это совсем уж жесть - айдишники в большинстве своём уникальны, поэтому хранить их пул - скорее безумие
источник

S

Snusmumriken in pro.lua
Не айдишники а аргументы создания в качестве айдишника : )
источник

АК

Александр Караев in pro.lua
ID = int32 + int32 ~= int64
источник

S

Snusmumriken in pro.lua
Ещё лучше: в пуле хранить строку mytype12345_54321 ))
источник

S

Snusmumriken in pro.lua
Я кстати чот такое делал, когда мутил колбеки на сишной стороне. Луа такая дёргает метод объекта и передаёт в него функцию (чтобы вызваться сильно позже), сишка записывает в REGISTRY-луашную табличку, мол: "объект такой-то, имя метода такое-то, айди вызова такой-то", а в момент дёрганья колбека — ищет эту фигню в табличке и вызывает метод/удаляет.
источник

V

Vadim in pro.lua
ёп вашу мать, луа5.1: code=os.execute("exit 2")
Так вот, смещен exitcode на 8 бит влево
источник

V

Vadim in pro.lua
и ни слова в доках, ни 5.1, ни 5.2 где это пофиксили
источник

V

Vadim in pro.lua
(5.2 там полностью execute переработали но про смещение ни слова)
источник

AZ

Aydar Zarifullin in pro.lua
Vadim
ёп вашу мать, луа5.1: code=os.execute("exit 2")
Так вот, смещен exitcode на 8 бит влево
Это не баг, Сишный вариант так же работает.
источник

V

Vadim in pro.lua
источник

RM

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

AZ

Aydar Zarifullin in pro.lua
Кто-нибудь работает с Fennel? Как из Lua C API вызвать объявленную юзером Fennel функцию? Проблема в получении ссылки на функцию по имени. В _G этих функций нет поэтому lua_getglobal не срабатывает. (Возможно Fennel сохраняет ссылки в какой-то другой табличке, но я не нашел).

Спрашивал в англ чате но не смог объяснить нормально.
источник

I

Igor725 in pro.lua
Я так посмотрел, он полностью на луях написан и хранит всё своё добро внутри модуля
источник

I

Igor725 in pro.lua
Есть собственный стек, он табличкой обычной представлен
источник

I

Igor725 in pro.lua
Есть ещё свой глобал скоуп
источник

I

Igor725 in pro.lua
Покопайся в коде самого fennel, найдёшь
источник

AZ

Aydar Zarifullin in pro.lua
Igor725
Есть ещё свой глобал скоуп
Я не могу получить к нему доступ в моем коде, сорцы смотрел...
источник