Home
Objective Caml
ocaml@conference.jabber.ru
Суббота, 5 февраля 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:33:08] ffinder вышел(а) из комнаты
[01:02:29] Typhon вошёл(а) в комнату
[01:43:09] ftrvxmtrx вышел(а) из комнаты
[01:53:54] gds вышел(а) из комнаты
[01:58:46] serp256 вошёл(а) в комнату
[02:19:04] serp256 вышел(а) из комнаты
[02:21:31] ermine вышел(а) из комнаты
[02:31:40] Typhon вышел(а) из комнаты
[06:31:02] serp256 вошёл(а) в комнату
[06:31:35] serp256 вышел(а) из комнаты
[10:47:04] ffinder вошёл(а) в комнату
[10:47:20] ffinder вышел(а) из комнаты
[11:01:51] Typhon вошёл(а) в комнату
[11:11:48] Kakadu вошёл(а) в комнату
[11:28:05] ermine вошёл(а) в комнату
[11:34:58] gds вошёл(а) в комнату
[11:46:43] iNode вышел(а) из комнаты
[12:33:08] ygrek вошёл(а) в комнату
[12:39:46] ftrvxmtrx вошёл(а) в комнату
[12:40:21] <ygrek> о, спамеры до вики добрались
[12:40:41] <ygrek> наверное зря я урлу в топик добавил
[12:59:52] <gds> не, надо просто анонимам запретить, отсеются.
[13:00:00] <gds> кстати, по гуглоалертам вычислил.
[13:02:08] ygrek на rss подписан
[13:05:34] <ygrek> что-то dns либ для камля расплодилось, может и свою релизнуть :)
[13:09:10] <ermine> на пюре камле?
[13:09:42] <ermine> или всякие биндинги к сишним либлам?
[13:12:07] <gds> ygrek: если поверх lwt и пюре -- давай, было бы полезно.
[13:13:34] <ermine> сразу заказываю резолвинг для SRV и TXT записей
[13:32:24] ftrvxmtrx вышел(а) из комнаты
[13:34:45] ftrvxmtrx вошёл(а) в комнату
[13:42:40] ftrvxmtrx вышел(а) из комнаты
[13:43:15] ftrvxmtrx вошёл(а) в комнату
[13:45:36] <ermine> интересно, можно ли в камлобилде обеспечить разную компиляцию одного и того же модуля для разных таргетов?
[13:56:22] <ygrek> пюре и асинхронный, но не lwt
[13:56:52] <ygrek> по возможностям как netdns (только не кидает непонятные исключения из event loop'а)
[13:57:17] <gds> а чем асинхронность достигается?
[13:58:00] <ygrek> callback обычный
[13:58:42] <ermine> libev?
[13:59:35] <ygrek> libevent, но с намёком на независимость от async механизма
[14:05:49] <ermine> да лучше уж не привязываться к libevent намертво
[14:06:03] <ermine> а посему надо юзать монады lwt :)
[14:09:32] ftrvxmtrx вышел(а) из комнаты
[14:09:55] Kakadu вышел(а) из комнаты
[14:10:43] ftrvxmtrx вошёл(а) в комнату
[14:18:18] <ygrek> lwt выше уровнем
[14:18:51] <ygrek> нужно обобщённый интерфейс к libev/libevent/select/poll, возможно ли?
[14:19:41] <Typhon> не понятно, зачем? libev/libevent уже обобщённый интерфейс к select/poll/epoll/etc.
[14:23:12] Kakadu вошёл(а) в комнату
[14:24:51] <ermine> универсальность - это когда вызываешь одну функцию abc () в любом интерфейсе
[14:28:07] ygrek вышел(а) из комнаты
[14:28:26] ygrek вошёл(а) в комнату
[14:28:27] ygrek вышел(а) из комнаты
[14:28:32] ygrek вошёл(а) в комнату
[14:31:02] <ygrek> что же тут непонятного, есть либа на lwt, есть либа на select'e и есть моё приложение на libevent, как объединить?
[14:31:07] <ygrek> в один eventloop?
[14:31:34] <ygrek> предложение переписать всё на lwt не рассматриваются
[14:32:20] <ygrek> ещё есть equeue из ocamlnet, тоже велосипед
[14:38:56] <ermine> в equeue - тот же селект
[14:40:33] <ermine> универсальный интерфейс - это когда суют модуль с заданной сигнатурой module type Async = sig type t val send : 'a -> t ... end
[14:42:47] <gds> вы рассматриваете две разные задачи.  ygrek -- задачу сопряжения уже написанного кода, использующего весь зоопарк, каждый своё, ermine -- задачу написания нового кода, способного выполняться на любом из жывотных зоопарка.  Конечно, ни к чему не придёте.
[14:45:31] <ermine> :)
[14:45:50] <ermine> без переписывания имеющихся либл дело не обойдется
[14:46:41] <gds> переписывание разное бывает.  например, код, использующий lwt, можно вполне удобно запускать, если я правильно помню lwt'шную event loop.  впрочем, я тут не копенгаген.
[14:47:40] <ermine> gds: там мешает стиль кодинга a >>= b
[14:48:52] <ygrek> ermine: про универсальный интерфейс - всё правильно
[14:49:31] <ygrek> только не val send, а val add : t -> fd -> event_type -> unit
[14:50:07] <ygrek> ну там таймауты ещё
[14:50:44] <ermine> ygrek: а держать fd у себя - это разве асихронный way?
[14:50:53] <gds> ermine: ничего не мешает.  Я порой использую манатки даже обернув в них стандартные Pervasives.{open_*, output_string, input}.
[14:51:14] <ygrek> gds: это одна и та же задача в общем-то, возможность запуститься на любом животном эквивалента возвожность впрячь нескольких животных в одну упряжку %)
[14:52:19] <ermine> gds: я к тому, что монады понуждают писать код в таком стиле, ну я не о том, что стиль не удобен
[14:52:35] <ygrek> ermine: а где держать fd это уже решает либа, lwt например спрячет, суть в том что все эти либы всё равно требуют уведомлений когда дескриптор стал readable итп, но все хардкодят свои механизмусы
[14:54:14] <gds> ygrek: для универсального интерфейса достаточно родить module type Async и его имплементации.  Для впрягания в одну упряжку -- как минимум, переписывать код, работающий с конкретно select, poll, libev, так, чтобы он работал совместно с другими (ну или через универсальный механизм, пофиг).
[14:55:26] <gds> ermine: ну пусть принуждают -- этот стиль не мешает обычно, и уж точно, что можно родить вполне приличный монадный интерфейс к другим библиотекам.
С другой стороны, без синтаксических расширений код смотрится, как бы это сказать, на любителя.
[14:55:37] <ermine> это фактически camlimages
[14:55:49] <ermine> куча графических либл с общим интерфейсом
[14:56:07] <ermine> там модуля общего нет, только рекорд с калбэками
[14:56:16] <ygrek> gds: угу, но второго без первого и не будет
[14:57:44] <ermine> надо попробовать в camlimages внедрить фирст ордер модули...
[15:03:24] <gds> ygrek: в частных случаях -- будет: например, lwt можно легко пускать вместе с какой-то одной другой штуковиной.  Если же ты предлагаешь родить общий интерфейс, а поверх него написать врапперы для уже имеющихся интерфейсов, то решение приличное, позволит заменой интерфейса обеспечить фактически такое: программа, использующая один интерфейс, сможет работать с реализацией, реализующей любой другой интерфейс.  Конечно, всё будет проходить через универсальный.
Но подумай ещё над манатками.  Имхо тебе не захочется их сопрягать тоже.
[15:03:37] <ermine> вообще first order modules доставляют много радостей и раздумий
[15:08:29] <gds> но вообще тяжело это, утрясти все асинхронные интерфейсы в один.  Я бы сходу не взялся.
[15:09:21] <ermine> только смелые пьют шампанское по утрам
[15:13:52] ygrek вышел(а) из комнаты: Replaced by new connection
[15:13:54] ygrek вошёл(а) в комнату
[15:21:02] <ygrek> а зачем мне манатки сопрягать, не не
[15:22:36] <ygrek> > но вообще тяжело это, утрясти все асинхронные интерфейсы в один.  Я бы сходу не взялся.
отож, с другой стороны большинство (весь?) код который я видел реально укладывается в один простой интерфейс. пробовать надо
[16:18:33] komar вышел(а) из комнаты: Replaced by new connection
[16:18:34] komar вошёл(а) в комнату
[19:18:12] zert вошёл(а) в комнату
[19:46:48] Typhon вышел(а) из комнаты
[20:07:05] iNode вошёл(а) в комнату
[20:18:25] arhibot вошёл(а) в комнату
[20:21:15] komar вышел(а) из комнаты: Replaced by new connection
[20:21:17] komar вошёл(а) в комнату
[20:38:59] komar вышел(а) из комнаты: Replaced by new connection
[20:39:00] komar вошёл(а) в комнату
[20:44:43] <arhibot> all:
[20:44:57] <arhibot> Кто-нибудь мне может объяснить, что такое JoOcaml
[20:45:26] <arhibot> JoCaml
[21:05:36] <zert> ты какой-то неугомонный
[21:05:50] <zert> то тебе диалайзер с рекурсивными типами, то жокамль
[21:06:04] zert вышел(а) из комнаты
[21:11:23] <arhibot> я не очень понимаю, как с типами поступают в jocaml
[21:11:46] <arhibot> zert эти вопросы звенья одной цепи (:
[21:36:14] <ermine> jobber ocaml
[22:01:54] <arhibot> ermine: ну это не серьезно
[22:02:48] ftrvxmtrx вышел(а) из комнаты
[22:04:16] ftrvxmtrx вошёл(а) в комнату
[22:05:32] <ermine> arhibot: если серьезно - то все обычно засыпают в начале туториала по jocaml
[22:46:46] <arhibot> Communications through the name service are not typed. вот как там с типизацией
[22:47:44] <arhibot> ну в общем, да. оно и ясно
[22:48:17] <arhibot> но как спасаться, от плохих клиентов
[22:48:31] <arhibot> "Notice that in most situations JoCaml will crash." печаль
[22:58:04] <ermine> use erlang, dude
[22:58:19] <arhibot> ermine: его и юзаю
[22:58:51] <arhibot> есть задача связанная с верификацией, думал, чего умного почерпнуть из jocaml
[22:58:58] <ermine> ну тогда вместо jocaml - lwt
[23:11:43] arhibot вышел(а) из комнаты
[23:39:50] <ygrek> с типизацией внтури процесса там всё хорошо, а снаружи - всё как обычно - marshal, если запускать синронные версии то всё ок
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!