Михаил
У меня вопрос. Почему строго две корутины? Две таски это же шляпа на постном масле.
не будет же проблемой скопировать таблицу из одного "труъ потока" в другой, если делать это не используя луа апи, а вместо этого кишки интерпретатора?
Михаил
Копирование и сериализация таблиц — это писос.
я про тот случай когда я это уже сделал всё
Михаил
сам факт того что это не таблица с шаред памятью, а скопированная таблица из другого луастейт -?
Snusmumriken
Вот именно
Михаил
Snusmumriken
Так что есть шанс что придётся тащить весь луа-стейт из одного в другой
Михаил
о, есть идея
Михаил
таблица хранится где-то в одном луастейте
Михаил
допустим в стейте воркера, не в основном
Михаил
а на нее вешаем сишные метаметоды с блокировкой
Михаил
и прокидываем в главный стейт
Михаил
только там опять будет или копирование или черная магия
Михаил
как корутины данными обмениваются?
UtoECat
как корутины данными обмениваются?
ты не можешь xmove делать между разными стейтами, потому что в каждом стейте свой GC, контекст, и вообще всё своё. А в пределах одного стейта это примитивное копирование TValue с одного стека на другой
UtoECat
сегфолт обычно в lj_gc при gc_sweepstr
> НО она работает Корраптит стейт на сборку мусора НО РАБОТАЕТ!!11 😂
Михаил
> НО она работает Корраптит стейт на сборку мусора НО РАБОТАЕТ!!11 😂
код иногда проходит, значит луа запускается с ним))
UtoECat
сегфолт обычно в lj_gc при gc_sweepstr
а стоп, у тебя тут разные стейты... хммм
UtoECat
а стоп, у тебя тут разные стейты... хммм
а не, всё верно : local ret = C.pthread_create(thread, nil, ffi.cast("void *(*)(void *)", thread_start), nil) local ret2 = C.pthread_create(thread2, nil, ffi.cast("void *(*)(void *)", thread_start2), nil) Ты callback одного стейта в двух потоках гоняешь. Конечно оно корраптится всё неумолимо
UtoECat
это как снять все колеса и поехать
🤷‍♂️ ты сишный код выше тестировал? Или вообще другой?
Михаил
какой сишный? я все запускал
UtoECat
какой сишный? я все запускал
та ё. Какой из этих файлов lasync у тебя?
Михаил
ukopicanuh.cpp
Михаил
либу lasync я переименовал в smtl и щас дописываю
Михаил
щас сделаю простую передачу данных туда сюда и готово
Luсky
Михаил
github.com/reglnk/luarjit2 сделал коммит с оператором замещения, код в luarjit.md
Михаил
Тот самый оператор который хотел с самого начала
Михаил
для чего я вообще этот форк создал
Михаил
теперь можно писать не bar.foo.ns.field = bar.foo.ns.field + 78 а bar.foo.ns.field =~ + 78
Михаил
работает для почти всего
Михаил
fn foo(arg1, arg2) { arg1 =~ or {}; arg2 =~ or {}; ... }
Михаил
Михаил
Михаил
а я как раз могу такое добавить
Михаил
но мне кажется лучше при получении этого аргумента переадресовывать на функцию table.deepclone
Михаил
иначе как проверить что интерпретатор ее поддерживает, со стороны луа
Михаил
на версию всем пофиг
Михаил
ан нет)))))
Михаил
раз
Михаил
два
Vlad
теперь можно писать не bar.foo.ns.field = bar.foo.ns.field + 78 а bar.foo.ns.field =~ + 78
Уж добавил бы += Я вот не особо хочу распальцовку по всей клавиатуре делать, чтобы написать оператор прибавления
Михаил
или даже на += -= уже прикинул как
Михаил
да, было б неплохо
Petr
Посоветуйте генераторов статик сайтов, знаю есть Hugo дальше нужно копать или оно и так норм?
Vlad
Видил кто-то вообще на Zig свой генератор пилил. Парсил шаблоны страниц, на основе массива адресов этих страниц и маркдаун-файлов, из которых брался контент
Vlad
Hugo очень настраиваемый, я хотел его для себя заюзать, но мне он показался слишком настраиваемым :D
Uni_X
А в чем суть таких генераторов?
Vlad
Генерирует HTML-странички из HTML-шаблонов со стилями и какого-то контента, лежащего в отдельных файлах
Vlad
Ты, допустим, не хочешь разворачивать целую пыху для своего полу-динамического контента с блогом, который будет обновляться от силы раз в месяц
Vlad
Но и вручную HTML-страницы писать надоедает
Vlad
Делаешь несколько статичных страниц, шаблон страницы с постом, потом пишешь контент в удобном тебе формате и генерируешь готовые странички
Uni_X
Понял, спасибо
Uni_X
Мне бы было легче пару html файликов написать и в <p> менять содержимое)
Igor
Мне бы было легче пару html файликов написать и в <p> менять содержимое)
Для статического контента определенно легче, но явно не для динамического
Petr
Посоветуйте генераторов статик сайтов, знаю есть Hugo дальше нужно копать или оно и так норм?
Я вчера ещё раз посмотрел и по своим критериям ещё кроме Hugo добавил Quartz. Кварц этот посмотрю ещё, вроде он билдит представление обсидиан базы в веб формат, то что мне как раз примерно и надо.
Vlad
Мне бы было легче пару html файликов написать и в <p> менять содержимое)
А теперь представь, что у тебя два десятка статей, и тебе надо поменять немножко разметку
Hello, World! 🎄
А Go тогда — язык современных зумеров.
Михаил
А Go тогда — язык современных зумеров.
у них на канале нет реакции клоуна
Михаил
Luсky
Питон забавный, но планом от него несёт за квартал. Причём не безобидной (почти) природной индейской травой, а геномодифицированым монстром.
Hello, World! 🎄
Мне нравится, то что в python добавили возможность указывать тип переменной
Hello, World! 🎄
class AnotherUselessClass: ... a: int = 5 b: str = "Hello, World" c: AnotherUselessClass = AnotherUselessClass()
UtoECat
class AnotherUselessClass: ... a: int = 5 b: str = "Hello, World" c: AnotherUselessClass = AnotherUselessClass()
typehintы давно были же. или как там они называются
Hello, World! 🎄
Я теперь json ответ оборачиваю в class содержащий ключи json ответа
Hello, World! 🎄
И ide подсвечивает нужное поле, при его написании
Hello, World! 🎄
typehintы давно были же. или как там они называются
Через библиотеку наверно были реализованы? Сейчас без импорта библиотек базовые типы доступны для указания
UtoECat
Через библиотеку наверно были реализованы? Сейчас без импорта библиотек базовые типы доступны для указания
они с python 3.5 были, другое дело что с новыми версиями их допиливали, например чтобы можно было list[int] писать вместо List[int] из typing
Михаил
они не работают
Михаил
это то же самое почти, что писать local--[[string]] var = "hello world"