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
чтобы запись была неблокируемой (и потому что читаться данные всё равно потом будут через соседний локейшн внутри опенрести
mva
У luajit есть goto же. Проверь.
зависит. При сборке можо и отключать lua52compat
Snusmumriken
зависит. При сборке можо и отключать lua52compat
Ну да, но в дефолтной сборке - есть.
Snusmumriken
что-то я тут задумался над тем, насколько костыльно вместо добавления данных в базу через lua-sql будет делать cURL'ом запросы на инстанс OpenResty в локейшн, который будет делать то же самое через nginx-postgres модуль
Это нормальное решение. Типа не вывешиваем БД наружу, всё такое. Правда, вместо curl'а я бы использовал luasocket/luasec, хотя по обстоятельствам (например, при keep-alive-сессии curl может быть эффективнее, а может и нет).
Lucky
использование goto +100 к карме
Lucky
тяжко без неё в 5.1
Yuriy
А чем lua-sql не нравится?
Блокирующий как минимум. Но вообще все от задачи зависит. Из практики удобнее отдельный сервис держать который в бд пишет
Yuriy
Использование многопоточности решает такие проблемы
Оно не решает проблемы монолитности
Yuriy
И да - я за микросервисы
Yuriy
Какие проблемы?
Наличие монолитности. Которое по факту не позволяет делать никакого горизонтально го масщтабирования
vitaly
классно чат отжил - и ни одного слова про порно 😂
Vyacheslav
Наличие монолитности. Которое по факту не позволяет делать никакого горизонтально го масщтабирования
При чем здесь горизонтальное масштабирование и lua-sql. Что мешает настроить репликацию базы того же postgresql и в коде Lua контролировать, куда писать?
Yuriy
При чем здесь горизонтальное масштабирование и lua-sql. Что мешает настроить репликацию базы того же postgresql и в коде Lua контролировать, куда писать?
Конкретно lua-sql и масштабирование никак не связаны если говорить об этом Но я говорю не конкретно о lua-sql а в общем и целом об идее все делать в одном месте
Lucky
немного 3д-порно в 2д-движке (на lua)
Lucky
и сложно такое сделать?)
Lucky
ответ - да нет наверное
ShadoWalkeR
Кстати @ovoshlook а вы на lua не пробовали fastagi делать? Мне просто интересно кому то еще эта наркомания в голову приходила или нет
Yuriy
@ovoshlook я аги в любых его контекстах не испльзую от слова совсем)
Anatoliy
и сложно такое сделать?)
А что это у него за ось непойму, MacOS?
Snusmumriken
А что это у него за ось непойму, MacOS?
Какой-нибудь слегка упоротый DE под линекс, ничего особенного.
Snusmumriken
Более точный детект: на рабочем столе линк на линуксовую игру fish fillets (http://fillets.sourceforge.net/)
Lucky
А что это у него за ось непойму, MacOS?
это гайка https://t.me/HaikuOS_RU_chat
Anatoliy
это гайка https://t.me/HaikuOS_RU_chat
Что за гайка? Генту?
Snusmumriken
Хайку => гайка.
Lucky
Что за гайка? Генту?
Дикий человек Маргадон, хе-хе.
vitaly
Хайку => гайка.
ооо порно пошло - линуксовое
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
Vyacheslav
а остальное на луях
Графон будет ужасно тормозить
vvzvlad
Графон будет ужасно тормозить
Ну так не надо пиксельно отрисовывать, пусть примитивы будут. В короне игрушки на луа пишут, и все ок
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 кошмарно перегружены дополнительными путями, но та приложуля была переусложнена.
Snusmumriken
Или переопределить require ;)
Настолько грязные хаки я использую только на работе, только для того чтобы выгружать скрипты на куче машин напрямую из рабочей копии гита, и только по причине того что в нашей замечательной БД отключены package.path/package.cpath: планировалось что скрипты будут храниться исключительно во внутренностях БД (там даже встроенный редактор есть, и даже редактор формочек-кнопочек), и девам БД это было лень фиксить после перехода на SVN. Поэтому любой скрипт у нас начинается со строки require('sys.require'), хе. Как раз потому что в sys.require прописаны бешеные алгоритмы адресации: из какой папки, какой подпапки выгребать скрипты, предназначенные для этого типа машины этого инстанса БД.
Snusmumriken
Кстати, это только изменит алгоритм работы require, а не даст узнать, откуда оно на самом деле выгребает скрипты. И проще сразу подредактировать package.(c)path, это по крайней мере не сможет вызвать проблем : )
Vyacheslav
Кстати, это только изменит алгоритм работы require, а не даст узнать, откуда оно на самом деле выгребает скрипты. И проще сразу подредактировать package.(c)path, это по крайней мере не сможет вызвать проблем : )
Зачем "менять" алгоритм? do local oldrequire = require function require(...) print("path:", package.path) print("cpath:", package.cpath) print("require:", ...) return oldrequire(...) end end
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, идентичный натуральному", который при этом будет печатать точный путь загрузки (или говорить "выгружен из кеша, путь и время, когда и как было загружено ранее - вот такие").