Home
Objective Caml
ocaml@conference.jabber.ru
Среда, 16 февраля 2011< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Вики -- http://gdsfh.dyndns.org/kamlo/ | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+3
[00:02:22] <ygrek> Typhon: только сегодня в irc кто-то предлагал попробовать биндинги
[00:02:37] <Typhon> для 0mq?
[00:02:39] <Typhon> или гита?
[00:02:44] <ygrek> 0mq
[00:02:52] <Typhon> а ссылка не завалялась?
[00:03:09] <ygrek> не давал ссылки
[00:05:37] <ygrek> From: Joel Reymont <joelr1 at gmail dot com>
To: caml-list@yquem.inria.fr
Subject: [Caml-list] zeromq
Date: Thu, 16 Dec 2010 11:08:28 +0000
Does anyone have bindings for ZeroMQ?
[00:05:59] <ygrek> может это тот же товарищ
[00:06:15] <zert> этот товарищ вездесущ
[00:06:40] <Typhon> у него через свиг, скорее всего
[00:06:45] <zert> даже в нашей рассылке отирается
[00:06:56] <Typhon> zert, ну с окамлом он давно дружит (и с эрлангом)
[00:07:32] <Typhon> "zeromq-Ada" -- ужасы какие
[00:07:55] <zert> он ещё и русский наполовину
[00:07:59] <zert> и русскомовний
[00:29:36] gds вышел(а) из комнаты
[00:32:09] ermine вышел(а) из комнаты
[00:43:16] ygrek вышел(а) из комнаты: Replaced by new connection
[00:43:17] ygrek вошёл(а) в комнату
[01:10:31] ftrvxmtrx вошёл(а) в комнату
[02:01:42] zert вышел(а) из комнаты
[02:04:17] ygrek вышел(а) из комнаты: Replaced by new connection
[02:04:18] ygrek вошёл(а) в комнату
[02:15:56] ygrek вышел(а) из комнаты
[05:18:39] Typhon вышел(а) из комнаты
[06:19:15] iNode вошёл(а) в комнату
[07:55:23] iNode вышел(а) из комнаты: Replaced by new connection
[07:55:24] iNode вошёл(а) в комнату
[08:54:15] gds вошёл(а) в комнату
[09:10:58] komar вышел(а) из комнаты: Replaced by new connection
[09:10:59] komar вошёл(а) в комнату
[09:41:15] <gds> разобрался, почему у меня были проблемы с моим хаком win32unix (замена структуры с хендлами на небольшие целые числа).  Они добавили новое поле структуры, к которому обращались по-старому, считая, что аргумент указатель, а не целое число, по которому сначала должен сделаться lookup в таблице соответствий int -> struct fd.  Удивительно, что мне в первый (или во второй) раз помог windbg, и вообще, отладчик.  С другой стороны, я использовал функциональность не более, чем "bt" в gdb (ну плюс дизасм нужной функции).  Удивительно ещё то, что windbg увидел символы в dllunix.dll.  В общем, попробуем оформить версию "из свн", плюс патч вчерашний для deriving & Ko.
[10:27:44] ftrvxmtrx вышел(а) из комнаты
[10:38:57] Typhon вошёл(а) в комнату
[11:28:45] ermine вошёл(а) в комнату
[11:30:09] <f[x]> windbg  видел не символы .dll, а экспорты
[11:30:13] <f[x]> часто этого достаточно
[11:30:51] <gds> вероятно, но в сишечьке они не были объявлены специальным образом, вроде как.
[11:35:38] <f[x]> видимо если линкуется как dll то компилер все нестатические функции добавляет в экспорт
[11:35:38] iNode вышел(а) из комнаты
[11:36:34] <gds> очень похоже на то.
[11:41:07] iNode вошёл(а) в комнату
[11:56:05] zert вошёл(а) в комнату
[12:23:44] <gds> в общем, лажовый патч.  http://caml.inria.fr/mantis/view.php?id=5104
[13:31:01] <f[x]> btw никто не хочет в GSoC'е поменторить?
[13:32:47] <gds> где про это почитать?
[13:35:36] <f[x]> http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/faqs#mentoring_organizations
[13:35:38] <f[x]> https://forge.ocamlcore.org/plugins/mediawiki/wiki/gsoc-team/index.php/Main_Page
[13:43:21] <gds> штука хорошая.  однако внезапно все идеи куда-то подевались.
[13:43:52] <ermine> а менторам платють?
[13:46:12] <f[x]> не обязательно со своей идеей
[13:46:47] <Typhon> gds:     менторь свою параллельную штуку :-) хотя лучше всего было бы, чтобы менторили какой-нибудь фашизм для сборки и распространения пакетов
[13:46:50] <f[x]> ermine: если студень доползёт до финиша то да
[13:47:21] ermine поменторила своего киллера gettext, но лень
[13:47:33] <ermine> бы
[13:47:41] <gds> про параллельную -- как раз думал :)  пошлют нафих, ибо у них есть jocaml.
[13:47:59] <gds> а теперь ещё и ocamlnet3, который будет частично уметь shared memory.
[13:48:46] <f[x]> хто пошлют? идею выбирают студенты
[13:48:53] <Typhon> ты так говоришь про жокамл, как будто он супер энтерпрайз
[13:49:21] f[x] ещё смотрит на oc4mc
[13:49:35] <f[x]> если бы они репо где-то выложили - можно было бы поковырять
[13:50:14] <gds> про пакеты -- верно, было бы хорошо.  но я тут совершенно не при делах, у меня весьма biased мнение.  и оверблд, и периодическое использование венды -- всё поменяло моск так, что я бы менторить пакетное не смог.
[13:50:48] <Typhon> f[x]: хм, а что oc4mc нету репки?
[13:51:00] <f[x]> там только тарболлы
[13:51:03] <gds> о, про студентов -- не знал.  прикольно.
с другой стороны, если мне вдруг понадобится такая штука раньше, чем в середине-конце года, то будет очень лень писать самому, зная, что студиозусы напишут.
[13:51:37] <Typhon> gds: как раз пользование венды — это плюс, а то в окамле что-то все юниксоиды (даже линупсоиды скорее) — про винду, а то и про фрибсди всякие забывают :-(
[13:55:55] <gds> если будет околопакетное в списке предложений -- буду менторить.
а с параллельностью -- идея таки.  Буду думать.
[13:56:15] <f[x]> там есть oasis
[14:11:04] <Typhon> кстати, оазис умеет ставить  пакеты не от рута, в домашнюю папку куда-нибудь? вообще типа разные окружения создавать и ими манипулировать?
[14:31:29] <gds> а батарейки всё продолжают не собираться.  Новую их версию взять, что ли?..
[14:52:06] <f[x]> Typhon: оазис (сейчас по крайней мере) этим не занимается
[15:04:44] iNode вышел(а) из комнаты
[15:04:49] iNode вошёл(а) в комнату
[16:39:08] komar вышел(а) из комнаты
[17:16:55] <gds> новые батарейки тоже фейлят, но там всё неоднозначно, может и мои кривые руки.  завтра с утра -- продолжение леденящего душу расследования.
[17:18:29] <f[x]> в hudson'е собираются нормально
[17:21:48] <gds> 1. Error: All:15:Hashcons:0:Pointer identity
Invalid_argument("index out of bounds")
2. Error: All:6:File:0:Reading back output to temporary file
Unix.Unix_error(3, "caml_ba_map_file", "5")
3. Warning: tag "package" does not expect a parameter, but is used with parameter "str"
4. "Ocamlbuild knows of no rules that apply to a target named libs/estring/src/Batteries.mllib.odoc".
[17:23:06] Kakadu вошёл(а) в комнату
[17:25:38] <f[x]> это релиз или гтт?
[17:25:41] <f[x]> гит?
[17:25:48] <gds> релиз 1.3.0
[17:25:53] <f[x]> круто
[17:26:00] <f[x]> годный релиз
[17:26:18] <gds> кажется, они прочитали наш лозунг "release crap" и поняли его как-то по-своему...
[17:26:52] <gds> однако, тем не менее, очень вероятно, что это из-за моих рук.  Более подробно надо смотреть.  Буду, ибо даже интересно.
[17:28:03] <f[x]> ну map ещё может (пустой файл?), а hashcons то чего
[17:28:25] <f[x]> и что вообще hashcons там делает? o_O
[17:30:00] <gds> map -- скорее, аналог mmap'а криво работает.  hashcons -- тоже шоке.
[17:31:07] gds вышел(а) из комнаты
[17:35:02] iNode вышел(а) из комнаты
[17:42:28] komar вошёл(а) в комнату
[18:18:49] gds вошёл(а) в комнату
[18:24:06] <gds> (ахтунг, оффтопик!  но в строго-дозированных количествах.)
дамы и господа, а подскажите пожалуйста что-нибудь по ырланку, в стиле "фак для нубов про message passing".  Особенно интересен феномен "паттерн-матчинг по очереди входящих сообщений", ну или как там.
[18:27:19] <zert> тебе алгоритм выборки нужен?
[18:28:44] <gds> можно и алгоритм в общих чертах, например.  Ну и вообще, всё интересно, что рядом с этим лежит.
[18:29:43] <zert> т.е. тебя интересует то, что на поверхности, или то, как это унутрях виртуалки реализовано?
[18:32:30] <gds> вообще -- обе вещи очень интересны.  Потому что я вообще не знаю эрланг.  Хоть чуть-чуть знал бы -- то, что на поверхности, знал бы сам.  А так -- видимо, какой-то нубский мануал надо брать для "на поверхности".  Для внутренностей -- даже не знаю, как найти такое.
[18:33:09] <zert> в общем, у процесса есть мейлбокс, один
[18:33:29] <zert> в этот мейлбокс складываются сообщения от других процессов в порядке прихода
[18:33:48] <zert> когда процесс делает вызов receive, он блокируется, если в мейлбоксе нет сообщений
[18:34:09] <zert> если там сообщения есть, берётся первое, которое попадает под один из перечисленных в receive паттернов
[18:35:07] <Typhon> появилось ощущение, что gds хочет велосипед сделать!
[18:35:36] <gds> понял.  Правильно ли я понимаю, что тот, кто отправляет сообщение, всегда чётко знает, кому отправляет сообщение?  Или есть штатный multicast/broadcast?  (понятно, что их можно реализовать, даже не имея штатным образом, но интересно.)
[18:35:38] <zert> например:
receive
  {type1, Msg1} -> Msg1;
  {some, other, pattern} -> bebe
end
[18:35:51] <zert> да, всегда чотко знает
[18:36:01] <zert> имеет идентификатор процесса, ему и отсылает
[18:36:24] <zert> мультикаст делается по списку идентификаторов
[18:36:51] <gds> Typhon: не совсем _тот_ велосипед.  Мне другой надо, который про mq, но, как выясняется всё дальше и дальше, это таки велосипеды похожих конструкций.
[18:37:03] <Typhon> gds: так пиши  бинлинги к 0mq
[18:37:13] <zert> далее, можно сделать как бы синхронный вызов: посылаем процессу сообщение со своим идентификатором, этот процесс его принимает, обрабатывает и шлёт в ответ своё сообщение
[18:37:21] <Typhon> pub / sub с фильтром похоже на выборку по паттерну
[18:37:37] <ermine> gds: выучи ырланк наконец :)
[18:38:03] <zert> да
[18:38:09] <zert> пиши на ерланге @ имей профит
[18:38:12] <ermine> а еще можно пролог поучить
[18:38:14] <zert> ерланг хоть не мёртвый
[18:38:29] <gds> zert: синхронность определяет как отправитель, решая ждать ответа, так и получатель, решая отправить ответ, так?
[18:38:34] zert пытался учить пролог, но ничего, кроме зоопарка, на нём не написал
[18:39:02] <ermine> да сихронность глушится в fsm
[18:39:04] <zert> gds: да, там есть определённые обёртки над обменом сообщениями, плюс таймауты
[18:39:14] <zert> ermine: штось?
[18:39:31] <zert> как глушится?
[18:39:32] <ermine> zert: ну лопатится одна мессага за другой
[18:39:40] <gds> Typhon: буду смотреть 0mq.  Но мне надо, чтобы оно удобненько в постгресике было.  И условия задачи -- скорее такие: "пиши эрланг на камле @ пиши 0mq на камле @ имей профит".
[18:39:46] <ermine> zert: не глушится, да, я с ассихронностью спутала
[18:40:20] <zert> да там всякое бывает, зависит от того, что напишешь
[18:41:12] <Typhon> gds: а с ocamlmq чем закончилось, вроде бы ты пинал его?
[18:41:29] <gds> zert: а как реализован, в общих чертах, receive внутрях?  Берёт сообщение, пытается диспетчить его, а если не получается, то что?
[18:42:34] <zert> он просматривает очередь на первый матчинг
[18:42:35] <gds> Typhon: не понравилось то, что надо STOMP уметь, который не был нужен тогда.  Сейчас -- буду смотреть, может это будет самым простым решением.
[18:42:36] <ermine> а что такое не получается?
[18:43:02] <zert> как только одно сообщение совпало со списком шаблонов, выполняется конкретная ветка
[18:43:21] <gds> zert: а с тем, что не матчится (и пропускается), что делается?
[18:43:37] <zert> остаётся в очереди до лучших времён
[18:44:01] <zert> если не вычитывать, то очередь разбухает, память кончается, все умирают
[18:45:15] <ermine> ну можно поставить лимит на размер очереди и тем самым спасти мир
[18:46:13] <Typhon> а зачем можно слать процессу сообщения, которые он не готов принять?
[18:46:24] <Typhon> мультикаст какой-нибудь?
[18:46:40] <gds> zert: благодарю за помощь.  Теперь у меня в голове есть чоткая картина.
[18:46:47] <Typhon> кстати, в случае мультикаста, сообщение только одному упадёт процессу, или всем?
[18:46:57] <ermine> можно на ходу менять рисеверы
[18:47:04] <zert> мультикаст — это уникаст списку
[18:47:22] <zert> каждому процессу падает сообщение
[18:47:57] <Typhon> а если я хочу типа лоад бэлансинга — должен поставить процесс впереди, которые их по очереди обсылать будет?
[18:48:23] <ermine> да возьмите и поиграйте в ырланк
[18:48:31] <ermine> туториал можно прочитать за два часа
[18:48:33] <zert> Typhon: да
[18:48:47] <Typhon> туториал я уже читал и игрался таким образом :)
[18:49:04] <Typhon> но это как-то не круто — надо, видимо, что-то написать
[18:49:34] <ermine> напиши модуль или фичу для ежика
[18:49:50] <ermine> вот например прямо сегодня родили и воткнули фичу в конфиг конфы
[18:49:52] <zert> лоад-балансер
[18:49:58] <gds> ermine: какой туториал советуешь?
[18:50:33] <ermine> gds: ну классика - Part 1 книжки про конкурентный программинг :)
[18:50:40] <zert> чтобы сообщения откидывал всем пользователям по round-robin
[18:51:27] <zert> все исходящие сообщения кладутся в общую очередь, и лоад-балансер оттуда раскидывает их равномерно по всем подключеным пользователям
[18:51:42] <zert> нагрузка будет равномерная
[18:52:08] <ermine> а я вот хочу стабильную ноду ырланка на камле
[18:52:29] <ermine> чтобы rpc:call из камла в ырланк работал
[18:52:50] <zert> выбирай, либо стабильную, либо на камле
[18:53:19] <ermine> а чо такое?
[18:53:56] ermine словила и отрепортила очереднюю багу ocsigen
[18:54:02] <ermine> ну и глюкавое чудо
[19:26:52] Typhon вышел(а) из комнаты
[19:30:53] komar вышел(а) из комнаты: Replaced by new connection
[19:30:54] komar вошёл(а) в комнату
[20:46:04] Typhon вошёл(а) в комнату
[20:51:54] Kakadu вышел(а) из комнаты
[21:29:27] ftrvxmtrx вошёл(а) в комнату
[21:34:20] Kakadu вошёл(а) в комнату
[21:35:20] Kakadu вышел(а) из комнаты
[22:32:37] Kakadu вошёл(а) в комнату
[22:38:48] gds вышел(а) из комнаты
[23:44:32] Kakadu вышел(а) из комнаты
[23:56:32] ygrek вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!