🦥Alex Fails
на опенгл наверняка порты тоже были
🦥Alex Fails
благо это очень просто сделать
Disi
аа так это готовая
Disi
я думал черепашку самому надо кодить
🦥Alex Fails
надо кодить то, как она ходит
Disi
ну софтину
Disi
с черепашкой
🦥Alex Fails
т.е. в черепашке есть небольшой скриптоязык)
Disi
как у меня в шараге на втором курсе там MFC, MySQL
🦥Alex Fails
и обычно задачи были - нарисовать
Disi
на первом был какой-то сраный паскаль
Disi
а потом как вдарило
Alex
Паскаль Ъ.
Мерль
Alex
нц 4 раз
кц
кц
Alex
этож вальс, ёпт.
🦥Alex Fails
о, да
🦥Alex Fails
черепашечка!
Disi
вот эт да
Alex
да-да-да. только ку. а не кю.
Alex
не надо тут ругаться. здесь же дети.
void *
void *
void *
95% школьников трех слов на посцале связать не могут, а ты им Си :)
Snusmumriken
>Не-а, в сборке sfml видел скриптец, емнип
Там все равно есть хостящая прога на сишке, которая держит luastate.
void *
void *
этого бота лучше сразу забанить
Alejandro Jeditobe
Кукла маша все
Alexey
Всем привет!
Alexey
Под винду тарантулу возможно завести, или оставить надежду?
Alex
Да можно, конечно, но зачем?
Alexey
Ну, это, процесс :)
Alexey
Я под винду zeromq для go собирал, это был квест :)
Alexey
Я просто хочу попробовать сделать брокера
Alex
Ну, если девушка временно недоступна тогда вперёд, на мины. :)
Alexey
На тарантуле
Alexey
Да не, тут не в девушке дело :)
Alexey
То есть, никто не пробовал из интереса?
Snusmumriken
Точнее формируй запрос
Snusmumriken
Кароч, есть несколько вариантов.
1. Луа сверху. К ней подрубаем либы. Вызываем либами методы из lua/хост-программы.
2. С/С++ сверху. Экспортируем в luastate методы табличкой. Вызываем из Lua.
Maxx
зависит от "симулирует что-то" наверное.
по идее, можно и через thread'ы бросать периодически куски наружу в С/С++
Maxx
luasocket вроде так работает: получив коннект, оно yield'ит наружу, а luastate пока выполняет другие коннекты. приходят данные, оно  resume'ится
Maxx
не знаю, получилось ли объяснить... =)
Мерль
Это всё из-за ̶с̶п̶а̶й̶с̶а̶ той статьи на Хабре
Набижали :3
Alejandro Jeditobe
С какой той?
void *
затем же, зачем в го горутины, а в crystal - fiber'ы
void *
ну дык в crystal вроде так же
void *
там короче все вокруг event loop
void *
там можно с помощью биндингов сделать тред, но он с другими не сможет сообщаться, т.к. при любом вызове IO сегфолт, а общей памяти нет 😀
Мерль
Для чего-то асинхронного, но без io(по-крайней мере блокирющего на долго)
Мерль
Что-то в этом роде
Мерль
CSP :3
Мерль
С какой той?
Была статья, что то вроде "Пишем простую систему учёта" недавно
Там упоминался этот чатик
Мерль
Честной асинхронности нет (
Мерль
Ну вот есть у тебя долгоживущие задачи
Которые надо выполнять более-менее одновременно
Мерль
Я это так вижу, по-крайней мере
void *
Подпрограмма Lua представляет собой независимый поток выполнения. http://www.lua.ru/doc/2.11.html
void *
разве он заблокирован?
Мерль
Смысл в том, что тут вообще в каждый момент выполняется только одна задача
https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0
void *
на одноядерных процессорах, кстати, нет различия между "настоящей" и "ненастоящей" многопоточностью 😁
Мерль
Мерль
Мерль
Это мысль
Мерль
нет (
Maxx
я вижу сопрограммы как несколько точек исполнения кода (CS:IP в терминах асма), между которыми можно переключаться.
используется для неблокирующего IO, например:
клиент отправляет запрос в БД, и пока она ищет нужные записи, чтоб не блокировать исполнение остального луа-кода, клиент yield'ится куда-то наружу, давая возможность другому клиенту или другому запросу выполниться/обработаться.
когда же приходит ответ из БД, он внедряется ровно в то место, где прервался, да ещё и с результатом в параметрах.
Maxx
т.е. поток вроде и один, но несколько клиентов работают (типа) одновременно: почти многопоточность
Maxx
угу, поток один - вытесняющая многозадачность
Maxx
ну, представь ещё веб-сервер, например. nginx и openresty. прилетают тысячи запросов в секунду. каждый бежит в БД за данными. пока БД ищет, весь поток блокируется. но если запрос на поиск слать из С-обвязки в другом потоке, а в это время обрабатывать другой запрос, то вроде как быстрее получается
Maxx
неа
Maxx
thread всегда один
Maxx
https://ru.wikipedia.org/wiki/%D0%92%D1%8B%D1%82%D0%B5%D1%81%D0%BD%D1%8F%D1%8E%D1%89%D0%B0%D1%8F_%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C
Maxx
оч похоже. только прерывает исполнение не ОС, а сама сопрограмма
Мерль
Мерль
Корутины - это банальные сопрограммы
Мерль
Там нет никакого параллельного выполнения
Maxx
блииин... я ж как раз и говорю, что параллельности нет! =) она мнимая
Мерль
Есть просто переключение между контекстами