Snusmumriken
Причём это goto, кстати, исключительно для фикса отсутствующего в lua continue.
vvzvlad
Вот goto я бы хотел
vvzvlad
Но у меня luajit гвоздями прибит и мне не светит
Snusmumriken
У luajit есть goto же. Проверь.
Snusmumriken
for i = 1, 10 do
if i%2 == 0 then
goto continue
end
print(i)
::continue::
end
Snusmumriken
vvzvlad
ой, и правда есть
mva
что-то я тут задумался над тем, насколько костыльно вместо добавления данных в базу через lua-sql будет делать cURL'ом запросы на инстанс OpenResty в локейшн, который будет делать то же самое через nginx-postgres модуль
vvzvlad
ее, буду пугать коллег goto в коде
mva
чтобы запись была неблокируемой (и потому что читаться данные всё равно потом будут через соседний локейшн внутри опенрести
Snusmumriken
Vyacheslav
Lucky
использование goto +100 к карме
Lucky
тяжко без неё в 5.1
Yuriy
А чем lua-sql не нравится?
Блокирующий как минимум. Но вообще все от задачи зависит. Из практики удобнее отдельный сервис держать который в бд пишет
Vyacheslav
Yuriy
Yuriy
И да - я за микросервисы
Vyacheslav
Yuriy
Какие проблемы?
Наличие монолитности. Которое по факту не позволяет делать никакого горизонтально го масщтабирования
vitaly
классно чат отжил - и ни одного слова про порно 😂
Lucky
немного 3д-порно в 2д-движке (на lua)
Lucky
Lucky
ответ - да нет наверное
ShadoWalkeR
Кстати @ovoshlook а вы на lua не пробовали fastagi делать? Мне просто интересно кому то еще эта наркомания в голову приходила или нет
Yuriy
@ovoshlook я аги в любых его контекстах не испльзую от слова совсем)
Anatoliy
А что это у него за ось непойму, MacOS?
Snusmumriken
Более точный детект: на рабочем столе линк на линуксовую игру fish fillets (http://fillets.sourceforge.net/)
Anatoliy
Snusmumriken
Хайку => гайка.
Snusmumriken
vitaly
фрибсд на тебя или еще хуже sco unix
Anatoliy
vitaly
а че это? мак ось - ядро на чем было основанно?
vitaly
vitaly
как выстрелить себе в ногу через рот
Anton
Ох блин.
15 лет беоси не видел...
vitaly
https://ru.wikipedia.org/wiki/Haiku
vitaly
похоже теперь я видел все
vitaly
мервая ось из мертвой оси
Anton
Не гугли про morphos тогда. И прочую экзотику :)
Saphire
TempleOS? :P
Snusmumriken
Хайку, кстати, бинарно совместима с эльфами? Линуксовые тулзы тянет?
Tverd
нет, совместима с BeOS
Lucky
какая проблема-то, скомпилить софтину под гайку?
Lucky
компиляторы есть все
Tverd
она походу даже не posix
Tverd
а тут сложнее
Tverd
хотя нет, пишут что есть
Anton
Подозреваю, что раз оно умеет трансляторы на уровне ядра - возможно, там уже есть трансляторы для эльфов.
vitaly
нужно запилить ось где стартует луаджит и все
vitaly
а остальное на луях
vitaly
и ffi
Anton
Vyacheslav
Релиз операционной системы ReactOS 0.4.10 https://opennet.ru/49564/
vitaly
Vyacheslav
Не согласен с использованием shared_ptr в качестве элементов массива (можно было сделать список unique_ptr), а так всё норм.
Vyacheslav
Ну и нахрена ему enum тоже не ясно.
Snusmumriken
Зачем возвращать случайное число из main - тоже неизвестно.
Exit-codes под вендой - http://www.hiteksoftware.com/knowledge/articles/049.htm, под линуксом их менее 255.
Фактически, шанс внешне-успешного завершения программы 1/RAND_MAX.
vvzvlad
А в 5.3 есть встроенная base64?
Snusmumriken
Нет, в 5.3 есть только встроенные битовая и utf8.
vvzvlad
интересно. Откуда-то подключается base64 библиотека, которая падает с "Abort trap: 6" на вполне невинной строке.
Snusmumriken
1. Посмотри package.preload
2. Посмотри package.loaded
3. Прогони что-то такое:
function find_module(file)
file = file:gsub('%.', package.config:sub(1, 1))
local ppath = package.path .. ';' .. package.cpath
for path in ppath:gmatch('(.-);') do
path = path:gsub('?', file)
local f = io.open(path)
if f then
print(path)
f:close()
end
end
end
Snusmumriken
Во, адаптировал на поиск и сишных либ тоже.
Первое что напечатает - и есть подгружаемая фигня.
Snusmumriken
Давно писал себе консольную приложулю по поиску подгружаемых либ, потому что в разных местах куча разных вариаций либ с одинаковыми именами, некоторые сишные, некоторые луашные, и LUA_PATH/LUA_CPATH кошмарно перегружены дополнительными путями, но та приложуля была переусложнена.
Vyacheslav
Snusmumriken
Или переопределить require ;)
Настолько грязные хаки я использую только на работе, только для того чтобы выгружать скрипты на куче машин напрямую из рабочей копии гита, и только по причине того что в нашей замечательной БД отключены package.path/package.cpath: планировалось что скрипты будут храниться исключительно во внутренностях БД (там даже встроенный редактор есть, и даже редактор формочек-кнопочек), и девам БД это было лень фиксить после перехода на SVN.
Поэтому любой скрипт у нас начинается со строки require('sys.require'), хе. Как раз потому что в sys.require прописаны бешеные алгоритмы адресации: из какой папки, какой подпапки выгребать скрипты, предназначенные для этого типа машины этого инстанса БД.
Snusmumriken
Кстати, это только изменит алгоритм работы require, а не даст узнать, откуда оно на самом деле выгребает скрипты. И проще сразу подредактировать package.(c)path, это по крайней мере не сможет вызвать проблем : )
Snusmumriken
Смысл такой конструкции? Она только будет печатать в stdin полный набор путей, и даже не факт что в этих путях будет нужный скрипт: он может быть "предзагружен", например, и oldrequire выгребет его из другого места.
В целом, какой режим работы у require:
1. Проверить, есть ли такой модуль в загруженном виде (package.preload, package.loaded), если есть - вернуть его;
2. Пробежать по package.path, если есть нужный файл - вытащить его, запустить, всё что он вернул - пихнуть в package.loaded (кеширование) и вернуть;
3. Пробежать по package.cpath, далее - см. выше.
3.5 package.path и package.cpath сформированы из пути до исполняемого файла, нескольких стандартных путей (./lua, /home/bin/lua и т.п.) и глобальных переменных окружения LUA_PATH и LUA_CPATH.
Если знать алгоритм - можно предсказать поведение и написать "свой require, идентичный натуральному", который при этом будет печатать точный путь загрузки (или говорить "выгружен из кеша, путь и время, когда и как было загружено ранее - вот такие").