Size: a a a

2021 March 21

EG

Emmanuel Goldstein in pro.lua
Snusmumriken
Ну ды, берёшь и делаешь список blessed-либ ))
Встраивать — потребуется несколько мега/гигабайт.
Я надеюсь, у меня не такой здоровый список будет
Я ещё посмотрю, сколько из этого нужно компилировать, а сколько pure lua
источник

EG

Emmanuel Goldstein in pro.lua
В основном я хочу парсер HTML и какое-нибудь расширение стандартной библиотеки (penlight?) чтобы самому split не реализовывать
источник

S

Snusmumriken in pro.lua
Кста, вот для этого можешь заюзать 7z или аналог, оно всё неплохо сжимается. Типа, держишь архив с blessed-либами, по нужде разжимаешь.
источник

S

Snusmumriken in pro.lua
А то и вовсе переопределяешь require на чтение потока из архива и loadstring/loadlib, не на всё сишное сработает, но на луашное — запросто.
источник

S

Snusmumriken in pro.lua
(я так делал, было круто, архив ещё был зашифрован а require переопределён с сишной стороны с поролем на архив, гы)
источник

EG

Emmanuel Goldstein in pro.lua
Snusmumriken
А то и вовсе переопределяешь require на чтение потока из архива и loadstring/loadlib, не на всё сишное сработает, но на луашное — запросто.
Вот это самый интересный вариант, да
Я в идеале хочу оставить всё одним бинарником — если смогу заставить lua читать просто строки из памяти вместо файлов, то встроенные либы смогу с собой таскать прямо в бинаре
источник

S

Snusmumriken in pro.lua
По технологии rarjpeg, можно сшить исполняемый файл и архив.
источник

EG

Emmanuel Goldstein in pro.lua
Snusmumriken
По технологии rarjpeg, можно сшить исполняемый файл и архив.
Можно просто весь луашный код положить в .rodata, мне не сложно
источник

S

Snusmumriken in pro.lua
Ух, сколько я трюков знаю-то, самому страшно становится
источник

S

Snusmumriken in pro.lua
Чтобы не ломать логику require, кста, можно просто новый loader добавить, который будет грабить содержимое архивов
http://lua-users.org/wiki/LuaModulesLoader
источник

S

Snusmumriken in pro.lua
(и даже сделать его сетевым, динамически реквайря луашные либы с гитхаба, но потребуется тот же луасокет/луасек или хотя бы установленный курл, с вызовами через io.popen, в десятой венде он есть с 2019 года)
источник

EG

Emmanuel Goldstein in pro.lua
Snusmumriken
Чтобы не ломать логику require, кста, можно просто новый loader добавить, который будет грабить содержимое архивов
http://lua-users.org/wiki/LuaModulesLoader
Вау.
Тогда я могу написать просто лоадер, который будет прямиком из бинарника отдавать код модулей, спасибо.
Осталось только понять, что делать с сишными.
источник

EG

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

S

Snusmumriken in pro.lua
Или рядом плюхнуть, подгружая loadlib'ом или обычным require, благо сишных либ в идеале немного.
источник

S

Snusmumriken in pro.lua
Или при том же require — проверять, есть ли эта либа в архиве сишных либ, и разархивируя рядом же.
источник

EG

Emmanuel Goldstein in pro.lua
Snusmumriken
Или рядом плюхнуть, подгружая loadlib'ом или обычным require, благо сишных либ в идеале немного.
У меня нет никакого особого «рядом» — один бинарник он и есть один бинарник
источник

EG

Emmanuel Goldstein in pro.lua
В идеале хочется всё в памяти проделывать
источник

S

Snusmumriken in pro.lua
Оки, тогда народ как-то линкует сишное и пихает в package.preload, надо глянуть как.
источник

EG

Emmanuel Goldstein in pro.lua
Основная проблема это парсер HTML, потому что вряд ли он есть на чистом Lua
источник

S

Snusmumriken in pro.lua
Есть https://github.com/msva/lua-htmlparser
Но не особо быстрый в сравнении с сишкой
источник